diff --git a/dist/fixed-data-table-base.css b/dist/fixed-data-table-base.css index 2576c1ff..e825d796 100644 --- a/dist/fixed-data-table-base.css +++ b/dist/fixed-data-table-base.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -233,9 +233,14 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { } .fixedDataTableRowLayout_columnsShadow { + position: absolute; width: 4px; } +.fixedDataTableRowLayout_columnsRightShadow { + right: 1px; +} + .fixedDataTableRowLayout_rowWrapper { position: absolute; top: 0; diff --git a/dist/fixed-data-table-base.min.css b/dist/fixed-data-table-base.min.css index 83b66afc..ef0d69b2 100644 --- a/dist/fixed-data-table-base.min.css +++ b/dist/fixed-data-table-base.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -9,4 +9,4 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -.fixedDataTableCellGroupLayout_cellGroup{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.fixedDataTableCellGroupLayout_cellGroup>.public_fixedDataTableCell_main{display:inline-block;vertical-align:top;white-space:normal}.fixedDataTableCellGroupLayout_cellGroupWrapper{position:absolute;top:0}.fixedDataTableCellLayout_main{border-right-style:solid;border-width:0 1px 0 0;box-sizing:border-box;display:block;overflow:hidden;position:absolute;white-space:normal}.fixedDataTableCellLayout_lastChild{border-width:0 1px 1px 0}.fixedDataTableCellLayout_alignRight{text-align:right}.fixedDataTableCellLayout_alignCenter{text-align:center}.fixedDataTableCellLayout_wrap1{display:table}.fixedDataTableCellLayout_wrap2{display:table-row}.fixedDataTableCellLayout_wrap3{display:table-cell;vertical-align:middle}.fixedDataTableCellLayout_columnResizerContainer{position:absolute;right:0;width:6px;z-index:1}.fixedDataTableCellLayout_columnResizerContainer:hover{cursor:ew-resize}.fixedDataTableCellLayout_columnResizerContainer:hover .fixedDataTableCellLayout_columnResizerKnob{visibility:visible}.fixedDataTableCellLayout_columnResizerKnob{position:absolute;right:0;visibility:hidden;width:4px}.fixedDataTableColumnResizerLineLayout_mouseArea{cursor:ew-resize;position:absolute;right:-5px;width:12px}.fixedDataTableColumnResizerLineLayout_main{border-right-style:solid;border-right-width:1px;box-sizing:border-box;position:absolute;z-index:10}body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main,.fixedDataTableColumnResizerLineLayout_hiddenElem{display:none!important}.fixedDataTableLayout_main{border-style:solid;border-width:1px;box-sizing:border-box;overflow:hidden;position:relative}.fixedDataTableLayout_header,.fixedDataTableLayout_hasBottomBorder{border-bottom-style:solid;border-bottom-width:1px}.fixedDataTableLayout_footer .public_fixedDataTableCell_main{border-top-style:solid;border-top-width:1px}.fixedDataTableLayout_topShadow,.fixedDataTableLayout_bottomShadow{height:4px;left:0;position:absolute;right:0;z-index:1}.fixedDataTableLayout_bottomShadow{margin-top:-4px}.fixedDataTableLayout_rowsContainer{overflow:hidden;position:relative}.fixedDataTableLayout_horizontalScrollbar{bottom:0;position:absolute}.fixedDataTableRowLayout_main{box-sizing:border-box;overflow:hidden;position:absolute;top:0}.fixedDataTableRowLayout_body{left:0;position:absolute;top:0}.fixedDataTableRowLayout_fixedColumnsDivider{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-left-style:solid;border-left-width:1px;left:0;position:absolute;top:0;width:0}.fixedDataTableRowLayout_columnsShadow{width:4px}.fixedDataTableRowLayout_rowWrapper{position:absolute;top:0}.ScrollbarLayout_main{box-sizing:border-box;outline:none;overflow:hidden;position:absolute;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ScrollbarLayout_mainVertical{bottom:0;right:0;top:0;-webkit-transition-property:background-color width;transition-property:background-color width;width:15px}.ScrollbarLayout_mainVertical.public_Scrollbar_mainActive,.ScrollbarLayout_mainVertical:hover{width:17px}.ScrollbarLayout_mainHorizontal{bottom:0;height:15px;left:0;-webkit-transition-property:background-color height;transition-property:background-color height}.ScrollbarLayout_mainHorizontal.public_Scrollbar_mainActive,.ScrollbarLayout_mainHorizontal:hover{height:17px}.ScrollbarLayout_face{left:0;overflow:hidden;position:absolute;z-index:1}.ScrollbarLayout_face:after{border-radius:6px;content:'';display:block;position:absolute;-webkit-transition:background-color 250ms ease;transition:background-color 250ms ease}.ScrollbarLayout_faceHorizontal{bottom:0;left:0;top:0}.ScrollbarLayout_faceHorizontal:after{bottom:4px;left:0;top:4px;width:100%}.ScrollbarLayout_faceVertical{left:0;right:0;top:0}.ScrollbarLayout_faceVertical:after{height:100%;left:4px;right:4px;top:0} \ No newline at end of file +.fixedDataTableCellGroupLayout_cellGroup{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.fixedDataTableCellGroupLayout_cellGroup>.public_fixedDataTableCell_main{display:inline-block;vertical-align:top;white-space:normal}.fixedDataTableCellGroupLayout_cellGroupWrapper{position:absolute;top:0}.fixedDataTableCellLayout_main{border-right-style:solid;border-width:0 1px 0 0;box-sizing:border-box;display:block;overflow:hidden;position:absolute;white-space:normal}.fixedDataTableCellLayout_lastChild{border-width:0 1px 1px 0}.fixedDataTableCellLayout_alignRight{text-align:right}.fixedDataTableCellLayout_alignCenter{text-align:center}.fixedDataTableCellLayout_wrap1{display:table}.fixedDataTableCellLayout_wrap2{display:table-row}.fixedDataTableCellLayout_wrap3{display:table-cell;vertical-align:middle}.fixedDataTableCellLayout_columnResizerContainer{position:absolute;right:0;width:6px;z-index:1}.fixedDataTableCellLayout_columnResizerContainer:hover{cursor:ew-resize}.fixedDataTableCellLayout_columnResizerContainer:hover .fixedDataTableCellLayout_columnResizerKnob{visibility:visible}.fixedDataTableCellLayout_columnResizerKnob{position:absolute;right:0;visibility:hidden;width:4px}.fixedDataTableColumnResizerLineLayout_mouseArea{cursor:ew-resize;position:absolute;right:-5px;width:12px}.fixedDataTableColumnResizerLineLayout_main{border-right-style:solid;border-right-width:1px;box-sizing:border-box;position:absolute;z-index:10}body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main,.fixedDataTableColumnResizerLineLayout_hiddenElem{display:none!important}.fixedDataTableLayout_main{border-style:solid;border-width:1px;box-sizing:border-box;overflow:hidden;position:relative}.fixedDataTableLayout_header,.fixedDataTableLayout_hasBottomBorder{border-bottom-style:solid;border-bottom-width:1px}.fixedDataTableLayout_footer .public_fixedDataTableCell_main{border-top-style:solid;border-top-width:1px}.fixedDataTableLayout_topShadow,.fixedDataTableLayout_bottomShadow{height:4px;left:0;position:absolute;right:0;z-index:1}.fixedDataTableLayout_bottomShadow{margin-top:-4px}.fixedDataTableLayout_rowsContainer{overflow:hidden;position:relative}.fixedDataTableLayout_horizontalScrollbar{bottom:0;position:absolute}.fixedDataTableRowLayout_main{box-sizing:border-box;overflow:hidden;position:absolute;top:0}.fixedDataTableRowLayout_body{left:0;position:absolute;top:0}.fixedDataTableRowLayout_fixedColumnsDivider{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-left-style:solid;border-left-width:1px;left:0;position:absolute;top:0;width:0}.fixedDataTableRowLayout_columnsShadow{position:absolute;width:4px}.fixedDataTableRowLayout_columnsRightShadow{right:1px}.fixedDataTableRowLayout_rowWrapper{position:absolute;top:0}.ScrollbarLayout_main{box-sizing:border-box;outline:none;overflow:hidden;position:absolute;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ScrollbarLayout_mainVertical{bottom:0;right:0;top:0;-webkit-transition-property:background-color width;transition-property:background-color width;width:15px}.ScrollbarLayout_mainVertical.public_Scrollbar_mainActive,.ScrollbarLayout_mainVertical:hover{width:17px}.ScrollbarLayout_mainHorizontal{bottom:0;height:15px;left:0;-webkit-transition-property:background-color height;transition-property:background-color height}.ScrollbarLayout_mainHorizontal.public_Scrollbar_mainActive,.ScrollbarLayout_mainHorizontal:hover{height:17px}.ScrollbarLayout_face{left:0;overflow:hidden;position:absolute;z-index:1}.ScrollbarLayout_face:after{border-radius:6px;content:'';display:block;position:absolute;-webkit-transition:background-color 250ms ease;transition:background-color 250ms ease}.ScrollbarLayout_faceHorizontal{bottom:0;left:0;top:0}.ScrollbarLayout_faceHorizontal:after{bottom:4px;left:0;top:4px;width:100%}.ScrollbarLayout_faceVertical{left:0;right:0;top:0}.ScrollbarLayout_faceVertical:after{height:100%;left:4px;right:4px;top:0} \ No newline at end of file diff --git a/dist/fixed-data-table-style.css b/dist/fixed-data-table-style.css index e4d13426..36a901c6 100644 --- a/dist/fixed-data-table-style.css +++ b/dist/fixed-data-table-style.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -159,6 +159,11 @@ .public_fixedDataTableRow_columnsShadow { background: 0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y; } + +.public_fixedDataTableRow_columnsRightShadow { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} /** * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table-style.min.css b/dist/fixed-data-table-style.min.css index 3545c561..78a3bd06 100644 --- a/dist/fixed-data-table-style.min.css +++ b/dist/fixed-data-table-style.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -9,4 +9,4 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -.public_fixedDataTable_main,.public_fixedDataTable_header,.public_fixedDataTable_hasBottomBorder{border-color:#d3d3d3}.public_fixedDataTable_header .public_fixedDataTableCell_main{font-weight:700}.public_fixedDataTable_header,.public_fixedDataTable_header .public_fixedDataTableCell_main{background-color:#f6f7f8;background-image:-webkit-linear-gradient(#fff,#efefef);background-image:linear-gradient(#fff,#efefef)}.public_fixedDataTable_footer .public_fixedDataTableCell_main{background-color:#f6f7f8;border-color:#d3d3d3}.public_fixedDataTable_topShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAF0lEQVR4AWPUkNeSBhHCjJoK2twgFisAFagCCp3pJlAAAAAASUVORK5CYII=) repeat-x}.public_fixedDataTable_bottomShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAHElEQVQI12MwNjZmZdAT1+Nm0JDWEGZQk1GTBgAWkwIeAEp52AAAAABJRU5ErkJggg==) repeat-x}.public_fixedDataTable_horizontalScrollbar .public_Scrollbar_mainHorizontal{background-color:#fff}.public_fixedDataTableCell_main{background-color:#fff;border-color:#d3d3d3}.public_fixedDataTableCell_highlighted{background-color:#f4f4f4}.public_fixedDataTableCell_cellContent{padding:8px}.public_fixedDataTableCell_columnResizerKnob{background-color:#0284ff}.public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent{margin-left:12px}.fixedDataTableCellLayout_columnReorderContainer{border-color:#0284ff;background-color:rgba(0,0,0,.1);width:12px;margin-right:-12px;float:left}.fixedDataTableCellLayout_columnReorderContainer:after{content:'::';position:absolute;top:50%;left:1px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.public_fixedDataTableColumnResizerLine_main{border-color:#0284ff}.public_fixedDataTableRow_main{background-color:#fff}.public_fixedDataTableRow_highlighted,.public_fixedDataTableRow_highlighted .public_fixedDataTableCell_main{background-color:#f6f7f8}.public_fixedDataTableRow_fixedColumnsDivider{border-color:#d3d3d3}.public_fixedDataTableRow_columnsShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y}.public_Scrollbar_main.public_Scrollbar_mainActive,.public_Scrollbar_main:hover{background-color:rgba(255,255,255,.8)}.public_Scrollbar_mainOpaque,.public_Scrollbar_mainOpaque.public_Scrollbar_mainActive,.public_Scrollbar_mainOpaque:hover{background-color:#fff}.public_Scrollbar_face:after{background-color:#c2c2c2}.public_Scrollbar_main:hover .public_Scrollbar_face:after,.public_Scrollbar_mainActive .public_Scrollbar_face:after,.public_Scrollbar_faceActive:after{background-color:#7d7d7d} \ No newline at end of file +.public_fixedDataTable_main,.public_fixedDataTable_header,.public_fixedDataTable_hasBottomBorder{border-color:#d3d3d3}.public_fixedDataTable_header .public_fixedDataTableCell_main{font-weight:700}.public_fixedDataTable_header,.public_fixedDataTable_header .public_fixedDataTableCell_main{background-color:#f6f7f8;background-image:-webkit-linear-gradient(#fff,#efefef);background-image:linear-gradient(#fff,#efefef)}.public_fixedDataTable_footer .public_fixedDataTableCell_main{background-color:#f6f7f8;border-color:#d3d3d3}.public_fixedDataTable_topShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAF0lEQVR4AWPUkNeSBhHCjJoK2twgFisAFagCCp3pJlAAAAAASUVORK5CYII=) repeat-x}.public_fixedDataTable_bottomShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAHElEQVQI12MwNjZmZdAT1+Nm0JDWEGZQk1GTBgAWkwIeAEp52AAAAABJRU5ErkJggg==) repeat-x}.public_fixedDataTable_horizontalScrollbar .public_Scrollbar_mainHorizontal{background-color:#fff}.public_fixedDataTableCell_main{background-color:#fff;border-color:#d3d3d3}.public_fixedDataTableCell_highlighted{background-color:#f4f4f4}.public_fixedDataTableCell_cellContent{padding:8px}.public_fixedDataTableCell_columnResizerKnob{background-color:#0284ff}.public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent{margin-left:12px}.fixedDataTableCellLayout_columnReorderContainer{border-color:#0284ff;background-color:rgba(0,0,0,.1);width:12px;margin-right:-12px;float:left}.fixedDataTableCellLayout_columnReorderContainer:after{content:'::';position:absolute;top:50%;left:1px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.public_fixedDataTableColumnResizerLine_main{border-color:#0284ff}.public_fixedDataTableRow_main{background-color:#fff}.public_fixedDataTableRow_highlighted,.public_fixedDataTableRow_highlighted .public_fixedDataTableCell_main{background-color:#f6f7f8}.public_fixedDataTableRow_fixedColumnsDivider{border-color:#d3d3d3}.public_fixedDataTableRow_columnsShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y}.public_fixedDataTableRow_columnsRightShadow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.public_Scrollbar_main.public_Scrollbar_mainActive,.public_Scrollbar_main:hover{background-color:rgba(255,255,255,.8)}.public_Scrollbar_mainOpaque,.public_Scrollbar_mainOpaque.public_Scrollbar_mainActive,.public_Scrollbar_mainOpaque:hover{background-color:#fff}.public_Scrollbar_face:after{background-color:#c2c2c2}.public_Scrollbar_main:hover .public_Scrollbar_face:after,.public_Scrollbar_mainActive .public_Scrollbar_face:after,.public_Scrollbar_faceActive:after{background-color:#7d7d7d} \ No newline at end of file diff --git a/dist/fixed-data-table.css b/dist/fixed-data-table.css index 682be562..263cc72b 100644 --- a/dist/fixed-data-table.css +++ b/dist/fixed-data-table.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -233,9 +233,14 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { } .fixedDataTableRowLayout_columnsShadow { + position: absolute; width: 4px; } +.fixedDataTableRowLayout_columnsRightShadow { + right: 1px; +} + .fixedDataTableRowLayout_rowWrapper { position: absolute; top: 0; @@ -491,6 +496,11 @@ body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main { .public_fixedDataTableRow_columnsShadow { background: 0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y; } + +.public_fixedDataTableRow_columnsRightShadow { + -webkit-transform: rotate(180deg); + transform: rotate(180deg); +} /** * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table.js b/dist/fixed-data-table.js index 848c4e0c..351d1dac 100644 --- a/dist/fixed-data-table.js +++ b/dist/fixed-data-table.js @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -208,7 +208,7 @@ return /******/ (function(modules) { // webpackBootstrap Table: _FixedDataTable2.default }; - FixedDataTableRoot.version = '0.7.4'; + FixedDataTableRoot.version = '0.7.5'; module.exports = FixedDataTableRoot; /***/ }, @@ -587,21 +587,9 @@ return /******/ (function(modules) { // webpackBootstrap componentWillMount: function componentWillMount() { var props = this.props; - var scrollToRow = props.scrollToRow; - if (scrollToRow !== undefined && scrollToRow !== null) { - this._rowToScrollTo = scrollToRow; - } - var scrollToColumn = props.scrollToColumn; - if (scrollToColumn !== undefined && scrollToColumn !== null) { - this._columnToScrollTo = scrollToColumn; - } - var viewportHeight = (props.height === undefined ? props.maxHeight : props.height) - (props.headerHeight || 0) - (props.footerHeight || 0) - (props.groupHeaderHeight || 0); this._scrollHelper = new _FixedDataTableScrollHelper2.default(props.rowsCount, props.rowHeight, viewportHeight, props.rowHeightGetter); - if (props.scrollTop) { - this._scrollHelper.scrollTo(props.scrollTop); - } this._didScrollStop = (0, _debounceCore2.default)(this._didScrollStop, 200, this); var touchEnabled = props.touchScrollEnabled === true; @@ -657,15 +645,6 @@ return /******/ (function(modules) { // webpackBootstrap this._reportContentHeight(); }, componentWillReceiveProps: function componentWillReceiveProps( /*object*/nextProps) { - var scrollToRow = nextProps.scrollToRow; - if (scrollToRow !== undefined && scrollToRow !== null) { - this._rowToScrollTo = scrollToRow; - } - var scrollToColumn = nextProps.scrollToColumn; - if (scrollToColumn !== undefined && scrollToColumn !== null) { - this._columnToScrollTo = scrollToColumn; - } - var newOverflowX = nextProps.overflowX; var newOverflowY = nextProps.overflowY; var touchEnabled = nextProps.touchScrollEnabled === true; @@ -1056,22 +1035,17 @@ return /******/ (function(modules) { // webpackBootstrap useGroupHeader = true; } + var scrollState; var firstRowIndex = oldState && oldState.firstRowIndex || 0; var firstRowOffset = oldState && oldState.firstRowOffset || 0; - var scrollX, scrollY, scrollState; + var scrollY = oldState ? oldState.scrollY : 0; + var scrollX = oldState ? oldState.scrollX : 0; - scrollX = oldState ? oldState.scrollX : 0; - if (props.scrollLeft !== this.props.scrollLeft) { + var lastScrollLeft = oldState ? oldState.scrollLeft : 0; + if (props.scrollLeft !== undefined && props.scrollLeft !== lastScrollLeft) { scrollX = props.scrollLeft; } - scrollY = oldState ? oldState.scrollY : 0; - if (props.scrollTop !== this.props.scrollTop) { - scrollState = this._scrollHelper.scrollTo(props.scrollTop); - firstRowIndex = scrollState.index; - firstRowOffset = scrollState.offset; - scrollY = scrollState.position; - } var groupHeaderHeight = useGroupHeader ? props.groupHeaderHeight : 0; if (oldState && (props.rowsCount !== oldState.rowsCount || props.rowHeight !== oldState.rowHeight)) { @@ -1087,12 +1061,20 @@ return /******/ (function(modules) { // webpackBootstrap this._scrollHelper.setRowHeightGetter(props.rowHeightGetter); } - if (this._rowToScrollTo !== undefined) { - scrollState = this._scrollHelper.scrollRowIntoView(this._rowToScrollTo); + var lastScrollToRow = oldState ? oldState.scrollToRow : undefined; + if (props.scrollToRow !== lastScrollToRow) { + scrollState = this._scrollHelper.scrollRowIntoView(props.scrollToRow); + firstRowIndex = scrollState.index; + firstRowOffset = scrollState.offset; + scrollY = scrollState.position; + } + + var lastScrollTop = oldState ? oldState.scrollTop : undefined; + if (props.scrollTop !== lastScrollTop) { + scrollState = this._scrollHelper.scrollTo(props.scrollTop); firstRowIndex = scrollState.index; firstRowOffset = scrollState.offset; scrollY = scrollState.position; - delete this._rowToScrollTo; } var columnResizingData; @@ -1115,10 +1097,11 @@ return /******/ (function(modules) { // webpackBootstrap var columnInfo = this._populateColumnsAndColumnData(columns, columnGroups, oldState); - if (this._columnToScrollTo !== undefined) { + var lastScrollToColumn = oldState ? oldState.scrollToColumn : undefined; + if (props.scrollToColumn !== null && props.scrollToColumn !== lastScrollToColumn) { // If selected column is a fixed column, don't scroll var fixedColumnsCount = columnInfo.bodyFixedColumns.length; - if (this._columnToScrollTo >= fixedColumnsCount) { + if (props.scrollToColumn >= fixedColumnsCount) { var totalFixedColumnsWidth = 0; var i, column; for (i = 0; i < columnInfo.bodyFixedColumns.length; ++i) { @@ -1126,7 +1109,7 @@ return /******/ (function(modules) { // webpackBootstrap totalFixedColumnsWidth += column.props.width; } - var scrollableColumnIndex = Math.min(this._columnToScrollTo - fixedColumnsCount, columnInfo.bodyScrollableColumns.length - 1); + var scrollableColumnIndex = Math.min(props.scrollToColumn - fixedColumnsCount, columnInfo.bodyScrollableColumns.length - 1); var previousColumnsWidth = 0; for (i = 0; i < scrollableColumnIndex; ++i) { @@ -1146,7 +1129,6 @@ return /******/ (function(modules) { // webpackBootstrap scrollX = previousColumnsWidth; } } - delete this._columnToScrollTo; } var useMaxHeight = props.height === undefined; @@ -4750,7 +4732,7 @@ return /******/ (function(modules) { // webpackBootstrap rowHeight: this.props.height, rowIndex: this.props.index }); - var columnsShadow = this._renderColumnsShadow(fixedColumnsWidth); + var columnsLeftShadow = this._renderColumnsLeftShadow(fixedColumnsWidth); var scrollableColumns = _React2.default.createElement(_FixedDataTableCellGroup2.default, { key: 'scrollable_cells', isScrolling: this.props.isScrolling, @@ -4769,6 +4751,8 @@ return /******/ (function(modules) { // webpackBootstrap rowHeight: this.props.height, rowIndex: this.props.index }); + var scrollableColumnsWidth = this._getColumnsWidth(this.props.scrollableColumns); + var columnsRightShadow = this._renderColumnsRightShadow(fixedColumnsWidth + scrollableColumnsWidth); return _React2.default.createElement( 'div', @@ -4785,8 +4769,9 @@ return /******/ (function(modules) { // webpackBootstrap { className: (0, _cx2.default)('fixedDataTableRowLayout/body') }, fixedColumns, scrollableColumns, - columnsShadow - ) + columnsLeftShadow + ), + columnsRightShadow ); }, _getColumnsWidth: function _getColumnsWidth( /*array*/columns) /*number*/{ @@ -4796,16 +4781,23 @@ return /******/ (function(modules) { // webpackBootstrap } return width; }, - _renderColumnsShadow: function _renderColumnsShadow( /*number*/left) /*?object*/{ - if (left > 0) { - var className = (0, _cx2.default)({ - 'fixedDataTableRowLayout/fixedColumnsDivider': true, - 'fixedDataTableRowLayout/columnsShadow': this.props.scrollLeft > 0, - 'public/fixedDataTableRow/fixedColumnsDivider': true, - 'public/fixedDataTableRow/columnsShadow': this.props.scrollLeft > 0 - }); + _renderColumnsLeftShadow: function _renderColumnsLeftShadow( /*number*/left) /*?object*/{ + var className = (0, _cx2.default)({ + 'fixedDataTableRowLayout/fixedColumnsDivider': left > 0, + 'fixedDataTableRowLayout/columnsShadow': this.props.scrollLeft > 0, + 'public/fixedDataTableRow/fixedColumnsDivider': left > 0, + 'public/fixedDataTableRow/columnsShadow': this.props.scrollLeft > 0 + }); + var style = { + left: left, + height: this.props.height + }; + return _React2.default.createElement('div', { className: className, style: style }); + }, + _renderColumnsRightShadow: function _renderColumnsRightShadow( /*number*/totalWidth) /*?object*/{ + if (Math.ceil(this.props.scrollLeft + this.props.width) < totalWidth) { + var className = (0, _cx2.default)('fixedDataTableRowLayout/columnsShadow', 'fixedDataTableRowLayout/columnsRightShadow', 'public/fixedDataTableRow/columnsShadow', 'public/fixedDataTableRow/columnsRightShadow'); var style = { - left: left, height: this.props.height }; return _React2.default.createElement('div', { className: className, style: style }); diff --git a/dist/fixed-data-table.min.css b/dist/fixed-data-table.min.css index 91a8c087..eb3062ba 100644 --- a/dist/fixed-data-table.min.css +++ b/dist/fixed-data-table.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -9,4 +9,4 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -.fixedDataTableCellGroupLayout_cellGroup{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.fixedDataTableCellGroupLayout_cellGroup>.public_fixedDataTableCell_main{display:inline-block;vertical-align:top;white-space:normal}.fixedDataTableCellGroupLayout_cellGroupWrapper{position:absolute;top:0}.fixedDataTableCellLayout_main{border-right-style:solid;border-width:0 1px 0 0;box-sizing:border-box;display:block;overflow:hidden;position:absolute;white-space:normal}.fixedDataTableCellLayout_lastChild{border-width:0 1px 1px 0}.fixedDataTableCellLayout_alignRight{text-align:right}.fixedDataTableCellLayout_alignCenter{text-align:center}.fixedDataTableCellLayout_wrap1{display:table}.fixedDataTableCellLayout_wrap2{display:table-row}.fixedDataTableCellLayout_wrap3{display:table-cell;vertical-align:middle}.fixedDataTableCellLayout_columnResizerContainer{position:absolute;right:0;width:6px;z-index:1}.fixedDataTableCellLayout_columnResizerContainer:hover{cursor:ew-resize}.fixedDataTableCellLayout_columnResizerContainer:hover .fixedDataTableCellLayout_columnResizerKnob{visibility:visible}.fixedDataTableCellLayout_columnResizerKnob{position:absolute;right:0;visibility:hidden;width:4px}.fixedDataTableColumnResizerLineLayout_mouseArea{cursor:ew-resize;position:absolute;right:-5px;width:12px}.fixedDataTableColumnResizerLineLayout_main{border-right-style:solid;border-right-width:1px;box-sizing:border-box;position:absolute;z-index:10}body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main,.fixedDataTableColumnResizerLineLayout_hiddenElem{display:none!important}.fixedDataTableLayout_main{border-style:solid;border-width:1px;box-sizing:border-box;overflow:hidden;position:relative}.fixedDataTableLayout_header,.fixedDataTableLayout_hasBottomBorder{border-bottom-style:solid;border-bottom-width:1px}.fixedDataTableLayout_footer .public_fixedDataTableCell_main{border-top-style:solid;border-top-width:1px}.fixedDataTableLayout_topShadow,.fixedDataTableLayout_bottomShadow{height:4px;left:0;position:absolute;right:0;z-index:1}.fixedDataTableLayout_bottomShadow{margin-top:-4px}.fixedDataTableLayout_rowsContainer{overflow:hidden;position:relative}.fixedDataTableLayout_horizontalScrollbar{bottom:0;position:absolute}.fixedDataTableRowLayout_main{box-sizing:border-box;overflow:hidden;position:absolute;top:0}.fixedDataTableRowLayout_body{left:0;position:absolute;top:0}.fixedDataTableRowLayout_fixedColumnsDivider{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-left-style:solid;border-left-width:1px;left:0;position:absolute;top:0;width:0}.fixedDataTableRowLayout_columnsShadow{width:4px}.fixedDataTableRowLayout_rowWrapper{position:absolute;top:0}.ScrollbarLayout_main{box-sizing:border-box;outline:none;overflow:hidden;position:absolute;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ScrollbarLayout_mainVertical{bottom:0;right:0;top:0;-webkit-transition-property:background-color width;transition-property:background-color width;width:15px}.ScrollbarLayout_mainVertical.public_Scrollbar_mainActive,.ScrollbarLayout_mainVertical:hover{width:17px}.ScrollbarLayout_mainHorizontal{bottom:0;height:15px;left:0;-webkit-transition-property:background-color height;transition-property:background-color height}.ScrollbarLayout_mainHorizontal.public_Scrollbar_mainActive,.ScrollbarLayout_mainHorizontal:hover{height:17px}.ScrollbarLayout_face{left:0;overflow:hidden;position:absolute;z-index:1}.ScrollbarLayout_face:after{border-radius:6px;content:'';display:block;position:absolute;-webkit-transition:background-color 250ms ease;transition:background-color 250ms ease}.ScrollbarLayout_faceHorizontal{bottom:0;left:0;top:0}.ScrollbarLayout_faceHorizontal:after{bottom:4px;left:0;top:4px;width:100%}.ScrollbarLayout_faceVertical{left:0;right:0;top:0}.ScrollbarLayout_faceVertical:after{height:100%;left:4px;right:4px;top:0}.public_fixedDataTable_main,.public_fixedDataTable_header,.public_fixedDataTable_hasBottomBorder{border-color:#d3d3d3}.public_fixedDataTable_header .public_fixedDataTableCell_main{font-weight:700}.public_fixedDataTable_header,.public_fixedDataTable_header .public_fixedDataTableCell_main{background-color:#f6f7f8;background-image:-webkit-linear-gradient(#fff,#efefef);background-image:linear-gradient(#fff,#efefef)}.public_fixedDataTable_footer .public_fixedDataTableCell_main{background-color:#f6f7f8;border-color:#d3d3d3}.public_fixedDataTable_topShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAF0lEQVR4AWPUkNeSBhHCjJoK2twgFisAFagCCp3pJlAAAAAASUVORK5CYII=) repeat-x}.public_fixedDataTable_bottomShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAHElEQVQI12MwNjZmZdAT1+Nm0JDWEGZQk1GTBgAWkwIeAEp52AAAAABJRU5ErkJggg==) repeat-x}.public_fixedDataTable_horizontalScrollbar .public_Scrollbar_mainHorizontal{background-color:#fff}.public_fixedDataTableCell_main{background-color:#fff;border-color:#d3d3d3}.public_fixedDataTableCell_highlighted{background-color:#f4f4f4}.public_fixedDataTableCell_cellContent{padding:8px}.public_fixedDataTableCell_columnResizerKnob{background-color:#0284ff}.public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent{margin-left:12px}.fixedDataTableCellLayout_columnReorderContainer{border-color:#0284ff;background-color:rgba(0,0,0,.1);width:12px;margin-right:-12px;float:left}.fixedDataTableCellLayout_columnReorderContainer:after{content:'::';position:absolute;top:50%;left:1px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.public_fixedDataTableColumnResizerLine_main{border-color:#0284ff}.public_fixedDataTableRow_main{background-color:#fff}.public_fixedDataTableRow_highlighted,.public_fixedDataTableRow_highlighted .public_fixedDataTableCell_main{background-color:#f6f7f8}.public_fixedDataTableRow_fixedColumnsDivider{border-color:#d3d3d3}.public_fixedDataTableRow_columnsShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y}.public_Scrollbar_main.public_Scrollbar_mainActive,.public_Scrollbar_main:hover{background-color:rgba(255,255,255,.8)}.public_Scrollbar_mainOpaque,.public_Scrollbar_mainOpaque.public_Scrollbar_mainActive,.public_Scrollbar_mainOpaque:hover{background-color:#fff}.public_Scrollbar_face:after{background-color:#c2c2c2}.public_Scrollbar_main:hover .public_Scrollbar_face:after,.public_Scrollbar_mainActive .public_Scrollbar_face:after,.public_Scrollbar_faceActive:after{background-color:#7d7d7d} \ No newline at end of file +.fixedDataTableCellGroupLayout_cellGroup{-webkit-backface-visibility:hidden;backface-visibility:hidden;left:0;overflow:hidden;position:absolute;top:0;white-space:nowrap}.fixedDataTableCellGroupLayout_cellGroup>.public_fixedDataTableCell_main{display:inline-block;vertical-align:top;white-space:normal}.fixedDataTableCellGroupLayout_cellGroupWrapper{position:absolute;top:0}.fixedDataTableCellLayout_main{border-right-style:solid;border-width:0 1px 0 0;box-sizing:border-box;display:block;overflow:hidden;position:absolute;white-space:normal}.fixedDataTableCellLayout_lastChild{border-width:0 1px 1px 0}.fixedDataTableCellLayout_alignRight{text-align:right}.fixedDataTableCellLayout_alignCenter{text-align:center}.fixedDataTableCellLayout_wrap1{display:table}.fixedDataTableCellLayout_wrap2{display:table-row}.fixedDataTableCellLayout_wrap3{display:table-cell;vertical-align:middle}.fixedDataTableCellLayout_columnResizerContainer{position:absolute;right:0;width:6px;z-index:1}.fixedDataTableCellLayout_columnResizerContainer:hover{cursor:ew-resize}.fixedDataTableCellLayout_columnResizerContainer:hover .fixedDataTableCellLayout_columnResizerKnob{visibility:visible}.fixedDataTableCellLayout_columnResizerKnob{position:absolute;right:0;visibility:hidden;width:4px}.fixedDataTableColumnResizerLineLayout_mouseArea{cursor:ew-resize;position:absolute;right:-5px;width:12px}.fixedDataTableColumnResizerLineLayout_main{border-right-style:solid;border-right-width:1px;box-sizing:border-box;position:absolute;z-index:10}body[dir="rtl"] .fixedDataTableColumnResizerLineLayout_main,.fixedDataTableColumnResizerLineLayout_hiddenElem{display:none!important}.fixedDataTableLayout_main{border-style:solid;border-width:1px;box-sizing:border-box;overflow:hidden;position:relative}.fixedDataTableLayout_header,.fixedDataTableLayout_hasBottomBorder{border-bottom-style:solid;border-bottom-width:1px}.fixedDataTableLayout_footer .public_fixedDataTableCell_main{border-top-style:solid;border-top-width:1px}.fixedDataTableLayout_topShadow,.fixedDataTableLayout_bottomShadow{height:4px;left:0;position:absolute;right:0;z-index:1}.fixedDataTableLayout_bottomShadow{margin-top:-4px}.fixedDataTableLayout_rowsContainer{overflow:hidden;position:relative}.fixedDataTableLayout_horizontalScrollbar{bottom:0;position:absolute}.fixedDataTableRowLayout_main{box-sizing:border-box;overflow:hidden;position:absolute;top:0}.fixedDataTableRowLayout_body{left:0;position:absolute;top:0}.fixedDataTableRowLayout_fixedColumnsDivider{-webkit-backface-visibility:hidden;backface-visibility:hidden;border-left-style:solid;border-left-width:1px;left:0;position:absolute;top:0;width:0}.fixedDataTableRowLayout_columnsShadow{position:absolute;width:4px}.fixedDataTableRowLayout_columnsRightShadow{right:1px}.fixedDataTableRowLayout_rowWrapper{position:absolute;top:0}.ScrollbarLayout_main{box-sizing:border-box;outline:none;overflow:hidden;position:absolute;-webkit-transition-duration:250ms;transition-duration:250ms;-webkit-transition-timing-function:ease;transition-timing-function:ease;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.ScrollbarLayout_mainVertical{bottom:0;right:0;top:0;-webkit-transition-property:background-color width;transition-property:background-color width;width:15px}.ScrollbarLayout_mainVertical.public_Scrollbar_mainActive,.ScrollbarLayout_mainVertical:hover{width:17px}.ScrollbarLayout_mainHorizontal{bottom:0;height:15px;left:0;-webkit-transition-property:background-color height;transition-property:background-color height}.ScrollbarLayout_mainHorizontal.public_Scrollbar_mainActive,.ScrollbarLayout_mainHorizontal:hover{height:17px}.ScrollbarLayout_face{left:0;overflow:hidden;position:absolute;z-index:1}.ScrollbarLayout_face:after{border-radius:6px;content:'';display:block;position:absolute;-webkit-transition:background-color 250ms ease;transition:background-color 250ms ease}.ScrollbarLayout_faceHorizontal{bottom:0;left:0;top:0}.ScrollbarLayout_faceHorizontal:after{bottom:4px;left:0;top:4px;width:100%}.ScrollbarLayout_faceVertical{left:0;right:0;top:0}.ScrollbarLayout_faceVertical:after{height:100%;left:4px;right:4px;top:0}.public_fixedDataTable_main,.public_fixedDataTable_header,.public_fixedDataTable_hasBottomBorder{border-color:#d3d3d3}.public_fixedDataTable_header .public_fixedDataTableCell_main{font-weight:700}.public_fixedDataTable_header,.public_fixedDataTable_header .public_fixedDataTableCell_main{background-color:#f6f7f8;background-image:-webkit-linear-gradient(#fff,#efefef);background-image:linear-gradient(#fff,#efefef)}.public_fixedDataTable_footer .public_fixedDataTableCell_main{background-color:#f6f7f8;border-color:#d3d3d3}.public_fixedDataTable_topShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAF0lEQVR4AWPUkNeSBhHCjJoK2twgFisAFagCCp3pJlAAAAAASUVORK5CYII=) repeat-x}.public_fixedDataTable_bottomShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAECAYAAABP2FU6AAAAHElEQVQI12MwNjZmZdAT1+Nm0JDWEGZQk1GTBgAWkwIeAEp52AAAAABJRU5ErkJggg==) repeat-x}.public_fixedDataTable_horizontalScrollbar .public_Scrollbar_mainHorizontal{background-color:#fff}.public_fixedDataTableCell_main{background-color:#fff;border-color:#d3d3d3}.public_fixedDataTableCell_highlighted{background-color:#f4f4f4}.public_fixedDataTableCell_cellContent{padding:8px}.public_fixedDataTableCell_columnResizerKnob{background-color:#0284ff}.public_fixedDataTableCell_hasReorderHandle .public_fixedDataTableCell_cellContent{margin-left:12px}.fixedDataTableCellLayout_columnReorderContainer{border-color:#0284ff;background-color:rgba(0,0,0,.1);width:12px;margin-right:-12px;float:left}.fixedDataTableCellLayout_columnReorderContainer:after{content:'::';position:absolute;top:50%;left:1px;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.public_fixedDataTableColumnResizerLine_main{border-color:#0284ff}.public_fixedDataTableRow_main{background-color:#fff}.public_fixedDataTableRow_highlighted,.public_fixedDataTableRow_highlighted .public_fixedDataTableCell_main{background-color:#f6f7f8}.public_fixedDataTableRow_fixedColumnsDivider{border-color:#d3d3d3}.public_fixedDataTableRow_columnsShadow{background:0 0 url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAABCAYAAAD5PA/NAAAAFklEQVQIHWPSkNeSBmJhTQVtbiDNCgASagIIuJX8OgAAAABJRU5ErkJggg==) repeat-y}.public_fixedDataTableRow_columnsRightShadow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}.public_Scrollbar_main.public_Scrollbar_mainActive,.public_Scrollbar_main:hover{background-color:rgba(255,255,255,.8)}.public_Scrollbar_mainOpaque,.public_Scrollbar_mainOpaque.public_Scrollbar_mainActive,.public_Scrollbar_mainOpaque:hover{background-color:#fff}.public_Scrollbar_face:after{background-color:#c2c2c2}.public_Scrollbar_main:hover .public_Scrollbar_face:after,.public_Scrollbar_mainActive .public_Scrollbar_face:after,.public_Scrollbar_faceActive:after{background-color:#7d7d7d} \ No newline at end of file diff --git a/dist/fixed-data-table.min.js b/dist/fixed-data-table.min.js index 2fd1676b..73dd31b8 100644 --- a/dist/fixed-data-table.min.js +++ b/dist/fixed-data-table.min.js @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.4 + * FixedDataTable v0.7.5 * * Copyright Schrodinger, LLC * All rights reserved. @@ -9,6 +9,6 @@ * of patent rights can be found in the PATENTS file in the same directory. */ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react"),require("react-dom")):"function"==typeof define&&define.amd?define(["react","react-dom"],t):"object"==typeof exports?exports.FixedDataTable=t(require("react"),require("react-dom")):e.FixedDataTable=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(i){if(o[i])return o[i].exports;var n=o[i]={exports:{},id:i,loaded:!1};return e[i].call(n.exports,n,n.exports,t),n.loaded=!0,n.exports}var o={};return t.m=e,t.c=o,t.p="",t(0)}([function(e,t,o){o(1),o(5),o(7),o(9),o(11),o(13),o(15),o(17),o(19),o(21),o(23),o(25),e.exports=o(27)},function(e,t){},,,,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t){},,function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(28),r=i(n),s=o(68),l=i(s),a=o(66),u=i(a),h=o(65),c=i(h),d={Cell:l["default"],Column:u["default"],ColumnGroup:c["default"],Table:r["default"]};d.version="0.7.4",e.exports=d},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=Object.assign||function(e){for(var t=1;te&&this.state.scrollX>0||e>=0&&this.state.scrollXe&&this.state.scrollY>0||e>=0&&this.state.scrollYi?i:this.state.height>i&&this.props.ownerHeight?Math.max(i,this.props.ownerHeight):this.state.height+this.state.maxScrollY,e!==this._contentHeight&&this.props.onContentHeightChange&&this.props.onContentHeightChange(e),this._contentHeight=e},componentDidMount:function(){this._reportContentHeight()},componentWillReceiveProps:function(e){var t=e.scrollToRow;void 0!==t&&null!==t&&(this._rowToScrollTo=t);var o=e.scrollToColumn;void 0!==o&&null!==o&&(this._columnToScrollTo=o);var i=e.overflowX,n=e.overflowY,r=e.touchScrollEnabled===!0;i===this.props.overflowX&&n===this.props.overflowY||(this._wheelHandler=new h["default"](this._onScroll,"hidden"!==i,"hidden"!==n),this._touchHandler=new d["default"](this._onScroll,"hidden"!==i&&r,"hidden"!==n&&r)),this.props.ownerHeight===e.ownerHeight&&this.props.scrollTop===e.scrollTop&&this.props.scrollLeft===e.scrollLeft||this._didScrollStart(),this._didScrollStop(),this.setState(this._calculateState(e,this.state))},componentDidUpdate:function(){this._reportContentHeight()},render:function(){var e,t=this.state,o=this.props,i=o.onColumnReorderEndCallback?this._onColumnReorder:null;t.useGroupHeader&&(e=s["default"].createElement(b["default"],{key:"group_header",isScrolling:this._isScrolling,className:(0,O["default"])((0,T["default"])("fixedDataTableLayout/header"),(0,T["default"])("public/fixedDataTable/header")),width:t.width,height:t.groupHeaderHeight,index:0,zIndex:1,offsetTop:0,scrollLeft:t.scrollX,fixedColumns:t.groupHeaderFixedColumns,scrollableColumns:t.groupHeaderScrollableColumns,onColumnResize:this._onColumnResize,onColumnReorder:i,onColumnReorderMove:this._onColumnReorderMove}));var n=this.state.maxScrollY,r=t.maxScrollX>0&&"hidden"!==t.overflowX&&t.showScrollbarX!==!1,l=n>0&&"hidden"!==t.overflowY&&t.showScrollbarY!==!1,a=r?p["default"].SIZE:0,u=t.height-a-2*A-t.footerHeight,h=t.useGroupHeader?t.groupHeaderHeight:0,c=h+t.headerHeight;u-=c;var d=0,f=null!=o.maxHeight?c+t.bodyHeight:c+u,m=f+t.footerHeight;void 0!==o.ownerHeight&&o.ownerHeightt.ownerHeight||t.scrollYr-U?o=Math.min(o+q,this.state.maxScrollX):U>=i&&(o=Math.max(o-q,0)),t.dragDistance+=this.state.scrollX-t.scrollStart,this.setState({scrollX:o,columnReorderingData:t})},_onColumnReorderEnd:function(e,t){var o=this.state.columnReorderingData.columnBefore,i=this.state.columnReorderingData.columnAfter,n=this.state.columnReorderingData.columnKey;this.setState({isReordering:!1,columnReorderingData:{}}),this.props.onColumnReorderEndCallback({columnBefore:o,columnAfter:i,reorderColumn:n});var r=this.props.onHorizontalScroll;this.state.columnReorderingData.scrollStart!==this.state.scrollX&&r&&r(this.state.scrollX)},_areColumnSettingsIdentical:function(e,t){if(e.length!==t.length)return!1;for(var o=0;o or "),o.push(e))});var i=!1;o.length&&o[0].type.__TableColumnGroup__&&(i=!0);var r,s,l,a=t&&t.firstRowIndex||0,u=t&&t.firstRowOffset||0;r=t?t.scrollX:0,e.scrollLeft!==this.props.scrollLeft&&(r=e.scrollLeft),s=t?t.scrollY:0,e.scrollTop!==this.props.scrollTop&&(l=this._scrollHelper.scrollTo(e.scrollTop),a=l.index,u=l.offset,s=l.position);var h=i?e.groupHeaderHeight:0;if(!t||e.rowsCount===t.rowsCount&&e.rowHeight===t.rowHeight)t&&e.rowHeightGetter!==t.rowHeightGetter&&this._scrollHelper.setRowHeightGetter(e.rowHeightGetter);else{var c=(void 0===e.height?e.maxHeight:e.height)-(e.headerHeight||0)-(e.footerHeight||0)-(e.groupHeaderHeight||0);this._scrollHelper=new C["default"](e.rowsCount,e.rowHeight,c,e.rowHeightGetter),l=this._scrollHelper.scrollToRow(a,u),a=l.index,u=l.offset,s=l.position}void 0!==this._rowToScrollTo&&(l=this._scrollHelper.scrollRowIntoView(this._rowToScrollTo),a=l.index,u=l.offset,s=l.position,delete this._rowToScrollTo);var d;d=e.isColumnResizing?t&&t.columnResizingData:Y;var f,m;if(i){var _=x["default"].adjustColumnGroupWidths(o,e.width);f=_.columns,m=_.columnGroups}else f=x["default"].adjustColumnWidths(o,e.width);var g=this._populateColumnsAndColumnData(f,m,t);if(void 0!==this._columnToScrollTo){var v=g.bodyFixedColumns.length;if(this._columnToScrollTo>=v){var w,b,R=0;for(w=0;ww;++w)b=g.bodyScrollableColumns[w],S+=b.props.width;var T=e.width-R,M=g.bodyScrollableColumns[y].props.width,D=S+M-T;D>r&&(r=D),r>S&&(r=S)}delete this._columnToScrollTo}var H=void 0===e.height,E=Math.round(H?e.maxHeight:e.height),k=e.footerHeight+e.headerHeight+h+2*A,I=E-k,O=this._scrollHelper.getContentHeight(),L=O+k,P=x["default"].getTotalWidth(f),F=P>e.width&&"hidden"!==e.overflowX&&e.showScrollbarX!==!1;F&&(I-=p["default"].SIZE,L+=p["default"].SIZE,k+=p["default"].SIZE);var N=Math.max(0,P-e.width),X=Math.max(0,O-I);r=Math.min(r,N),s=Math.min(s,X),X||(H&&(E=L),I=L-k),this._scrollHelper.setViewportHeight(I);var G=n({isColumnResizing:t&&t.isColumnResizing},g,e,{columns:f,columnGroups:m,columnResizingData:d,firstRowIndex:a,firstRowOffset:u,horizontalScrollbarVisible:F,maxScrollX:N,maxScrollY:X,reservedHeight:k,scrollContentHeight:O,scrollX:r,scrollY:s,bodyHeight:I,height:E,groupHeaderHeight:h,useGroupHeader:i});return G},_selectColumnElement:function(e,t){for(var o=[],i=0;iMath.abs(e)&&"hidden"!==this.props.overflowY){var i=this._scrollHelper.scrollBy(Math.round(t)),n=Math.max(0,i.contentHeight-this.state.bodyHeight);this.setState({firstRowIndex:i.index,firstRowOffset:i.offset,scrollY:i.position,scrollContentHeight:i.contentHeight,maxScrollY:n})}else if(e&&"hidden"!==this.props.overflowX){o+=e,o=0>o?0:o,o=o>this.state.maxScrollX?this.state.maxScrollX:o;var r=this.props.onHorizontalScroll;(r?r(o):!0)&&this.setState({scrollX:o})}this._didScrollStop()}},_onHorizontalScroll:function(e){if(this.isMounted()&&e!==this.state.scrollX){this._isScrolling||this._didScrollStart();var t=this.props.onHorizontalScroll;(t?t(e):!0)&&this.setState({scrollX:e}),this._didScrollStop()}},_onVerticalScroll:function(e){if(this.isMounted()&&e!==this.state.scrollY){this._isScrolling||this._didScrollStart();var t=this._scrollHelper.scrollTo(Math.round(e));this.setState({firstRowIndex:t.index,firstRowOffset:t.offset,scrollY:t.position,scrollContentHeight:t.contentHeight}),this._didScrollStop()}},_didScrollStart:function(){this.isMounted()&&!this._isScrolling&&(this._isScrolling=!0,this.props.onScrollStart&&this.props.onScrollStart(this.state.scrollX,this.state.scrollY,this.state.firstRowIndex))},_didScrollStop:function(){this.isMounted()&&this._isScrolling&&(this._isScrolling=!1,this.setState({redraw:!0}),this.props.onScrollEnd&&this.props.onScrollEnd(this.state.scrollX,this.state.scrollY,this.state.firstRowIndex))}}),j=s["default"].createClass({displayName:"HorizontalScrollbar",mixins:[a["default"]],propTypes:{contentSize:X.number.isRequired,offset:X.number.isRequired,onScroll:X.func.isRequired,position:X.number.isRequired,size:X.number.isRequired},componentWillMount:function(){this._initialRender=!0},componentDidMount:function(){this._initialRender=!1},render:function(){var e={height:p["default"].SIZE,width:this.props.size},t={height:p["default"].SIZE,position:"absolute",overflow:"hidden",width:this.props.size};return(0,N["default"])(t,0,this.props.offset,this._initialRender),s["default"].createElement("div",{className:(0,O["default"])((0,T["default"])("fixedDataTableLayout/horizontalScrollbar"),(0,T["default"])("public/fixedDataTable/horizontalScrollbar")),style:e},s["default"].createElement("div",{style:t},s["default"].createElement(p["default"],n({},this.props,{isOpaque:!0,orientation:"horizontal",offset:void 0}))))}});e.exports=K},function(e,t,o){"use strict";e.exports=o(30)},function(t,o){t.exports=e},function(e,t){"use strict";function o(e,t){if(e===t)return!0;var o;for(o in e)if(e.hasOwnProperty(o)&&(!t.hasOwnProperty(o)||e[o]!==t[o]))return!1;for(o in t)if(t.hasOwnProperty(o)&&!e.hasOwnProperty(o))return!1;return!0}var i={shouldComponentUpdate:function(e,t){return!o(this.props,e)||!o(this.state,t)}};e.exports=i},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;oi?-1:1),n&&!o&&(o=1>n?-1:1),{spinX:t,spinY:o,pixelX:i,pixelY:n}}var r=o(35),s=i(r),l=o(36),a=i(l),u=10,h=40,c=800;n.getEventType=function(){return s["default"].firefox()?"DOMMouseScroll":(0,a["default"])("wheel")?"wheel":"mousewheel"},e.exports=n},function(e,t){"use strict";function o(){if(!v){v=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),o=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(p=/\b(iPhone|iP[ao]d)/.exec(e),m=/\b(iP[ao]d)/.exec(e),d=/Android/i.exec(e),_=/FBAN\/\w+;/i.exec(e),g=/Mobile/i.exec(e),f=!!/Win64/.exec(e),t){i=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,i&&document&&document.documentMode&&(i=document.documentMode);var w=/(?:Trident\/(\d+.\d+))/.exec(e);a=w?parseFloat(w[1])+4:i,n=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,s=t[4]?parseFloat(t[4]):NaN,s?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),l=t&&t[1]?parseFloat(t[1]):NaN):l=NaN}else i=n=r=l=s=NaN;if(o){if(o[1]){var b=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);u=b?parseFloat(b[1].replace("_",".")):!0}else u=!1;h=!!o[2],c=!!o[3]}else u=h=c=!1}}var i,n,r,s,l,a,u,h,c,d,f,p,m,_,g,v=!1,w={ie:function(){return o()||i},ieCompatibilityMode:function(){return o()||a>i},ie64:function(){return w.ie()&&f},firefox:function(){return o()||n},opera:function(){return o()||r},webkit:function(){return o()||s},safari:function(){return w.webkit()},chrome:function(){return o()||l},windows:function(){return o()||h},osx:function(){return o()||u},linux:function(){return o()||c},iphone:function(){return o()||p},mobile:function(){return o()||p||m||d||g},nativeApp:function(){return o()||_},android:function(){return o()||d},ipad:function(){return o()||m}};e.exports=w},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!l["default"].canUseDOM||t&&!("addEventListener"in document))return!1;var o="on"+e,i=o in document;if(!i){var n=document.createElement("div");n.setAttribute(o,"return;"),i="function"==typeof n[o]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var r,s=o(37),l=i(s);l["default"].canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=n},function(e,t){"use strict";var o=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen,isInWorker:!o};e.exports=i},function(e,t,o){(function(t){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(33),r=i(n),s=o(39),l=i(s),a=0,u=l["default"]||function(e){var o=Date.now(),i=Math.max(0,16-(o-a));return a=o+i,t.setTimeout(function(){e(Date.now())},i)};u(r["default"]),e.exports=u}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";var o=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame;e.exports=o}).call(t,function(){return this}())},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;o2||Math.abs(this._deltaY)>2)&&(this._stopPropagation()&&e.stopPropagation(),r=!0),r===!0&&null===this._dragAnimationId&&(this._dragAnimationId=(0,u["default"])(this._didTouchMove))}}},{key:"_didTouchMove",value:function(){this._dragAnimationId=null,this._onTouchScrollCallback(this._deltaX,this._deltaY),this._accumulatedDeltaX+=this._deltaX,this._accumulatedDeltaY+=this._deltaY,this._deltaX=0,this._deltaY=0}},{key:"_track",value:function(){var e=Date.now(),t=e-this._lastFrameTimestamp,o=this._velocityX,i=this._velocityY,n=.8;f>t&&(n*=t/f),0===o&&0===i&&(n=1),this._velocityX=n*(f*this._accumulatedDeltaX/(1+t)),1>n&&(this._velocityX+=(1-n)*o),this._velocityY=n*(f*this._accumulatedDeltaY/(1+t)),1>n&&(this._velocityY+=(1-n)*i),this._accumulatedDeltaX=0,this._accumulatedDeltaY=0,this._lastFrameTimestamp=e}},{key:"_startAutoScroll",value:function(){this._autoScrollTimestamp=Date.now(),(this._deltaX>0||this.deltaY>0)&&this._didTouchMove(),this._track(),this._autoScroll()}},{key:"_autoScroll",value:function(){var e=Date.now()-this._autoScrollTimestamp,t=c*Math.exp(-e/d),o=t*this._velocityX,i=t*this._velocityY;(Math.abs(o)<=5||!this._handleScrollX(o,i))&&(o=0),(Math.abs(i)<=5||!this._handleScrollY(i,o))&&(i=0),0===o&&0===i||(this._onTouchScrollCallback(o,i),(0,u["default"])(this._autoScroll))}}]),e}();e.exports=p},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(42),r=i(n),s=o(45),l=i(s),a=o(29),u=i(a),h=o(46),c=i(h),d=o(31),f=i(d),p=o(32),m=i(p),_=o(48),g=i(_),v=o(49),w=i(v),b=o(33),R=i(b),C=o(50),y=i(C),x=u["default"].PropTypes,S={position:0,scrollable:!1},T=parseInt((0,g["default"])("scrollbar-face-margin"),10),M=2*T,D=30,H=40,E=null,k=u["default"].createClass({displayName:"Scrollbar",mixins:[f["default"]],propTypes:{contentSize:x.number.isRequired,defaultPosition:x.number,isOpaque:x.bool,orientation:x.oneOf(["vertical","horizontal"]),onScroll:x.func,position:x.number,size:x.number.isRequired,trackColor:x.oneOf(["gray"]),zIndex:x.number,verticalTop:x.number},getInitialState:function(){var e=this.props;return this._calculateState(e.position||e.defaultPosition||0,e.size,e.contentSize,e.orientation)},componentWillReceiveProps:function(e){var t=e.position;void 0===t?this._setNextState(this._calculateState(this.state.position,e.size,e.contentSize,e.orientation)):this._setNextState(this._calculateState(t,e.size,e.contentSize,e.orientation),e)},getDefaultProps:function(){return{defaultPosition:0,isOpaque:!1,onScroll:R["default"],orientation:"vertical",zIndex:99}},render:function(){if(!this.state.scrollable)return null;var e,t,o=this.props.size,i=this.state.isHorizontal,n=!i,r=this.state.focused||this.state.isDragging,s=this.state.faceSize,l=this.props.isOpaque,a=this.props.verticalTop||0,h=(0,w["default"])({"ScrollbarLayout/main":!0,"ScrollbarLayout/mainVertical":n,"ScrollbarLayout/mainHorizontal":i,"public/Scrollbar/main":!0,"public/Scrollbar/mainOpaque":l,"public/Scrollbar/mainActive":r}),c=(0,w["default"])({"ScrollbarLayout/face":!0,"ScrollbarLayout/faceHorizontal":i,"ScrollbarLayout/faceVertical":n,"public/Scrollbar/faceActive":r,"public/Scrollbar/face":!0}),d=this.state.position*this.state.scale+T;return i?(e={width:o},t={width:s-M},(0,y["default"])(t,d,0,this._initialRender)):(e={top:a,height:o},t={height:s-M},(0,y["default"])(t,0,d,this._initialRender)),e.zIndex=this.props.zIndex,"gray"===this.props.trackColor&&(e.backgroundColor=(0,g["default"])("fbui-desktop-background-light")),u["default"].createElement("div",{onFocus:this._onFocus,onBlur:this._onBlur,onKeyDown:this._onKeyDown,onMouseDown:this._onMouseDown,onWheel:this._wheelHandler.onWheel,className:h,style:e,tabIndex:0},u["default"].createElement("div",{ref:"face",className:c,style:t}))},componentWillMount:function(){var e="horizontal"===this.props.orientation,t=e?this._onWheelX:this._onWheelY;this._wheelHandler=new m["default"](t,this._shouldHandleX,this._shouldHandleY),this._initialRender=!0},componentDidMount:function(){this._mouseMoveTracker=new r["default"](this._onMouseMove,this._onMouseMoveEnd,document.documentElement),void 0!==this.props.position&&this.state.position!==this.props.position&&this._didScroll(),this._initialRender=!1},componentWillUnmount:function(){this._nextState=null,this._mouseMoveTracker.releaseMouseMoves(),E===this&&(E=null),delete this._mouseMoveTracker},scrollBy:function(e){this._onWheel(e)},_shouldHandleX:function(e){return"horizontal"===this.props.orientation?this._shouldHandleChange(e):!1},_shouldHandleY:function(e){return"horizontal"!==this.props.orientation?this._shouldHandleChange(e):!1},_shouldHandleChange:function(e){var t=this._calculateState(this.state.position+e,this.props.size,this.props.contentSize,this.props.orientation);return t.position!==this.state.position},_calculateState:function(e,t,o,i){if(1>t||t>=o)return S;var n=e+"_"+t+"_"+o+"_"+i;if(this._stateKey===n)return this._stateForKey;var r="horizontal"===i,s=t/o,l=t*s;D>l&&(s=(t-D)/(o-t),l=D);var a=!0,u=o-t;0>e?e=0:e>u&&(e=u);var h=this._mouseMoveTracker?this._mouseMoveTracker.isDragging():!1,c={faceSize:l,isDragging:h,isHorizontal:r,position:e,scale:s,scrollable:a};return this._stateKey=n,this._stateForKey=c,c},_onWheelY:function(e,t){this._onWheel(t)},_onWheelX:function(e,t){this._onWheel(e)},_onWheel:function(e){var t=this.props;this._setNextState(this._calculateState(this.state.position+e,t.size,t.contentSize,t.orientation))},_onMouseDown:function(e){var t;if(e.target!==c["default"].findDOMNode(this.refs.face)){var o=e.nativeEvent,i=this.state.isHorizontal?o.offsetX||o.layerX:o.offsetY||o.layerY,n=this.props; -i/=this.state.scale,t=this._calculateState(i-.5*this.state.faceSize/this.state.scale,n.size,n.contentSize,n.orientation)}else t={};t.focused=!0,this._setNextState(t),this._mouseMoveTracker.captureMouseMoves(e),c["default"].findDOMNode(this).focus()},_onMouseMove:function(e,t){var o=this.props,i=this.state.isHorizontal?e:t;i/=this.state.scale,this._setNextState(this._calculateState(this.state.position+i,o.size,o.contentSize,o.orientation))},_onMouseMoveEnd:function(){this._nextState=null,this._mouseMoveTracker.releaseMouseMoves(),this.setState({isDragging:!1})},_onKeyDown:function(e){var t=e.keyCode;if(t!==l["default"].TAB){var o=H,i=0;if(this.state.isHorizontal)switch(t){case l["default"].HOME:i=-1,o=this.props.contentSize;break;case l["default"].LEFT:i=-1;break;case l["default"].RIGHT:i=1;break;default:return}if(!this.state.isHorizontal)switch(t){case l["default"].SPACE:i=e.shiftKey?-1:1;break;case l["default"].HOME:i=-1,o=this.props.contentSize;break;case l["default"].UP:i=-1;break;case l["default"].DOWN:i=1;break;case l["default"].PAGE_UP:i=-1,o=this.props.size;break;case l["default"].PAGE_DOWN:i=1,o=this.props.size;break;default:return}e.preventDefault();var n=this.props;this._setNextState(this._calculateState(this.state.position+o*i,n.size,n.contentSize,n.orientation))}},_onFocus:function(){this.setState({focused:!0})},_onBlur:function(){this.setState({focused:!1})},_blur:function(){if(this.isMounted())try{this._onBlur(),c["default"].findDOMNode(this).blur()}catch(e){}},_setNextState:function(e,t){t=t||this.props;var o=t.position,i=this.state.position!==e.position;if(void 0===o){var n=i?this._didScroll:void 0;this.setState(e,n)}else{if(o!==e.position)return void(void 0!==e.position&&e.position!==this.state.position&&this.props.onScroll(e.position));this.setState(e)}i&&E!==this&&(E&&E._blur(),E=this)},_didScroll:function(){this.props.onScroll(this.state.position)}});k.KEYBOARD_SCROLL_AMOUNT=H,k.SIZE=parseInt((0,g["default"])("scrollbar-size"),10),e.exports=k},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;o0;)this._addRowToBuffer(t,this._viewportRowsBegin,this._viewportRowsEnd-1),t++,e--;return this._rows}},{key:"getRows",value:function(e,t){var o=t,i=o,n=e,r=Math.min(e+this._maxVisibleRowCount,this._rowsCount);for(this._viewportRowsBegin=e;r>n||i=r&&(i=this._bufferSet.replaceFurthestValuePosition(t,o,e)),null===i?(i=this._bufferSet.getNewPositionForValue(e),this._rows[i]=e):this._rows[i]=e}}]),e}();e.exports=p},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;o=e&&t>=n)return null;var r;e-i>n-t?(r=i,this._smallValues.pop()):(r=n,this._largeValues.pop());var s=this._valueToPositionMap[r];return delete this._valueToPositionMap[r],this._valueToPositionMap[o]=s,this._pushToHeaps(s,o),s}},{key:"_pushToHeaps",value:function(e,t){var o={position:e,value:t};this._smallValues.push(o),this._largeValues.push(o)}},{key:"_cleanHeaps",value:function(){this._cleanHeap(this._smallValues),this._cleanHeap(this._largeValues);var e=Math.min(this._smallValues.size(),this._largeValues.size()),t=Math.max(this._smallValues.size(),this._largeValues.size());t>10*e&&this._recreateHeaps()}},{key:"_recreateHeaps",value:function(){for(var e=this._smallValues.size()t.value}}]),e}();e.exports=h},function(e,t){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){return t>e}var n=function(){function e(e,t){for(var o=0;o0&&(this._items[0]=t,this._sinkDown(0)),e}}},{key:"push",value:function(e){this._items[this._size++]=e,this._bubbleUp(this._size-1)}},{key:"size",value:function(){return this._size}},{key:"peek",value:function(){return 0!==this._size?this._items[0]:void 0}},{key:"_heapify",value:function(){for(var e=Math.floor((this._size+1)/2);e>=0;e--)this._sinkDown(e)}},{key:"_bubbleUp",value:function(e){for(var t=this._items[e];e>0;){var o=Math.floor((e+1)/2)-1,i=this._items[o];if(this._comparator(i,t))return;this._items[o]=t,this._items[e]=i,e=o}}},{key:"_sinkDown",value:function(e){for(var t=this._items[e];;){var o=2*(e+1)-1,i=2*(e+1),n=-1;if(oe?t:e>o?o:e}e.exports=o},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=Object.assign||function(e){for(var t=1;t0){var t=(0,h["default"])({"fixedDataTableRowLayout/fixedColumnsDivider":!0,"fixedDataTableRowLayout/columnsShadow":this.props.scrollLeft>0,"public/fixedDataTableRow/fixedColumnsDivider":!0,"public/fixedDataTableRow/columnsShadow":this.props.scrollLeft>0}),o={left:e,height:this.props.height};return s["default"].createElement("div",{className:t,style:o})}},_onClick:function(e){this.props.onClick(e,this.props.index)},_onDoubleClick:function(e){this.props.onDoubleClick(e,this.props.index)},_onMouseDown:function(e){this.props.onMouseDown(e,this.props.index)},_onMouseEnter:function(e){this.props.onMouseEnter(e,this.props.index)},_onMouseLeave:function(e){this.props.onMouseLeave(e,this.props.index)}}),g=s["default"].createClass({displayName:"FixedDataTableRow",propTypes:{isScrolling:m.bool,height:m.number.isRequired,zIndex:m.number,offsetTop:m.number.isRequired,width:m.number.isRequired},componentWillMount:function(){this._initialRender=!0},componentDidMount:function(){this._initialRender=!1},render:function(){var e={width:this.props.width,height:this.props.height,zIndex:this.props.zIndex?this.props.zIndex:0};return(0,p["default"])(e,0,this.props.offsetTop,this._initialRender),s["default"].createElement("div",{style:e,className:(0,h["default"])("fixedDataTableRowLayout/rowWrapper")},s["default"].createElement(_,n({},this.props,{offsetTop:void 0,zIndex:void 0})))}});e.exports=g},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var o={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=e[i]);return o}var r=Object.assign||function(e){for(var t=1;ts;s++){var a=t[s].props,h=a.allowCellsRecycling&&!n;if(!h||r-e.left<=e.width&&r-e.left+a.width>=0){var c="cell_"+s;o[s]=this._renderCell(e.rowIndex,e.rowHeight,a,r,c,i,n)}r+=a.width}var d={height:e.height,position:"absolute",width:i,zIndex:e.zIndex};return(0,m["default"])(d,-1*g*e.left,0,this._initialRender),u["default"].createElement("div",{className:(0,f["default"])("fixedDataTableCellGroupLayout/cellGroup"),style:d},o)},_renderCell:function(e,t,o,i,n,r,s){var l=o.isResizable&&this.props.onColumnResize,a=l?this.props.onColumnResize:null,h=o.isReorderable&&this.props.onColumnReorder&&-1===e&&r!==o.width,d=h?this.props.onColumnReorder:null,f=o.cellClassName;return u["default"].createElement(c["default"],{isScrolling:this.props.isScrolling,align:o.align,className:f,height:t,key:n,maxWidth:o.maxWidth,minWidth:o.minWidth,onColumnResize:a,onColumnReorder:d,onColumnReorderMove:this.props.onColumnReorderMove,onColumnReorderEnd:this.props.onColumnReorderEnd,isColumnReordering:s,columnReorderingData:this.props.columnReorderingData,rowIndex:e,columnKey:o.columnKey,width:o.width,left:i,cell:o.cell,columnGroupWidth:r})},_getColumnsWidth:function(e){for(var t=0,o=0;o should never render")}});e.exports=l},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(29),r=i(n),s=r["default"].PropTypes,l=r["default"].createClass({displayName:"FixedDataTableColumn",statics:{__TableColumn__:!0},propTypes:{align:s.oneOf(["left","center","right"]),fixed:s.bool,header:s.oneOfType([s.node,s.func]),cell:s.oneOfType([s.node,s.func]),footer:s.oneOfType([s.node,s.func]),columnKey:s.oneOfType([s.string,s.number]),width:s.number.isRequired,minWidth:s.number,maxWidth:s.number,flexGrow:s.number,isResizable:s.bool,isReorderable:s.bool,allowCellsRecycling:s.bool},getDefaultProps:function(){return{allowCellsRecycling:!1,fixed:!1}},render:function(){throw new Error("Component should never render")}});e.exports=l},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var o={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=e[i]);return o}var r=Object.assign||function(e){for(var t=1;ta,h=i>e.left,c=!1;u?a>n&&(c=!0,h?o.displacement=e.columnReorderingData.columnWidth:o.displacement=0):s>a&&(c=!0,h?o.displacement=0:o.displacement=-1*e.columnReorderingData.columnWidth),c?u?e.columnReorderingData.columnAfter||(e.columnReorderingData.columnAfter=e.columnKey):e.columnReorderingData.columnBefore=e.columnKey:u?e.columnReorderingData.columnBefore=e.columnKey:e.columnReorderingData.columnAfter||(e.columnReorderingData.columnAfter=e.columnKey)}}else o.displacement=0;this.setState(o)},getDefaultProps:function(){return b},render:function(){var e=this.props,t=e.height,o=e.width,i=e.columnKey,s=n(e,["height","width","columnKey"]),a={height:t,width:o};1===v?a.left=s.left:a.right=s.left,this.state.isReorderingThisColumn&&(a.transform="translateX("+this.state.displacement+"px) translateZ(0)",a.zIndex=1);var h,c=(0,g["default"])((0,m["default"])({"fixedDataTableCellLayout/main":!0,"fixedDataTableCellLayout/lastChild":s.lastChild,"fixedDataTableCellLayout/alignRight":"right"===s.align,"fixedDataTableCellLayout/alignCenter":"center"===s.align,"public/fixedDataTableCell/alignRight":"right"===s.align,"public/fixedDataTableCell/highlighted":s.highlighted,"public/fixedDataTableCell/main":!0,"public/fixedDataTableCell/hasReorderHandle":!!s.onColumnReorder,"public/fixedDataTableCell/reordering":this.state.isReorderingThisColumn}),s.className);if(s.onColumnResize){var d={height:t};h=f["default"].createElement("div",{className:(0,m["default"])("fixedDataTableCellLayout/columnResizerContainer"),style:d,onMouseDown:this._onColumnResizerMouseDown},f["default"].createElement("div",{className:(0,g["default"])((0,m["default"])("fixedDataTableCellLayout/columnResizerKnob"),(0,m["default"])("public/fixedDataTableCell/columnResizerKnob")),style:d}))}var p;s.onColumnReorder&&(p=f["default"].createElement(u["default"],r({columnKey:this.columnKey,onMouseDown:this._onColumnReorderMouseDown, -height:t},this.props)));var _={columnKey:i,height:t,width:o};s.rowIndex>=0&&(_.rowIndex=s.rowIndex);var w;return w=f["default"].isValidElement(s.cell)?f["default"].cloneElement(s.cell,_):"function"==typeof s.cell?s.cell(_):f["default"].createElement(l["default"],_,s.cell),f["default"].createElement("div",{className:c,style:a},h,p,w)},_onColumnResizerMouseDown:function(e){this.props.onColumnResize(this.props.left,this.props.width,this.props.minWidth,this.props.maxWidth,this.props.columnKey,e)},_onColumnReorderMouseDown:function(e){this.props.onColumnReorder(this.props.columnKey,this.props.width,this.props.left,e)}});e.exports=R},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var o={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=e[i]);return o}var r=Object.assign||function(e){for(var t=1;t1)for(var i=1;o>i;i++)t=arguments[i],t&&(e=(e?e+" ":"")+t);return e}e.exports=o},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(42),r=i(n),s=o(64),l=(i(s),o(29)),a=i(l),u=o(31),h=i(u),c=o(60),d=(i(c),o(49)),f=i(d),p=a["default"].PropTypes,m=a["default"].createClass({displayName:"FixedDataTableColumnReorderHandle",mixins:[h["default"]],propTypes:{onColumnReorderEnd:p.func,columnKey:p.oneOfType([p.string,p.number])},getInitialState:function(){return{dragDistance:0}},componentWillReceiveProps:function(e){},componentWillUnmount:function(){this._mouseMoveTracker&&(cancelAnimationFrame(this.frameId),this.frameId=null,this._mouseMoveTracker.releaseMouseMoves(),this._mouseMoveTracker=null)},render:function(){var e={height:this.props.height};return a["default"].createElement("div",{className:(0,f["default"])({"fixedDataTableCellLayout/columnReorderContainer":!0,"fixedDataTableCellLayout/columnReorderContainer/active":!1}),onMouseDown:this.onMouseDown,style:e})},onMouseDown:function(e){var t=e.target.getBoundingClientRect(),o=e.clientX-t.offsetLeft,i=o+e.target.parentElement.offsetLeft;this._mouseMoveTracker=new r["default"](this._onMove,this._onColumnReorderEnd,document.body),this._mouseMoveTracker.captureMouseMoves(e),this.setState({dragDistance:0}),this.props.onMouseDown({columnKey:this.props.columnKey,mouseLocation:{dragDistance:0,inElement:o,inColumnGroup:i}}),this._distance=0,this._animating=!0,this.frameId=requestAnimationFrame(this._updateState)},_onMove:function(e){this._distance=this.state.dragDistance+e},_onColumnReorderEnd:function(){this._animating=!1,cancelAnimationFrame(this.frameId),this.frameId=null,this._mouseMoveTracker.releaseMouseMoves(),this.props.onColumnReorderEnd()},_updateState:function(){this._animating&&(this.frameId=requestAnimationFrame(this._updateState)),this.setState({dragDistance:this._distance}),this.props.onColumnReorderMove(this._distance)}});e.exports=m},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(42),r=i(n),s=o(64),l=i(s),a=o(29),u=i(a),h=o(31),c=i(h),d=o(60),f=i(d),p=o(49),m=i(p),_=u["default"].PropTypes,g=u["default"].createClass({displayName:"FixedDataTableColumnResizeHandle",mixins:[c["default"]],propTypes:{visible:_.bool.isRequired,height:_.number.isRequired,leftOffset:_.number.isRequired,knobHeight:_.number.isRequired,initialWidth:_.number,minWidth:_.number,maxWidth:_.number,initialEvent:_.object,onColumnResizeEnd:_.func,columnKey:_.oneOfType([_.string,_.number])},getInitialState:function(){return{width:0,cursorDelta:0}},componentWillReceiveProps:function(e){e.initialEvent&&!this._mouseMoveTracker.isDragging()&&(this._mouseMoveTracker.captureMouseMoves(e.initialEvent),this.setState({width:e.initialWidth,cursorDelta:e.initialWidth}))},componentDidMount:function(){this._mouseMoveTracker=new r["default"](this._onMove,this._onColumnResizeEnd,document.body)},componentWillUnmount:function(){this._mouseMoveTracker.releaseMouseMoves(),this._mouseMoveTracker=null},render:function(){var e={width:this.state.width,height:this.props.height};return l["default"].isRTL()?e.right=this.props.leftOffset:e.left=this.props.leftOffset,u["default"].createElement("div",{className:(0,m["default"])({"fixedDataTableColumnResizerLineLayout/main":!0,"fixedDataTableColumnResizerLineLayout/hiddenElem":!this.props.visible,"public/fixedDataTableColumnResizerLine/main":!0}),style:e},u["default"].createElement("div",{className:(0,m["default"])("fixedDataTableColumnResizerLineLayout/mouseArea"),style:{height:this.props.height}}))},_onMove:function(e){l["default"].isRTL()&&(e=-e);var t=this.state.cursorDelta+e,o=(0,f["default"])(t,this.props.minWidth,this.props.maxWidth);this.setState({width:o,cursorDelta:t})},_onColumnResizeEnd:function(){this._mouseMoveTracker.releaseMouseMoves(),this.props.onColumnResizeEnd(this.state.width,this.props.columnKey)}});e.exports=g},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;os;++s)this._storedHeights[s]=o;this._rowCount=t,this._position=0,this._contentHeight=t*o,this._defaultRowHeight=o,this._rowHeightGetter=r?r:function(){return o},this._viewportHeight=i,this.scrollRowIntoView=this.scrollRowIntoView.bind(this),this.setViewportHeight=this.setViewportHeight.bind(this),this.scrollBy=this.scrollBy.bind(this),this.scrollTo=this.scrollTo.bind(this),this.scrollToRow=this.scrollToRow.bind(this),this.setRowHeightGetter=this.setRowHeightGetter.bind(this),this.getContentHeight=this.getContentHeight.bind(this),this.getRowPosition=this.getRowPosition.bind(this),this._updateHeightsInViewport(0,0)}return r(e,[{key:"setRowHeightGetter",value:function(e){this._rowHeightGetter=e}},{key:"setViewportHeight",value:function(e){this._viewportHeight=e}},{key:"getContentHeight",value:function(){return this._contentHeight}},{key:"_updateHeightsInViewport",value:function(e,t){for(var o=t,i=e;o<=this._viewportHeight&&i=0&&t>=e-h;){var o=this._updateRowHeight(t);this._position+=o,t--}}},{key:"_updateRowHeight",value:function(e){if(0>e||e>=this._rowCount)return 0;var t=this._rowHeightGetter(e);if(t!==this._storedHeights[e]){var o=t-this._storedHeights[e];return this._rowOffsets.set(e,t),this._storedHeights[e]=t,this._contentHeight+=o,o}return 0}},{key:"getRowPosition",value:function(e){return this._updateRowHeight(e),this._rowOffsets.sumUntil(e)}},{key:"scrollBy",value:function(e){if(0===this._rowCount)return c;var t=this._rowOffsets.greatestLowerBound(this._position);t=(0,u["default"])(t,0,Math.max(this._rowCount-1,0));var o=this._rowOffsets.sumUntil(t),i=t,n=this._position,r=this._updateRowHeight(i);0!==o&&(n+=r);var s=this._storedHeights[i]-(n-o);if(e>=0)for(;e>0&&ie?(n+=e,e=0):(e-=s,n+=s,i++),ie){e=-e;for(var l=this._storedHeights[i]-s;e>0&&i>=0;)if(l>e?(n-=e,e=0):(n-=l,e-=l,i--),i>=0){var a=this._updateRowHeight(i);l=this._storedHeights[i],n+=a}}var h=this._contentHeight-this._viewportHeight;n=(0,u["default"])(n,0,h),this._position=n;var d=this._rowOffsets.greatestLowerBound(n);d=(0,u["default"])(d,0,Math.max(this._rowCount-1,0)),o=this._rowOffsets.sumUntil(d);var f=o-n;return this._updateHeightsInViewport(d,f),this._updateHeightsAboveViewport(d),{index:d,offset:f,position:this._position,contentHeight:this._contentHeight}}},{key:"_getRowAtEndPosition",value:function(e){this._updateRowHeight(e);for(var t=e,o=this._storedHeights[t];o=0;)t--,t>=0&&(this._updateRowHeight(t),o+=this._storedHeights[t]);var i=this._rowOffsets.sumTo(e)-this._viewportHeight;return 0>i&&(i=0),i}},{key:"scrollTo",value:function(e){if(0===this._rowCount)return c;if(0>=e)return this._position=0,this._updateHeightsInViewport(0,0),{index:0,offset:0,position:this._position,contentHeight:this._contentHeight};if(e>=this._contentHeight-this._viewportHeight){var t=this._rowCount-1;e=this._getRowAtEndPosition(t)}this._position=e;var o=this._rowOffsets.greatestLowerBound(e);o=(0,u["default"])(o,0,Math.max(this._rowCount-1,0));var i=this._rowOffsets.sumUntil(o),n=i-e;return this._updateHeightsInViewport(o,n),this._updateHeightsAboveViewport(o),{index:o,offset:n,position:this._position,contentHeight:this._contentHeight}}},{key:"scrollToRow",value:function(e,t){e=(0,u["default"])(e,0,Math.max(this._rowCount-1,0)),t=(0,u["default"])(t,-this._storedHeights[e],0);var o=this._rowOffsets.sumUntil(e);return this.scrollTo(o-t)}},{key:"scrollRowIntoView",value:function(e){e=(0,u["default"])(e,0,Math.max(this._rowCount-1,0));var t=this._rowOffsets.sumUntil(e),o=t+this._storedHeights[e];if(tt;)t*=2;return t}var s=function(){function e(e,t){for(var o=0;o=0;--o)t[o]=0;return t},c=function(){function e(t){n(this,e),this._size=t.length,this._half=r(this._size),this._heap=new h(2*this._half);var o;for(o=0;o0;--o)this._heap[o]=this._heap[2*o]+this._heap[2*o+1]}return s(e,[{key:"set",value:function(e,t){(0,a["default"])(e>=0&&e=0&&e=0&&e=0&&e=e,"Begin must precede end"),this.sumUntil(t)-this.sumUntil(e)}},{key:"greatestLowerBound",value:function(e){if(0>e)return-1;var t=1;if(this._heap[t]<=e)return this._size;for(;te?t=2*t:(t=2*t+1,e-=o)}return t-this._half}},{key:"greatestStrictLowerBound",value:function(e){if(0>=e)return-1;var t=1;if(this._heap[t]=e?t=2*t:(t=2*t+1,e-=o)}return t-this._half}},{key:"leastUpperBound",value:function(e){return this.greatestStrictLowerBound(e)+1}},{key:"leastStrictUpperBound",value:function(e){return this.greatestLowerBound(e)+1}}],[{key:"uniform",value:function(t,o){for(var i=[],n=t-1;n>=0;--n)i[n]=o;return new e(i)}},{key:"empty",value:function(t){return e.uniform(t,0)}}]),e}();e.exports=c}).call(t,function(){return this}())},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e){for(var t=0,o=0;o=t)return{columns:e,width:n(e)};for(var o=r(e),i=t,s=[],l=0,a=0;ao?s(e,t-o).columns:e}var u=o(29),h=i(u),c={getTotalWidth:n,getTotalFlexGrow:r,distributeFlexWidth:s,adjustColumnWidths:a,adjustColumnGroupWidths:l};e.exports=c},function(e,t){"use strict";function o(e,t,o,i,n){function r(){for(var n=arguments.length,l=Array(n),a=0;n>a;a++)l[a]=arguments[a];r.reset();var u=function(){e.apply(o,l)};u.__SMmeta=e.__SMmeta,s=i(u,t)}i=i||setTimeout,n=n||clearTimeout;var s;return r.reset=function(){n(s)},r}e.exports=o},function(e,t){"use strict";function o(e,t){if(e===t)return!0;if("object"!==("undefined"==typeof e?"undefined":i(e))||null===e||"object"!==("undefined"==typeof t?"undefined":i(t))||null===t)return!1;var o=Object.keys(e),r=Object.keys(t);if(o.length!==r.length)return!1;for(var s=n.bind(t),l=0;le&&this.state.scrollX>0||e>=0&&this.state.scrollXe&&this.state.scrollY>0||e>=0&&this.state.scrollYi?i:this.state.height>i&&this.props.ownerHeight?Math.max(i,this.props.ownerHeight):this.state.height+this.state.maxScrollY,e!==this._contentHeight&&this.props.onContentHeightChange&&this.props.onContentHeightChange(e),this._contentHeight=e},componentDidMount:function(){this._reportContentHeight()},componentWillReceiveProps:function(e){var t=e.overflowX,o=e.overflowY,i=e.touchScrollEnabled===!0;t===this.props.overflowX&&o===this.props.overflowY||(this._wheelHandler=new h["default"](this._onScroll,"hidden"!==t,"hidden"!==o),this._touchHandler=new d["default"](this._onScroll,"hidden"!==t&&i,"hidden"!==o&&i)),this.props.ownerHeight===e.ownerHeight&&this.props.scrollTop===e.scrollTop&&this.props.scrollLeft===e.scrollLeft||this._didScrollStart(),this._didScrollStop(),this.setState(this._calculateState(e,this.state))},componentDidUpdate:function(){this._reportContentHeight()},render:function(){var e,t=this.state,o=this.props,i=o.onColumnReorderEndCallback?this._onColumnReorder:null;t.useGroupHeader&&(e=s["default"].createElement(b["default"],{key:"group_header",isScrolling:this._isScrolling,className:(0,L["default"])((0,T["default"])("fixedDataTableLayout/header"),(0,T["default"])("public/fixedDataTable/header")),width:t.width,height:t.groupHeaderHeight,index:0,zIndex:1,offsetTop:0,scrollLeft:t.scrollX,fixedColumns:t.groupHeaderFixedColumns,scrollableColumns:t.groupHeaderScrollableColumns,onColumnResize:this._onColumnResize,onColumnReorder:i,onColumnReorderMove:this._onColumnReorderMove}));var n=this.state.maxScrollY,r=t.maxScrollX>0&&"hidden"!==t.overflowX&&t.showScrollbarX!==!1,l=n>0&&"hidden"!==t.overflowY&&t.showScrollbarY!==!1,a=r?p["default"].SIZE:0,u=t.height-a-2*A-t.footerHeight,h=t.useGroupHeader?t.groupHeaderHeight:0,c=h+t.headerHeight;u-=c;var d=0,f=null!=o.maxHeight?c+t.bodyHeight:c+u,m=f+t.footerHeight;void 0!==o.ownerHeight&&o.ownerHeightt.ownerHeight||t.scrollYr-U?o=Math.min(o+q,this.state.maxScrollX):U>=i&&(o=Math.max(o-q,0)),t.dragDistance+=this.state.scrollX-t.scrollStart,this.setState({scrollX:o,columnReorderingData:t})},_onColumnReorderEnd:function(e,t){var o=this.state.columnReorderingData.columnBefore,i=this.state.columnReorderingData.columnAfter,n=this.state.columnReorderingData.columnKey;this.setState({isReordering:!1,columnReorderingData:{}}),this.props.onColumnReorderEndCallback({columnBefore:o,columnAfter:i,reorderColumn:n});var r=this.props.onHorizontalScroll;this.state.columnReorderingData.scrollStart!==this.state.scrollX&&r&&r(this.state.scrollX)},_areColumnSettingsIdentical:function(e,t){if(e.length!==t.length)return!1;for(var o=0;o or "),o.push(e))});var i=!1;o.length&&o[0].type.__TableColumnGroup__&&(i=!0);var r,s=t&&t.firstRowIndex||0,l=t&&t.firstRowOffset||0,a=t?t.scrollY:0,u=t?t.scrollX:0,h=t?t.scrollLeft:0;void 0!==e.scrollLeft&&e.scrollLeft!==h&&(u=e.scrollLeft);var c=i?e.groupHeaderHeight:0;if(!t||e.rowsCount===t.rowsCount&&e.rowHeight===t.rowHeight)t&&e.rowHeightGetter!==t.rowHeightGetter&&this._scrollHelper.setRowHeightGetter(e.rowHeightGetter);else{var d=(void 0===e.height?e.maxHeight:e.height)-(e.headerHeight||0)-(e.footerHeight||0)-(e.groupHeaderHeight||0);this._scrollHelper=new C["default"](e.rowsCount,e.rowHeight,d,e.rowHeightGetter),r=this._scrollHelper.scrollToRow(s,l),s=r.index,l=r.offset,a=r.position}var f=t?t.scrollToRow:void 0;e.scrollToRow!==f&&(r=this._scrollHelper.scrollRowIntoView(e.scrollToRow),s=r.index,l=r.offset,a=r.position);var m=t?t.scrollTop:void 0;e.scrollTop!==m&&(r=this._scrollHelper.scrollTo(e.scrollTop),s=r.index,l=r.offset,a=r.position);var _;_=e.isColumnResizing?t&&t.columnResizingData:Y;var g,v;if(i){var w=x["default"].adjustColumnGroupWidths(o,e.width);g=w.columns,v=w.columnGroups}else g=x["default"].adjustColumnWidths(o,e.width);var b=this._populateColumnsAndColumnData(g,v,t),R=t?t.scrollToColumn:void 0;if(null!==e.scrollToColumn&&e.scrollToColumn!==R){var y=b.bodyFixedColumns.length;if(e.scrollToColumn>=y){var S,T,M=0;for(S=0;SS;++S)T=b.bodyScrollableColumns[S],H+=T.props.width;var E=e.width-M,k=b.bodyScrollableColumns[D].props.width,I=H+k-E;I>u&&(u=I),u>H&&(u=H)}}var L=void 0===e.height,O=Math.round(L?e.maxHeight:e.height),P=e.footerHeight+e.headerHeight+c+2*A,F=O-P,N=this._scrollHelper.getContentHeight(),X=N+P,G=x["default"].getTotalWidth(g),B=G>e.width&&"hidden"!==e.overflowX&&e.showScrollbarX!==!1;B&&(F-=p["default"].SIZE,X+=p["default"].SIZE,P+=p["default"].SIZE);var V=Math.max(0,G-e.width),q=Math.max(0,N-F);u=Math.min(u,V),a=Math.min(a,q),q||(L&&(O=X),F=X-P),this._scrollHelper.setViewportHeight(F);var U=n({isColumnResizing:t&&t.isColumnResizing},b,e,{columns:g,columnGroups:v,columnResizingData:_,firstRowIndex:s,firstRowOffset:l,horizontalScrollbarVisible:B,maxScrollX:V,maxScrollY:q,reservedHeight:P,scrollContentHeight:N,scrollX:u,scrollY:a,bodyHeight:F,height:O,groupHeaderHeight:c,useGroupHeader:i});return U},_selectColumnElement:function(e,t){for(var o=[],i=0;iMath.abs(e)&&"hidden"!==this.props.overflowY){var i=this._scrollHelper.scrollBy(Math.round(t)),n=Math.max(0,i.contentHeight-this.state.bodyHeight);this.setState({firstRowIndex:i.index,firstRowOffset:i.offset,scrollY:i.position,scrollContentHeight:i.contentHeight,maxScrollY:n})}else if(e&&"hidden"!==this.props.overflowX){o+=e,o=0>o?0:o,o=o>this.state.maxScrollX?this.state.maxScrollX:o;var r=this.props.onHorizontalScroll;(r?r(o):!0)&&this.setState({scrollX:o})}this._didScrollStop()}},_onHorizontalScroll:function(e){if(this.isMounted()&&e!==this.state.scrollX){this._isScrolling||this._didScrollStart();var t=this.props.onHorizontalScroll;(t?t(e):!0)&&this.setState({scrollX:e}),this._didScrollStop()}},_onVerticalScroll:function(e){if(this.isMounted()&&e!==this.state.scrollY){this._isScrolling||this._didScrollStart();var t=this._scrollHelper.scrollTo(Math.round(e));this.setState({firstRowIndex:t.index,firstRowOffset:t.offset,scrollY:t.position,scrollContentHeight:t.contentHeight}),this._didScrollStop()}},_didScrollStart:function(){this.isMounted()&&!this._isScrolling&&(this._isScrolling=!0,this.props.onScrollStart&&this.props.onScrollStart(this.state.scrollX,this.state.scrollY,this.state.firstRowIndex))},_didScrollStop:function(){this.isMounted()&&this._isScrolling&&(this._isScrolling=!1,this.setState({redraw:!0}),this.props.onScrollEnd&&this.props.onScrollEnd(this.state.scrollX,this.state.scrollY,this.state.firstRowIndex))}}),j=s["default"].createClass({displayName:"HorizontalScrollbar",mixins:[a["default"]],propTypes:{contentSize:X.number.isRequired,offset:X.number.isRequired,onScroll:X.func.isRequired,position:X.number.isRequired,size:X.number.isRequired},componentWillMount:function(){this._initialRender=!0},componentDidMount:function(){this._initialRender=!1},render:function(){var e={height:p["default"].SIZE,width:this.props.size},t={height:p["default"].SIZE,position:"absolute",overflow:"hidden",width:this.props.size};return(0,N["default"])(t,0,this.props.offset,this._initialRender),s["default"].createElement("div",{className:(0,L["default"])((0,T["default"])("fixedDataTableLayout/horizontalScrollbar"),(0,T["default"])("public/fixedDataTable/horizontalScrollbar")),style:e},s["default"].createElement("div",{style:t},s["default"].createElement(p["default"],n({},this.props,{isOpaque:!0,orientation:"horizontal",offset:void 0}))))}});e.exports=K},function(e,t,o){"use strict";e.exports=o(30)},function(t,o){t.exports=e},function(e,t){"use strict";function o(e,t){if(e===t)return!0;var o;for(o in e)if(e.hasOwnProperty(o)&&(!t.hasOwnProperty(o)||e[o]!==t[o]))return!1;for(o in t)if(t.hasOwnProperty(o)&&!e.hasOwnProperty(o))return!1;return!0}var i={shouldComponentUpdate:function(e,t){return!o(this.props,e)||!o(this.state,t)}};e.exports=i},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;oi?-1:1),n&&!o&&(o=1>n?-1:1),{spinX:t,spinY:o,pixelX:i,pixelY:n}}var r=o(35),s=i(r),l=o(36),a=i(l),u=10,h=40,c=800;n.getEventType=function(){return s["default"].firefox()?"DOMMouseScroll":(0,a["default"])("wheel")?"wheel":"mousewheel"},e.exports=n},function(e,t){"use strict";function o(){if(!v){v=!0;var e=navigator.userAgent,t=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera(?:.+Version.|.)(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))|(?:Trident\/\d+\.\d+.*rv:(\d+\.\d+))/.exec(e),o=/(Mac OS X)|(Windows)|(Linux)/.exec(e);if(p=/\b(iPhone|iP[ao]d)/.exec(e),m=/\b(iP[ao]d)/.exec(e),d=/Android/i.exec(e),_=/FBAN\/\w+;/i.exec(e),g=/Mobile/i.exec(e),f=!!/Win64/.exec(e),t){i=t[1]?parseFloat(t[1]):t[5]?parseFloat(t[5]):NaN,i&&document&&document.documentMode&&(i=document.documentMode);var w=/(?:Trident\/(\d+.\d+))/.exec(e);a=w?parseFloat(w[1])+4:i,n=t[2]?parseFloat(t[2]):NaN,r=t[3]?parseFloat(t[3]):NaN,s=t[4]?parseFloat(t[4]):NaN,s?(t=/(?:Chrome\/(\d+\.\d+))/.exec(e),l=t&&t[1]?parseFloat(t[1]):NaN):l=NaN}else i=n=r=l=s=NaN;if(o){if(o[1]){var b=/(?:Mac OS X (\d+(?:[._]\d+)?))/.exec(e);u=b?parseFloat(b[1].replace("_",".")):!0}else u=!1;h=!!o[2],c=!!o[3]}else u=h=c=!1}}var i,n,r,s,l,a,u,h,c,d,f,p,m,_,g,v=!1,w={ie:function(){return o()||i},ieCompatibilityMode:function(){return o()||a>i},ie64:function(){return w.ie()&&f},firefox:function(){return o()||n},opera:function(){return o()||r},webkit:function(){return o()||s},safari:function(){return w.webkit()},chrome:function(){return o()||l},windows:function(){return o()||h},osx:function(){return o()||u},linux:function(){return o()||c},iphone:function(){return o()||p},mobile:function(){return o()||p||m||d||g},nativeApp:function(){return o()||_},android:function(){return o()||d},ipad:function(){return o()||m}};e.exports=w},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!l["default"].canUseDOM||t&&!("addEventListener"in document))return!1;var o="on"+e,i=o in document;if(!i){var n=document.createElement("div");n.setAttribute(o,"return;"),i="function"==typeof n[o]}return!i&&r&&"wheel"===e&&(i=document.implementation.hasFeature("Events.wheel","3.0")),i}var r,s=o(37),l=i(s);l["default"].canUseDOM&&(r=document.implementation&&document.implementation.hasFeature&&document.implementation.hasFeature("","")!==!0),e.exports=n},function(e,t){"use strict";var o=!("undefined"==typeof window||!window.document||!window.document.createElement),i={canUseDOM:o,canUseWorkers:"undefined"!=typeof Worker,canUseEventListeners:o&&!(!window.addEventListener&&!window.attachEvent),canUseViewport:o&&!!window.screen,isInWorker:!o};e.exports=i},function(e,t,o){(function(t){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(33),r=i(n),s=o(39),l=i(s),a=0,u=l["default"]||function(e){var o=Date.now(),i=Math.max(0,16-(o-a));return a=o+i,t.setTimeout(function(){e(Date.now())},i)};u(r["default"]),e.exports=u}).call(t,function(){return this}())},function(e,t){(function(t){"use strict";var o=t.requestAnimationFrame||t.webkitRequestAnimationFrame||t.mozRequestAnimationFrame||t.oRequestAnimationFrame||t.msRequestAnimationFrame;e.exports=o}).call(t,function(){return this}())},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;o2||Math.abs(this._deltaY)>2)&&(this._stopPropagation()&&e.stopPropagation(),r=!0),r===!0&&null===this._dragAnimationId&&(this._dragAnimationId=(0,u["default"])(this._didTouchMove))}}},{key:"_didTouchMove",value:function(){this._dragAnimationId=null,this._onTouchScrollCallback(this._deltaX,this._deltaY),this._accumulatedDeltaX+=this._deltaX,this._accumulatedDeltaY+=this._deltaY,this._deltaX=0,this._deltaY=0}},{key:"_track",value:function(){var e=Date.now(),t=e-this._lastFrameTimestamp,o=this._velocityX,i=this._velocityY,n=.8;f>t&&(n*=t/f),0===o&&0===i&&(n=1),this._velocityX=n*(f*this._accumulatedDeltaX/(1+t)),1>n&&(this._velocityX+=(1-n)*o),this._velocityY=n*(f*this._accumulatedDeltaY/(1+t)),1>n&&(this._velocityY+=(1-n)*i),this._accumulatedDeltaX=0,this._accumulatedDeltaY=0,this._lastFrameTimestamp=e}},{key:"_startAutoScroll",value:function(){this._autoScrollTimestamp=Date.now(),(this._deltaX>0||this.deltaY>0)&&this._didTouchMove(),this._track(),this._autoScroll()}},{key:"_autoScroll",value:function(){var e=Date.now()-this._autoScrollTimestamp,t=c*Math.exp(-e/d),o=t*this._velocityX,i=t*this._velocityY;(Math.abs(o)<=5||!this._handleScrollX(o,i))&&(o=0),(Math.abs(i)<=5||!this._handleScrollY(i,o))&&(i=0),0===o&&0===i||(this._onTouchScrollCallback(o,i),(0,u["default"])(this._autoScroll))}}]),e}();e.exports=p},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(42),r=i(n),s=o(45),l=i(s),a=o(29),u=i(a),h=o(46),c=i(h),d=o(31),f=i(d),p=o(32),m=i(p),_=o(48),g=i(_),v=o(49),w=i(v),b=o(33),R=i(b),C=o(50),y=i(C),x=u["default"].PropTypes,S={position:0,scrollable:!1},T=parseInt((0,g["default"])("scrollbar-face-margin"),10),M=2*T,D=30,H=40,E=null,k=u["default"].createClass({displayName:"Scrollbar",mixins:[f["default"]],propTypes:{contentSize:x.number.isRequired,defaultPosition:x.number,isOpaque:x.bool,orientation:x.oneOf(["vertical","horizontal"]),onScroll:x.func,position:x.number,size:x.number.isRequired,trackColor:x.oneOf(["gray"]),zIndex:x.number,verticalTop:x.number},getInitialState:function(){var e=this.props;return this._calculateState(e.position||e.defaultPosition||0,e.size,e.contentSize,e.orientation)},componentWillReceiveProps:function(e){var t=e.position;void 0===t?this._setNextState(this._calculateState(this.state.position,e.size,e.contentSize,e.orientation)):this._setNextState(this._calculateState(t,e.size,e.contentSize,e.orientation),e)},getDefaultProps:function(){return{defaultPosition:0,isOpaque:!1,onScroll:R["default"],orientation:"vertical",zIndex:99}},render:function(){if(!this.state.scrollable)return null;var e,t,o=this.props.size,i=this.state.isHorizontal,n=!i,r=this.state.focused||this.state.isDragging,s=this.state.faceSize,l=this.props.isOpaque,a=this.props.verticalTop||0,h=(0,w["default"])({"ScrollbarLayout/main":!0,"ScrollbarLayout/mainVertical":n,"ScrollbarLayout/mainHorizontal":i,"public/Scrollbar/main":!0,"public/Scrollbar/mainOpaque":l,"public/Scrollbar/mainActive":r}),c=(0,w["default"])({"ScrollbarLayout/face":!0,"ScrollbarLayout/faceHorizontal":i,"ScrollbarLayout/faceVertical":n,"public/Scrollbar/faceActive":r,"public/Scrollbar/face":!0}),d=this.state.position*this.state.scale+T;return i?(e={width:o},t={width:s-M},(0,y["default"])(t,d,0,this._initialRender)):(e={top:a,height:o},t={height:s-M},(0,y["default"])(t,0,d,this._initialRender)),e.zIndex=this.props.zIndex,"gray"===this.props.trackColor&&(e.backgroundColor=(0,g["default"])("fbui-desktop-background-light")),u["default"].createElement("div",{onFocus:this._onFocus,onBlur:this._onBlur,onKeyDown:this._onKeyDown,onMouseDown:this._onMouseDown,onWheel:this._wheelHandler.onWheel,className:h,style:e,tabIndex:0},u["default"].createElement("div",{ref:"face",className:c,style:t}))},componentWillMount:function(){var e="horizontal"===this.props.orientation,t=e?this._onWheelX:this._onWheelY;this._wheelHandler=new m["default"](t,this._shouldHandleX,this._shouldHandleY),this._initialRender=!0},componentDidMount:function(){this._mouseMoveTracker=new r["default"](this._onMouseMove,this._onMouseMoveEnd,document.documentElement),void 0!==this.props.position&&this.state.position!==this.props.position&&this._didScroll(),this._initialRender=!1},componentWillUnmount:function(){this._nextState=null,this._mouseMoveTracker.releaseMouseMoves(),E===this&&(E=null),delete this._mouseMoveTracker},scrollBy:function(e){this._onWheel(e)},_shouldHandleX:function(e){return"horizontal"===this.props.orientation?this._shouldHandleChange(e):!1},_shouldHandleY:function(e){return"horizontal"!==this.props.orientation?this._shouldHandleChange(e):!1},_shouldHandleChange:function(e){var t=this._calculateState(this.state.position+e,this.props.size,this.props.contentSize,this.props.orientation);return t.position!==this.state.position},_calculateState:function(e,t,o,i){if(1>t||t>=o)return S;var n=e+"_"+t+"_"+o+"_"+i;if(this._stateKey===n)return this._stateForKey;var r="horizontal"===i,s=t/o,l=t*s;D>l&&(s=(t-D)/(o-t),l=D);var a=!0,u=o-t;0>e?e=0:e>u&&(e=u);var h=this._mouseMoveTracker?this._mouseMoveTracker.isDragging():!1,c={faceSize:l,isDragging:h,isHorizontal:r,position:e,scale:s,scrollable:a};return this._stateKey=n,this._stateForKey=c,c},_onWheelY:function(e,t){this._onWheel(t)},_onWheelX:function(e,t){this._onWheel(e)},_onWheel:function(e){var t=this.props;this._setNextState(this._calculateState(this.state.position+e,t.size,t.contentSize,t.orientation))},_onMouseDown:function(e){var t;if(e.target!==c["default"].findDOMNode(this.refs.face)){var o=e.nativeEvent,i=this.state.isHorizontal?o.offsetX||o.layerX:o.offsetY||o.layerY,n=this.props;i/=this.state.scale,t=this._calculateState(i-.5*this.state.faceSize/this.state.scale,n.size,n.contentSize,n.orientation)}else t={};t.focused=!0,this._setNextState(t),this._mouseMoveTracker.captureMouseMoves(e),c["default"].findDOMNode(this).focus(); +},_onMouseMove:function(e,t){var o=this.props,i=this.state.isHorizontal?e:t;i/=this.state.scale,this._setNextState(this._calculateState(this.state.position+i,o.size,o.contentSize,o.orientation))},_onMouseMoveEnd:function(){this._nextState=null,this._mouseMoveTracker.releaseMouseMoves(),this.setState({isDragging:!1})},_onKeyDown:function(e){var t=e.keyCode;if(t!==l["default"].TAB){var o=H,i=0;if(this.state.isHorizontal)switch(t){case l["default"].HOME:i=-1,o=this.props.contentSize;break;case l["default"].LEFT:i=-1;break;case l["default"].RIGHT:i=1;break;default:return}if(!this.state.isHorizontal)switch(t){case l["default"].SPACE:i=e.shiftKey?-1:1;break;case l["default"].HOME:i=-1,o=this.props.contentSize;break;case l["default"].UP:i=-1;break;case l["default"].DOWN:i=1;break;case l["default"].PAGE_UP:i=-1,o=this.props.size;break;case l["default"].PAGE_DOWN:i=1,o=this.props.size;break;default:return}e.preventDefault();var n=this.props;this._setNextState(this._calculateState(this.state.position+o*i,n.size,n.contentSize,n.orientation))}},_onFocus:function(){this.setState({focused:!0})},_onBlur:function(){this.setState({focused:!1})},_blur:function(){if(this.isMounted())try{this._onBlur(),c["default"].findDOMNode(this).blur()}catch(e){}},_setNextState:function(e,t){t=t||this.props;var o=t.position,i=this.state.position!==e.position;if(void 0===o){var n=i?this._didScroll:void 0;this.setState(e,n)}else{if(o!==e.position)return void(void 0!==e.position&&e.position!==this.state.position&&this.props.onScroll(e.position));this.setState(e)}i&&E!==this&&(E&&E._blur(),E=this)},_didScroll:function(){this.props.onScroll(this.state.position)}});k.KEYBOARD_SCROLL_AMOUNT=H,k.SIZE=parseInt((0,g["default"])("scrollbar-size"),10),e.exports=k},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;o0;)this._addRowToBuffer(t,this._viewportRowsBegin,this._viewportRowsEnd-1),t++,e--;return this._rows}},{key:"getRows",value:function(e,t){var o=t,i=o,n=e,r=Math.min(e+this._maxVisibleRowCount,this._rowsCount);for(this._viewportRowsBegin=e;r>n||i=r&&(i=this._bufferSet.replaceFurthestValuePosition(t,o,e)),null===i?(i=this._bufferSet.getNewPositionForValue(e),this._rows[i]=e):this._rows[i]=e}}]),e}();e.exports=p},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;o=e&&t>=n)return null;var r;e-i>n-t?(r=i,this._smallValues.pop()):(r=n,this._largeValues.pop());var s=this._valueToPositionMap[r];return delete this._valueToPositionMap[r],this._valueToPositionMap[o]=s,this._pushToHeaps(s,o),s}},{key:"_pushToHeaps",value:function(e,t){var o={position:e,value:t};this._smallValues.push(o),this._largeValues.push(o)}},{key:"_cleanHeaps",value:function(){this._cleanHeap(this._smallValues),this._cleanHeap(this._largeValues);var e=Math.min(this._smallValues.size(),this._largeValues.size()),t=Math.max(this._smallValues.size(),this._largeValues.size());t>10*e&&this._recreateHeaps()}},{key:"_recreateHeaps",value:function(){for(var e=this._smallValues.size()t.value}}]),e}();e.exports=h},function(e,t){"use strict";function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){return t>e}var n=function(){function e(e,t){for(var o=0;o0&&(this._items[0]=t,this._sinkDown(0)),e}}},{key:"push",value:function(e){this._items[this._size++]=e,this._bubbleUp(this._size-1)}},{key:"size",value:function(){return this._size}},{key:"peek",value:function(){return 0!==this._size?this._items[0]:void 0}},{key:"_heapify",value:function(){for(var e=Math.floor((this._size+1)/2);e>=0;e--)this._sinkDown(e)}},{key:"_bubbleUp",value:function(e){for(var t=this._items[e];e>0;){var o=Math.floor((e+1)/2)-1,i=this._items[o];if(this._comparator(i,t))return;this._items[o]=t,this._items[e]=i,e=o}}},{key:"_sinkDown",value:function(e){for(var t=this._items[e];;){var o=2*(e+1)-1,i=2*(e+1),n=-1;if(oe?t:e>o?o:e}e.exports=o},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=Object.assign||function(e){for(var t=1;t0,"fixedDataTableRowLayout/columnsShadow":this.props.scrollLeft>0,"public/fixedDataTableRow/fixedColumnsDivider":e>0,"public/fixedDataTableRow/columnsShadow":this.props.scrollLeft>0}),o={left:e,height:this.props.height};return s["default"].createElement("div",{className:t,style:o})},_renderColumnsRightShadow:function(e){if(Math.ceil(this.props.scrollLeft+this.props.width)=0||Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=e[i]);return o}var r=Object.assign||function(e){for(var t=1;ts;s++){var a=t[s].props,h=a.allowCellsRecycling&&!n;if(!h||r-e.left<=e.width&&r-e.left+a.width>=0){var c="cell_"+s;o[s]=this._renderCell(e.rowIndex,e.rowHeight,a,r,c,i,n)}r+=a.width}var d={height:e.height,position:"absolute",width:i,zIndex:e.zIndex};return(0,m["default"])(d,-1*g*e.left,0,this._initialRender),u["default"].createElement("div",{className:(0,f["default"])("fixedDataTableCellGroupLayout/cellGroup"),style:d},o)},_renderCell:function(e,t,o,i,n,r,s){var l=o.isResizable&&this.props.onColumnResize,a=l?this.props.onColumnResize:null,h=o.isReorderable&&this.props.onColumnReorder&&-1===e&&r!==o.width,d=h?this.props.onColumnReorder:null,f=o.cellClassName;return u["default"].createElement(c["default"],{isScrolling:this.props.isScrolling,align:o.align,className:f,height:t,key:n,maxWidth:o.maxWidth,minWidth:o.minWidth,onColumnResize:a,onColumnReorder:d,onColumnReorderMove:this.props.onColumnReorderMove,onColumnReorderEnd:this.props.onColumnReorderEnd,isColumnReordering:s,columnReorderingData:this.props.columnReorderingData,rowIndex:e,columnKey:o.columnKey,width:o.width,left:i,cell:o.cell,columnGroupWidth:r})},_getColumnsWidth:function(e){for(var t=0,o=0;o should never render")}});e.exports=l},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(29),r=i(n),s=r["default"].PropTypes,l=r["default"].createClass({displayName:"FixedDataTableColumn",statics:{__TableColumn__:!0},propTypes:{align:s.oneOf(["left","center","right"]),fixed:s.bool,header:s.oneOfType([s.node,s.func]),cell:s.oneOfType([s.node,s.func]),footer:s.oneOfType([s.node,s.func]),columnKey:s.oneOfType([s.string,s.number]),width:s.number.isRequired,minWidth:s.number,maxWidth:s.number,flexGrow:s.number,isResizable:s.bool,isReorderable:s.bool,allowCellsRecycling:s.bool},getDefaultProps:function(){return{allowCellsRecycling:!1,fixed:!1}},render:function(){throw new Error("Component should never render")}});e.exports=l},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var o={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=e[i]);return o}var r=Object.assign||function(e){for(var t=1;ta,h=i>e.left,c=!1;u?a>n&&(c=!0,h?o.displacement=e.columnReorderingData.columnWidth:o.displacement=0):s>a&&(c=!0,h?o.displacement=0:o.displacement=-1*e.columnReorderingData.columnWidth),c?u?e.columnReorderingData.columnAfter||(e.columnReorderingData.columnAfter=e.columnKey):e.columnReorderingData.columnBefore=e.columnKey:u?e.columnReorderingData.columnBefore=e.columnKey:e.columnReorderingData.columnAfter||(e.columnReorderingData.columnAfter=e.columnKey)}}else o.displacement=0;this.setState(o)},getDefaultProps:function(){return b},render:function(){var e=this.props,t=e.height,o=e.width,i=e.columnKey,s=n(e,["height","width","columnKey"]),a={height:t,width:o};1===v?a.left=s.left:a.right=s.left,this.state.isReorderingThisColumn&&(a.transform="translateX("+this.state.displacement+"px) translateZ(0)",a.zIndex=1);var h,c=(0,g["default"])((0,m["default"])({"fixedDataTableCellLayout/main":!0,"fixedDataTableCellLayout/lastChild":s.lastChild,"fixedDataTableCellLayout/alignRight":"right"===s.align,"fixedDataTableCellLayout/alignCenter":"center"===s.align,"public/fixedDataTableCell/alignRight":"right"===s.align,"public/fixedDataTableCell/highlighted":s.highlighted,"public/fixedDataTableCell/main":!0,"public/fixedDataTableCell/hasReorderHandle":!!s.onColumnReorder,"public/fixedDataTableCell/reordering":this.state.isReorderingThisColumn}),s.className);if(s.onColumnResize){var d={height:t};h=f["default"].createElement("div",{className:(0,m["default"])("fixedDataTableCellLayout/columnResizerContainer"),style:d,onMouseDown:this._onColumnResizerMouseDown},f["default"].createElement("div",{className:(0,g["default"])((0,m["default"])("fixedDataTableCellLayout/columnResizerKnob"),(0, +m["default"])("public/fixedDataTableCell/columnResizerKnob")),style:d}))}var p;s.onColumnReorder&&(p=f["default"].createElement(u["default"],r({columnKey:this.columnKey,onMouseDown:this._onColumnReorderMouseDown,height:t},this.props)));var _={columnKey:i,height:t,width:o};s.rowIndex>=0&&(_.rowIndex=s.rowIndex);var w;return w=f["default"].isValidElement(s.cell)?f["default"].cloneElement(s.cell,_):"function"==typeof s.cell?s.cell(_):f["default"].createElement(l["default"],_,s.cell),f["default"].createElement("div",{className:c,style:a},h,p,w)},_onColumnResizerMouseDown:function(e){this.props.onColumnResize(this.props.left,this.props.width,this.props.minWidth,this.props.maxWidth,this.props.columnKey,e)},_onColumnReorderMouseDown:function(e){this.props.onColumnReorder(this.props.columnKey,this.props.width,this.props.left,e)}});e.exports=R},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){var o={};for(var i in e)t.indexOf(i)>=0||Object.prototype.hasOwnProperty.call(e,i)&&(o[i]=e[i]);return o}var r=Object.assign||function(e){for(var t=1;t1)for(var i=1;o>i;i++)t=arguments[i],t&&(e=(e?e+" ":"")+t);return e}e.exports=o},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(42),r=i(n),s=o(64),l=(i(s),o(29)),a=i(l),u=o(31),h=i(u),c=o(60),d=(i(c),o(49)),f=i(d),p=a["default"].PropTypes,m=a["default"].createClass({displayName:"FixedDataTableColumnReorderHandle",mixins:[h["default"]],propTypes:{onColumnReorderEnd:p.func,columnKey:p.oneOfType([p.string,p.number])},getInitialState:function(){return{dragDistance:0}},componentWillReceiveProps:function(e){},componentWillUnmount:function(){this._mouseMoveTracker&&(cancelAnimationFrame(this.frameId),this.frameId=null,this._mouseMoveTracker.releaseMouseMoves(),this._mouseMoveTracker=null)},render:function(){var e={height:this.props.height};return a["default"].createElement("div",{className:(0,f["default"])({"fixedDataTableCellLayout/columnReorderContainer":!0,"fixedDataTableCellLayout/columnReorderContainer/active":!1}),onMouseDown:this.onMouseDown,style:e})},onMouseDown:function(e){var t=e.target.getBoundingClientRect(),o=e.clientX-t.offsetLeft,i=o+e.target.parentElement.offsetLeft;this._mouseMoveTracker=new r["default"](this._onMove,this._onColumnReorderEnd,document.body),this._mouseMoveTracker.captureMouseMoves(e),this.setState({dragDistance:0}),this.props.onMouseDown({columnKey:this.props.columnKey,mouseLocation:{dragDistance:0,inElement:o,inColumnGroup:i}}),this._distance=0,this._animating=!0,this.frameId=requestAnimationFrame(this._updateState)},_onMove:function(e){this._distance=this.state.dragDistance+e},_onColumnReorderEnd:function(){this._animating=!1,cancelAnimationFrame(this.frameId),this.frameId=null,this._mouseMoveTracker.releaseMouseMoves(),this.props.onColumnReorderEnd()},_updateState:function(){this._animating&&(this.frameId=requestAnimationFrame(this._updateState)),this.setState({dragDistance:this._distance}),this.props.onColumnReorderMove(this._distance)}});e.exports=m},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}var n=o(42),r=i(n),s=o(64),l=i(s),a=o(29),u=i(a),h=o(31),c=i(h),d=o(60),f=i(d),p=o(49),m=i(p),_=u["default"].PropTypes,g=u["default"].createClass({displayName:"FixedDataTableColumnResizeHandle",mixins:[c["default"]],propTypes:{visible:_.bool.isRequired,height:_.number.isRequired,leftOffset:_.number.isRequired,knobHeight:_.number.isRequired,initialWidth:_.number,minWidth:_.number,maxWidth:_.number,initialEvent:_.object,onColumnResizeEnd:_.func,columnKey:_.oneOfType([_.string,_.number])},getInitialState:function(){return{width:0,cursorDelta:0}},componentWillReceiveProps:function(e){e.initialEvent&&!this._mouseMoveTracker.isDragging()&&(this._mouseMoveTracker.captureMouseMoves(e.initialEvent),this.setState({width:e.initialWidth,cursorDelta:e.initialWidth}))},componentDidMount:function(){this._mouseMoveTracker=new r["default"](this._onMove,this._onColumnResizeEnd,document.body)},componentWillUnmount:function(){this._mouseMoveTracker.releaseMouseMoves(),this._mouseMoveTracker=null},render:function(){var e={width:this.state.width,height:this.props.height};return l["default"].isRTL()?e.right=this.props.leftOffset:e.left=this.props.leftOffset,u["default"].createElement("div",{className:(0,m["default"])({"fixedDataTableColumnResizerLineLayout/main":!0,"fixedDataTableColumnResizerLineLayout/hiddenElem":!this.props.visible,"public/fixedDataTableColumnResizerLine/main":!0}),style:e},u["default"].createElement("div",{className:(0,m["default"])("fixedDataTableColumnResizerLineLayout/mouseArea"),style:{height:this.props.height}}))},_onMove:function(e){l["default"].isRTL()&&(e=-e);var t=this.state.cursorDelta+e,o=(0,f["default"])(t,this.props.minWidth,this.props.maxWidth);this.setState({width:o,cursorDelta:t})},_onColumnResizeEnd:function(){this._mouseMoveTracker.releaseMouseMoves(),this.props.onColumnResizeEnd(this.state.width,this.props.columnKey)}});e.exports=g},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var r=function(){function e(e,t){for(var o=0;os;++s)this._storedHeights[s]=o;this._rowCount=t,this._position=0,this._contentHeight=t*o,this._defaultRowHeight=o,this._rowHeightGetter=r?r:function(){return o},this._viewportHeight=i,this.scrollRowIntoView=this.scrollRowIntoView.bind(this),this.setViewportHeight=this.setViewportHeight.bind(this),this.scrollBy=this.scrollBy.bind(this),this.scrollTo=this.scrollTo.bind(this),this.scrollToRow=this.scrollToRow.bind(this),this.setRowHeightGetter=this.setRowHeightGetter.bind(this),this.getContentHeight=this.getContentHeight.bind(this),this.getRowPosition=this.getRowPosition.bind(this),this._updateHeightsInViewport(0,0)}return r(e,[{key:"setRowHeightGetter",value:function(e){this._rowHeightGetter=e}},{key:"setViewportHeight",value:function(e){this._viewportHeight=e}},{key:"getContentHeight",value:function(){return this._contentHeight}},{key:"_updateHeightsInViewport",value:function(e,t){for(var o=t,i=e;o<=this._viewportHeight&&i=0&&t>=e-h;){var o=this._updateRowHeight(t);this._position+=o,t--}}},{key:"_updateRowHeight",value:function(e){if(0>e||e>=this._rowCount)return 0;var t=this._rowHeightGetter(e);if(t!==this._storedHeights[e]){var o=t-this._storedHeights[e];return this._rowOffsets.set(e,t),this._storedHeights[e]=t,this._contentHeight+=o,o}return 0}},{key:"getRowPosition",value:function(e){return this._updateRowHeight(e),this._rowOffsets.sumUntil(e)}},{key:"scrollBy",value:function(e){if(0===this._rowCount)return c;var t=this._rowOffsets.greatestLowerBound(this._position);t=(0,u["default"])(t,0,Math.max(this._rowCount-1,0));var o=this._rowOffsets.sumUntil(t),i=t,n=this._position,r=this._updateRowHeight(i);0!==o&&(n+=r);var s=this._storedHeights[i]-(n-o);if(e>=0)for(;e>0&&ie?(n+=e,e=0):(e-=s,n+=s,i++),ie){e=-e;for(var l=this._storedHeights[i]-s;e>0&&i>=0;)if(l>e?(n-=e,e=0):(n-=l,e-=l,i--),i>=0){var a=this._updateRowHeight(i);l=this._storedHeights[i],n+=a}}var h=this._contentHeight-this._viewportHeight;n=(0,u["default"])(n,0,h),this._position=n;var d=this._rowOffsets.greatestLowerBound(n);d=(0,u["default"])(d,0,Math.max(this._rowCount-1,0)),o=this._rowOffsets.sumUntil(d);var f=o-n;return this._updateHeightsInViewport(d,f),this._updateHeightsAboveViewport(d),{index:d,offset:f,position:this._position,contentHeight:this._contentHeight}}},{key:"_getRowAtEndPosition",value:function(e){this._updateRowHeight(e);for(var t=e,o=this._storedHeights[t];o=0;)t--,t>=0&&(this._updateRowHeight(t),o+=this._storedHeights[t]);var i=this._rowOffsets.sumTo(e)-this._viewportHeight;return 0>i&&(i=0),i}},{key:"scrollTo",value:function(e){if(0===this._rowCount)return c;if(0>=e)return this._position=0,this._updateHeightsInViewport(0,0),{index:0,offset:0,position:this._position,contentHeight:this._contentHeight};if(e>=this._contentHeight-this._viewportHeight){var t=this._rowCount-1;e=this._getRowAtEndPosition(t)}this._position=e;var o=this._rowOffsets.greatestLowerBound(e);o=(0,u["default"])(o,0,Math.max(this._rowCount-1,0));var i=this._rowOffsets.sumUntil(o),n=i-e;return this._updateHeightsInViewport(o,n),this._updateHeightsAboveViewport(o),{index:o,offset:n,position:this._position,contentHeight:this._contentHeight}}},{key:"scrollToRow",value:function(e,t){e=(0,u["default"])(e,0,Math.max(this._rowCount-1,0)),t=(0,u["default"])(t,-this._storedHeights[e],0);var o=this._rowOffsets.sumUntil(e);return this.scrollTo(o-t)}},{key:"scrollRowIntoView",value:function(e){e=(0,u["default"])(e,0,Math.max(this._rowCount-1,0));var t=this._rowOffsets.sumUntil(e),o=t+this._storedHeights[e];if(tt;)t*=2;return t}var s=function(){function e(e,t){for(var o=0;o=0;--o)t[o]=0;return t},c=function(){function e(t){n(this,e),this._size=t.length,this._half=r(this._size),this._heap=new h(2*this._half);var o;for(o=0;o0;--o)this._heap[o]=this._heap[2*o]+this._heap[2*o+1]}return s(e,[{key:"set",value:function(e,t){(0,a["default"])(e>=0&&e=0&&e=0&&e=0&&e=e,"Begin must precede end"),this.sumUntil(t)-this.sumUntil(e)}},{key:"greatestLowerBound",value:function(e){if(0>e)return-1;var t=1;if(this._heap[t]<=e)return this._size;for(;te?t=2*t:(t=2*t+1,e-=o)}return t-this._half}},{key:"greatestStrictLowerBound",value:function(e){if(0>=e)return-1;var t=1;if(this._heap[t]=e?t=2*t:(t=2*t+1,e-=o)}return t-this._half}},{key:"leastUpperBound",value:function(e){return this.greatestStrictLowerBound(e)+1}},{key:"leastStrictUpperBound",value:function(e){return this.greatestLowerBound(e)+1}}],[{key:"uniform",value:function(t,o){for(var i=[],n=t-1;n>=0;--n)i[n]=o;return new e(i)}},{key:"empty",value:function(t){return e.uniform(t,0)}}]),e}();e.exports=c}).call(t,function(){return this}())},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{"default":e}}function n(e){for(var t=0,o=0;o=t)return{columns:e,width:n(e)};for(var o=r(e),i=t,s=[],l=0,a=0;ao?s(e,t-o).columns:e}var u=o(29),h=i(u),c={getTotalWidth:n,getTotalFlexGrow:r,distributeFlexWidth:s,adjustColumnWidths:a,adjustColumnGroupWidths:l};e.exports=c},function(e,t){"use strict";function o(e,t,o,i,n){function r(){for(var n=arguments.length,l=Array(n),a=0;n>a;a++)l[a]=arguments[a];r.reset();var u=function(){e.apply(o,l)};u.__SMmeta=e.__SMmeta,s=i(u,t)}i=i||setTimeout,n=n||clearTimeout;var s;return r.reset=function(){n(s)},r}e.exports=o},function(e,t){"use strict";function o(e,t){if(e===t)return!0;if("object"!==("undefined"==typeof e?"undefined":i(e))||null===e||"object"!==("undefined"==typeof t?"undefined":i(t))||null===t)return!1;var o=Object.keys(e),r=Object.keys(t);if(o.length!==r.length)return!1;for(var s=n.bind(t),l=0;l