From 7936a528a415eb0ed2fb0c0b564c9ea28d43e612 Mon Sep 17 00:00:00 2001 From: pradeepnschrodinger Date: Thu, 28 Nov 2019 16:05:53 +0000 Subject: [PATCH] Version 1.0.2 --- dist/fixed-data-table-base.css | 56 ++++++++++++++++--- dist/fixed-data-table-base.min.css | 56 ++++++++++++++++--- dist/fixed-data-table-style.css | 31 ++++++++++- dist/fixed-data-table-style.min.css | 31 ++++++++++- dist/fixed-data-table.css | 85 ++++++++++++++++++++++++++--- dist/fixed-data-table.js | 48 ++++------------ dist/fixed-data-table.min.css | 85 ++++++++++++++++++++++++++--- dist/fixed-data-table.min.js | 48 ++++------------ package.json | 2 +- src/FixedDataTableRoot.js | 2 +- 10 files changed, 336 insertions(+), 108 deletions(-) diff --git a/dist/fixed-data-table-base.css b/dist/fixed-data-table-base.css index 5892d6b7..b710e7a1 100644 --- a/dist/fixed-data-table-base.css +++ b/dist/fixed-data-table-base.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -30,6 +30,11 @@ white-space: nowrap; } +.fixedDataTable_isRTL .fixedDataTableCellGroupLayout_cellGroup { + right: 0; + left: auto; +} + .fixedDataTableCellGroupLayout_cellGroup > .public_fixedDataTableCell_main { display: inline-block; vertical-align: top; @@ -62,6 +67,12 @@ white-space: normal; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; +} + .fixedDataTableCellLayout_lastChild { border-width: 0 1px 1px 0; } @@ -94,6 +105,11 @@ z-index: 1; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerContainer { + left: 0px; + right: auto; +} + .fixedDataTableCellLayout_columnResizerContainer:hover { cursor: ew-resize; } @@ -108,6 +124,11 @@ visibility: hidden; width: 4px; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerKnob { + left: 0px; + right: auto; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -126,6 +147,11 @@ width: 12px; } +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_mouseArea { + right: auto; + left: -5px; +} + .fixedDataTableColumnResizerLineLayout_main { border-right-style: solid; border-right-width: 1px; @@ -135,12 +161,10 @@ pointer-events: none; } -body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { - /* the resizer line is in the wrong position in RTL with no easy fix. - * Disabling is more useful than displaying it. - * #167 (github) should look into this and come up with a permanent fix. - */ - display: none !important; +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; } .fixedDataTableColumnResizerLineLayout_hiddenElem { @@ -213,6 +237,7 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { .fixedDataTableRowLayout_body { left: 0; + right: 0; position: absolute; top: 0; } @@ -234,6 +259,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 0; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_fixedColumnsDivider { + border-left-width: 0; + border-right-style: solid; + border-right-width: 1px; +} + .fixedDataTableRowLayout_columnsShadow { position: absolute; width: 4px; @@ -243,6 +274,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { right: 1px; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_columnsRightShadow { + left: 1px; + right: auto; +} + .fixedDataTableRowLayout_rowWrapper { position: absolute; top: 0; @@ -325,6 +361,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 100%; } +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal, +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal:after { + right: 0; + left: auto; +} + .ScrollbarLayout_faceHorizontal.public_Scrollbar_faceActive:after, .ScrollbarLayout_main:hover .ScrollbarLayout_faceHorizontal:after { bottom: calc(4px/2); diff --git a/dist/fixed-data-table-base.min.css b/dist/fixed-data-table-base.min.css index 5892d6b7..b710e7a1 100644 --- a/dist/fixed-data-table-base.min.css +++ b/dist/fixed-data-table-base.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -30,6 +30,11 @@ white-space: nowrap; } +.fixedDataTable_isRTL .fixedDataTableCellGroupLayout_cellGroup { + right: 0; + left: auto; +} + .fixedDataTableCellGroupLayout_cellGroup > .public_fixedDataTableCell_main { display: inline-block; vertical-align: top; @@ -62,6 +67,12 @@ white-space: normal; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; +} + .fixedDataTableCellLayout_lastChild { border-width: 0 1px 1px 0; } @@ -94,6 +105,11 @@ z-index: 1; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerContainer { + left: 0px; + right: auto; +} + .fixedDataTableCellLayout_columnResizerContainer:hover { cursor: ew-resize; } @@ -108,6 +124,11 @@ visibility: hidden; width: 4px; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerKnob { + left: 0px; + right: auto; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -126,6 +147,11 @@ width: 12px; } +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_mouseArea { + right: auto; + left: -5px; +} + .fixedDataTableColumnResizerLineLayout_main { border-right-style: solid; border-right-width: 1px; @@ -135,12 +161,10 @@ pointer-events: none; } -body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { - /* the resizer line is in the wrong position in RTL with no easy fix. - * Disabling is more useful than displaying it. - * #167 (github) should look into this and come up with a permanent fix. - */ - display: none !important; +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; } .fixedDataTableColumnResizerLineLayout_hiddenElem { @@ -213,6 +237,7 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { .fixedDataTableRowLayout_body { left: 0; + right: 0; position: absolute; top: 0; } @@ -234,6 +259,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 0; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_fixedColumnsDivider { + border-left-width: 0; + border-right-style: solid; + border-right-width: 1px; +} + .fixedDataTableRowLayout_columnsShadow { position: absolute; width: 4px; @@ -243,6 +274,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { right: 1px; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_columnsRightShadow { + left: 1px; + right: auto; +} + .fixedDataTableRowLayout_rowWrapper { position: absolute; top: 0; @@ -325,6 +361,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 100%; } +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal, +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal:after { + right: 0; + left: auto; +} + .ScrollbarLayout_faceHorizontal.public_Scrollbar_faceActive:after, .ScrollbarLayout_main:hover .ScrollbarLayout_faceHorizontal:after { bottom: calc(4px/2); diff --git a/dist/fixed-data-table-style.css b/dist/fixed-data-table-style.css index fb2a1a47..e5fec139 100644 --- a/dist/fixed-data-table-style.css +++ b/dist/fixed-data-table-style.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -97,7 +97,12 @@ background-color: #0284ff; } .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { - margin-left: 12px; + margin-left: 12px; +} + +.fixedDataTable_isRTL .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { + margin-left: auto; + margin-right: 12px; } /** * Column reorder goodies. @@ -110,6 +115,13 @@ float: left; cursor: move; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer { + margin-right: auto; + margin-left: -12px; + float: right; +} + .fixedDataTableCellLayout_columnReorderContainer:after { content: '::'; position: absolute; @@ -117,6 +129,11 @@ left: 1px; transform: translateY(-50%); } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer:after { + left: auto; + right: 1px; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -166,6 +183,10 @@ background-image: linear-gradient(90deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); } +.fixedDataTable_isRTL .public_fixedDataTableRow_columnsShadow { + background-image: linear-gradient(270deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); +} + .public_fixedDataTableRow_columnsRightShadow { transform: rotate(180deg); } @@ -192,6 +213,12 @@ border-left: 1px solid #d3d3d3; } +.fixedDataTable_isRTL .public_Scrollbar_main.public_Scrollbar_mainActive, +.fixedDataTable_isRTL .public_Scrollbar_main { + border-right: 1px solid #d3d3d3; + border-left-width: 0; +} + .public_Scrollbar_mainOpaque, .public_Scrollbar_mainOpaque.public_Scrollbar_mainActive, .public_Scrollbar_mainOpaque:hover { diff --git a/dist/fixed-data-table-style.min.css b/dist/fixed-data-table-style.min.css index fb2a1a47..e5fec139 100644 --- a/dist/fixed-data-table-style.min.css +++ b/dist/fixed-data-table-style.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -97,7 +97,12 @@ background-color: #0284ff; } .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { - margin-left: 12px; + margin-left: 12px; +} + +.fixedDataTable_isRTL .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { + margin-left: auto; + margin-right: 12px; } /** * Column reorder goodies. @@ -110,6 +115,13 @@ float: left; cursor: move; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer { + margin-right: auto; + margin-left: -12px; + float: right; +} + .fixedDataTableCellLayout_columnReorderContainer:after { content: '::'; position: absolute; @@ -117,6 +129,11 @@ left: 1px; transform: translateY(-50%); } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer:after { + left: auto; + right: 1px; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -166,6 +183,10 @@ background-image: linear-gradient(90deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); } +.fixedDataTable_isRTL .public_fixedDataTableRow_columnsShadow { + background-image: linear-gradient(270deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); +} + .public_fixedDataTableRow_columnsRightShadow { transform: rotate(180deg); } @@ -192,6 +213,12 @@ border-left: 1px solid #d3d3d3; } +.fixedDataTable_isRTL .public_Scrollbar_main.public_Scrollbar_mainActive, +.fixedDataTable_isRTL .public_Scrollbar_main { + border-right: 1px solid #d3d3d3; + border-left-width: 0; +} + .public_Scrollbar_mainOpaque, .public_Scrollbar_mainOpaque.public_Scrollbar_mainActive, .public_Scrollbar_mainOpaque:hover { diff --git a/dist/fixed-data-table.css b/dist/fixed-data-table.css index 4e4e47b5..398abaad 100644 --- a/dist/fixed-data-table.css +++ b/dist/fixed-data-table.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -30,6 +30,11 @@ white-space: nowrap; } +.fixedDataTable_isRTL .fixedDataTableCellGroupLayout_cellGroup { + right: 0; + left: auto; +} + .fixedDataTableCellGroupLayout_cellGroup > .public_fixedDataTableCell_main { display: inline-block; vertical-align: top; @@ -62,6 +67,12 @@ white-space: normal; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; +} + .fixedDataTableCellLayout_lastChild { border-width: 0 1px 1px 0; } @@ -94,6 +105,11 @@ z-index: 1; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerContainer { + left: 0px; + right: auto; +} + .fixedDataTableCellLayout_columnResizerContainer:hover { cursor: ew-resize; } @@ -108,6 +124,11 @@ visibility: hidden; width: 4px; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerKnob { + left: 0px; + right: auto; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -126,6 +147,11 @@ width: 12px; } +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_mouseArea { + right: auto; + left: -5px; +} + .fixedDataTableColumnResizerLineLayout_main { border-right-style: solid; border-right-width: 1px; @@ -135,12 +161,10 @@ pointer-events: none; } -body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { - /* the resizer line is in the wrong position in RTL with no easy fix. - * Disabling is more useful than displaying it. - * #167 (github) should look into this and come up with a permanent fix. - */ - display: none !important; +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; } .fixedDataTableColumnResizerLineLayout_hiddenElem { @@ -213,6 +237,7 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { .fixedDataTableRowLayout_body { left: 0; + right: 0; position: absolute; top: 0; } @@ -234,6 +259,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 0; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_fixedColumnsDivider { + border-left-width: 0; + border-right-style: solid; + border-right-width: 1px; +} + .fixedDataTableRowLayout_columnsShadow { position: absolute; width: 4px; @@ -243,6 +274,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { right: 1px; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_columnsRightShadow { + left: 1px; + right: auto; +} + .fixedDataTableRowLayout_rowWrapper { position: absolute; top: 0; @@ -325,6 +361,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 100%; } +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal, +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal:after { + right: 0; + left: auto; +} + .ScrollbarLayout_faceHorizontal.public_Scrollbar_faceActive:after, .ScrollbarLayout_main:hover .ScrollbarLayout_faceHorizontal:after { bottom: calc(4px/2); @@ -436,7 +478,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { background-color: #0284ff; } .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { - margin-left: 12px; + margin-left: 12px; +} + +.fixedDataTable_isRTL .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { + margin-left: auto; + margin-right: 12px; } /** * Column reorder goodies. @@ -449,6 +496,13 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { float: left; cursor: move; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer { + margin-right: auto; + margin-left: -12px; + float: right; +} + .fixedDataTableCellLayout_columnReorderContainer:after { content: '::'; position: absolute; @@ -456,6 +510,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { left: 1px; transform: translateY(-50%); } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer:after { + left: auto; + right: 1px; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -505,6 +564,10 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { background-image: linear-gradient(90deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); } +.fixedDataTable_isRTL .public_fixedDataTableRow_columnsShadow { + background-image: linear-gradient(270deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); +} + .public_fixedDataTableRow_columnsRightShadow { transform: rotate(180deg); } @@ -531,6 +594,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { border-left: 1px solid #d3d3d3; } +.fixedDataTable_isRTL .public_Scrollbar_main.public_Scrollbar_mainActive, +.fixedDataTable_isRTL .public_Scrollbar_main { + border-right: 1px solid #d3d3d3; + border-left-width: 0; +} + .public_Scrollbar_mainOpaque, .public_Scrollbar_mainOpaque.public_Scrollbar_mainActive, .public_Scrollbar_mainOpaque:hover { diff --git a/dist/fixed-data-table.js b/dist/fixed-data-table.js index 55fa814e..8d044774 100644 --- a/dist/fixed-data-table.js +++ b/dist/fixed-data-table.js @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -1973,7 +1973,7 @@ eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Locale */ \"./src/stubs/Locale.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clamp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clamp */ \"./src/vendor_upstream/core/clamp.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. 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 *\n * @providesModule ColumnResizerLine\n * @typechecks\n */\n\n\n\n\n\n\n\nvar ColumnResizerLine =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ColumnResizerLine, _React$PureComponent);\n\n function ColumnResizerLine() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ColumnResizerLine);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ColumnResizerLine)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n width: 0,\n cursorDelta: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n if (Locale__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isRTL()) {\n deltaX = -deltaX;\n }\n\n var newWidth = _this.state.cursorDelta + deltaX;\n var newColumnWidth = Object(clamp__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(newWidth, _this.props.minWidth, _this.props.maxWidth); // Please note cursor delta is the different between the currently width\n // and the new width.\n\n _this.setState({\n width: newColumnWidth,\n cursorDelta: newWidth\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizeEnd\", function () {\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.onColumnResizeEnd(_this.state.width, _this.props.columnKey);\n });\n\n return _this;\n }\n\n _createClass(ColumnResizerLine, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {\n if (newProps.initialEvent && !this._mouseMoveTracker.isDragging()) {\n this._mouseMoveTracker.captureMouseMoves(newProps.initialEvent);\n\n this.setState({\n width: newProps.initialWidth,\n cursorDelta: newProps.initialWidth\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](this._onMove, this._onColumnResizeEnd, document.body, this.props.touchEnabled);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n width: this.state.width,\n height: this.props.height\n };\n\n if (Locale__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isRTL()) {\n style.right = this.props.leftOffset;\n } else {\n style.left = this.props.leftOffset;\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n 'fixedDataTableColumnResizerLineLayout/main': true,\n 'fixedDataTableColumnResizerLineLayout/hiddenElem': !this.props.visible,\n 'public/fixedDataTableColumnResizerLine/main': true\n }),\n style: style\n }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableColumnResizerLineLayout/mouseArea'),\n style: {\n height: this.props.height\n }\n }));\n }\n }]);\n\n return ColumnResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(ColumnResizerLine, \"propTypes\", {\n visible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * Offset from left border of the table, please note\n * that the line is a border on diff. So this is really the\n * offset of the column itself.\n */\n leftOffset: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * Height of the clickable region of the line.\n * This is assumed to be at the top of the line.\n */\n knobHeight: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * The line is a border on a diff, so this is essentially\n * the width of column.\n */\n initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * The minimum width this dragger will collapse to\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * The maximum width this dragger will collapse to\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * Initial click event on the header cell.\n */\n initialEvent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n /**\n * When resizing is complete this is called.\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n /**\n * Column key for the column being resized.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]),\n\n /**\n * Whether the resize handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ColumnResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/ColumnResizerLine.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\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 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 clamp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clamp */ \"./src/vendor_upstream/core/clamp.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. 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 *\n * @providesModule ColumnResizerLine\n * @typechecks\n */\n\n\n\n\n\n\nvar ColumnResizerLine =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ColumnResizerLine, _React$PureComponent);\n\n function ColumnResizerLine() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ColumnResizerLine);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ColumnResizerLine)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n width: 0,\n cursorDelta: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n if (_this.props.isRTL) {\n deltaX = -deltaX;\n }\n\n var newWidth = _this.state.cursorDelta + deltaX;\n var newColumnWidth = Object(clamp__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(newWidth, _this.props.minWidth, _this.props.maxWidth); // Please note cursor delta is the different between the currently width\n // and the new width.\n\n _this.setState({\n width: newColumnWidth,\n cursorDelta: newWidth\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizeEnd\", function () {\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.onColumnResizeEnd(_this.state.width, _this.props.columnKey);\n });\n\n return _this;\n }\n\n _createClass(ColumnResizerLine, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {\n if (newProps.initialEvent && !this._mouseMoveTracker.isDragging()) {\n this._mouseMoveTracker.captureMouseMoves(newProps.initialEvent);\n\n this.setState({\n width: newProps.initialWidth,\n cursorDelta: newProps.initialWidth\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](this._onMove, this._onColumnResizeEnd, document.body, this.props.touchEnabled);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n width: this.state.width,\n height: this.props.height\n };\n\n if (this.props.isRTL) {\n style.right = this.props.leftOffset;\n } else {\n style.left = this.props.leftOffset;\n }\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n 'fixedDataTableColumnResizerLineLayout/main': true,\n 'fixedDataTableColumnResizerLineLayout/hiddenElem': !this.props.visible,\n 'public/fixedDataTableColumnResizerLine/main': true\n }),\n style: style\n }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableColumnResizerLineLayout/mouseArea'),\n style: {\n height: this.props.height\n }\n }));\n }\n }]);\n\n return ColumnResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent);\n\n_defineProperty(ColumnResizerLine, \"propTypes\", {\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 * Offset from left border of the table, please note\n * that the line is a border on diff. So this is really the\n * offset of the column itself.\n */\n leftOffset: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of the clickable region of the line.\n * This is assumed to be at the top of the line.\n */\n knobHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * The line is a border on a diff, so this is essentially\n * the width of column.\n */\n initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * The minimum width this dragger will collapse to\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * The maximum width this dragger will collapse to\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Initial click event on the header cell.\n */\n initialEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,\n\n /**\n * When resizing is complete this is called.\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Column key for the column being resized.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number]),\n\n /**\n * Whether the resize handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Whether the line should render in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ColumnResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/ColumnResizerLine.js?"); /***/ }), @@ -1985,7 +1985,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMM /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableBufferedRows */ \"./src/FixedDataTableBufferedRows.js\");\n/* harmony import */ var ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ColumnResizerLine */ \"./src/ColumnResizerLine.js\");\n/* harmony import */ var FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ReactTouchHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ReactTouchHandler */ \"./src/ReactTouchHandler.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var ariaAttributes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ariaAttributes */ \"./src/selectors/ariaAttributes.js\");\n/* harmony import */ var columnTemplates__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! columnTemplates */ \"./src/selectors/columnTemplates.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var debounceCore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! debounceCore */ \"./src/vendor_upstream/core/debounceCore.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! lodash/isNaN */ \"./node_modules/lodash/isNaN.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! scrollbarsVisible */ \"./src/selectors/scrollbarsVisible.js\");\n/* harmony import */ var tableHeights__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! tableHeights */ \"./src/selectors/tableHeights.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n function FixedDataTable() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTable);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTable)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchX\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleWheelX\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n delta)\n /*boolean*/\n {\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), \"_reportContentHeight\", function () {\n var _tableHeightsSelector = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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 /*number*/\n offsetTop, fixedCellTemplates, fixedRightCellTemplates, scrollableCellTemplates, bodyHeight,\n /*number*/\n ariaRowIndexOffset)\n /*object*/\n {\n var _scrollbarsVisible = Object(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedCellTemplates,\n fixedRightColumns: fixedRightCellTemplates,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\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: scrollableCellTemplates,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY\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), \"_onColumnResize\", function (\n /*number*/\n combinedWidth,\n /*number*/\n leftOffset,\n /*number*/\n cellWidth,\n /*?number*/\n cellMinWidth,\n /*?number*/\n cellMaxWidth,\n /*number|string*/\n columnKey,\n /*object*/\n event) {\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCoordinatesFromEvent(event);\n var clientX = coordinates.x;\n var clientY = coordinates.y;\n\n _this.props.columnActions.resizeColumn({\n cellMinWidth: cellMinWidth,\n cellMaxWidth: cellMaxWidth,\n cellWidth: cellWidth,\n columnKey: columnKey,\n combinedWidth: combinedWidth,\n clientX: clientX,\n clientY: clientY,\n leftOffset: leftOffset\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorder\", function (\n /*string*/\n columnKey,\n /*number*/\n width,\n /*number*/\n left,\n /*object*/\n event) {\n _this.props.columnActions.startColumnReorder({\n scrollStart: _this.props.scrollX,\n columnKey: columnKey,\n width: width,\n left: left\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMove\", function (\n /*number*/\n deltaX) {\n _this.props.columnActions.moveColumnReorder(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*object*/\n props,\n /*object*/\n event) {\n var _this$props3 = _this.props,\n columnActions = _this$props3.columnActions,\n _this$props3$columnRe = _this$props3.columnReorderingData,\n cancelReorder = _this$props3$columnRe.cancelReorder,\n columnAfter = _this$props3$columnRe.columnAfter,\n columnBefore = _this$props3$columnRe.columnBefore,\n columnKey = _this$props3$columnRe.columnKey,\n scrollStart = _this$props3$columnRe.scrollStart,\n onColumnReorderEndCallback = _this$props3.onColumnReorderEndCallback,\n onHorizontalScroll = _this$props3.onHorizontalScroll,\n scrollX = _this$props3.scrollX;\n columnActions.stopColumnReorder();\n\n if (cancelReorder) {\n return;\n }\n\n onColumnReorderEndCallback({\n columnAfter: columnAfter,\n columnBefore: columnBefore,\n reorderColumn: columnKey\n });\n\n if (scrollStart !== scrollX && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\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), \"_onHorizontalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props5 = _this.props,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n scrollActions = _this$props5.scrollActions,\n scrollX = _this$props5.scrollX,\n scrolling = _this$props5.scrolling;\n\n if (scrollPos === scrollX) {\n return;\n } // 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\n var roundedScrollPos = Math.round(scrollPos);\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedScrollPos) : true) {\n scrollActions.scrollToX(roundedScrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onVerticalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props6 = _this.props,\n onVerticalScroll = _this$props6.onVerticalScroll,\n scrollActions = _this$props6.scrollActions,\n scrollY = _this$props6.scrollY;\n\n if (scrollPos === scrollY) {\n return;\n }\n\n if (onVerticalScroll ? onVerticalScroll(scrollPos) : true) {\n scrollActions.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScroll\", function (\n /* !object */\n nextProps) {\n var onScrollStart = nextProps.onScrollStart,\n scrollX = nextProps.scrollX,\n scrollY = nextProps.scrollY,\n onHorizontalScroll = nextProps.onHorizontalScroll,\n onVerticalScroll = nextProps.onVerticalScroll,\n ownerHeight = nextProps.tableSize.ownerHeight;\n var _this$props7 = _this.props,\n oldEndRowIndex = _this$props7.endRowIndex,\n oldFirstRowIndex = _this$props7.firstRowIndex,\n oldScrollX = _this$props7.scrollX,\n oldScrollY = _this$props7.scrollY,\n oldOwnerHeight = _this$props7.tableSize.ownerHeight; // 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_13___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___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 (!_this.props.scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldEndRowIndex);\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$props8 = _this.props,\n endRowIndex = _this$props8.endRowIndex,\n firstRowIndex = _this$props8.firstRowIndex,\n onScrollEnd = _this$props8.onScrollEnd,\n scrollActions = _this$props8.scrollActions,\n scrollX = _this$props8.scrollX,\n scrollY = _this$props8.scrollY,\n scrolling = _this$props8.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex);\n }\n });\n\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._didScrollStop = Object(debounceCore__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this._didScrollStopSync, 200, this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._wheelHandler = new ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this._onScroll, this._shouldHandleWheelX, this._shouldHandleWheelY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n this._touchHandler = new ReactTouchHandler__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this._onScroll, this._shouldHandleTouchX, this._shouldHandleTouchY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n }\n }, {\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(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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: \"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._reportContentHeight();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n this._didScroll(nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._reportContentHeight();\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(ariaAttributes__WEBPACK_IMPORTED_MODULE_9__[\"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 _columnTemplatesSelec = Object(columnTemplates__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(this.props),\n fixedColumnGroups = _columnTemplatesSelec.fixedColumnGroups,\n fixedColumns = _columnTemplatesSelec.fixedColumns,\n fixedRightColumnGroups = _columnTemplatesSelec.fixedRightColumnGroups,\n fixedRightColumns = _columnTemplatesSelec.fixedRightColumns,\n scrollableColumnGroups = _columnTemplatesSelec.scrollableColumnGroups,\n scrollableColumns = _columnTemplatesSelec.scrollableColumns;\n\n var _tableHeightsSelector3 = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props),\n bodyHeight = _tableHeightsSelector3.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n componentHeight = _tableHeightsSelector3.componentHeight,\n footOffsetTop = _tableHeightsSelector3.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n columnReorderingData = _this$props9.columnReorderingData,\n columnResizingData = _this$props9.columnResizingData,\n elementHeights = _this$props9.elementHeights,\n isColumnReordering = _this$props9.isColumnReordering,\n isColumnResizing = _this$props9.isColumnResizing,\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 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(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var onColumnReorder = onColumnReorderEndCallback ? this._onColumnReorder : null;\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"group_header\",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 visible: true,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n showScrollbarY: scrollEnabledY\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: visibleRowsHeight,\n contentSize: scrollContentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: bodyOffsetTop,\n position: scrollY,\n touchEnabled: touchScrollEnabled\n });\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(HorizontalScrollbar, {\n contentSize: width + maxScrollX,\n offset: scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: scrollX,\n size: width,\n touchEnabled: touchScrollEnabled\n });\n }\n\n var dragKnob = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n height: componentHeight,\n initialWidth: columnResizingData.width || 0,\n minWidth: columnResizingData.minWidth || 0,\n maxWidth: columnResizingData.maxWidth || Number.MAX_VALUE,\n visible: !!isColumnResizing,\n leftOffset: columnResizingData.left || 0,\n knobHeight: headerHeight,\n initialEvent: columnResizingData.initialEvent,\n onColumnResizeEnd: onColumnResizeEndCallback,\n columnKey: columnResizingData.key,\n touchEnabled: touchScrollEnabled\n });\n var footer = null;\n\n if (footerHeight) {\n footer = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"footer\",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/footer'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.footer,\n fixedRightColumns: fixedRightColumns.footer,\n scrollableColumns: scrollableColumns.footer,\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns.cell, fixedRightColumns.cell, scrollableColumns.cell, bodyHeight, ariaRowIndexOffset);\n\n var header = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"header\",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.header,\n fixedRightColumns: fixedRightColumns.header,\n scrollableColumns: scrollableColumns.header,\n touchEnabled: touchScrollEnabled,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n onColumnReorderEnd: this._onColumnReorderEnd,\n isColumnReordering: !!isColumnReordering,\n columnReorderingData: columnReorderingData,\n showScrollbarY: scrollEnabledY\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/topShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/bottomShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(className, Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/main'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 }), react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/rowsContainer'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, dragKnob, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_4___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_5___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_5___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['hidden', 'auto']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * and the current first and last row indexes will be provided to the callback.\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * and the new first and last row indexes will be provided to the callback.\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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\nvar HorizontalScrollbar =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalScrollbar).apply(this, arguments));\n }\n\n _createClass(HorizontalScrollbar, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 _this$props10 = this.props,\n offset = _this$props10.offset,\n size = _this$props10.size;\n var outerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n overflow: 'hidden',\n width: size,\n top: offset\n };\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('public/fixedDataTable/horizontalScrollbar')),\n style: outerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n style: innerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"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_4___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableBufferedRows */ \"./src/FixedDataTableBufferedRows.js\");\n/* harmony import */ var ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ColumnResizerLine */ \"./src/ColumnResizerLine.js\");\n/* harmony import */ var FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ReactTouchHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ReactTouchHandler */ \"./src/ReactTouchHandler.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var ariaAttributes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ariaAttributes */ \"./src/selectors/ariaAttributes.js\");\n/* harmony import */ var columnTemplates__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! columnTemplates */ \"./src/selectors/columnTemplates.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var debounceCore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! debounceCore */ \"./src/vendor_upstream/core/debounceCore.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! lodash/isNaN */ \"./node_modules/lodash/isNaN.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! scrollbarsVisible */ \"./src/selectors/scrollbarsVisible.js\");\n/* harmony import */ var tableHeights__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! tableHeights */ \"./src/selectors/tableHeights.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n function FixedDataTable() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTable);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTable)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchX\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleWheelX\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n delta)\n /*boolean*/\n {\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), \"_reportContentHeight\", function () {\n var _tableHeightsSelector = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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 /*number*/\n offsetTop, fixedCellTemplates, fixedRightCellTemplates, scrollableCellTemplates, bodyHeight,\n /*number*/\n ariaRowIndexOffset)\n /*object*/\n {\n var _scrollbarsVisible = Object(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedCellTemplates,\n fixedRightColumns: fixedRightCellTemplates,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\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: scrollableCellTemplates,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\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), \"_onColumnResize\", function (\n /*number*/\n combinedWidth,\n /*number*/\n leftOffset,\n /*number*/\n cellWidth,\n /*?number*/\n cellMinWidth,\n /*?number*/\n cellMaxWidth,\n /*number|string*/\n columnKey,\n /*object*/\n event) {\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCoordinatesFromEvent(event);\n var clientX = coordinates.x;\n var clientY = coordinates.y;\n\n _this.props.columnActions.resizeColumn({\n cellMinWidth: cellMinWidth,\n cellMaxWidth: cellMaxWidth,\n cellWidth: cellWidth,\n columnKey: columnKey,\n combinedWidth: combinedWidth,\n clientX: clientX,\n clientY: clientY,\n leftOffset: leftOffset\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorder\", function (\n /*string*/\n columnKey,\n /*number*/\n width,\n /*number*/\n left,\n /*object*/\n event) {\n _this.props.columnActions.startColumnReorder({\n scrollStart: _this.props.scrollX,\n columnKey: columnKey,\n width: width,\n left: left\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMove\", function (\n /*number*/\n deltaX) {\n _this.props.columnActions.moveColumnReorder(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*object*/\n props,\n /*object*/\n event) {\n var _this$props3 = _this.props,\n columnActions = _this$props3.columnActions,\n _this$props3$columnRe = _this$props3.columnReorderingData,\n cancelReorder = _this$props3$columnRe.cancelReorder,\n columnAfter = _this$props3$columnRe.columnAfter,\n columnBefore = _this$props3$columnRe.columnBefore,\n columnKey = _this$props3$columnRe.columnKey,\n scrollStart = _this$props3$columnRe.scrollStart,\n onColumnReorderEndCallback = _this$props3.onColumnReorderEndCallback,\n onHorizontalScroll = _this$props3.onHorizontalScroll,\n scrollX = _this$props3.scrollX;\n columnActions.stopColumnReorder();\n\n if (cancelReorder) {\n return;\n }\n\n onColumnReorderEndCallback({\n columnAfter: columnAfter,\n columnBefore: columnBefore,\n reorderColumn: columnKey\n });\n\n if (scrollStart !== scrollX && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\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), \"_onHorizontalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props5 = _this.props,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n scrollActions = _this$props5.scrollActions,\n scrollX = _this$props5.scrollX,\n scrolling = _this$props5.scrolling;\n\n if (scrollPos === scrollX) {\n return;\n } // 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\n var roundedScrollPos = Math.round(scrollPos);\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedScrollPos) : true) {\n scrollActions.scrollToX(roundedScrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onVerticalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props6 = _this.props,\n onVerticalScroll = _this$props6.onVerticalScroll,\n scrollActions = _this$props6.scrollActions,\n scrollY = _this$props6.scrollY;\n\n if (scrollPos === scrollY) {\n return;\n }\n\n if (onVerticalScroll ? onVerticalScroll(scrollPos) : true) {\n scrollActions.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScroll\", function (\n /* !object */\n nextProps) {\n var onScrollStart = nextProps.onScrollStart,\n scrollX = nextProps.scrollX,\n scrollY = nextProps.scrollY,\n onHorizontalScroll = nextProps.onHorizontalScroll,\n onVerticalScroll = nextProps.onVerticalScroll,\n ownerHeight = nextProps.tableSize.ownerHeight;\n var _this$props7 = _this.props,\n oldEndRowIndex = _this$props7.endRowIndex,\n oldFirstRowIndex = _this$props7.firstRowIndex,\n oldScrollX = _this$props7.scrollX,\n oldScrollY = _this$props7.scrollY,\n oldOwnerHeight = _this$props7.tableSize.ownerHeight; // 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_13___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___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 (!_this.props.scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldEndRowIndex);\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$props8 = _this.props,\n endRowIndex = _this$props8.endRowIndex,\n firstRowIndex = _this$props8.firstRowIndex,\n onScrollEnd = _this$props8.onScrollEnd,\n scrollActions = _this$props8.scrollActions,\n scrollX = _this$props8.scrollX,\n scrollY = _this$props8.scrollY,\n scrolling = _this$props8.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex);\n }\n });\n\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._didScrollStop = Object(debounceCore__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this._didScrollStopSync, 200, this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._wheelHandler = new 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_6__[\"default\"](this._onScroll, this._shouldHandleTouchX, this._shouldHandleTouchY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n }\n }, {\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(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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: \"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._reportContentHeight();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n this._didScroll(nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._reportContentHeight();\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(ariaAttributes__WEBPACK_IMPORTED_MODULE_9__[\"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 _columnTemplatesSelec = Object(columnTemplates__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(this.props),\n fixedColumnGroups = _columnTemplatesSelec.fixedColumnGroups,\n fixedColumns = _columnTemplatesSelec.fixedColumns,\n fixedRightColumnGroups = _columnTemplatesSelec.fixedRightColumnGroups,\n fixedRightColumns = _columnTemplatesSelec.fixedRightColumns,\n scrollableColumnGroups = _columnTemplatesSelec.scrollableColumnGroups,\n scrollableColumns = _columnTemplatesSelec.scrollableColumns;\n\n var _tableHeightsSelector3 = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props),\n bodyHeight = _tableHeightsSelector3.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n componentHeight = _tableHeightsSelector3.componentHeight,\n footOffsetTop = _tableHeightsSelector3.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n columnReorderingData = _this$props9.columnReorderingData,\n columnResizingData = _this$props9.columnResizingData,\n elementHeights = _this$props9.elementHeights,\n isColumnReordering = _this$props9.isColumnReordering,\n isColumnResizing = _this$props9.isColumnResizing,\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 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(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var onColumnReorder = onColumnReorderEndCallback ? this._onColumnReorder : null;\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"group_header\",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 visible: true,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n showScrollbarY: scrollEnabledY,\n isRTL: this.props.isRTL\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: visibleRowsHeight,\n contentSize: scrollContentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: bodyOffsetTop,\n position: scrollY,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(HorizontalScrollbar, {\n contentSize: width + maxScrollX,\n offset: scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: scrollX,\n size: width,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n }\n\n var dragKnob = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n height: componentHeight,\n initialWidth: columnResizingData.width || 0,\n minWidth: columnResizingData.minWidth || 0,\n maxWidth: columnResizingData.maxWidth || Number.MAX_VALUE,\n visible: !!isColumnResizing,\n leftOffset: columnResizingData.left || 0,\n knobHeight: headerHeight,\n initialEvent: columnResizingData.initialEvent,\n onColumnResizeEnd: onColumnResizeEndCallback,\n columnKey: columnResizingData.key,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n var footer = null;\n\n if (footerHeight) {\n footer = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"footer\",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/footer'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.footer,\n fixedRightColumns: fixedRightColumns.footer,\n scrollableColumns: scrollableColumns.footer,\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n isRTL: this.props.isRTL\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns.cell, fixedRightColumns.cell, scrollableColumns.cell, bodyHeight, ariaRowIndexOffset);\n\n var header = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"header\",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.header,\n fixedRightColumns: fixedRightColumns.header,\n scrollableColumns: scrollableColumns.header,\n touchEnabled: touchScrollEnabled,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n onColumnReorderEnd: this._onColumnReorderEnd,\n isColumnReordering: !!isColumnReordering,\n columnReorderingData: columnReorderingData,\n showScrollbarY: scrollEnabledY,\n isRTL: this.props.isRTL\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/topShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/bottomShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(tableClassName, 'fixedDataTable_isRTL');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(tableClassName, Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/main'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 }), react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/rowsContainer'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, dragKnob, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_4___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_5___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_5___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['hidden', 'auto']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * and the current first and last row indexes will be provided to the callback.\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * and the new first and last row indexes will be provided to the callback.\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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\nvar HorizontalScrollbar =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalScrollbar).apply(this, arguments));\n }\n\n _createClass(HorizontalScrollbar, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 _this$props10 = this.props,\n offset = _this$props10.offset,\n size = _this$props10.size;\n var outerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n overflow: 'hidden',\n width: size,\n top: offset\n };\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('public/fixedDataTable/horizontalScrollbar')),\n style: outerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n style: innerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"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_4___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?"); /***/ }), @@ -1997,7 +1997,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Fixe /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\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 react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\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__);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } 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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 } }); 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 _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\nvar FixedDataTableBufferedRows =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n function FixedDataTableBufferedRows() {\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableBufferedRows).apply(this, arguments));\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._staticRowArray = [];\n this._initialRender = true;\n }\n }, {\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 scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n var baseOffsetTop = offsetTop - scrollTop;\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 } // render each row from the buffer into the static row array\n\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\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n baseOffsetTop: baseOffsetTop\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", null, this._staticRowArray);\n }\n /**\n * @param {number} rowIndex\n * @param {number} key\n * @param {number} baseOffsetTop\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 baseOffsetTop = _ref.baseOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || emptyFunction__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n var fake = rowIndex === undefined;\n var rowProps = {}; // if row exists, then calculate row specific props\n\n if (!fake) {\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = Math.round(baseOffsetTop + props.rowOffsets[rowIndex]);\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(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(rowClassNameGetter(rowIndex), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('public/fixedDataTable/bodyRow'), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n 'fixedDataTableLayout/hasBottomBorder': hasBottomBorder,\n 'public/fixedDataTable/hasBottomBorder': hasBottomBorder\n }));\n }\n\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__[\"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 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 visible: visible,\n fake: fake\n }, rowProps));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);\n\n_defineProperty(FixedDataTableBufferedRows, \"propTypes\", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\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 rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\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 react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\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__);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } 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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 } }); 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 _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\nvar FixedDataTableBufferedRows =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n function FixedDataTableBufferedRows() {\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableBufferedRows).apply(this, arguments));\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._staticRowArray = [];\n this._initialRender = true;\n }\n }, {\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 scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n var baseOffsetTop = offsetTop - scrollTop;\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 } // render each row from the buffer into the static row array\n\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\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n baseOffsetTop: baseOffsetTop\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", null, this._staticRowArray);\n }\n /**\n * @param {number} rowIndex\n * @param {number} key\n * @param {number} baseOffsetTop\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 baseOffsetTop = _ref.baseOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || emptyFunction__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n var fake = rowIndex === undefined;\n var rowProps = {}; // if row exists, then calculate row specific props\n\n if (!fake) {\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = Math.round(baseOffsetTop + props.rowOffsets[rowIndex]);\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(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(rowClassNameGetter(rowIndex), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('public/fixedDataTable/bodyRow'), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n 'fixedDataTableLayout/hasBottomBorder': hasBottomBorder,\n 'public/fixedDataTable/hasBottomBorder': hasBottomBorder\n }));\n }\n\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__[\"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 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 isRTL: props.isRTL,\n visible: visible,\n fake: fake\n }, rowProps));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);\n\n_defineProperty(FixedDataTableBufferedRows, \"propTypes\", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\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 rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: 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\"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?"); /***/ }), @@ -2009,7 +2009,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Fixe /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony import */ var _FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableColumnReorderHandle */ \"./src/FixedDataTableColumnReorderHandle.js\");\n/* harmony import */ var FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableHelper */ \"./src/FixedDataTableHelper.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\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__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var shallowEqual__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! shallowEqual */ \"./src/vendor_upstream/core/shallowEqual.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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 _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar DIR_SIGN = FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DIR_SIGN;\n\nvar FixedDataTableCell =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n function FixedDataTableCell() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCell);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCell)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isReorderingThisColumn: false,\n displacement: 0,\n reorderingDisplacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizerMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnResize(_this.props.left, _this.props.width, _this.props.minWidth, _this.props.maxWidth, _this.props.columnKey, event);\n /**\n * This prevents the rows from moving around when we resize the\n * headers on touch devices.\n */\n\n\n if (_this.props.touchEnabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnReorder(_this.props.columnKey, _this.props.width, _this.props.left, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_suppressEvent\", function (\n /*object*/\n event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCell, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex) {\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 oldIsScrolling = _this$props.isScrolling,\n oldProps = _objectWithoutProperties(_this$props, [\"cell\", \"isScrolling\"]);\n\n var newCell = nextProps.cell,\n newIsScrolling = nextProps.isScrolling,\n newProps = _objectWithoutProperties(nextProps, [\"cell\", \"isScrolling\"]);\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(props) {\n var left = props.left + this.state.displacement;\n var newState = {\n isReorderingThisColumn: false\n };\n\n if (props.isColumnReordering) {\n var originalLeft = props.columnReorderingData.originalLeft;\n var reorderCellLeft = originalLeft + props.columnReorderingData.dragDistance;\n var farthestPossiblePoint = props.columnGroupWidth - props.columnReorderingData.columnWidth; // ensure the cell isn't being dragged out of the column group\n\n reorderCellLeft = Math.max(reorderCellLeft, 0);\n reorderCellLeft = Math.min(reorderCellLeft, farthestPossiblePoint);\n\n if (props.columnKey === props.columnReorderingData.columnKey) {\n newState.displacement = reorderCellLeft - props.left;\n newState.isReorderingThisColumn = true;\n } else {\n var reorderCellRight = reorderCellLeft + props.columnReorderingData.columnWidth;\n var reorderCellCenter = reorderCellLeft + props.columnReorderingData.columnWidth / 2;\n var centerOfThisColumn = left + props.width / 2;\n var cellIsBeforeOneBeingDragged = reorderCellCenter > centerOfThisColumn;\n var cellWasOriginallyBeforeOneBeingDragged = originalLeft > props.left;\n var changedPosition = false;\n var dragPoint, thisCellPoint;\n\n if (cellIsBeforeOneBeingDragged) {\n if (reorderCellLeft < centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = props.columnReorderingData.columnWidth;\n } else {\n newState.displacement = 0;\n }\n }\n } else {\n if (reorderCellRight > centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = 0;\n } else {\n newState.displacement = props.columnReorderingData.columnWidth * -1;\n }\n }\n }\n\n if (changedPosition) {\n if (cellIsBeforeOneBeingDragged) {\n if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n } else {\n props.columnReorderingData.columnBefore = props.columnKey;\n }\n } else if (cellIsBeforeOneBeingDragged) {\n props.columnReorderingData.columnBefore = props.columnKey;\n } else if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n }\n } else {\n newState.displacement = 0;\n }\n\n this.setState(newState);\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 columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n props = _objectWithoutProperties(_this$props2, [\"height\", \"width\", \"columnKey\", \"isHeaderOrFooter\"]);\n\n var style = {\n height: height,\n width: width\n };\n\n if (DIR_SIGN === 1) {\n style.left = props.left;\n } else {\n style.right = props.left;\n }\n\n if (this.state.isReorderingThisColumn) {\n style.transform = \"translateX(\".concat(this.state.displacement, \"px) translateZ(0)\");\n style.zIndex = 1;\n }\n\n var className = Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 'public/fixedDataTableCell/hasReorderHandle': !!props.onColumnReorder,\n 'public/fixedDataTableCell/reordering': this.state.isReorderingThisColumn\n }), props.className);\n var columnResizerComponent;\n\n if (props.onColumnResize) {\n var columnResizerStyle = {\n height: height\n };\n columnResizerComponent = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellLayout/columnResizerContainer'),\n style: columnResizerStyle,\n onMouseDown: this._onColumnResizerMouseDown,\n onTouchStart: this.props.touchEnabled ? this._onColumnResizerMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this._suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this._suppressEvent : null\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellLayout/columnResizerKnob'), Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('public/fixedDataTableCell/columnResizerKnob')),\n style: columnResizerStyle\n }));\n }\n\n var columnReorderComponent;\n\n if (props.onColumnReorder) {\n //header row\n columnReorderComponent = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({\n columnKey: this.columnKey,\n touchEnabled: this.props.touchEnabled,\n onMouseDown: this._onColumnReorderMouseDown,\n onTouchStart: this._onColumnReorderMouseDown,\n height: height\n }, this.props));\n }\n\n var cellProps = {\n columnKey: columnKey,\n height: height,\n width: width\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(props.cell)) {\n content = react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === 'function') {\n content = props.cell(cellProps);\n } else {\n content = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__[\"default\"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? 'columnheader' : 'gridcell';\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: className,\n style: style,\n role: role\n }, columnResizerComponent, columnReorderComponent, content);\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableCell, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['left', 'center', 'right']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n cell: 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.element, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func]),\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 row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number left\n * @param number width\n * @param number minWidth\n * @param number maxWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_4___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_4___default.a.bool\n});\n\n_defineProperty(FixedDataTableCell, \"defaultProps\",\n/*object*/\n{\n align: 'left',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony import */ var _FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableColumnReorderHandle */ \"./src/FixedDataTableColumnReorderHandle.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var shallowEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! shallowEqual */ \"./src/vendor_upstream/core/shallowEqual.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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 _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar FixedDataTableCell =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n function FixedDataTableCell() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCell);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCell)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isReorderingThisColumn: false,\n displacement: 0,\n reorderingDisplacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizerMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnResize(_this.props.left, _this.props.width, _this.props.minWidth, _this.props.maxWidth, _this.props.columnKey, event);\n /**\n * This prevents the rows from moving around when we resize the\n * headers on touch devices.\n */\n\n\n if (_this.props.touchEnabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnReorder(_this.props.columnKey, _this.props.width, _this.props.left, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_suppressEvent\", function (\n /*object*/\n event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCell, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex) {\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 oldIsScrolling = _this$props.isScrolling,\n oldProps = _objectWithoutProperties(_this$props, [\"cell\", \"isScrolling\"]);\n\n var newCell = nextProps.cell,\n newIsScrolling = nextProps.isScrolling,\n newProps = _objectWithoutProperties(nextProps, [\"cell\", \"isScrolling\"]);\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(props) {\n var left = props.left + this.state.displacement;\n var newState = {\n isReorderingThisColumn: false\n };\n\n if (props.isColumnReordering) {\n var originalLeft = props.columnReorderingData.originalLeft;\n var reorderCellLeft = originalLeft + props.columnReorderingData.dragDistance;\n var farthestPossiblePoint = props.columnGroupWidth - props.columnReorderingData.columnWidth; // ensure the cell isn't being dragged out of the column group\n\n reorderCellLeft = Math.max(reorderCellLeft, 0);\n reorderCellLeft = Math.min(reorderCellLeft, farthestPossiblePoint);\n\n if (props.columnKey === props.columnReorderingData.columnKey) {\n newState.displacement = reorderCellLeft - props.left;\n newState.isReorderingThisColumn = true;\n } else {\n var reorderCellRight = reorderCellLeft + props.columnReorderingData.columnWidth;\n var reorderCellCenter = reorderCellLeft + props.columnReorderingData.columnWidth / 2;\n var centerOfThisColumn = left + props.width / 2;\n var cellIsBeforeOneBeingDragged = reorderCellCenter > centerOfThisColumn;\n var cellWasOriginallyBeforeOneBeingDragged = originalLeft > props.left;\n var changedPosition = false;\n\n if (cellIsBeforeOneBeingDragged) {\n if (reorderCellLeft < centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = props.columnReorderingData.columnWidth;\n } else {\n newState.displacement = 0;\n }\n }\n } else {\n if (reorderCellRight > centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = 0;\n } else {\n newState.displacement = props.columnReorderingData.columnWidth * -1;\n }\n }\n }\n\n if (changedPosition) {\n if (cellIsBeforeOneBeingDragged) {\n if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n } else {\n props.columnReorderingData.columnBefore = props.columnKey;\n }\n } else if (cellIsBeforeOneBeingDragged) {\n props.columnReorderingData.columnBefore = props.columnKey;\n } else if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n }\n } else {\n newState.displacement = 0;\n }\n\n this.setState(newState);\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 columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n props = _objectWithoutProperties(_this$props2, [\"height\", \"width\", \"columnKey\", \"isHeaderOrFooter\"]);\n\n var style = {\n height: height,\n width: width\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n if (this.state.isReorderingThisColumn) {\n var DIR_SIGN = this.props.isRTL ? -1 : 1;\n style.transform = \"translateX(\".concat(this.state.displacement * DIR_SIGN, \"px) translateZ(0)\");\n style.zIndex = 1;\n }\n\n var className = Object(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"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 'public/fixedDataTableCell/hasReorderHandle': !!props.onColumnReorder,\n 'public/fixedDataTableCell/reordering': this.state.isReorderingThisColumn\n }), props.className);\n var columnResizerComponent;\n\n if (props.onColumnResize) {\n var columnResizerStyle = {\n height: height\n };\n columnResizerComponent = react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellLayout/columnResizerContainer'),\n style: columnResizerStyle,\n onMouseDown: this._onColumnResizerMouseDown,\n onTouchStart: this.props.touchEnabled ? this._onColumnResizerMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this._suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this._suppressEvent : null\n }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellLayout/columnResizerKnob'), Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('public/fixedDataTableCell/columnResizerKnob')),\n style: columnResizerStyle\n }));\n }\n\n var columnReorderComponent;\n\n if (props.onColumnReorder) {\n //header row\n columnReorderComponent = react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({\n columnKey: this.columnKey,\n touchEnabled: this.props.touchEnabled,\n onMouseDown: this._onColumnReorderMouseDown,\n onTouchStart: this._onColumnReorderMouseDown,\n height: height\n }, this.props));\n }\n\n var cellProps = {\n columnKey: columnKey,\n height: height,\n width: width\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (react__WEBPACK_IMPORTED_MODULE_2___default.a.isValidElement(props.cell)) {\n content = react__WEBPACK_IMPORTED_MODULE_2___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === 'function') {\n content = props.cell(cellProps);\n } else {\n content = react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__[\"default\"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? 'columnheader' : 'gridcell';\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: className,\n style: style,\n role: role\n }, columnResizerComponent, columnReorderComponent, content);\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);\n\n_defineProperty(FixedDataTableCell, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['left', 'center', 'right']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n cell: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]),\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___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_3___default.a.number.isRequired,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number left\n * @param number width\n * @param number minWidth\n * @param number maxWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___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_3___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n_defineProperty(FixedDataTableCell, \"defaultProps\",\n/*object*/\n{\n align: 'left',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?"); /***/ }), @@ -2033,7 +2033,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCell */ \"./src/FixedDataTableCell.js\");\n/* harmony import */ var FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableHelper */ \"./src/FixedDataTableHelper.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar DIR_SIGN = FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DIR_SIGN;\n\nvar FixedDataTableCellGroupImpl =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n function FixedDataTableCellGroupImpl() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCellGroupImpl)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_renderCell\", function (\n /*number*/\n rowIndex,\n /*number*/\n height,\n /*object*/\n columnProps,\n /*object*/\n cellTemplate,\n /*number*/\n left,\n /*string*/\n key,\n /*number*/\n columnGroupWidth,\n /*boolean*/\n isColumnReordering)\n /*object*/\n {\n var cellIsResizable = columnProps.isResizable && _this.props.onColumnResize;\n var onColumnResize = cellIsResizable ? _this.props.onColumnResize : null;\n var cellIsReorderable = columnProps.isReorderable && _this.props.onColumnReorder && rowIndex === -1 && columnGroupWidth !== columnProps.width;\n var onColumnReorder = cellIsReorderable ? _this.props.onColumnReorder : null;\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n align: columnProps.align,\n className: className,\n height: height,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResize: onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: _this.props.onColumnReorderMove,\n onColumnReorderEnd: _this.props.onColumnReorderEnd,\n isColumnReordering: isColumnReordering,\n columnReorderingData: _this.props.columnReorderingData,\n rowIndex: rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: left,\n cell: cellTemplate,\n columnGroupWidth: columnGroupWidth,\n pureRendering: pureRendering\n });\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 cells = new Array(columns.length);\n var contentWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_6__[\"sumPropWidths\"])(columns);\n var isColumnReordering = props.isColumnReordering && columns.reduce(function (acc, column) {\n return acc || props.columnReorderingData.columnKey === column.props.columnKey;\n }, false);\n var currentPosition = 0;\n\n for (var i = 0, j = columns.length; i < j; i++) {\n var columnProps = columns[i].props;\n var cellTemplate = columns[i].template;\n var recyclable = columnProps.allowCellsRecycling && !isColumnReordering;\n\n if (!recyclable || currentPosition - props.left <= props.width && currentPosition - props.left + columnProps.width >= 0) {\n var key = columnProps.columnKey || 'cell_' + i;\n cells[i] = this._renderCell(props.rowIndex, props.rowHeight, columnProps, cellTemplate, currentPosition, key, contentWidth, isColumnReordering);\n }\n\n currentPosition += columnProps.width;\n }\n\n var style = {\n height: props.height,\n position: 'absolute',\n width: contentWidth,\n zIndex: props.zIndex\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(style, -1 * DIR_SIGN * props.left, 0, this._initialRender);\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellGroupLayout/cellGroup'),\n style: style\n }, cells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(react__WEBPACK_IMPORTED_MODULE_4___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n /**\n * Array of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.array.isRequired,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\nvar FixedDataTableCellGroup =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n function FixedDataTableCellGroup() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(FixedDataTableCellGroup)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this2), \"_onColumnResize\", function (\n /*number*/\n left,\n /*number*/\n width,\n /*?number*/\n minWidth,\n /*?number*/\n maxWidth,\n /*string|number*/\n columnKey,\n /*object*/\n event) {\n _this2.props.onColumnResize && _this2.props.onColumnResize(_this2.props.offsetLeft, left - _this2.props.left + width, width, minWidth, maxWidth, columnKey, event);\n });\n\n return _this2;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n return !nextProps.isScrolling || this.props.rowIndex !== nextProps.rowIndex || this.props.left !== nextProps.left;\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, [\"offsetLeft\"]);\n\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (DIR_SIGN === 1) {\n style.left = offsetLeft;\n } else {\n style.right = offsetLeft;\n }\n\n var onColumnResize = props.onColumnResize ? this._onColumnResize : null;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellGroupLayout/cellGroupWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableCellGroupImpl, _extends({}, props, {\n onColumnResize: onColumnResize\n })));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_4___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n left: prop_types__WEBPACK_IMPORTED_MODULE_3___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_3___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?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCell */ \"./src/FixedDataTableCell.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.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 react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar FixedDataTableCellGroupImpl =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n function FixedDataTableCellGroupImpl() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCellGroupImpl)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_renderCell\", function (\n /*number*/\n rowIndex,\n /*number*/\n height,\n /*object*/\n columnProps,\n /*object*/\n cellTemplate,\n /*number*/\n left,\n /*string*/\n key,\n /*number*/\n columnGroupWidth,\n /*boolean*/\n isColumnReordering)\n /*object*/\n {\n var cellIsResizable = columnProps.isResizable && _this.props.onColumnResize;\n var onColumnResize = cellIsResizable ? _this.props.onColumnResize : null;\n var cellIsReorderable = columnProps.isReorderable && _this.props.onColumnReorder && rowIndex === -1 && columnGroupWidth !== columnProps.width;\n var onColumnReorder = cellIsReorderable ? _this.props.onColumnReorder : null;\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n align: columnProps.align,\n className: className,\n height: height,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResize: onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: _this.props.onColumnReorderMove,\n onColumnReorderEnd: _this.props.onColumnReorderEnd,\n isColumnReordering: isColumnReordering,\n columnReorderingData: _this.props.columnReorderingData,\n rowIndex: rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: left,\n cell: cellTemplate,\n columnGroupWidth: columnGroupWidth,\n pureRendering: pureRendering,\n isRTL: _this.props.isRTL\n });\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 cells = new Array(columns.length);\n var contentWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_5__[\"sumPropWidths\"])(columns);\n var isColumnReordering = props.isColumnReordering && columns.reduce(function (acc, column) {\n return acc || props.columnReorderingData.columnKey === column.props.columnKey;\n }, false);\n var currentPosition = 0;\n\n for (var i = 0, j = columns.length; i < j; i++) {\n var columnProps = columns[i].props;\n var cellTemplate = columns[i].template;\n var recyclable = columnProps.allowCellsRecycling && !isColumnReordering;\n\n if (!recyclable || currentPosition - props.left <= props.width && currentPosition - props.left + columnProps.width >= 0) {\n var key = columnProps.columnKey || 'cell_' + i;\n cells[i] = this._renderCell(props.rowIndex, props.rowHeight, columnProps, cellTemplate, currentPosition, key, contentWidth, isColumnReordering);\n }\n\n currentPosition += columnProps.width;\n }\n\n var style = {\n height: props.height,\n position: 'absolute',\n width: contentWidth,\n zIndex: props.zIndex\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, -1 * props.left, 0, this._initialRender, this.props.isRTL);\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellGroupLayout/cellGroup'),\n style: style\n }, cells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n /**\n * Array of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array.isRequired,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\nvar FixedDataTableCellGroup =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n function FixedDataTableCellGroup() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(FixedDataTableCellGroup)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this2), \"_onColumnResize\", function (\n /*number*/\n left,\n /*number*/\n width,\n /*?number*/\n minWidth,\n /*?number*/\n maxWidth,\n /*string|number*/\n columnKey,\n /*object*/\n event) {\n _this2.props.onColumnResize && _this2.props.onColumnResize(_this2.props.offsetLeft, left - _this2.props.left + width, width, minWidth, maxWidth, columnKey, event);\n });\n\n return _this2;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n return !nextProps.isScrolling || this.props.rowIndex !== nextProps.rowIndex || this.props.left !== nextProps.left;\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, [\"offsetLeft\"]);\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 var onColumnResize = props.onColumnResize ? this._onColumnResize : null;\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellGroupLayout/cellGroupWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroupImpl, _extends({}, props, {\n onColumnResize: onColumnResize\n })));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___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?"); /***/ }), @@ -2069,7 +2069,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Locale */ \"./src/stubs/Locale.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var clamp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clamp */ \"./src/vendor_upstream/core/clamp.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. It is a header icon\n * that allows you to reorder the corresponding column.\n *\n * @providesModule FixedDataTableColumnReorderHandle\n * @typechecks\n */\n\n\n\n\n\n\n\n\nvar FixedDataTableColumnReorderHandle =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(FixedDataTableColumnReorderHandle, _React$PureComponent);\n\n function FixedDataTableColumnReorderHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableColumnReorderHandle);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableColumnReorderHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n dragDistance: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var targetRect = event.target.getBoundingClientRect();\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getCoordinatesFromEvent(event);\n var mouseLocationInElement = coordinates.x - targetRect.left;\n var mouseLocationInRelationToColumnGroup = mouseLocationInElement + event.target.parentElement.offsetLeft;\n _this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](_this._onMove, _this._onColumnReorderEnd, document.body, _this.props.touchEnabled);\n\n _this._mouseMoveTracker.captureMouseMoves(event);\n\n _this.setState({\n dragDistance: 0\n });\n\n _this.props.onMouseDown({\n columnKey: _this.props.columnKey,\n mouseLocation: {\n dragDistance: 0,\n inElement: mouseLocationInElement,\n inColumnGroup: mouseLocationInRelationToColumnGroup\n }\n });\n\n _this._distance = 0;\n _this._animating = true;\n _this.frameId = requestAnimationFrame(_this._updateState);\n /**\n * This prevents the rows from moving around when we drag the\n * headers on touch devices.\n */\n\n if (_this.props.touchEnabled) {\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n _this._distance = _this.state.dragDistance + deltaX;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*boolean*/\n cancelReorder) {\n _this._animating = false;\n cancelAnimationFrame(_this.frameId);\n _this.frameId = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.columnReorderingData.cancelReorder = cancelReorder;\n\n _this.props.onColumnReorderEnd();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_updateState\", function () {\n if (_this._animating) {\n _this.frameId = requestAnimationFrame(_this._updateState);\n }\n\n _this.setState({\n dragDistance: _this._distance\n });\n\n _this.props.onColumnReorderMove(_this._distance);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableColumnReorderHandle, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {}\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._mouseMoveTracker) {\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n height: this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])({\n 'fixedDataTableCellLayout/columnReorderContainer': true,\n 'fixedDataTableCellLayout/columnReorderContainer/active': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n onTouchMove: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n style: style\n });\n }\n }]);\n\n return FixedDataTableColumnReorderHandle;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(FixedDataTableColumnReorderHandle, \"propTypes\", {\n /**\n * When resizing is complete this is called.\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n /**\n * Column key for the column being reordered.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]),\n\n /**\n * Whether the reorder handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableColumnReorderHandle);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnReorderHandle.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\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 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 FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. It is a header icon\n * that allows you to reorder the corresponding column.\n *\n * @providesModule FixedDataTableColumnReorderHandle\n * @typechecks\n */\n\n\n\n\n\n\nvar FixedDataTableColumnReorderHandle =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(FixedDataTableColumnReorderHandle, _React$PureComponent);\n\n function FixedDataTableColumnReorderHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableColumnReorderHandle);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableColumnReorderHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n dragDistance: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var targetRect = event.target.getBoundingClientRect();\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getCoordinatesFromEvent(event);\n var mouseLocationInElement = coordinates.x - targetRect.left;\n var mouseLocationInRelationToColumnGroup = mouseLocationInElement + event.target.parentElement.offsetLeft;\n _this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](_this._onMove, _this._onColumnReorderEnd, document.body, _this.props.touchEnabled);\n\n _this._mouseMoveTracker.captureMouseMoves(event);\n\n _this.setState({\n dragDistance: 0\n });\n\n _this.props.onMouseDown({\n columnKey: _this.props.columnKey,\n mouseLocation: {\n dragDistance: 0,\n inElement: mouseLocationInElement,\n inColumnGroup: mouseLocationInRelationToColumnGroup\n }\n });\n\n _this._distance = 0;\n _this._animating = true;\n _this.frameId = requestAnimationFrame(_this._updateState);\n /**\n * This prevents the rows from moving around when we drag the\n * headers on touch devices.\n */\n\n if (_this.props.touchEnabled) {\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n _this._distance = _this.state.dragDistance + deltaX * (_this.props.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*boolean*/\n cancelReorder) {\n _this._animating = false;\n cancelAnimationFrame(_this.frameId);\n _this.frameId = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.columnReorderingData.cancelReorder = cancelReorder;\n\n _this.props.onColumnReorderEnd();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_updateState\", function () {\n if (_this._animating) {\n _this.frameId = requestAnimationFrame(_this._updateState);\n }\n\n _this.setState({\n dragDistance: _this._distance\n });\n\n _this.props.onColumnReorderMove(_this._distance);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableColumnReorderHandle, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {}\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._mouseMoveTracker) {\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n height: this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n 'fixedDataTableCellLayout/columnReorderContainer': true,\n 'fixedDataTableCellLayout/columnReorderContainer/active': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n onTouchMove: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n style: style\n });\n }\n }]);\n\n return FixedDataTableColumnReorderHandle;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent);\n\n_defineProperty(FixedDataTableColumnReorderHandle, \"propTypes\", {\n /**\n * When resizing is complete this is called.\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Column key for the column being reordered.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number]),\n\n /**\n * Whether the reorder handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableColumnReorderHandle);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnReorderHandle.js?"); /***/ }), @@ -2097,18 +2097,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copyright Schrodinger /***/ }), -/***/ "./src/FixedDataTableHelper.js": -/*!*************************************!*\ - !*** ./src/FixedDataTableHelper.js ***! - \*************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! Locale */ \"./src/stubs/Locale.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 FixedDataTableHelper\n * @typechecks\n */\n\n\n\nvar DIR_SIGN = Locale__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRTL() ? -1 : +1;\nvar FixedDataTableHelper = {\n DIR_SIGN: DIR_SIGN\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableHelper);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableHelper.js?"); - -/***/ }), - /***/ "./src/FixedDataTableRoot.js": /*!***********************************!*\ !*** ./src/FixedDataTableRoot.js ***! @@ -2117,7 +2105,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Loca /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/* harmony import */ var FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableContainer */ \"./src/FixedDataTableContainer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableColumn */ \"./src/FixedDataTableColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableColumnGroup */ \"./src/FixedDataTableColumnGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnGroup\", function() { return FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\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 FixedDataTableRoot\n */\n\n\n\n\n\n\nvar version = '1.0.1';\n\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRoot.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/* harmony import */ var FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableContainer */ \"./src/FixedDataTableContainer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableColumn */ \"./src/FixedDataTableColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableColumnGroup */ \"./src/FixedDataTableColumnGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnGroup\", function() { return FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\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 FixedDataTableRoot\n */\n\n\n\n\n\n\nvar version = '1.0.2';\n\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRoot.js?"); /***/ }), @@ -2129,7 +2117,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellGroup */ \"./src/FixedDataTableCellGroup.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.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 react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 // .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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n function FixedDataTableRowImpl() {\n var _getPrototypeOf2;\n\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableRowImpl)).call.apply(_getPrototypeOf2, [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 (react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 return react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 return react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow');\n var style = {\n height: _this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_3___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: \"render\",\n value: function render()\n /*object*/\n {\n if (this.props.fake) {\n return null;\n }\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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedColumns);\n var fixedColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var fixedRightColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedRightColumns);\n var scrollbarOffset = this.props.showScrollbarY ? Scrollbar__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SIZE : 0;\n var fixedRightColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_right_cells\",\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 zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"scrollable_cells\",\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 zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter\n });\n var scrollableColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.scrollableColumns);\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.width - scrollbarOffset - 2\n };\n scrollbarSpacer = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: spacerStyles,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('public/fixedDataTable/scrollbarSpacer')\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"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 }), react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/body')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowExpanded'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRowImpl, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Array of data for the scrollable columns.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array.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_2___default.a.number.isRequired,\n\n /**\n * Pass true to not render the row. This is used internally for buffering rows.\n */\n fake: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number leftOffset\n * @param number cellWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Callback for when reorder handle (in FixedDataTableCell) is clicked\n * to initialize reordering. Please note this is only on the cells\n * in the header.\n * @param number|string columnKey\n * @param number cellWidth\n * @param number leftOffset\n * @param object event\n */\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when a cell is moved while reordering.\n * @param number distance\n */\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when the mouse is released to complete reordering.\n * @param number distance\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n});\n\nvar FixedDataTableRow =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n function FixedDataTableRow() {\n _classCallCheck(this, FixedDataTableRow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableRow).apply(this, arguments));\n }\n\n _createClass(FixedDataTableRow, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: this.props.zIndex ? this.props.zIndex : 0,\n display: this.props.visible ? 'block' : 'none'\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, 0, this.props.offsetTop, this._initialRender);\n\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n visible = _this$props.visible,\n rowProps = _objectWithoutProperties(_this$props, [\"offsetTop\", \"zIndex\", \"visible\"]);\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRow, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellGroup */ \"./src/FixedDataTableCellGroup.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.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 react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 // .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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n function FixedDataTableRowImpl() {\n var _getPrototypeOf2;\n\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableRowImpl)).call.apply(_getPrototypeOf2, [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 (react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow');\n var style = {\n height: _this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_3___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: \"render\",\n value: function render()\n /*object*/\n {\n if (this.props.fake) {\n return null;\n }\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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedColumns);\n var fixedColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var fixedRightColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedRightColumns);\n var scrollbarOffset = this.props.showScrollbarY ? Scrollbar__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SIZE : 0;\n var fixedRightColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_right_cells\",\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 zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"scrollable_cells\",\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 zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL\n });\n var scrollableColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.scrollableColumns);\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 = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: spacerStyles,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('public/fixedDataTable/scrollbarSpacer')\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"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 }), react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/body')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowExpanded'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRowImpl, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Array of data for the scrollable columns.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array.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_2___default.a.number.isRequired,\n\n /**\n * Pass true to not render the row. This is used internally for buffering rows.\n */\n fake: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number leftOffset\n * @param number cellWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Callback for when reorder handle (in FixedDataTableCell) is clicked\n * to initialize reordering. Please note this is only on the cells\n * in the header.\n * @param number|string columnKey\n * @param number cellWidth\n * @param number leftOffset\n * @param object event\n */\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when a cell is moved while reordering.\n * @param number distance\n */\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when the mouse is released to complete reordering.\n * @param number distance\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n});\n\nvar FixedDataTableRow =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n function FixedDataTableRow() {\n _classCallCheck(this, FixedDataTableRow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableRow).apply(this, arguments));\n }\n\n _createClass(FixedDataTableRow, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: this.props.zIndex ? this.props.zIndex : 0,\n display: this.props.visible ? 'block' : 'none'\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, 0, this.props.offsetTop, this._initialRender, this.props.isRTL);\n\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n visible = _this$props.visible,\n rowProps = _objectWithoutProperties(_this$props, [\"offsetTop\", \"zIndex\", \"visible\"]);\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRow, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?"); /***/ }), @@ -2153,7 +2141,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var redu /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! translateDOMPositionXY */ \"./src/vendor_upstream/dom/translateDOMPositionXY.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 FixedDataTableTranslateDOMPosition\n * @typechecks\n */\n\n\nfunction FixedDataTableTranslateDOMPosition(\n/*object*/\nstyle,\n/*number*/\nx,\n/*number*/\ny) {\n var initialRender = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (style.display === 'none') {\n return;\n }\n\n if (initialRender) {\n style.left = x + 'px';\n style.top = y + 'px';\n } else {\n Object(translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(style, x, y);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableTranslateDOMPosition);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableTranslateDOMPosition.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var BrowserSupportCore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! BrowserSupportCore */ \"./src/vendor_upstream/dom/BrowserSupportCore.js\");\n/* harmony import */ var translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! translateDOMPositionXY */ \"./src/vendor_upstream/dom/translateDOMPositionXY.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 FixedDataTableTranslateDOMPosition\n * @typechecks\n */\n\n\n\nfunction FixedDataTableTranslateDOMPosition(\n/*object*/\nstyle,\n/*number*/\nx,\n/*number*/\ny) {\n var initialRender = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var isRTL = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n if (style.display === 'none') {\n return;\n }\n\n if (initialRender) {\n style.left = x + 'px';\n style.top = y + 'px';\n } else {\n if (BrowserSupportCore__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasCSSTransforms()) {\n x *= isRTL ? -1 : 1;\n }\n\n Object(translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, x, y);\n }\n\n if (isRTL) {\n style.right = style.left;\n style.left = 'auto';\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableTranslateDOMPosition);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableTranslateDOMPosition.js?"); /***/ }), @@ -2177,7 +2165,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var empt /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Keys */ \"./src/vendor_upstream/core/Keys.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var ReactDOM__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ReactDOM */ \"./src/stubs/react/ReactDOM.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar cssVar = __webpack_require__(/*! cssVar */ \"./src/stubs/cssVar.js\");\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(cssVar('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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Scrollbar).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 /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation === 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation !== 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleChange\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation)\n /*object*/\n {\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 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 : 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 === Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEFT:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].UP:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DOWN:\n direction = 1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 = ReactDOM__WEBPACK_IMPORTED_MODULE_4__[\"default\"].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 return _this;\n }\n\n _createClass(Scrollbar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n var controlledPosition = nextProps.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, nextProps.size, nextProps.contentSize, nextProps.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, nextProps.size, nextProps.contentSize, nextProps.orientation), nextProps);\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 var mainStyle;\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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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 };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(faceStyle, position, 0, this._initialRender);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(faceStyle, 0, position, this._initialRender);\n }\n\n mainStyle.touchAction = 'none';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === 'gray') {\n mainStyle.backgroundColor = cssVar('fbui-desktop-background-light');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___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 }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: \"componentWillMount\",\n value: function componentWillMount() {\n var isHorizontal = this.props.orientation === 'horizontal';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__[\"default\"](onWheel, this._shouldHandleX, // Should hanlde horizontal scroll\n this._shouldHandleY // Should handle vertical scroll\n );\n this._initialRender = true;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._rootRef && this._rootRef.addEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"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 this._mouseMoveTracker.releaseMouseMoves();\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n\n delete this._mouseMoveTracker;\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(Scrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['vertical', 'horizontal']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['gray']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n});\n\n_defineProperty(Scrollbar, \"defaultProps\",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: emptyFunction__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n orientation: 'vertical',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(cssVar('scrollbar-size'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/Scrollbar.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Keys */ \"./src/vendor_upstream/core/Keys.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var ReactDOM__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ReactDOM */ \"./src/stubs/react/ReactDOM.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar cssVar = __webpack_require__(/*! cssVar */ \"./src/stubs/cssVar.js\");\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(cssVar('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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Scrollbar).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 /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation === 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation !== 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleChange\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation)\n /*object*/\n {\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 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 === Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEFT:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].UP:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DOWN:\n direction = 1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 = ReactDOM__WEBPACK_IMPORTED_MODULE_4__[\"default\"].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 return _this;\n }\n\n _createClass(Scrollbar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n var controlledPosition = nextProps.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, nextProps.size, nextProps.contentSize, nextProps.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, nextProps.size, nextProps.contentSize, nextProps.orientation), nextProps);\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 var mainStyle;\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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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_8__[\"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_8__[\"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 = cssVar('fbui-desktop-background-light');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___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 }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: \"componentWillMount\",\n value: function componentWillMount() {\n var isHorizontal = this.props.orientation === 'horizontal';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__[\"default\"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._initialRender = true;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._rootRef && this._rootRef.addEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"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 this._mouseMoveTracker.releaseMouseMoves();\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n\n delete this._mouseMoveTracker;\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(Scrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['vertical', 'horizontal']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['gray']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n_defineProperty(Scrollbar, \"defaultProps\",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: emptyFunction__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n orientation: 'vertical',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(cssVar('scrollbar-size'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/Scrollbar.js?"); /***/ }), @@ -2517,18 +2505,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Scro /***/ }), -/***/ "./src/stubs/Locale.js": -/*!*****************************!*\ - !*** ./src/stubs/Locale.js ***! - \*****************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\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 Locale\n */\n // Hard code this for now.\n\nvar Locale = {\n isRTL: function isRTL() {\n return false;\n },\n getDirection: function getDirection() {\n return 'LTR';\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Locale);\n\n//# sourceURL=webpack://FixedDataTable/./src/stubs/Locale.js?"); - -/***/ }), - /***/ "./src/stubs/UserAgent_DEPRECATED.js": /*!*******************************************!*\ !*** ./src/stubs/UserAgent_DEPRECATED.js ***! @@ -2753,7 +2729,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Even /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var normalizeWheel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! normalizeWheel */ \"./src/vendor_upstream/dom/normalizeWheel.js\");\n/* harmony import */ var requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! requestAnimationFramePolyfill */ \"./src/vendor_upstream/core/requestAnimationFramePolyfill.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 * This is utility that handles onWheel events and calls provided wheel\n * callback with correct frame rate.\n *\n * @providesModule ReactWheelHandler\n * @typechecks\n */\n\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); return Constructor; }\n\n\n\n\n\nvar ReactWheelHandler =\n/*#__PURE__*/\nfunction () {\n /**\n * onWheel is the callback that will be called with right frame rate if\n * any wheel events happened\n * onWheel should is to be called with two arguments: deltaX and deltaY in\n * this order\n */\n function ReactWheelHandler(\n /*function*/\n onWheel,\n /*boolean|function*/\n handleScrollX,\n /*boolean|function*/\n handleScrollY,\n /*?boolean*/\n preventDefault,\n /*?boolean*/\n stopPropagation) {\n _classCallCheck(this, ReactWheelHandler);\n\n this._animationFrameID = null;\n this._deltaX = 0;\n this._deltaY = 0;\n this._didWheel = this._didWheel.bind(this);\n this._rootRef = null;\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n this._handleScrollX = handleScrollX;\n this._handleScrollY = handleScrollY;\n this._preventDefault = preventDefault;\n this._stopPropagation = stopPropagation;\n this._onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n }\n\n _createClass(ReactWheelHandler, [{\n key: \"onWheel\",\n value: function onWheel(\n /*object*/\n event) {\n if (this._preventDefault) {\n event.preventDefault();\n }\n\n var normalizedEvent = Object(normalizeWheel__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(event); // if shift is held, swap the axis of scrolling.\n\n if (event.shiftKey && ReactWheelHandler._allowInternalAxesSwap()) {\n normalizedEvent = ReactWheelHandler._swapNormalizedWheelAxis(normalizedEvent);\n }\n\n var deltaX = this._deltaX + normalizedEvent.pixelX;\n var deltaY = this._deltaY + normalizedEvent.pixelY;\n\n var handleScrollX = this._handleScrollX(deltaX, deltaY);\n\n var handleScrollY = this._handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n if (this._rootRef && !this._contains(event.target)) {\n return;\n }\n\n this._deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this._deltaY += handleScrollY ? normalizedEvent.pixelY : 0; // This will result in a scroll to the table, so there's no need to let the parent containers scroll\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n }\n\n var changed;\n\n if (this._deltaX !== 0 || this._deltaY !== 0) {\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this._animationFrameID === null) {\n this._animationFrameID = Object(requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this._didWheel);\n }\n }\n }, {\n key: \"setRoot\",\n value: function setRoot(rootRef) {\n this._rootRef = rootRef;\n }\n }, {\n key: \"_didWheel\",\n value: function _didWheel() {\n this._animationFrameID = null;\n\n this._onWheelCallback(this._deltaX, this._deltaY);\n\n this._deltaX = 0;\n this._deltaY = 0;\n }\n }, {\n key: \"_contains\",\n value: function _contains(target) {\n var parent = target;\n\n while (parent != document.body) {\n if (parent === this._rootRef) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n }\n }], [{\n key: \"_swapNormalizedWheelAxis\",\n value: function _swapNormalizedWheelAxis(\n /*object*/\n normalizedEvent)\n /*object*/\n {\n return {\n spinX: normalizedEvent.spinY,\n spinY: normalizedEvent.spinX,\n pixelX: normalizedEvent.pixelY,\n pixelY: normalizedEvent.pixelX\n };\n }\n }, {\n key: \"_allowInternalAxesSwap\",\n value: function _allowInternalAxesSwap()\n /*boolean*/\n {\n return navigator.platform !== \"MacIntel\";\n }\n }]);\n\n return ReactWheelHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ReactWheelHandler);\n\n//# sourceURL=webpack://FixedDataTable/./src/vendor_upstream/dom/ReactWheelHandler.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var normalizeWheel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! normalizeWheel */ \"./src/vendor_upstream/dom/normalizeWheel.js\");\n/* harmony import */ var requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! requestAnimationFramePolyfill */ \"./src/vendor_upstream/core/requestAnimationFramePolyfill.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 * This is utility that handles onWheel events and calls provided wheel\n * callback with correct frame rate.\n *\n * @providesModule ReactWheelHandler\n * @typechecks\n */\n\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); return Constructor; }\n\n\n\n\n\nvar ReactWheelHandler =\n/*#__PURE__*/\nfunction () {\n /**\n * onWheel is the callback that will be called with right frame rate if\n * any wheel events happened\n * onWheel should is to be called with two arguments: deltaX and deltaY in\n * this order\n */\n function ReactWheelHandler(\n /*function*/\n onWheel,\n /*boolean|function*/\n handleScrollX,\n /*boolean|function*/\n handleScrollY,\n /*?boolean*/\n isRTL,\n /*?boolean*/\n preventDefault,\n /*?boolean*/\n stopPropagation) {\n _classCallCheck(this, ReactWheelHandler);\n\n this._animationFrameID = null;\n this._deltaX = 0;\n this._deltaY = 0;\n this._didWheel = this._didWheel.bind(this);\n this._rootRef = null;\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n this._handleScrollX = handleScrollX;\n this._handleScrollY = handleScrollY;\n this._preventDefault = preventDefault;\n this._stopPropagation = stopPropagation;\n this._onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n this._isRTL = isRTL;\n }\n\n _createClass(ReactWheelHandler, [{\n key: \"onWheel\",\n value: function onWheel(\n /*object*/\n event) {\n if (this._preventDefault) {\n event.preventDefault();\n }\n\n var normalizedEvent = Object(normalizeWheel__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(event); // if shift is held, swap the axis of scrolling.\n\n if (event.shiftKey && ReactWheelHandler._allowInternalAxesSwap()) {\n normalizedEvent = ReactWheelHandler._swapNormalizedWheelAxis(normalizedEvent);\n } else if (!event.shiftKey) {\n normalizedEvent.pixelX *= this._isRTL ? -1 : 1;\n }\n\n var deltaX = this._deltaX + normalizedEvent.pixelX;\n var deltaY = this._deltaY + normalizedEvent.pixelY;\n\n var handleScrollX = this._handleScrollX(deltaX, deltaY);\n\n var handleScrollY = this._handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n if (this._rootRef && !this._contains(event.target)) {\n return;\n }\n\n this._deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this._deltaY += handleScrollY ? normalizedEvent.pixelY : 0; // This will result in a scroll to the table, so there's no need to let the parent containers scroll\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n }\n\n var changed;\n\n if (this._deltaX !== 0 || this._deltaY !== 0) {\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this._animationFrameID === null) {\n this._animationFrameID = Object(requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this._didWheel);\n }\n }\n }, {\n key: \"setRoot\",\n value: function setRoot(rootRef) {\n this._rootRef = rootRef;\n }\n }, {\n key: \"_didWheel\",\n value: function _didWheel() {\n this._animationFrameID = null;\n\n this._onWheelCallback(this._deltaX, this._deltaY);\n\n this._deltaX = 0;\n this._deltaY = 0;\n }\n }, {\n key: \"_contains\",\n value: function _contains(target) {\n var parent = target;\n\n while (parent != document.body) {\n if (parent === this._rootRef) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n }\n }], [{\n key: \"_swapNormalizedWheelAxis\",\n value: function _swapNormalizedWheelAxis(\n /*object*/\n normalizedEvent)\n /*object*/\n {\n return {\n spinX: normalizedEvent.spinY,\n spinY: normalizedEvent.spinX,\n pixelX: normalizedEvent.pixelY,\n pixelY: normalizedEvent.pixelX\n };\n }\n }, {\n key: \"_allowInternalAxesSwap\",\n value: function _allowInternalAxesSwap()\n /*boolean*/\n {\n return navigator.platform !== \"MacIntel\";\n }\n }]);\n\n return ReactWheelHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ReactWheelHandler);\n\n//# sourceURL=webpack://FixedDataTable/./src/vendor_upstream/dom/ReactWheelHandler.js?"); /***/ }), diff --git a/dist/fixed-data-table.min.css b/dist/fixed-data-table.min.css index 4e4e47b5..398abaad 100644 --- a/dist/fixed-data-table.min.css +++ b/dist/fixed-data-table.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -30,6 +30,11 @@ white-space: nowrap; } +.fixedDataTable_isRTL .fixedDataTableCellGroupLayout_cellGroup { + right: 0; + left: auto; +} + .fixedDataTableCellGroupLayout_cellGroup > .public_fixedDataTableCell_main { display: inline-block; vertical-align: top; @@ -62,6 +67,12 @@ white-space: normal; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; +} + .fixedDataTableCellLayout_lastChild { border-width: 0 1px 1px 0; } @@ -94,6 +105,11 @@ z-index: 1; } +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerContainer { + left: 0px; + right: auto; +} + .fixedDataTableCellLayout_columnResizerContainer:hover { cursor: ew-resize; } @@ -108,6 +124,11 @@ visibility: hidden; width: 4px; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnResizerKnob { + left: 0px; + right: auto; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -126,6 +147,11 @@ width: 12px; } +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_mouseArea { + right: auto; + left: -5px; +} + .fixedDataTableColumnResizerLineLayout_main { border-right-style: solid; border-right-width: 1px; @@ -135,12 +161,10 @@ pointer-events: none; } -body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { - /* the resizer line is in the wrong position in RTL with no easy fix. - * Disabling is more useful than displaying it. - * #167 (github) should look into this and come up with a permanent fix. - */ - display: none !important; +.fixedDataTable_isRTL .fixedDataTableColumnResizerLineLayout_main { + border-right-width: 0; + border-left-style: solid; + border-left-width: 1px; } .fixedDataTableColumnResizerLineLayout_hiddenElem { @@ -213,6 +237,7 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { .fixedDataTableRowLayout_body { left: 0; + right: 0; position: absolute; top: 0; } @@ -234,6 +259,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 0; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_fixedColumnsDivider { + border-left-width: 0; + border-right-style: solid; + border-right-width: 1px; +} + .fixedDataTableRowLayout_columnsShadow { position: absolute; width: 4px; @@ -243,6 +274,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { right: 1px; } +.fixedDataTable_isRTL .fixedDataTableRowLayout_columnsRightShadow { + left: 1px; + right: auto; +} + .fixedDataTableRowLayout_rowWrapper { position: absolute; top: 0; @@ -325,6 +361,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { width: 100%; } +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal, +.fixedDataTable_isRTL .ScrollbarLayout_faceHorizontal:after { + right: 0; + left: auto; +} + .ScrollbarLayout_faceHorizontal.public_Scrollbar_faceActive:after, .ScrollbarLayout_main:hover .ScrollbarLayout_faceHorizontal:after { bottom: calc(4px/2); @@ -436,7 +478,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { background-color: #0284ff; } .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { - margin-left: 12px; + margin-left: 12px; +} + +.fixedDataTable_isRTL .public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent { + margin-left: auto; + margin-right: 12px; } /** * Column reorder goodies. @@ -449,6 +496,13 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { float: left; cursor: move; } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer { + margin-right: auto; + margin-left: -12px; + float: right; +} + .fixedDataTableCellLayout_columnReorderContainer:after { content: '::'; position: absolute; @@ -456,6 +510,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { left: 1px; transform: translateY(-50%); } + +.fixedDataTable_isRTL .fixedDataTableCellLayout_columnReorderContainer:after { + left: auto; + right: 1px; +} /** * Copyright Schrodinger, LLC * All rights reserved. @@ -505,6 +564,10 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { background-image: linear-gradient(90deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); } +.fixedDataTable_isRTL .public_fixedDataTableRow_columnsShadow { + background-image: linear-gradient(270deg, rgba(0,0,0,0.1), rgba(0,0,0,0)); +} + .public_fixedDataTableRow_columnsRightShadow { transform: rotate(180deg); } @@ -531,6 +594,12 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { border-left: 1px solid #d3d3d3; } +.fixedDataTable_isRTL .public_Scrollbar_main.public_Scrollbar_mainActive, +.fixedDataTable_isRTL .public_Scrollbar_main { + border-right: 1px solid #d3d3d3; + border-left-width: 0; +} + .public_Scrollbar_mainOpaque, .public_Scrollbar_mainOpaque.public_Scrollbar_mainActive, .public_Scrollbar_mainOpaque:hover { diff --git a/dist/fixed-data-table.min.js b/dist/fixed-data-table.min.js index 55fa814e..8d044774 100644 --- a/dist/fixed-data-table.min.js +++ b/dist/fixed-data-table.min.js @@ -1,5 +1,5 @@ /** - * FixedDataTable v1.0.1 + * FixedDataTable v1.0.2 * * Copyright Schrodinger, LLC * All rights reserved. @@ -1973,7 +1973,7 @@ eval("module.exports = function(module) {\n\tif (!module.webpackPolyfill) {\n\t\ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Locale */ \"./src/stubs/Locale.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var clamp__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! clamp */ \"./src/vendor_upstream/core/clamp.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. 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 *\n * @providesModule ColumnResizerLine\n * @typechecks\n */\n\n\n\n\n\n\n\nvar ColumnResizerLine =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ColumnResizerLine, _React$PureComponent);\n\n function ColumnResizerLine() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ColumnResizerLine);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ColumnResizerLine)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n width: 0,\n cursorDelta: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n if (Locale__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isRTL()) {\n deltaX = -deltaX;\n }\n\n var newWidth = _this.state.cursorDelta + deltaX;\n var newColumnWidth = Object(clamp__WEBPACK_IMPORTED_MODULE_4__[\"default\"])(newWidth, _this.props.minWidth, _this.props.maxWidth); // Please note cursor delta is the different between the currently width\n // and the new width.\n\n _this.setState({\n width: newColumnWidth,\n cursorDelta: newWidth\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizeEnd\", function () {\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.onColumnResizeEnd(_this.state.width, _this.props.columnKey);\n });\n\n return _this;\n }\n\n _createClass(ColumnResizerLine, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {\n if (newProps.initialEvent && !this._mouseMoveTracker.isDragging()) {\n this._mouseMoveTracker.captureMouseMoves(newProps.initialEvent);\n\n this.setState({\n width: newProps.initialWidth,\n cursorDelta: newProps.initialWidth\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](this._onMove, this._onColumnResizeEnd, document.body, this.props.touchEnabled);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n width: this.state.width,\n height: this.props.height\n };\n\n if (Locale__WEBPACK_IMPORTED_MODULE_1__[\"default\"].isRTL()) {\n style.right = this.props.leftOffset;\n } else {\n style.left = this.props.leftOffset;\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])({\n 'fixedDataTableColumnResizerLineLayout/main': true,\n 'fixedDataTableColumnResizerLineLayout/hiddenElem': !this.props.visible,\n 'public/fixedDataTableColumnResizerLine/main': true\n }),\n style: style\n }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableColumnResizerLineLayout/mouseArea'),\n style: {\n height: this.props.height\n }\n }));\n }\n }]);\n\n return ColumnResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(ColumnResizerLine, \"propTypes\", {\n visible: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool.isRequired,\n\n /**\n * This is the height of the line\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * Offset from left border of the table, please note\n * that the line is a border on diff. So this is really the\n * offset of the column itself.\n */\n leftOffset: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * Height of the clickable region of the line.\n * This is assumed to be at the top of the line.\n */\n knobHeight: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * The line is a border on a diff, so this is essentially\n * the width of column.\n */\n initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * The minimum width this dragger will collapse to\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * The maximum width this dragger will collapse to\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * Initial click event on the header cell.\n */\n initialEvent: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.object,\n\n /**\n * When resizing is complete this is called.\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n /**\n * Column key for the column being resized.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]),\n\n /**\n * Whether the resize handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ColumnResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/ColumnResizerLine.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\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 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 clamp__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! clamp */ \"./src/vendor_upstream/core/clamp.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. 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 *\n * @providesModule ColumnResizerLine\n * @typechecks\n */\n\n\n\n\n\n\nvar ColumnResizerLine =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(ColumnResizerLine, _React$PureComponent);\n\n function ColumnResizerLine() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, ColumnResizerLine);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(ColumnResizerLine)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n width: 0,\n cursorDelta: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n if (_this.props.isRTL) {\n deltaX = -deltaX;\n }\n\n var newWidth = _this.state.cursorDelta + deltaX;\n var newColumnWidth = Object(clamp__WEBPACK_IMPORTED_MODULE_3__[\"default\"])(newWidth, _this.props.minWidth, _this.props.maxWidth); // Please note cursor delta is the different between the currently width\n // and the new width.\n\n _this.setState({\n width: newColumnWidth,\n cursorDelta: newWidth\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizeEnd\", function () {\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.onColumnResizeEnd(_this.state.width, _this.props.columnKey);\n });\n\n return _this;\n }\n\n _createClass(ColumnResizerLine, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {\n if (newProps.initialEvent && !this._mouseMoveTracker.isDragging()) {\n this._mouseMoveTracker.captureMouseMoves(newProps.initialEvent);\n\n this.setState({\n width: newProps.initialWidth,\n cursorDelta: newProps.initialWidth\n });\n }\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](this._onMove, this._onColumnResizeEnd, document.body, this.props.touchEnabled);\n }\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n width: this.state.width,\n height: this.props.height\n };\n\n if (this.props.isRTL) {\n style.right = this.props.leftOffset;\n } else {\n style.left = this.props.leftOffset;\n }\n\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n 'fixedDataTableColumnResizerLineLayout/main': true,\n 'fixedDataTableColumnResizerLineLayout/hiddenElem': !this.props.visible,\n 'public/fixedDataTableColumnResizerLine/main': true\n }),\n style: style\n }, react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableColumnResizerLineLayout/mouseArea'),\n style: {\n height: this.props.height\n }\n }));\n }\n }]);\n\n return ColumnResizerLine;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent);\n\n_defineProperty(ColumnResizerLine, \"propTypes\", {\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 * Offset from left border of the table, please note\n * that the line is a border on diff. So this is really the\n * offset of the column itself.\n */\n leftOffset: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of the clickable region of the line.\n * This is assumed to be at the top of the line.\n */\n knobHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * The line is a border on a diff, so this is essentially\n * the width of column.\n */\n initialWidth: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * The minimum width this dragger will collapse to\n */\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * The maximum width this dragger will collapse to\n */\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Initial click event on the header cell.\n */\n initialEvent: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object,\n\n /**\n * When resizing is complete this is called.\n */\n onColumnResizeEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Column key for the column being resized.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number]),\n\n /**\n * Whether the resize handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Whether the line should render in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ColumnResizerLine);\n\n//# sourceURL=webpack://FixedDataTable/./src/ColumnResizerLine.js?"); /***/ }), @@ -1985,7 +1985,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMM /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableBufferedRows */ \"./src/FixedDataTableBufferedRows.js\");\n/* harmony import */ var ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ColumnResizerLine */ \"./src/ColumnResizerLine.js\");\n/* harmony import */ var FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ReactTouchHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ReactTouchHandler */ \"./src/ReactTouchHandler.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var ariaAttributes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ariaAttributes */ \"./src/selectors/ariaAttributes.js\");\n/* harmony import */ var columnTemplates__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! columnTemplates */ \"./src/selectors/columnTemplates.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var debounceCore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! debounceCore */ \"./src/vendor_upstream/core/debounceCore.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! lodash/isNaN */ \"./node_modules/lodash/isNaN.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! scrollbarsVisible */ \"./src/selectors/scrollbarsVisible.js\");\n/* harmony import */ var tableHeights__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! tableHeights */ \"./src/selectors/tableHeights.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n function FixedDataTable() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTable);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTable)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchX\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleWheelX\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n delta)\n /*boolean*/\n {\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), \"_reportContentHeight\", function () {\n var _tableHeightsSelector = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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 /*number*/\n offsetTop, fixedCellTemplates, fixedRightCellTemplates, scrollableCellTemplates, bodyHeight,\n /*number*/\n ariaRowIndexOffset)\n /*object*/\n {\n var _scrollbarsVisible = Object(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedCellTemplates,\n fixedRightColumns: fixedRightCellTemplates,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\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: scrollableCellTemplates,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY\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), \"_onColumnResize\", function (\n /*number*/\n combinedWidth,\n /*number*/\n leftOffset,\n /*number*/\n cellWidth,\n /*?number*/\n cellMinWidth,\n /*?number*/\n cellMaxWidth,\n /*number|string*/\n columnKey,\n /*object*/\n event) {\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCoordinatesFromEvent(event);\n var clientX = coordinates.x;\n var clientY = coordinates.y;\n\n _this.props.columnActions.resizeColumn({\n cellMinWidth: cellMinWidth,\n cellMaxWidth: cellMaxWidth,\n cellWidth: cellWidth,\n columnKey: columnKey,\n combinedWidth: combinedWidth,\n clientX: clientX,\n clientY: clientY,\n leftOffset: leftOffset\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorder\", function (\n /*string*/\n columnKey,\n /*number*/\n width,\n /*number*/\n left,\n /*object*/\n event) {\n _this.props.columnActions.startColumnReorder({\n scrollStart: _this.props.scrollX,\n columnKey: columnKey,\n width: width,\n left: left\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMove\", function (\n /*number*/\n deltaX) {\n _this.props.columnActions.moveColumnReorder(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*object*/\n props,\n /*object*/\n event) {\n var _this$props3 = _this.props,\n columnActions = _this$props3.columnActions,\n _this$props3$columnRe = _this$props3.columnReorderingData,\n cancelReorder = _this$props3$columnRe.cancelReorder,\n columnAfter = _this$props3$columnRe.columnAfter,\n columnBefore = _this$props3$columnRe.columnBefore,\n columnKey = _this$props3$columnRe.columnKey,\n scrollStart = _this$props3$columnRe.scrollStart,\n onColumnReorderEndCallback = _this$props3.onColumnReorderEndCallback,\n onHorizontalScroll = _this$props3.onHorizontalScroll,\n scrollX = _this$props3.scrollX;\n columnActions.stopColumnReorder();\n\n if (cancelReorder) {\n return;\n }\n\n onColumnReorderEndCallback({\n columnAfter: columnAfter,\n columnBefore: columnBefore,\n reorderColumn: columnKey\n });\n\n if (scrollStart !== scrollX && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\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), \"_onHorizontalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props5 = _this.props,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n scrollActions = _this$props5.scrollActions,\n scrollX = _this$props5.scrollX,\n scrolling = _this$props5.scrolling;\n\n if (scrollPos === scrollX) {\n return;\n } // 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\n var roundedScrollPos = Math.round(scrollPos);\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedScrollPos) : true) {\n scrollActions.scrollToX(roundedScrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onVerticalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props6 = _this.props,\n onVerticalScroll = _this$props6.onVerticalScroll,\n scrollActions = _this$props6.scrollActions,\n scrollY = _this$props6.scrollY;\n\n if (scrollPos === scrollY) {\n return;\n }\n\n if (onVerticalScroll ? onVerticalScroll(scrollPos) : true) {\n scrollActions.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScroll\", function (\n /* !object */\n nextProps) {\n var onScrollStart = nextProps.onScrollStart,\n scrollX = nextProps.scrollX,\n scrollY = nextProps.scrollY,\n onHorizontalScroll = nextProps.onHorizontalScroll,\n onVerticalScroll = nextProps.onVerticalScroll,\n ownerHeight = nextProps.tableSize.ownerHeight;\n var _this$props7 = _this.props,\n oldEndRowIndex = _this$props7.endRowIndex,\n oldFirstRowIndex = _this$props7.firstRowIndex,\n oldScrollX = _this$props7.scrollX,\n oldScrollY = _this$props7.scrollY,\n oldOwnerHeight = _this$props7.tableSize.ownerHeight; // 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_13___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___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 (!_this.props.scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldEndRowIndex);\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$props8 = _this.props,\n endRowIndex = _this$props8.endRowIndex,\n firstRowIndex = _this$props8.firstRowIndex,\n onScrollEnd = _this$props8.onScrollEnd,\n scrollActions = _this$props8.scrollActions,\n scrollX = _this$props8.scrollX,\n scrollY = _this$props8.scrollY,\n scrolling = _this$props8.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex);\n }\n });\n\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._didScrollStop = Object(debounceCore__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this._didScrollStopSync, 200, this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._wheelHandler = new ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__[\"default\"](this._onScroll, this._shouldHandleWheelX, this._shouldHandleWheelY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n this._touchHandler = new ReactTouchHandler__WEBPACK_IMPORTED_MODULE_6__[\"default\"](this._onScroll, this._shouldHandleTouchX, this._shouldHandleTouchY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n }\n }, {\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(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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: \"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._reportContentHeight();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n this._didScroll(nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._reportContentHeight();\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(ariaAttributes__WEBPACK_IMPORTED_MODULE_9__[\"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 _columnTemplatesSelec = Object(columnTemplates__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(this.props),\n fixedColumnGroups = _columnTemplatesSelec.fixedColumnGroups,\n fixedColumns = _columnTemplatesSelec.fixedColumns,\n fixedRightColumnGroups = _columnTemplatesSelec.fixedRightColumnGroups,\n fixedRightColumns = _columnTemplatesSelec.fixedRightColumns,\n scrollableColumnGroups = _columnTemplatesSelec.scrollableColumnGroups,\n scrollableColumns = _columnTemplatesSelec.scrollableColumns;\n\n var _tableHeightsSelector3 = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props),\n bodyHeight = _tableHeightsSelector3.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n componentHeight = _tableHeightsSelector3.componentHeight,\n footOffsetTop = _tableHeightsSelector3.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n columnReorderingData = _this$props9.columnReorderingData,\n columnResizingData = _this$props9.columnResizingData,\n elementHeights = _this$props9.elementHeights,\n isColumnReordering = _this$props9.isColumnReordering,\n isColumnResizing = _this$props9.isColumnResizing,\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 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(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var onColumnReorder = onColumnReorderEndCallback ? this._onColumnReorder : null;\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"group_header\",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 visible: true,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n showScrollbarY: scrollEnabledY\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: visibleRowsHeight,\n contentSize: scrollContentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: bodyOffsetTop,\n position: scrollY,\n touchEnabled: touchScrollEnabled\n });\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(HorizontalScrollbar, {\n contentSize: width + maxScrollX,\n offset: scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: scrollX,\n size: width,\n touchEnabled: touchScrollEnabled\n });\n }\n\n var dragKnob = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n height: componentHeight,\n initialWidth: columnResizingData.width || 0,\n minWidth: columnResizingData.minWidth || 0,\n maxWidth: columnResizingData.maxWidth || Number.MAX_VALUE,\n visible: !!isColumnResizing,\n leftOffset: columnResizingData.left || 0,\n knobHeight: headerHeight,\n initialEvent: columnResizingData.initialEvent,\n onColumnResizeEnd: onColumnResizeEndCallback,\n columnKey: columnResizingData.key,\n touchEnabled: touchScrollEnabled\n });\n var footer = null;\n\n if (footerHeight) {\n footer = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"footer\",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/footer'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.footer,\n fixedRightColumns: fixedRightColumns.footer,\n scrollableColumns: scrollableColumns.footer,\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns.cell, fixedRightColumns.cell, scrollableColumns.cell, bodyHeight, ariaRowIndexOffset);\n\n var header = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"header\",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.header,\n fixedRightColumns: fixedRightColumns.header,\n scrollableColumns: scrollableColumns.header,\n touchEnabled: touchScrollEnabled,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n onColumnReorderEnd: this._onColumnReorderEnd,\n isColumnReordering: !!isColumnReordering,\n columnReorderingData: columnReorderingData,\n showScrollbarY: scrollEnabledY\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/topShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/bottomShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(className, Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/main'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 }), react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/rowsContainer'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, dragKnob, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_4___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_5___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_5___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['hidden', 'auto']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * and the current first and last row indexes will be provided to the callback.\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * and the new first and last row indexes will be provided to the callback.\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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\nvar HorizontalScrollbar =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalScrollbar).apply(this, arguments));\n }\n\n _createClass(HorizontalScrollbar, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 _this$props10 = this.props,\n offset = _this$props10.offset,\n size = _this$props10.size;\n var outerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n overflow: 'hidden',\n width: size,\n top: offset\n };\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('public/fixedDataTable/horizontalScrollbar')),\n style: outerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n style: innerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"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_4___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableBufferedRows */ \"./src/FixedDataTableBufferedRows.js\");\n/* harmony import */ var ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ColumnResizerLine */ \"./src/ColumnResizerLine.js\");\n/* harmony import */ var FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_5___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_5__);\n/* harmony import */ var ReactTouchHandler__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! ReactTouchHandler */ \"./src/ReactTouchHandler.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var ariaAttributes__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(/*! ariaAttributes */ \"./src/selectors/ariaAttributes.js\");\n/* harmony import */ var columnTemplates__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(/*! columnTemplates */ \"./src/selectors/columnTemplates.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var debounceCore__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(/*! debounceCore */ \"./src/vendor_upstream/core/debounceCore.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(/*! lodash/isNaN */ \"./node_modules/lodash/isNaN.js\");\n/* harmony import */ var lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___default = /*#__PURE__*/__webpack_require__.n(lodash_isNaN__WEBPACK_IMPORTED_MODULE_13__);\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(/*! scrollbarsVisible */ \"./src/selectors/scrollbarsVisible.js\");\n/* harmony import */ var tableHeights__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(/*! tableHeights */ \"./src/selectors/tableHeights.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTable, _React$Component);\n\n function FixedDataTable() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTable);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTable)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchX\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelX(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleTouchY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.touchScrollEnabled && _this._shouldHandleWheelY(delta)\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleWheelX\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n delta)\n /*boolean*/\n {\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), \"_reportContentHeight\", function () {\n var _tableHeightsSelector = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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 /*number*/\n offsetTop, fixedCellTemplates, fixedRightCellTemplates, scrollableCellTemplates, bodyHeight,\n /*number*/\n ariaRowIndexOffset)\n /*object*/\n {\n var _scrollbarsVisible = Object(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(_this.props),\n scrollEnabledY = _scrollbarsVisible.scrollEnabledY;\n\n var props = _this.props;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableBufferedRows__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n ariaRowIndexOffset: ariaRowIndexOffset,\n isScrolling: props.scrolling,\n fixedColumns: fixedCellTemplates,\n fixedRightColumns: fixedRightCellTemplates,\n firstViewportRowIndex: props.firstRowIndex,\n endViewportRowIndex: props.endRowIndex,\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: scrollableCellTemplates,\n showLastRowBorder: true,\n width: props.tableSize.width,\n rowsToRender: props.rows,\n rowOffsets: props.rowOffsets,\n showScrollbarY: scrollEnabledY,\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), \"_onColumnResize\", function (\n /*number*/\n combinedWidth,\n /*number*/\n leftOffset,\n /*number*/\n cellWidth,\n /*?number*/\n cellMinWidth,\n /*?number*/\n cellMaxWidth,\n /*number|string*/\n columnKey,\n /*object*/\n event) {\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_2__[\"default\"].getCoordinatesFromEvent(event);\n var clientX = coordinates.x;\n var clientY = coordinates.y;\n\n _this.props.columnActions.resizeColumn({\n cellMinWidth: cellMinWidth,\n cellMaxWidth: cellMaxWidth,\n cellWidth: cellWidth,\n columnKey: columnKey,\n combinedWidth: combinedWidth,\n clientX: clientX,\n clientY: clientY,\n leftOffset: leftOffset\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorder\", function (\n /*string*/\n columnKey,\n /*number*/\n width,\n /*number*/\n left,\n /*object*/\n event) {\n _this.props.columnActions.startColumnReorder({\n scrollStart: _this.props.scrollX,\n columnKey: columnKey,\n width: width,\n left: left\n });\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMove\", function (\n /*number*/\n deltaX) {\n _this.props.columnActions.moveColumnReorder(deltaX);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*object*/\n props,\n /*object*/\n event) {\n var _this$props3 = _this.props,\n columnActions = _this$props3.columnActions,\n _this$props3$columnRe = _this$props3.columnReorderingData,\n cancelReorder = _this$props3$columnRe.cancelReorder,\n columnAfter = _this$props3$columnRe.columnAfter,\n columnBefore = _this$props3$columnRe.columnBefore,\n columnKey = _this$props3$columnRe.columnKey,\n scrollStart = _this$props3$columnRe.scrollStart,\n onColumnReorderEndCallback = _this$props3.onColumnReorderEndCallback,\n onHorizontalScroll = _this$props3.onHorizontalScroll,\n scrollX = _this$props3.scrollX;\n columnActions.stopColumnReorder();\n\n if (cancelReorder) {\n return;\n }\n\n onColumnReorderEndCallback({\n columnAfter: columnAfter,\n columnBefore: columnBefore,\n reorderColumn: columnKey\n });\n\n if (scrollStart !== scrollX && onHorizontalScroll) {\n onHorizontalScroll(scrollX);\n }\n\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), \"_onHorizontalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props5 = _this.props,\n onHorizontalScroll = _this$props5.onHorizontalScroll,\n scrollActions = _this$props5.scrollActions,\n scrollX = _this$props5.scrollX,\n scrolling = _this$props5.scrolling;\n\n if (scrollPos === scrollX) {\n return;\n } // 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\n var roundedScrollPos = Math.round(scrollPos);\n\n if (onHorizontalScroll ? onHorizontalScroll(roundedScrollPos) : true) {\n scrollActions.scrollToX(roundedScrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onVerticalScroll\", function (\n /*number*/\n scrollPos) {\n var _this$props6 = _this.props,\n onVerticalScroll = _this$props6.onVerticalScroll,\n scrollActions = _this$props6.scrollActions,\n scrollY = _this$props6.scrollY;\n\n if (scrollPos === scrollY) {\n return;\n }\n\n if (onVerticalScroll ? onVerticalScroll(scrollPos) : true) {\n scrollActions.scrollToY(scrollPos);\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_didScroll\", function (\n /* !object */\n nextProps) {\n var onScrollStart = nextProps.onScrollStart,\n scrollX = nextProps.scrollX,\n scrollY = nextProps.scrollY,\n onHorizontalScroll = nextProps.onHorizontalScroll,\n onVerticalScroll = nextProps.onVerticalScroll,\n ownerHeight = nextProps.tableSize.ownerHeight;\n var _this$props7 = _this.props,\n oldEndRowIndex = _this$props7.endRowIndex,\n oldFirstRowIndex = _this$props7.firstRowIndex,\n oldScrollX = _this$props7.scrollX,\n oldScrollY = _this$props7.scrollY,\n oldOwnerHeight = _this$props7.tableSize.ownerHeight; // 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_13___default()(ownerHeight) && lodash_isNaN__WEBPACK_IMPORTED_MODULE_13___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 (!_this.props.scrolling && onScrollStart) {\n onScrollStart(oldScrollX, oldScrollY, oldFirstRowIndex, oldEndRowIndex);\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$props8 = _this.props,\n endRowIndex = _this$props8.endRowIndex,\n firstRowIndex = _this$props8.firstRowIndex,\n onScrollEnd = _this$props8.onScrollEnd,\n scrollActions = _this$props8.scrollActions,\n scrollX = _this$props8.scrollX,\n scrollY = _this$props8.scrollY,\n scrolling = _this$props8.scrolling;\n\n if (!scrolling) {\n return;\n }\n\n scrollActions.stopScroll();\n\n if (onScrollEnd) {\n onScrollEnd(scrollX, scrollY, firstRowIndex, endRowIndex);\n }\n });\n\n return _this;\n }\n\n _createClass(FixedDataTable, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._didScrollStop = Object(debounceCore__WEBPACK_IMPORTED_MODULE_12__[\"default\"])(this._didScrollStopSync, 200, this);\n this._onKeyDown = this._onKeyDown.bind(this);\n this._wheelHandler = new 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_6__[\"default\"](this._onScroll, this._shouldHandleTouchX, this._shouldHandleTouchY, this.props.stopScrollDefaultHandling, this.props.stopScrollPropagation);\n }\n }, {\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(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"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: \"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._reportContentHeight();\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n this._didScroll(nextProps);\n }\n }, {\n key: \"componentDidUpdate\",\n value: function componentDidUpdate() {\n this._reportContentHeight();\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var _ariaAttributesSelect = Object(ariaAttributes__WEBPACK_IMPORTED_MODULE_9__[\"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 _columnTemplatesSelec = Object(columnTemplates__WEBPACK_IMPORTED_MODULE_10__[\"default\"])(this.props),\n fixedColumnGroups = _columnTemplatesSelec.fixedColumnGroups,\n fixedColumns = _columnTemplatesSelec.fixedColumns,\n fixedRightColumnGroups = _columnTemplatesSelec.fixedRightColumnGroups,\n fixedRightColumns = _columnTemplatesSelec.fixedRightColumns,\n scrollableColumnGroups = _columnTemplatesSelec.scrollableColumnGroups,\n scrollableColumns = _columnTemplatesSelec.scrollableColumns;\n\n var _tableHeightsSelector3 = Object(tableHeights__WEBPACK_IMPORTED_MODULE_16__[\"default\"])(this.props),\n bodyHeight = _tableHeightsSelector3.bodyHeight,\n bodyOffsetTop = _tableHeightsSelector3.bodyOffsetTop,\n componentHeight = _tableHeightsSelector3.componentHeight,\n footOffsetTop = _tableHeightsSelector3.footOffsetTop,\n scrollbarXOffsetTop = _tableHeightsSelector3.scrollbarXOffsetTop,\n visibleRowsHeight = _tableHeightsSelector3.visibleRowsHeight;\n\n var _this$props9 = this.props,\n className = _this$props9.className,\n columnReorderingData = _this$props9.columnReorderingData,\n columnResizingData = _this$props9.columnResizingData,\n elementHeights = _this$props9.elementHeights,\n isColumnReordering = _this$props9.isColumnReordering,\n isColumnResizing = _this$props9.isColumnResizing,\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 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(scrollbarsVisible__WEBPACK_IMPORTED_MODULE_15__[\"default\"])(this.props),\n scrollEnabledX = _scrollbarsVisible2.scrollEnabledX,\n scrollEnabledY = _scrollbarsVisible2.scrollEnabledY;\n\n var onColumnReorder = onColumnReorderEndCallback ? this._onColumnReorder : null;\n var attributes = gridAttributesGetter && gridAttributesGetter();\n var groupHeader;\n\n if (groupHeaderHeight > 0) {\n groupHeader = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"group_header\",\n ariaRowIndex: ariaGroupHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 visible: true,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n showScrollbarY: scrollEnabledY,\n isRTL: this.props.isRTL\n });\n }\n\n var scrollbarY;\n\n if (scrollEnabledY) {\n scrollbarY = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"], {\n size: visibleRowsHeight,\n contentSize: scrollContentHeight,\n onScroll: this._onVerticalScroll,\n verticalTop: bodyOffsetTop,\n position: scrollY,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n }\n\n var scrollbarX;\n\n if (scrollEnabledX) {\n scrollbarX = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(HorizontalScrollbar, {\n contentSize: width + maxScrollX,\n offset: scrollbarXOffsetTop,\n onScroll: this._onHorizontalScroll,\n position: scrollX,\n size: width,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n }\n\n var dragKnob = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(ColumnResizerLine__WEBPACK_IMPORTED_MODULE_1__[\"default\"], {\n height: componentHeight,\n initialWidth: columnResizingData.width || 0,\n minWidth: columnResizingData.minWidth || 0,\n maxWidth: columnResizingData.maxWidth || Number.MAX_VALUE,\n visible: !!isColumnResizing,\n leftOffset: columnResizingData.left || 0,\n knobHeight: headerHeight,\n initialEvent: columnResizingData.initialEvent,\n onColumnResizeEnd: onColumnResizeEndCallback,\n columnKey: columnResizingData.key,\n touchEnabled: touchScrollEnabled,\n isRTL: this.props.isRTL\n });\n var footer = null;\n\n if (footerHeight) {\n footer = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"footer\",\n ariaRowIndex: ariaFooterIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/footer'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.footer,\n fixedRightColumns: fixedRightColumns.footer,\n scrollableColumns: scrollableColumns.footer,\n scrollLeft: scrollX,\n showScrollbarY: scrollEnabledY,\n isRTL: this.props.isRTL\n });\n }\n\n var rows = this._renderRows(bodyOffsetTop, fixedColumns.cell, fixedRightColumns.cell, scrollableColumns.cell, bodyHeight, ariaRowIndexOffset);\n\n var header = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_3__[\"default\"], {\n key: \"header\",\n ariaRowIndex: ariaHeaderIndex,\n isHeaderOrFooter: true,\n isScrolling: scrolling,\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/header'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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.header,\n fixedRightColumns: fixedRightColumns.header,\n scrollableColumns: scrollableColumns.header,\n touchEnabled: touchScrollEnabled,\n onColumnResize: this._onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: this._onColumnReorderMove,\n onColumnReorderEnd: this._onColumnReorderEnd,\n isColumnReordering: !!isColumnReordering,\n columnReorderingData: columnReorderingData,\n showScrollbarY: scrollEnabledY,\n isRTL: this.props.isRTL\n });\n var topShadow;\n\n if (scrollY) {\n topShadow = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/topShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 = react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/bottomShadow'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(tableClassName, 'fixedDataTable_isRTL');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(tableClassName, Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/main'), Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"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 }), react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('fixedDataTableLayout/rowsContainer'),\n style: {\n height: scrollbarXOffsetTop,\n width: width\n }\n }, dragKnob, groupHeader, header, rows, footer, topShadow, bottomShadow), scrollbarY, scrollbarX);\n }\n }]);\n\n return FixedDataTable;\n}(react__WEBPACK_IMPORTED_MODULE_4___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_5___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_5___default.a.number,\n\n /**\n * Class name to be passed into parent container\n */\n className: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.number,\n // TODO (jordan) Remove propType of overflowX & overflowY without losing documentation (moved to scrollFlags)\n overflowX: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.oneOf(['hidden', 'auto']),\n overflowY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n\n /**\n * Boolean flags to control if scrolling with keys is enabled\n */\n keyboardScrollEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n keyboardPageEnabled: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.number,\n\n /**\n * Value of horizontal scroll.\n */\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.number,\n\n /**\n * Value of vertical scroll.\n */\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Index of row to scroll to.\n */\n scrollToRow: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n\n /**\n * Callback that is called when scrolling starts. The current horizontal and vertical scroll values,\n * and the current first and last row indexes will be provided to the callback.\n */\n onScrollStart: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func,\n\n /**\n * Callback that is called when scrolling ends. The new horizontal and vertical scroll values,\n * and the new first and last row indexes will be provided to the callback.\n */\n onScrollEnd: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is clicked.\n */\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___default.a.func,\n\n /**\n * Callback that is called when a row is double clicked.\n */\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___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_5___default.a.func,\n\n /**\n * Whether a column is currently being resized.\n */\n isColumnResizing: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Whether columns are currently being reordered.\n */\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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_5___default.a.shape({\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n footerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n groupHeaderHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number,\n headerHeight: prop_types__WEBPACK_IMPORTED_MODULE_5___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_5___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\nvar HorizontalScrollbar =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(HorizontalScrollbar, _React$PureComponent);\n\n function HorizontalScrollbar() {\n _classCallCheck(this, HorizontalScrollbar);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(HorizontalScrollbar).apply(this, arguments));\n }\n\n _createClass(HorizontalScrollbar, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 _this$props10 = this.props,\n offset = _this$props10.offset,\n size = _this$props10.size;\n var outerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n width: size\n };\n var innerContainerStyle = {\n height: Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"default\"].SIZE,\n overflow: 'hidden',\n width: size,\n top: offset\n };\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_14__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_11__[\"default\"])('public/fixedDataTable/horizontalScrollbar')),\n style: outerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n style: innerContainerStyle\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(Scrollbar__WEBPACK_IMPORTED_MODULE_8__[\"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_4___default.a.PureComponent);\n\n_defineProperty(HorizontalScrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n offset: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.func.isRequired,\n position: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n size: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.number.isRequired,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_5___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTable);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTable.js?"); /***/ }), @@ -1997,7 +1997,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Fixe /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\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 react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\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__);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } 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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 } }); 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 _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\nvar FixedDataTableBufferedRows =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n function FixedDataTableBufferedRows() {\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableBufferedRows).apply(this, arguments));\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._staticRowArray = [];\n this._initialRender = true;\n }\n }, {\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 scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n var baseOffsetTop = offsetTop - scrollTop;\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 } // render each row from the buffer into the static row array\n\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\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n baseOffsetTop: baseOffsetTop\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", null, this._staticRowArray);\n }\n /**\n * @param {number} rowIndex\n * @param {number} key\n * @param {number} baseOffsetTop\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 baseOffsetTop = _ref.baseOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || emptyFunction__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n var fake = rowIndex === undefined;\n var rowProps = {}; // if row exists, then calculate row specific props\n\n if (!fake) {\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = Math.round(baseOffsetTop + props.rowOffsets[rowIndex]);\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(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(rowClassNameGetter(rowIndex), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('public/fixedDataTable/bodyRow'), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n 'fixedDataTableLayout/hasBottomBorder': hasBottomBorder,\n 'public/fixedDataTable/hasBottomBorder': hasBottomBorder\n }));\n }\n\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__[\"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 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 visible: visible,\n fake: fake\n }, rowProps));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);\n\n_defineProperty(FixedDataTableBufferedRows, \"propTypes\", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\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 rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableRow */ \"./src/FixedDataTableRow.js\");\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 react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\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__);\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } 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 _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 } }); 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 _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\nvar FixedDataTableBufferedRows =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableBufferedRows, _React$Component);\n\n function FixedDataTableBufferedRows() {\n _classCallCheck(this, FixedDataTableBufferedRows);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableBufferedRows).apply(this, arguments));\n }\n\n _createClass(FixedDataTableBufferedRows, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._staticRowArray = [];\n this._initialRender = true;\n }\n }, {\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 scrollTop = _this$props.scrollTop,\n isScrolling = _this$props.isScrolling,\n rowsToRender = _this$props.rowsToRender;\n var baseOffsetTop = offsetTop - scrollTop;\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 } // render each row from the buffer into the static row array\n\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\n this._staticRowArray[i] = this.renderRow({\n rowIndex: rowIndex,\n key: i,\n baseOffsetTop: baseOffsetTop\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", null, this._staticRowArray);\n }\n /**\n * @param {number} rowIndex\n * @param {number} key\n * @param {number} baseOffsetTop\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 baseOffsetTop = _ref.baseOffsetTop;\n var props = this.props;\n var rowClassNameGetter = props.rowClassNameGetter || emptyFunction__WEBPACK_IMPORTED_MODULE_4__[\"default\"];\n var fake = rowIndex === undefined;\n var rowProps = {}; // if row exists, then calculate row specific props\n\n if (!fake) {\n rowProps.height = this.props.rowSettings.rowHeightGetter(rowIndex);\n rowProps.subRowHeight = this.props.rowSettings.subRowHeightGetter(rowIndex);\n rowProps.offsetTop = Math.round(baseOffsetTop + props.rowOffsets[rowIndex]);\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(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(rowClassNameGetter(rowIndex), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])('public/fixedDataTable/bodyRow'), Object(cx__WEBPACK_IMPORTED_MODULE_3__[\"default\"])({\n 'fixedDataTableLayout/hasBottomBorder': hasBottomBorder,\n 'public/fixedDataTable/hasBottomBorder': hasBottomBorder\n }));\n }\n\n var visible = lodash_inRange__WEBPACK_IMPORTED_MODULE_6___default()(rowIndex, this.props.firstViewportRowIndex, this.props.endViewportRowIndex);\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FixedDataTableRow__WEBPACK_IMPORTED_MODULE_0__[\"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 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 isRTL: props.isRTL,\n visible: visible,\n fake: fake\n }, rowProps));\n }\n }]);\n\n return FixedDataTableBufferedRows;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);\n\n_defineProperty(FixedDataTableBufferedRows, \"propTypes\", {\n ariaRowIndexOffset: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n firstViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n endViewportRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n fixedRightColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n height: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n onRowClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseDown: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseUp: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseEnter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowMouseLeave: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchStart: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchEnd: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n onRowTouchMove: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowClassNameGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\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 rowOffsets: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.object.isRequired,\n rowKeyGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowSettings: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.shape({\n rowAttributesGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func,\n rowsCount: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n subRowHeightGetter: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.func\n }),\n rowsToRender: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n scrollLeft: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollTop: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.number.isRequired,\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.array.isRequired,\n showLastRowBorder: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n showScrollbarY: prop_types__WEBPACK_IMPORTED_MODULE_1___default.a.bool,\n width: 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\"] = (FixedDataTableBufferedRows);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableBufferedRows.js?"); /***/ }), @@ -2009,7 +2009,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Fixe /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony import */ var _FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableColumnReorderHandle */ \"./src/FixedDataTableColumnReorderHandle.js\");\n/* harmony import */ var FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableHelper */ \"./src/FixedDataTableHelper.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\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__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var shallowEqual__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! shallowEqual */ \"./src/vendor_upstream/core/shallowEqual.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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 _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar DIR_SIGN = FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_2__[\"default\"].DIR_SIGN;\n\nvar FixedDataTableCell =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n function FixedDataTableCell() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCell);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCell)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isReorderingThisColumn: false,\n displacement: 0,\n reorderingDisplacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizerMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnResize(_this.props.left, _this.props.width, _this.props.minWidth, _this.props.maxWidth, _this.props.columnKey, event);\n /**\n * This prevents the rows from moving around when we resize the\n * headers on touch devices.\n */\n\n\n if (_this.props.touchEnabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnReorder(_this.props.columnKey, _this.props.width, _this.props.left, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_suppressEvent\", function (\n /*object*/\n event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCell, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex) {\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 oldIsScrolling = _this$props.isScrolling,\n oldProps = _objectWithoutProperties(_this$props, [\"cell\", \"isScrolling\"]);\n\n var newCell = nextProps.cell,\n newIsScrolling = nextProps.isScrolling,\n newProps = _objectWithoutProperties(nextProps, [\"cell\", \"isScrolling\"]);\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_7__[\"default\"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(props) {\n var left = props.left + this.state.displacement;\n var newState = {\n isReorderingThisColumn: false\n };\n\n if (props.isColumnReordering) {\n var originalLeft = props.columnReorderingData.originalLeft;\n var reorderCellLeft = originalLeft + props.columnReorderingData.dragDistance;\n var farthestPossiblePoint = props.columnGroupWidth - props.columnReorderingData.columnWidth; // ensure the cell isn't being dragged out of the column group\n\n reorderCellLeft = Math.max(reorderCellLeft, 0);\n reorderCellLeft = Math.min(reorderCellLeft, farthestPossiblePoint);\n\n if (props.columnKey === props.columnReorderingData.columnKey) {\n newState.displacement = reorderCellLeft - props.left;\n newState.isReorderingThisColumn = true;\n } else {\n var reorderCellRight = reorderCellLeft + props.columnReorderingData.columnWidth;\n var reorderCellCenter = reorderCellLeft + props.columnReorderingData.columnWidth / 2;\n var centerOfThisColumn = left + props.width / 2;\n var cellIsBeforeOneBeingDragged = reorderCellCenter > centerOfThisColumn;\n var cellWasOriginallyBeforeOneBeingDragged = originalLeft > props.left;\n var changedPosition = false;\n var dragPoint, thisCellPoint;\n\n if (cellIsBeforeOneBeingDragged) {\n if (reorderCellLeft < centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = props.columnReorderingData.columnWidth;\n } else {\n newState.displacement = 0;\n }\n }\n } else {\n if (reorderCellRight > centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = 0;\n } else {\n newState.displacement = props.columnReorderingData.columnWidth * -1;\n }\n }\n }\n\n if (changedPosition) {\n if (cellIsBeforeOneBeingDragged) {\n if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n } else {\n props.columnReorderingData.columnBefore = props.columnKey;\n }\n } else if (cellIsBeforeOneBeingDragged) {\n props.columnReorderingData.columnBefore = props.columnKey;\n } else if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n }\n } else {\n newState.displacement = 0;\n }\n\n this.setState(newState);\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 columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n props = _objectWithoutProperties(_this$props2, [\"height\", \"width\", \"columnKey\", \"isHeaderOrFooter\"]);\n\n var style = {\n height: height,\n width: width\n };\n\n if (DIR_SIGN === 1) {\n style.left = props.left;\n } else {\n style.right = props.left;\n }\n\n if (this.state.isReorderingThisColumn) {\n style.transform = \"translateX(\".concat(this.state.displacement, \"px) translateZ(0)\");\n style.zIndex = 1;\n }\n\n var className = Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 'public/fixedDataTableCell/hasReorderHandle': !!props.onColumnReorder,\n 'public/fixedDataTableCell/reordering': this.state.isReorderingThisColumn\n }), props.className);\n var columnResizerComponent;\n\n if (props.onColumnResize) {\n var columnResizerStyle = {\n height: height\n };\n columnResizerComponent = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellLayout/columnResizerContainer'),\n style: columnResizerStyle,\n onMouseDown: this._onColumnResizerMouseDown,\n onTouchStart: this.props.touchEnabled ? this._onColumnResizerMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this._suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this._suppressEvent : null\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellLayout/columnResizerKnob'), Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('public/fixedDataTableCell/columnResizerKnob')),\n style: columnResizerStyle\n }));\n }\n\n var columnReorderComponent;\n\n if (props.onColumnReorder) {\n //header row\n columnReorderComponent = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(_FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({\n columnKey: this.columnKey,\n touchEnabled: this.props.touchEnabled,\n onMouseDown: this._onColumnReorderMouseDown,\n onTouchStart: this._onColumnReorderMouseDown,\n height: height\n }, this.props));\n }\n\n var cellProps = {\n columnKey: columnKey,\n height: height,\n width: width\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(props.cell)) {\n content = react__WEBPACK_IMPORTED_MODULE_3___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === 'function') {\n content = props.cell(cellProps);\n } else {\n content = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__[\"default\"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? 'columnheader' : 'gridcell';\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: className,\n style: style,\n role: role\n }, columnResizerComponent, columnReorderComponent, content);\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableCell, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.oneOf(['left', 'center', 'right']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n cell: 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.element, prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func]),\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 row index that will be passed to `cellRenderer` to render.\n */\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number.isRequired,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number left\n * @param number width\n * @param number minWidth\n * @param number maxWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.func,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_4___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_4___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_4___default.a.bool\n});\n\n_defineProperty(FixedDataTableCell, \"defaultProps\",\n/*object*/\n{\n align: 'left',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony import */ var _FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./FixedDataTableColumnReorderHandle */ \"./src/FixedDataTableColumnReorderHandle.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var shallowEqual__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! shallowEqual */ \"./src/vendor_upstream/core/shallowEqual.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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 _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar FixedDataTableCell =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCell, _React$Component);\n\n function FixedDataTableCell() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCell);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCell)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\", {\n isReorderingThisColumn: false,\n displacement: 0,\n reorderingDisplacement: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnResizerMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnResize(_this.props.left, _this.props.width, _this.props.minWidth, _this.props.maxWidth, _this.props.columnKey, event);\n /**\n * This prevents the rows from moving around when we resize the\n * headers on touch devices.\n */\n\n\n if (_this.props.touchEnabled) {\n event.preventDefault();\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderMouseDown\", function (\n /*object*/\n event) {\n _this.props.onColumnReorder(_this.props.columnKey, _this.props.width, _this.props.left, event);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_suppressEvent\", function (\n /*object*/\n event) {\n event.preventDefault();\n event.stopPropagation();\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCell, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(nextProps) {\n if (nextProps.isScrolling && this.props.rowIndex === nextProps.rowIndex) {\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 oldIsScrolling = _this$props.isScrolling,\n oldProps = _objectWithoutProperties(_this$props, [\"cell\", \"isScrolling\"]);\n\n var newCell = nextProps.cell,\n newIsScrolling = nextProps.isScrolling,\n newProps = _objectWithoutProperties(nextProps, [\"cell\", \"isScrolling\"]);\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(oldProps, newProps)) {\n return true;\n }\n\n if (!oldCell || !newCell || oldCell.type !== newCell.type) {\n return true;\n }\n\n if (!Object(shallowEqual__WEBPACK_IMPORTED_MODULE_6__[\"default\"])(oldCell.props, newCell.props)) {\n return true;\n }\n\n return false;\n }\n }, {\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(props) {\n var left = props.left + this.state.displacement;\n var newState = {\n isReorderingThisColumn: false\n };\n\n if (props.isColumnReordering) {\n var originalLeft = props.columnReorderingData.originalLeft;\n var reorderCellLeft = originalLeft + props.columnReorderingData.dragDistance;\n var farthestPossiblePoint = props.columnGroupWidth - props.columnReorderingData.columnWidth; // ensure the cell isn't being dragged out of the column group\n\n reorderCellLeft = Math.max(reorderCellLeft, 0);\n reorderCellLeft = Math.min(reorderCellLeft, farthestPossiblePoint);\n\n if (props.columnKey === props.columnReorderingData.columnKey) {\n newState.displacement = reorderCellLeft - props.left;\n newState.isReorderingThisColumn = true;\n } else {\n var reorderCellRight = reorderCellLeft + props.columnReorderingData.columnWidth;\n var reorderCellCenter = reorderCellLeft + props.columnReorderingData.columnWidth / 2;\n var centerOfThisColumn = left + props.width / 2;\n var cellIsBeforeOneBeingDragged = reorderCellCenter > centerOfThisColumn;\n var cellWasOriginallyBeforeOneBeingDragged = originalLeft > props.left;\n var changedPosition = false;\n\n if (cellIsBeforeOneBeingDragged) {\n if (reorderCellLeft < centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = props.columnReorderingData.columnWidth;\n } else {\n newState.displacement = 0;\n }\n }\n } else {\n if (reorderCellRight > centerOfThisColumn) {\n changedPosition = true;\n\n if (cellWasOriginallyBeforeOneBeingDragged) {\n newState.displacement = 0;\n } else {\n newState.displacement = props.columnReorderingData.columnWidth * -1;\n }\n }\n }\n\n if (changedPosition) {\n if (cellIsBeforeOneBeingDragged) {\n if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n } else {\n props.columnReorderingData.columnBefore = props.columnKey;\n }\n } else if (cellIsBeforeOneBeingDragged) {\n props.columnReorderingData.columnBefore = props.columnKey;\n } else if (!props.columnReorderingData.columnAfter) {\n props.columnReorderingData.columnAfter = props.columnKey;\n }\n }\n } else {\n newState.displacement = 0;\n }\n\n this.setState(newState);\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 columnKey = _this$props2.columnKey,\n isHeaderOrFooter = _this$props2.isHeaderOrFooter,\n props = _objectWithoutProperties(_this$props2, [\"height\", \"width\", \"columnKey\", \"isHeaderOrFooter\"]);\n\n var style = {\n height: height,\n width: width\n };\n\n if (this.props.isRTL) {\n style.right = props.left;\n } else {\n style.left = props.left;\n }\n\n if (this.state.isReorderingThisColumn) {\n var DIR_SIGN = this.props.isRTL ? -1 : 1;\n style.transform = \"translateX(\".concat(this.state.displacement * DIR_SIGN, \"px) translateZ(0)\");\n style.zIndex = 1;\n }\n\n var className = Object(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"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 'public/fixedDataTableCell/hasReorderHandle': !!props.onColumnReorder,\n 'public/fixedDataTableCell/reordering': this.state.isReorderingThisColumn\n }), props.className);\n var columnResizerComponent;\n\n if (props.onColumnResize) {\n var columnResizerStyle = {\n height: height\n };\n columnResizerComponent = react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellLayout/columnResizerContainer'),\n style: columnResizerStyle,\n onMouseDown: this._onColumnResizerMouseDown,\n onTouchStart: this.props.touchEnabled ? this._onColumnResizerMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? this._suppressEvent : null,\n onTouchMove: this.props.touchEnabled ? this._suppressEvent : null\n }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_5__[\"default\"])(Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellLayout/columnResizerKnob'), Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('public/fixedDataTableCell/columnResizerKnob')),\n style: columnResizerStyle\n }));\n }\n\n var columnReorderComponent;\n\n if (props.onColumnReorder) {\n //header row\n columnReorderComponent = react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(_FixedDataTableColumnReorderHandle__WEBPACK_IMPORTED_MODULE_1__[\"default\"], _extends({\n columnKey: this.columnKey,\n touchEnabled: this.props.touchEnabled,\n onMouseDown: this._onColumnReorderMouseDown,\n onTouchStart: this._onColumnReorderMouseDown,\n height: height\n }, this.props));\n }\n\n var cellProps = {\n columnKey: columnKey,\n height: height,\n width: width\n };\n\n if (props.rowIndex >= 0) {\n cellProps.rowIndex = props.rowIndex;\n }\n\n var content;\n\n if (react__WEBPACK_IMPORTED_MODULE_2___default.a.isValidElement(props.cell)) {\n content = react__WEBPACK_IMPORTED_MODULE_2___default.a.cloneElement(props.cell, cellProps);\n } else if (typeof props.cell === 'function') {\n content = props.cell(cellProps);\n } else {\n content = react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_0__[\"default\"], cellProps, props.cell);\n }\n\n var role = isHeaderOrFooter ? 'columnheader' : 'gridcell';\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: className,\n style: style,\n role: role\n }, columnResizerComponent, columnReorderComponent, content);\n }\n }]);\n\n return FixedDataTableCell;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.Component);\n\n_defineProperty(FixedDataTableCell, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n align: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['left', 'center', 'right']),\n className: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string,\n highlighted: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n width: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n minWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n maxWidth: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n cell: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func]),\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___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_3___default.a.number.isRequired,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number left\n * @param number width\n * @param number minWidth\n * @param number maxWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n /**\n * The left offset in pixels of the cell.\n */\n left: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n\n /**\n * Flag for enhanced performance check\n */\n pureRendering: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /**\n * Whether touch is enabled or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___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_3___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n_defineProperty(FixedDataTableCell, \"defaultProps\",\n/*object*/\n{\n align: 'left',\n highlighted: false\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableCell);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableCell.js?"); /***/ }), @@ -2033,7 +2033,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCell */ \"./src/FixedDataTableCell.js\");\n/* harmony import */ var FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableHelper */ \"./src/FixedDataTableHelper.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_4___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_4__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar DIR_SIGN = FixedDataTableHelper__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DIR_SIGN;\n\nvar FixedDataTableCellGroupImpl =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n function FixedDataTableCellGroupImpl() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCellGroupImpl)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_renderCell\", function (\n /*number*/\n rowIndex,\n /*number*/\n height,\n /*object*/\n columnProps,\n /*object*/\n cellTemplate,\n /*number*/\n left,\n /*string*/\n key,\n /*number*/\n columnGroupWidth,\n /*boolean*/\n isColumnReordering)\n /*object*/\n {\n var cellIsResizable = columnProps.isResizable && _this.props.onColumnResize;\n var onColumnResize = cellIsResizable ? _this.props.onColumnResize : null;\n var cellIsReorderable = columnProps.isReorderable && _this.props.onColumnReorder && rowIndex === -1 && columnGroupWidth !== columnProps.width;\n var onColumnReorder = cellIsReorderable ? _this.props.onColumnReorder : null;\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n align: columnProps.align,\n className: className,\n height: height,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResize: onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: _this.props.onColumnReorderMove,\n onColumnReorderEnd: _this.props.onColumnReorderEnd,\n isColumnReordering: isColumnReordering,\n columnReorderingData: _this.props.columnReorderingData,\n rowIndex: rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: left,\n cell: cellTemplate,\n columnGroupWidth: columnGroupWidth,\n pureRendering: pureRendering\n });\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 cells = new Array(columns.length);\n var contentWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_6__[\"sumPropWidths\"])(columns);\n var isColumnReordering = props.isColumnReordering && columns.reduce(function (acc, column) {\n return acc || props.columnReorderingData.columnKey === column.props.columnKey;\n }, false);\n var currentPosition = 0;\n\n for (var i = 0, j = columns.length; i < j; i++) {\n var columnProps = columns[i].props;\n var cellTemplate = columns[i].template;\n var recyclable = columnProps.allowCellsRecycling && !isColumnReordering;\n\n if (!recyclable || currentPosition - props.left <= props.width && currentPosition - props.left + columnProps.width >= 0) {\n var key = columnProps.columnKey || 'cell_' + i;\n cells[i] = this._renderCell(props.rowIndex, props.rowHeight, columnProps, cellTemplate, currentPosition, key, contentWidth, isColumnReordering);\n }\n\n currentPosition += columnProps.width;\n }\n\n var style = {\n height: props.height,\n position: 'absolute',\n width: contentWidth,\n zIndex: props.zIndex\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(style, -1 * DIR_SIGN * props.left, 0, this._initialRender);\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellGroupLayout/cellGroup'),\n style: style\n }, cells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(react__WEBPACK_IMPORTED_MODULE_4___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n /**\n * Array of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.array.isRequired,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\nvar FixedDataTableCellGroup =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n function FixedDataTableCellGroup() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(FixedDataTableCellGroup)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this2), \"_onColumnResize\", function (\n /*number*/\n left,\n /*number*/\n width,\n /*?number*/\n minWidth,\n /*?number*/\n maxWidth,\n /*string|number*/\n columnKey,\n /*object*/\n event) {\n _this2.props.onColumnResize && _this2.props.onColumnResize(_this2.props.offsetLeft, left - _this2.props.left + width, width, minWidth, maxWidth, columnKey, event);\n });\n\n return _this2;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n return !nextProps.isScrolling || this.props.rowIndex !== nextProps.rowIndex || this.props.left !== nextProps.left;\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, [\"offsetLeft\"]);\n\n var style = {\n height: props.cellGroupWrapperHeight || props.height,\n width: props.width\n };\n\n if (DIR_SIGN === 1) {\n style.left = offsetLeft;\n } else {\n style.right = offsetLeft;\n }\n\n var onColumnResize = props.onColumnResize ? this._onColumnResize : null;\n return react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableCellGroupLayout/cellGroupWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_4___default.a.createElement(FixedDataTableCellGroupImpl, _extends({}, props, {\n onColumnResize: onColumnResize\n })));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_4___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n left: prop_types__WEBPACK_IMPORTED_MODULE_3___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_3___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?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCell */ \"./src/FixedDataTableCell.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.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 react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar FixedDataTableCellGroupImpl =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableCellGroupImpl, _React$Component);\n\n function FixedDataTableCellGroupImpl() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableCellGroupImpl);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableCellGroupImpl)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"_renderCell\", function (\n /*number*/\n rowIndex,\n /*number*/\n height,\n /*object*/\n columnProps,\n /*object*/\n cellTemplate,\n /*number*/\n left,\n /*string*/\n key,\n /*number*/\n columnGroupWidth,\n /*boolean*/\n isColumnReordering)\n /*object*/\n {\n var cellIsResizable = columnProps.isResizable && _this.props.onColumnResize;\n var onColumnResize = cellIsResizable ? _this.props.onColumnResize : null;\n var cellIsReorderable = columnProps.isReorderable && _this.props.onColumnReorder && rowIndex === -1 && columnGroupWidth !== columnProps.width;\n var onColumnReorder = cellIsReorderable ? _this.props.onColumnReorder : null;\n var className = columnProps.cellClassName;\n var pureRendering = columnProps.pureRendering || false;\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCell__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n isScrolling: _this.props.isScrolling,\n isHeaderOrFooter: _this.props.isHeaderOrFooter,\n align: columnProps.align,\n className: className,\n height: height,\n key: key,\n maxWidth: columnProps.maxWidth,\n minWidth: columnProps.minWidth,\n touchEnabled: _this.props.touchEnabled,\n onColumnResize: onColumnResize,\n onColumnReorder: onColumnReorder,\n onColumnReorderMove: _this.props.onColumnReorderMove,\n onColumnReorderEnd: _this.props.onColumnReorderEnd,\n isColumnReordering: isColumnReordering,\n columnReorderingData: _this.props.columnReorderingData,\n rowIndex: rowIndex,\n columnKey: columnProps.columnKey,\n width: columnProps.width,\n left: left,\n cell: cellTemplate,\n columnGroupWidth: columnGroupWidth,\n pureRendering: pureRendering,\n isRTL: _this.props.isRTL\n });\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableCellGroupImpl, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 cells = new Array(columns.length);\n var contentWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_5__[\"sumPropWidths\"])(columns);\n var isColumnReordering = props.isColumnReordering && columns.reduce(function (acc, column) {\n return acc || props.columnReorderingData.columnKey === column.props.columnKey;\n }, false);\n var currentPosition = 0;\n\n for (var i = 0, j = columns.length; i < j; i++) {\n var columnProps = columns[i].props;\n var cellTemplate = columns[i].template;\n var recyclable = columnProps.allowCellsRecycling && !isColumnReordering;\n\n if (!recyclable || currentPosition - props.left <= props.width && currentPosition - props.left + columnProps.width >= 0) {\n var key = columnProps.columnKey || 'cell_' + i;\n cells[i] = this._renderCell(props.rowIndex, props.rowHeight, columnProps, cellTemplate, currentPosition, key, contentWidth, isColumnReordering);\n }\n\n currentPosition += columnProps.width;\n }\n\n var style = {\n height: props.height,\n position: 'absolute',\n width: contentWidth,\n zIndex: props.zIndex\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, -1 * props.left, 0, this._initialRender, this.props.isRTL);\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellGroupLayout/cellGroup'),\n style: style\n }, cells);\n }\n }]);\n\n return FixedDataTableCellGroupImpl;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroupImpl, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n /**\n * Array of per column configuration properties.\n */\n columns: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array.isRequired,\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n rowHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n rowIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\nvar FixedDataTableCellGroup =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableCellGroup, _React$Component2);\n\n function FixedDataTableCellGroup() {\n var _getPrototypeOf3;\n\n var _this2;\n\n _classCallCheck(this, FixedDataTableCellGroup);\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n _this2 = _possibleConstructorReturn(this, (_getPrototypeOf3 = _getPrototypeOf(FixedDataTableCellGroup)).call.apply(_getPrototypeOf3, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this2), \"_onColumnResize\", function (\n /*number*/\n left,\n /*number*/\n width,\n /*?number*/\n minWidth,\n /*?number*/\n maxWidth,\n /*string|number*/\n columnKey,\n /*object*/\n event) {\n _this2.props.onColumnResize && _this2.props.onColumnResize(_this2.props.offsetLeft, left - _this2.props.left + width, width, minWidth, maxWidth, columnKey, event);\n });\n\n return _this2;\n }\n\n _createClass(FixedDataTableCellGroup, [{\n key: \"shouldComponentUpdate\",\n value: function shouldComponentUpdate(\n /*object*/\n nextProps)\n /*boolean*/\n {\n return !nextProps.isScrolling || this.props.rowIndex !== nextProps.rowIndex || this.props.left !== nextProps.left;\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, [\"offsetLeft\"]);\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 var onColumnResize = props.onColumnResize ? this._onColumnResize : null;\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])('fixedDataTableCellGroupLayout/cellGroupWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroupImpl, _extends({}, props, {\n onColumnResize: onColumnResize\n })));\n }\n }]);\n\n return FixedDataTableCellGroup;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableCellGroup, \"propTypes_DISABLED_FOR_PERFORMANCE\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n offsetLeft: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n left: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___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?"); /***/ }), @@ -2069,7 +2069,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var reac /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Locale__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Locale */ \"./src/stubs/Locale.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var clamp__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! clamp */ \"./src/vendor_upstream/core/clamp.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. It is a header icon\n * that allows you to reorder the corresponding column.\n *\n * @providesModule FixedDataTableColumnReorderHandle\n * @typechecks\n */\n\n\n\n\n\n\n\n\nvar FixedDataTableColumnReorderHandle =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(FixedDataTableColumnReorderHandle, _React$PureComponent);\n\n function FixedDataTableColumnReorderHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableColumnReorderHandle);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableColumnReorderHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n dragDistance: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var targetRect = event.target.getBoundingClientRect();\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_4__[\"default\"].getCoordinatesFromEvent(event);\n var mouseLocationInElement = coordinates.x - targetRect.left;\n var mouseLocationInRelationToColumnGroup = mouseLocationInElement + event.target.parentElement.offsetLeft;\n _this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](_this._onMove, _this._onColumnReorderEnd, document.body, _this.props.touchEnabled);\n\n _this._mouseMoveTracker.captureMouseMoves(event);\n\n _this.setState({\n dragDistance: 0\n });\n\n _this.props.onMouseDown({\n columnKey: _this.props.columnKey,\n mouseLocation: {\n dragDistance: 0,\n inElement: mouseLocationInElement,\n inColumnGroup: mouseLocationInRelationToColumnGroup\n }\n });\n\n _this._distance = 0;\n _this._animating = true;\n _this.frameId = requestAnimationFrame(_this._updateState);\n /**\n * This prevents the rows from moving around when we drag the\n * headers on touch devices.\n */\n\n if (_this.props.touchEnabled) {\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n _this._distance = _this.state.dragDistance + deltaX;\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*boolean*/\n cancelReorder) {\n _this._animating = false;\n cancelAnimationFrame(_this.frameId);\n _this.frameId = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.columnReorderingData.cancelReorder = cancelReorder;\n\n _this.props.onColumnReorderEnd();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_updateState\", function () {\n if (_this._animating) {\n _this.frameId = requestAnimationFrame(_this._updateState);\n }\n\n _this.setState({\n dragDistance: _this._distance\n });\n\n _this.props.onColumnReorderMove(_this._distance);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableColumnReorderHandle, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {}\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._mouseMoveTracker) {\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n height: this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_6__[\"default\"])({\n 'fixedDataTableCellLayout/columnReorderContainer': true,\n 'fixedDataTableCellLayout/columnReorderContainer/active': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n onTouchMove: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n style: style\n });\n }\n }]);\n\n return FixedDataTableColumnReorderHandle;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(FixedDataTableColumnReorderHandle, \"propTypes\", {\n /**\n * When resizing is complete this is called.\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n\n /**\n * Column key for the column being reordered.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number]),\n\n /**\n * Whether the reorder handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableColumnReorderHandle);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnReorderHandle.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\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 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 FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableEventHelper */ \"./src/FixedDataTableEventHelper.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 FixedDataTable. It is a header icon\n * that allows you to reorder the corresponding column.\n *\n * @providesModule FixedDataTableColumnReorderHandle\n * @typechecks\n */\n\n\n\n\n\n\nvar FixedDataTableColumnReorderHandle =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(FixedDataTableColumnReorderHandle, _React$PureComponent);\n\n function FixedDataTableColumnReorderHandle() {\n var _getPrototypeOf2;\n\n var _this;\n\n _classCallCheck(this, FixedDataTableColumnReorderHandle);\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableColumnReorderHandle)).call.apply(_getPrototypeOf2, [this].concat(args)));\n\n _defineProperty(_assertThisInitialized(_this), \"state\",\n /*object*/\n {\n dragDistance: 0\n });\n\n _defineProperty(_assertThisInitialized(_this), \"onMouseDown\", function (event) {\n var targetRect = event.target.getBoundingClientRect();\n var coordinates = FixedDataTableEventHelper__WEBPACK_IMPORTED_MODULE_3__[\"default\"].getCoordinatesFromEvent(event);\n var mouseLocationInElement = coordinates.x - targetRect.left;\n var mouseLocationInRelationToColumnGroup = mouseLocationInElement + event.target.parentElement.offsetLeft;\n _this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"default\"](_this._onMove, _this._onColumnReorderEnd, document.body, _this.props.touchEnabled);\n\n _this._mouseMoveTracker.captureMouseMoves(event);\n\n _this.setState({\n dragDistance: 0\n });\n\n _this.props.onMouseDown({\n columnKey: _this.props.columnKey,\n mouseLocation: {\n dragDistance: 0,\n inElement: mouseLocationInElement,\n inColumnGroup: mouseLocationInRelationToColumnGroup\n }\n });\n\n _this._distance = 0;\n _this._animating = true;\n _this.frameId = requestAnimationFrame(_this._updateState);\n /**\n * This prevents the rows from moving around when we drag the\n * headers on touch devices.\n */\n\n if (_this.props.touchEnabled) {\n event.stopPropagation();\n }\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onMove\", function (\n /*number*/\n deltaX) {\n _this._distance = _this.state.dragDistance + deltaX * (_this.props.isRTL ? -1 : 1);\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_onColumnReorderEnd\", function (\n /*boolean*/\n cancelReorder) {\n _this._animating = false;\n cancelAnimationFrame(_this.frameId);\n _this.frameId = null;\n\n _this._mouseMoveTracker.releaseMouseMoves();\n\n _this.props.columnReorderingData.cancelReorder = cancelReorder;\n\n _this.props.onColumnReorderEnd();\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_updateState\", function () {\n if (_this._animating) {\n _this.frameId = requestAnimationFrame(_this._updateState);\n }\n\n _this.setState({\n dragDistance: _this._distance\n });\n\n _this.props.onColumnReorderMove(_this._distance);\n });\n\n return _this;\n }\n\n _createClass(FixedDataTableColumnReorderHandle, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n newProps) {}\n }, {\n key: \"componentWillUnmount\",\n value: function componentWillUnmount() {\n if (this._mouseMoveTracker) {\n cancelAnimationFrame(this.frameId);\n this.frameId = null;\n\n this._mouseMoveTracker.releaseMouseMoves();\n\n this._mouseMoveTracker = null;\n }\n }\n }, {\n key: \"render\",\n value: function render()\n /*object*/\n {\n var style = {\n height: this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_1___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_4__[\"default\"])({\n 'fixedDataTableCellLayout/columnReorderContainer': true,\n 'fixedDataTableCellLayout/columnReorderContainer/active': false\n }),\n onMouseDown: this.onMouseDown,\n onTouchStart: this.props.touchEnabled ? this.onMouseDown : null,\n onTouchEnd: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n onTouchMove: this.props.touchEnabled ? function (e) {\n return e.stopPropagation();\n } : null,\n style: style\n });\n }\n }]);\n\n return FixedDataTableColumnReorderHandle;\n}(react__WEBPACK_IMPORTED_MODULE_1___default.a.PureComponent);\n\n_defineProperty(FixedDataTableColumnReorderHandle, \"propTypes\", {\n /**\n * When resizing is complete this is called.\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Column key for the column being reordered.\n */\n columnKey: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.string, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number]),\n\n /**\n * Whether the reorder handle should respond to touch events or not.\n */\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * If the component should render for RTL direction\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableColumnReorderHandle);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableColumnReorderHandle.js?"); /***/ }), @@ -2097,18 +2097,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/**\n * Copyright Schrodinger /***/ }), -/***/ "./src/FixedDataTableHelper.js": -/*!*************************************!*\ - !*** ./src/FixedDataTableHelper.js ***! - \*************************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Locale__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! Locale */ \"./src/stubs/Locale.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 FixedDataTableHelper\n * @typechecks\n */\n\n\n\nvar DIR_SIGN = Locale__WEBPACK_IMPORTED_MODULE_0__[\"default\"].isRTL() ? -1 : +1;\nvar FixedDataTableHelper = {\n DIR_SIGN: DIR_SIGN\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableHelper);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableHelper.js?"); - -/***/ }), - /***/ "./src/FixedDataTableRoot.js": /*!***********************************!*\ !*** ./src/FixedDataTableRoot.js ***! @@ -2117,7 +2105,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Loca /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/* harmony import */ var FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableContainer */ \"./src/FixedDataTableContainer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableColumn */ \"./src/FixedDataTableColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableColumnGroup */ \"./src/FixedDataTableColumnGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnGroup\", function() { return FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\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 FixedDataTableRoot\n */\n\n\n\n\n\n\nvar version = '1.0.1';\n\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRoot.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, \"version\", function() { return version; });\n/* harmony import */ var FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableContainer */ \"./src/FixedDataTableContainer.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Table\", function() { return FixedDataTableContainer__WEBPACK_IMPORTED_MODULE_0__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableCellDefault */ \"./src/FixedDataTableCellDefault.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Cell\", function() { return FixedDataTableCellDefault__WEBPACK_IMPORTED_MODULE_1__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! FixedDataTableColumn */ \"./src/FixedDataTableColumn.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"Column\", function() { return FixedDataTableColumn__WEBPACK_IMPORTED_MODULE_2__[\"default\"]; });\n\n/* harmony import */ var FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! FixedDataTableColumnGroup */ \"./src/FixedDataTableColumnGroup.js\");\n/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, \"ColumnGroup\", function() { return FixedDataTableColumnGroup__WEBPACK_IMPORTED_MODULE_3__[\"default\"]; });\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 FixedDataTableRoot\n */\n\n\n\n\n\n\nvar version = '1.0.2';\n\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRoot.js?"); /***/ }), @@ -2129,7 +2117,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony export (binding) * /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellGroup */ \"./src/FixedDataTableCellGroup.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.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 react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 // .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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n function FixedDataTableRowImpl() {\n var _getPrototypeOf2;\n\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableRowImpl)).call.apply(_getPrototypeOf2, [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 (react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 return react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 return react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow');\n var style = {\n height: _this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_3___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: \"render\",\n value: function render()\n /*object*/\n {\n if (this.props.fake) {\n return null;\n }\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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedColumns);\n var fixedColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var fixedRightColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedRightColumns);\n var scrollbarOffset = this.props.showScrollbarY ? Scrollbar__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SIZE : 0;\n var fixedRightColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_right_cells\",\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 zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"scrollable_cells\",\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 zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter\n });\n var scrollableColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.scrollableColumns);\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.width - scrollbarOffset - 2\n };\n scrollbarSpacer = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: spacerStyles,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('public/fixedDataTable/scrollbarSpacer')\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"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 }), react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/body')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowExpanded'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRowImpl, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Array of data for the scrollable columns.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array.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_2___default.a.number.isRequired,\n\n /**\n * Pass true to not render the row. This is used internally for buffering rows.\n */\n fake: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number leftOffset\n * @param number cellWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Callback for when reorder handle (in FixedDataTableCell) is clicked\n * to initialize reordering. Please note this is only on the cells\n * in the header.\n * @param number|string columnKey\n * @param number cellWidth\n * @param number leftOffset\n * @param object event\n */\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when a cell is moved while reordering.\n * @param number distance\n */\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when the mouse is released to complete reordering.\n * @param number distance\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n});\n\nvar FixedDataTableRow =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n function FixedDataTableRow() {\n _classCallCheck(this, FixedDataTableRow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableRow).apply(this, arguments));\n }\n\n _createClass(FixedDataTableRow, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: this.props.zIndex ? this.props.zIndex : 0,\n display: this.props.visible ? 'block' : 'none'\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, 0, this.props.offsetTop, this._initialRender);\n\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n visible = _this$props.visible,\n rowProps = _objectWithoutProperties(_this$props, [\"offsetTop\", \"zIndex\", \"visible\"]);\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRow, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! FixedDataTableCellGroup */ \"./src/FixedDataTableCellGroup.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.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 react__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var Scrollbar__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! Scrollbar */ \"./src/Scrollbar.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var joinClasses__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! joinClasses */ \"./src/vendor_upstream/core/joinClasses.js\");\n/* harmony import */ var widthHelper__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! widthHelper */ \"./src/helper/widthHelper.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 _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 _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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 // .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 =\n/*#__PURE__*/\nfunction (_React$Component) {\n _inherits(FixedDataTableRowImpl, _React$Component);\n\n function FixedDataTableRowImpl() {\n var _getPrototypeOf2;\n\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 = _possibleConstructorReturn(this, (_getPrototypeOf2 = _getPrototypeOf(FixedDataTableRowImpl)).call.apply(_getPrototypeOf2, [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 (react__WEBPACK_IMPORTED_MODULE_3___default.a.isValidElement(_this.props.rowExpanded)) {\n rowExpanded = react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 react__WEBPACK_IMPORTED_MODULE_3___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(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow');\n var style = {\n height: _this.props.height\n };\n return react__WEBPACK_IMPORTED_MODULE_3___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: \"render\",\n value: function render()\n /*object*/\n {\n if (this.props.fake) {\n return null;\n }\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(cx__WEBPACK_IMPORTED_MODULE_5__[\"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 = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedColumns);\n var fixedColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_cells\",\n isScrolling: this.props.isScrolling,\n height: this.props.height,\n cellGroupWrapperHeight: this.props.cellGroupWrapperHeight,\n left: 0,\n width: fixedColumnsWidth,\n zIndex: 2,\n columns: this.props.fixedColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL\n });\n\n var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth);\n\n var fixedRightColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.fixedRightColumns);\n var scrollbarOffset = this.props.showScrollbarY ? Scrollbar__WEBPACK_IMPORTED_MODULE_4__[\"default\"].SIZE : 0;\n var fixedRightColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"fixed_right_cells\",\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 zIndex: 2,\n columns: this.props.fixedRightColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL\n });\n var fixedRightColumnsShadow = fixedRightColumnsWidth ? this._renderFixedRightColumnsShadow(this.props.width - fixedRightColumnsWidth - scrollbarOffset - 5) : null;\n var scrollableColumns = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableCellGroup__WEBPACK_IMPORTED_MODULE_0__[\"default\"], {\n key: \"scrollable_cells\",\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 zIndex: 0,\n columns: this.props.scrollableColumns,\n touchEnabled: this.props.touchEnabled,\n onColumnResize: this.props.onColumnResize,\n onColumnReorder: this.props.onColumnReorder,\n onColumnReorderMove: this.props.onColumnReorderMove,\n onColumnReorderEnd: this.props.onColumnReorderEnd,\n isColumnReordering: this.props.isColumnReordering,\n columnReorderingData: this.props.columnReorderingData,\n rowHeight: this.props.height,\n rowIndex: this.props.index,\n isHeaderOrFooter: this.props.isHeaderOrFooter,\n isRTL: this.props.isRTL\n });\n var scrollableColumnsWidth = Object(widthHelper__WEBPACK_IMPORTED_MODULE_7__[\"sumPropWidths\"])(this.props.scrollableColumns);\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 = react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: spacerStyles,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('public/fixedDataTable/scrollbarSpacer')\n });\n }\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", _extends({\n className: Object(joinClasses__WEBPACK_IMPORTED_MODULE_6__[\"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 }), react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/body')\n }, fixedColumns, scrollableColumns, columnsLeftShadow, fixedRightColumns, fixedRightColumnsShadow, scrollbarSpacer), rowExpanded && react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowExpanded'),\n style: rowExpandedStyle\n }, rowExpanded), columnsRightShadow);\n }\n }]);\n\n return FixedDataTableRowImpl;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRowImpl, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Array of data for the fixed columns.\n */\n fixedColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.array.isRequired,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Height of fixedDataTableCellGroupLayout/cellGroupWrapper.\n */\n cellGroupWrapperHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Height of the content to be displayed below the row.\n */\n subRowHeight: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * the row expanded.\n */\n rowExpanded: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.oneOfType([prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.element, prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func]),\n\n /**\n * The row index.\n */\n index: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Array of data for the scrollable columns.\n */\n scrollableColumns: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.array.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_2___default.a.number.isRequired,\n\n /**\n * Pass true to not render the row. This is used internally for buffering rows.\n */\n fake: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Fire when a row is clicked.\n */\n onClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a contextual-menu is requested above a row.\n */\n onContextMenu: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Fire when a row is double clicked.\n */\n onDoubleClick: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when resizer knob (in FixedDataTableCell) is clicked\n * to initialize resizing. Please note this is only on the cells\n * in the header.\n * @param number combinedWidth\n * @param number leftOffset\n * @param number cellWidth\n * @param number|string columnKey\n * @param object event\n */\n onColumnResize: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n isColumnReordering: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Callback for when reorder handle (in FixedDataTableCell) is clicked\n * to initialize reordering. Please note this is only on the cells\n * in the header.\n * @param number|string columnKey\n * @param number cellWidth\n * @param number leftOffset\n * @param object event\n */\n onColumnReorder: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when a cell is moved while reordering.\n * @param number distance\n */\n onColumnReorderMove: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n\n /**\n * Callback for when the mouse is released to complete reordering.\n * @param number distance\n */\n onColumnReorderEnd: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.func,\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Whether the row is part of the header or footer.\n */\n isHeaderOrFooter: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * The value of the aria-rowindex attribute.\n */\n ariaRowIndex: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number,\n\n /**\n * Whether the grid should be in RTL mode\n */\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * DOM attributes to be applied to the row.\n */\n attributes: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.object\n});\n\nvar FixedDataTableRow =\n/*#__PURE__*/\nfunction (_React$Component2) {\n _inherits(FixedDataTableRow, _React$Component2);\n\n function FixedDataTableRow() {\n _classCallCheck(this, FixedDataTableRow);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(FixedDataTableRow).apply(this, arguments));\n }\n\n _createClass(FixedDataTableRow, [{\n key: \"componentWillMount\",\n value: function componentWillMount() {\n this._initialRender = true;\n }\n }, {\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 style = {\n width: this.props.width,\n height: this.props.height,\n zIndex: this.props.zIndex ? this.props.zIndex : 0,\n display: this.props.visible ? 'block' : 'none'\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, 0, this.props.offsetTop, this._initialRender, this.props.isRTL);\n\n var _this$props = this.props,\n offsetTop = _this$props.offsetTop,\n zIndex = _this$props.zIndex,\n visible = _this$props.visible,\n rowProps = _objectWithoutProperties(_this$props, [\"offsetTop\", \"zIndex\", \"visible\"]);\n\n return react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(\"div\", {\n style: style,\n className: Object(cx__WEBPACK_IMPORTED_MODULE_5__[\"default\"])('fixedDataTableRowLayout/rowWrapper')\n }, react__WEBPACK_IMPORTED_MODULE_3___default.a.createElement(FixedDataTableRowImpl, rowProps));\n }\n }]);\n\n return FixedDataTableRow;\n}(react__WEBPACK_IMPORTED_MODULE_3___default.a.Component);\n\n_defineProperty(FixedDataTableRow, \"propTypes\", {\n isScrolling: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool,\n\n /**\n * Height of the row.\n */\n height: prop_types__WEBPACK_IMPORTED_MODULE_2___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_2___default.a.number,\n\n /**\n * The vertical position where the row should render itself\n */\n offsetTop: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired,\n\n /**\n * Pass false to hide the row via CSS\n */\n visible: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.bool.isRequired,\n\n /**\n * Width of the row.\n */\n width: prop_types__WEBPACK_IMPORTED_MODULE_2___default.a.number.isRequired\n});\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableRow);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableRow.js?"); /***/ }), @@ -2153,7 +2141,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var redu /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! translateDOMPositionXY */ \"./src/vendor_upstream/dom/translateDOMPositionXY.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 FixedDataTableTranslateDOMPosition\n * @typechecks\n */\n\n\nfunction FixedDataTableTranslateDOMPosition(\n/*object*/\nstyle,\n/*number*/\nx,\n/*number*/\ny) {\n var initialRender = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n\n if (style.display === 'none') {\n return;\n }\n\n if (initialRender) {\n style.left = x + 'px';\n style.top = y + 'px';\n } else {\n Object(translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_0__[\"default\"])(style, x, y);\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableTranslateDOMPosition);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableTranslateDOMPosition.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var BrowserSupportCore__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! BrowserSupportCore */ \"./src/vendor_upstream/dom/BrowserSupportCore.js\");\n/* harmony import */ var translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! translateDOMPositionXY */ \"./src/vendor_upstream/dom/translateDOMPositionXY.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 FixedDataTableTranslateDOMPosition\n * @typechecks\n */\n\n\n\nfunction FixedDataTableTranslateDOMPosition(\n/*object*/\nstyle,\n/*number*/\nx,\n/*number*/\ny) {\n var initialRender = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false;\n var isRTL = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n\n if (style.display === 'none') {\n return;\n }\n\n if (initialRender) {\n style.left = x + 'px';\n style.top = y + 'px';\n } else {\n if (BrowserSupportCore__WEBPACK_IMPORTED_MODULE_0__[\"default\"].hasCSSTransforms()) {\n x *= isRTL ? -1 : 1;\n }\n\n Object(translateDOMPositionXY__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(style, x, y);\n }\n\n if (isRTL) {\n style.right = style.left;\n style.left = 'auto';\n }\n}\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (FixedDataTableTranslateDOMPosition);\n\n//# sourceURL=webpack://FixedDataTable/./src/FixedDataTableTranslateDOMPosition.js?"); /***/ }), @@ -2177,7 +2165,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var empt /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Keys */ \"./src/vendor_upstream/core/Keys.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var ReactDOM__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ReactDOM */ \"./src/stubs/react/ReactDOM.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar cssVar = __webpack_require__(/*! cssVar */ \"./src/stubs/cssVar.js\");\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(cssVar('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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Scrollbar).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 /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation === 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation !== 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleChange\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation)\n /*object*/\n {\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 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 : 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 === Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEFT:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].UP:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DOWN:\n direction = 1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 = ReactDOM__WEBPACK_IMPORTED_MODULE_4__[\"default\"].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 return _this;\n }\n\n _createClass(Scrollbar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n var controlledPosition = nextProps.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, nextProps.size, nextProps.contentSize, nextProps.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, nextProps.size, nextProps.contentSize, nextProps.orientation), nextProps);\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 var mainStyle;\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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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 };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(faceStyle, position, 0, this._initialRender);\n } else {\n mainStyle = {\n top: verticalTop,\n height: size\n };\n faceStyle = {\n height: faceSize - FACE_MARGIN_2\n };\n Object(FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__[\"default\"])(faceStyle, 0, position, this._initialRender);\n }\n\n mainStyle.touchAction = 'none';\n mainStyle.zIndex = this.props.zIndex;\n\n if (this.props.trackColor === 'gray') {\n mainStyle.backgroundColor = cssVar('fbui-desktop-background-light');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___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 }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: \"componentWillMount\",\n value: function componentWillMount() {\n var isHorizontal = this.props.orientation === 'horizontal';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__[\"default\"](onWheel, this._shouldHandleX, // Should hanlde horizontal scroll\n this._shouldHandleY // Should handle vertical scroll\n );\n this._initialRender = true;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._rootRef && this._rootRef.addEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"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 this._mouseMoveTracker.releaseMouseMoves();\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n\n delete this._mouseMoveTracker;\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(Scrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['vertical', 'horizontal']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['gray']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number\n});\n\n_defineProperty(Scrollbar, \"defaultProps\",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: emptyFunction__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n orientation: 'vertical',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(cssVar('scrollbar-size'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/Scrollbar.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! DOMMouseMoveTracker */ \"./src/vendor_upstream/dom/DOMMouseMoveTracker.js\");\n/* harmony import */ var Keys__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! Keys */ \"./src/vendor_upstream/core/Keys.js\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! react */ \"react\");\n/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(react__WEBPACK_IMPORTED_MODULE_2__);\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(/*! prop-types */ \"./node_modules/prop-types/index.js\");\n/* harmony import */ var prop_types__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(prop_types__WEBPACK_IMPORTED_MODULE_3__);\n/* harmony import */ var ReactDOM__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(/*! ReactDOM */ \"./src/stubs/react/ReactDOM.js\");\n/* harmony import */ var ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(/*! ReactWheelHandler */ \"./src/vendor_upstream/dom/ReactWheelHandler.js\");\n/* harmony import */ var cx__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(/*! cx */ \"./src/vendor_upstream/stubs/cx.js\");\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var FixedDataTableTranslateDOMPosition__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(/*! FixedDataTableTranslateDOMPosition */ \"./src/FixedDataTableTranslateDOMPosition.js\");\nfunction _typeof(obj) { if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _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); return Constructor; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } return _assertThisInitialized(self); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\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 _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 } }); 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 _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\nvar cssVar = __webpack_require__(/*! cssVar */ \"./src/stubs/cssVar.js\");\n\n\n\n\nvar UNSCROLLABLE_STATE = {\n position: 0,\n scrollable: false\n};\nvar FACE_MARGIN = parseInt(cssVar('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 =\n/*#__PURE__*/\nfunction (_React$PureComponent) {\n _inherits(Scrollbar, _React$PureComponent);\n\n function Scrollbar(_props)\n /*object*/\n {\n var _this;\n\n _classCallCheck(this, Scrollbar);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Scrollbar).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 /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation === 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleY\", function (\n /*number*/\n delta) {\n return (\n /*boolean*/\n _this.props.orientation !== 'horizontal' ? _this._shouldHandleChange(delta) : false\n );\n });\n\n _defineProperty(_assertThisInitialized(_this), \"_shouldHandleChange\", function (\n /*number*/\n delta)\n /*boolean*/\n {\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 /*number*/\n position,\n /*number*/\n size,\n /*number*/\n contentSize,\n /*string*/\n orientation)\n /*object*/\n {\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 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 === Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].LEFT:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].SPACE:\n if (event.shiftKey) {\n direction = -1;\n } else {\n direction = 1;\n }\n\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].HOME:\n direction = -1;\n distance = _this.props.contentSize;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].UP:\n direction = -1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].DOWN:\n direction = 1;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"default\"].PAGE_UP:\n direction = -1;\n distance = _this.props.size;\n break;\n\n case Keys__WEBPACK_IMPORTED_MODULE_1__[\"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 = ReactDOM__WEBPACK_IMPORTED_MODULE_4__[\"default\"].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 return _this;\n }\n\n _createClass(Scrollbar, [{\n key: \"componentWillReceiveProps\",\n value: function componentWillReceiveProps(\n /*object*/\n nextProps) {\n var controlledPosition = nextProps.position;\n\n if (controlledPosition === undefined) {\n this._setNextState(this._calculateState(this.state.position, nextProps.size, nextProps.contentSize, nextProps.orientation));\n } else {\n this._setNextState(this._calculateState(controlledPosition, nextProps.size, nextProps.contentSize, nextProps.orientation), nextProps);\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 var mainStyle;\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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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(cx__WEBPACK_IMPORTED_MODULE_6__[\"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_8__[\"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_8__[\"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 = cssVar('fbui-desktop-background-light');\n }\n\n return react__WEBPACK_IMPORTED_MODULE_2___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 }, react__WEBPACK_IMPORTED_MODULE_2___default.a.createElement(\"div\", {\n ref: this._onRefFace,\n className: faceClassName,\n style: faceStyle\n }));\n }\n }, {\n key: \"componentWillMount\",\n value: function componentWillMount() {\n var isHorizontal = this.props.orientation === 'horizontal';\n var onWheel = isHorizontal ? this._onWheelX : this._onWheelY;\n this._wheelHandler = new ReactWheelHandler__WEBPACK_IMPORTED_MODULE_5__[\"default\"](onWheel, this._shouldHandleX, // Should handle horizontal scroll\n this._shouldHandleY, // Should handle vertical scroll\n this.props.isRTL);\n this._initialRender = true;\n }\n }, {\n key: \"componentDidMount\",\n value: function componentDidMount() {\n this._rootRef && this._rootRef.addEventListener('wheel', this._wheelHandler.onWheel, {\n passive: false\n });\n this._mouseMoveTracker = new DOMMouseMoveTracker__WEBPACK_IMPORTED_MODULE_0__[\"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 this._mouseMoveTracker.releaseMouseMoves();\n\n if (_lastScrolledScrollbar === this) {\n _lastScrolledScrollbar = null;\n }\n\n delete this._mouseMoveTracker;\n }\n }]);\n\n return Scrollbar;\n}(react__WEBPACK_IMPORTED_MODULE_2___default.a.PureComponent);\n\n_defineProperty(Scrollbar, \"propTypes\", {\n contentSize: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n defaultPosition: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n isOpaque: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n orientation: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['vertical', 'horizontal']),\n onScroll: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.func,\n position: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n size: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number.isRequired,\n trackColor: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.oneOf(['gray']),\n touchEnabled: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool,\n zIndex: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n verticalTop: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.number,\n isRTL: prop_types__WEBPACK_IMPORTED_MODULE_3___default.a.bool\n});\n\n_defineProperty(Scrollbar, \"defaultProps\",\n/*object*/\n{\n defaultPosition: 0,\n isOpaque: false,\n onScroll: emptyFunction__WEBPACK_IMPORTED_MODULE_7__[\"default\"],\n orientation: 'vertical',\n zIndex: 99\n});\n\nScrollbar.KEYBOARD_SCROLL_AMOUNT = KEYBOARD_SCROLL_AMOUNT;\nScrollbar.SIZE = parseInt(cssVar('scrollbar-size'), 10);\nScrollbar.OFFSET = 1;\n/* harmony default export */ __webpack_exports__[\"default\"] = (Scrollbar);\n\n//# sourceURL=webpack://FixedDataTable/./src/Scrollbar.js?"); /***/ }), @@ -2517,18 +2505,6 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Scro /***/ }), -/***/ "./src/stubs/Locale.js": -/*!*****************************!*\ - !*** ./src/stubs/Locale.js ***! - \*****************************/ -/*! exports provided: default */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -eval("__webpack_require__.r(__webpack_exports__);\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 Locale\n */\n // Hard code this for now.\n\nvar Locale = {\n isRTL: function isRTL() {\n return false;\n },\n getDirection: function getDirection() {\n return 'LTR';\n }\n};\n/* harmony default export */ __webpack_exports__[\"default\"] = (Locale);\n\n//# sourceURL=webpack://FixedDataTable/./src/stubs/Locale.js?"); - -/***/ }), - /***/ "./src/stubs/UserAgent_DEPRECATED.js": /*!*******************************************!*\ !*** ./src/stubs/UserAgent_DEPRECATED.js ***! @@ -2753,7 +2729,7 @@ eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var Even /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; -eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var normalizeWheel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! normalizeWheel */ \"./src/vendor_upstream/dom/normalizeWheel.js\");\n/* harmony import */ var requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! requestAnimationFramePolyfill */ \"./src/vendor_upstream/core/requestAnimationFramePolyfill.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 * This is utility that handles onWheel events and calls provided wheel\n * callback with correct frame rate.\n *\n * @providesModule ReactWheelHandler\n * @typechecks\n */\n\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); return Constructor; }\n\n\n\n\n\nvar ReactWheelHandler =\n/*#__PURE__*/\nfunction () {\n /**\n * onWheel is the callback that will be called with right frame rate if\n * any wheel events happened\n * onWheel should is to be called with two arguments: deltaX and deltaY in\n * this order\n */\n function ReactWheelHandler(\n /*function*/\n onWheel,\n /*boolean|function*/\n handleScrollX,\n /*boolean|function*/\n handleScrollY,\n /*?boolean*/\n preventDefault,\n /*?boolean*/\n stopPropagation) {\n _classCallCheck(this, ReactWheelHandler);\n\n this._animationFrameID = null;\n this._deltaX = 0;\n this._deltaY = 0;\n this._didWheel = this._didWheel.bind(this);\n this._rootRef = null;\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n this._handleScrollX = handleScrollX;\n this._handleScrollY = handleScrollY;\n this._preventDefault = preventDefault;\n this._stopPropagation = stopPropagation;\n this._onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n }\n\n _createClass(ReactWheelHandler, [{\n key: \"onWheel\",\n value: function onWheel(\n /*object*/\n event) {\n if (this._preventDefault) {\n event.preventDefault();\n }\n\n var normalizedEvent = Object(normalizeWheel__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(event); // if shift is held, swap the axis of scrolling.\n\n if (event.shiftKey && ReactWheelHandler._allowInternalAxesSwap()) {\n normalizedEvent = ReactWheelHandler._swapNormalizedWheelAxis(normalizedEvent);\n }\n\n var deltaX = this._deltaX + normalizedEvent.pixelX;\n var deltaY = this._deltaY + normalizedEvent.pixelY;\n\n var handleScrollX = this._handleScrollX(deltaX, deltaY);\n\n var handleScrollY = this._handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n if (this._rootRef && !this._contains(event.target)) {\n return;\n }\n\n this._deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this._deltaY += handleScrollY ? normalizedEvent.pixelY : 0; // This will result in a scroll to the table, so there's no need to let the parent containers scroll\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n }\n\n var changed;\n\n if (this._deltaX !== 0 || this._deltaY !== 0) {\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this._animationFrameID === null) {\n this._animationFrameID = Object(requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this._didWheel);\n }\n }\n }, {\n key: \"setRoot\",\n value: function setRoot(rootRef) {\n this._rootRef = rootRef;\n }\n }, {\n key: \"_didWheel\",\n value: function _didWheel() {\n this._animationFrameID = null;\n\n this._onWheelCallback(this._deltaX, this._deltaY);\n\n this._deltaX = 0;\n this._deltaY = 0;\n }\n }, {\n key: \"_contains\",\n value: function _contains(target) {\n var parent = target;\n\n while (parent != document.body) {\n if (parent === this._rootRef) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n }\n }], [{\n key: \"_swapNormalizedWheelAxis\",\n value: function _swapNormalizedWheelAxis(\n /*object*/\n normalizedEvent)\n /*object*/\n {\n return {\n spinX: normalizedEvent.spinY,\n spinY: normalizedEvent.spinX,\n pixelX: normalizedEvent.pixelY,\n pixelY: normalizedEvent.pixelX\n };\n }\n }, {\n key: \"_allowInternalAxesSwap\",\n value: function _allowInternalAxesSwap()\n /*boolean*/\n {\n return navigator.platform !== \"MacIntel\";\n }\n }]);\n\n return ReactWheelHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ReactWheelHandler);\n\n//# sourceURL=webpack://FixedDataTable/./src/vendor_upstream/dom/ReactWheelHandler.js?"); +eval("__webpack_require__.r(__webpack_exports__);\n/* harmony import */ var emptyFunction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! emptyFunction */ \"./src/vendor_upstream/core/emptyFunction.js\");\n/* harmony import */ var normalizeWheel__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! normalizeWheel */ \"./src/vendor_upstream/dom/normalizeWheel.js\");\n/* harmony import */ var requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! requestAnimationFramePolyfill */ \"./src/vendor_upstream/core/requestAnimationFramePolyfill.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 * This is utility that handles onWheel events and calls provided wheel\n * callback with correct frame rate.\n *\n * @providesModule ReactWheelHandler\n * @typechecks\n */\n\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); return Constructor; }\n\n\n\n\n\nvar ReactWheelHandler =\n/*#__PURE__*/\nfunction () {\n /**\n * onWheel is the callback that will be called with right frame rate if\n * any wheel events happened\n * onWheel should is to be called with two arguments: deltaX and deltaY in\n * this order\n */\n function ReactWheelHandler(\n /*function*/\n onWheel,\n /*boolean|function*/\n handleScrollX,\n /*boolean|function*/\n handleScrollY,\n /*?boolean*/\n isRTL,\n /*?boolean*/\n preventDefault,\n /*?boolean*/\n stopPropagation) {\n _classCallCheck(this, ReactWheelHandler);\n\n this._animationFrameID = null;\n this._deltaX = 0;\n this._deltaY = 0;\n this._didWheel = this._didWheel.bind(this);\n this._rootRef = null;\n\n if (typeof handleScrollX !== 'function') {\n handleScrollX = handleScrollX ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n if (typeof handleScrollY !== 'function') {\n handleScrollY = handleScrollY ? emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsTrue : emptyFunction__WEBPACK_IMPORTED_MODULE_0__[\"default\"].thatReturnsFalse;\n }\n\n this._handleScrollX = handleScrollX;\n this._handleScrollY = handleScrollY;\n this._preventDefault = preventDefault;\n this._stopPropagation = stopPropagation;\n this._onWheelCallback = onWheel;\n this.onWheel = this.onWheel.bind(this);\n this._isRTL = isRTL;\n }\n\n _createClass(ReactWheelHandler, [{\n key: \"onWheel\",\n value: function onWheel(\n /*object*/\n event) {\n if (this._preventDefault) {\n event.preventDefault();\n }\n\n var normalizedEvent = Object(normalizeWheel__WEBPACK_IMPORTED_MODULE_1__[\"default\"])(event); // if shift is held, swap the axis of scrolling.\n\n if (event.shiftKey && ReactWheelHandler._allowInternalAxesSwap()) {\n normalizedEvent = ReactWheelHandler._swapNormalizedWheelAxis(normalizedEvent);\n } else if (!event.shiftKey) {\n normalizedEvent.pixelX *= this._isRTL ? -1 : 1;\n }\n\n var deltaX = this._deltaX + normalizedEvent.pixelX;\n var deltaY = this._deltaY + normalizedEvent.pixelY;\n\n var handleScrollX = this._handleScrollX(deltaX, deltaY);\n\n var handleScrollY = this._handleScrollY(deltaY, deltaX);\n\n if (!handleScrollX && !handleScrollY) {\n return;\n }\n\n if (this._rootRef && !this._contains(event.target)) {\n return;\n }\n\n this._deltaX += handleScrollX ? normalizedEvent.pixelX : 0;\n this._deltaY += handleScrollY ? normalizedEvent.pixelY : 0; // This will result in a scroll to the table, so there's no need to let the parent containers scroll\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n }\n\n var changed;\n\n if (this._deltaX !== 0 || this._deltaY !== 0) {\n if (this._stopPropagation) {\n event.stopPropagation();\n }\n\n changed = true;\n }\n\n if (changed === true && this._animationFrameID === null) {\n this._animationFrameID = Object(requestAnimationFramePolyfill__WEBPACK_IMPORTED_MODULE_2__[\"default\"])(this._didWheel);\n }\n }\n }, {\n key: \"setRoot\",\n value: function setRoot(rootRef) {\n this._rootRef = rootRef;\n }\n }, {\n key: \"_didWheel\",\n value: function _didWheel() {\n this._animationFrameID = null;\n\n this._onWheelCallback(this._deltaX, this._deltaY);\n\n this._deltaX = 0;\n this._deltaY = 0;\n }\n }, {\n key: \"_contains\",\n value: function _contains(target) {\n var parent = target;\n\n while (parent != document.body) {\n if (parent === this._rootRef) {\n return true;\n }\n\n parent = parent.parentNode;\n }\n\n return false;\n }\n }], [{\n key: \"_swapNormalizedWheelAxis\",\n value: function _swapNormalizedWheelAxis(\n /*object*/\n normalizedEvent)\n /*object*/\n {\n return {\n spinX: normalizedEvent.spinY,\n spinY: normalizedEvent.spinX,\n pixelX: normalizedEvent.pixelY,\n pixelY: normalizedEvent.pixelX\n };\n }\n }, {\n key: \"_allowInternalAxesSwap\",\n value: function _allowInternalAxesSwap()\n /*boolean*/\n {\n return navigator.platform !== \"MacIntel\";\n }\n }]);\n\n return ReactWheelHandler;\n}();\n\n/* harmony default export */ __webpack_exports__[\"default\"] = (ReactWheelHandler);\n\n//# sourceURL=webpack://FixedDataTable/./src/vendor_upstream/dom/ReactWheelHandler.js?"); /***/ }), diff --git a/package.json b/package.json index 4040eab7..25a5b472 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "fixed-data-table-2", - "version": "1.0.1", + "version": "1.0.2", "description": "A React table component designed to allow presenting thousands of rows of data.", "main": "main.js", "peerDependencies": { diff --git a/src/FixedDataTableRoot.js b/src/FixedDataTableRoot.js index 80ea1916..125d2cb8 100644 --- a/src/FixedDataTableRoot.js +++ b/src/FixedDataTableRoot.js @@ -16,7 +16,7 @@ import Cell from 'FixedDataTableCellDefault'; import Column from 'FixedDataTableColumn'; import ColumnGroup from 'FixedDataTableColumnGroup'; -const version = '1.0.1'; +const version = '1.0.2'; export { Cell,