diff --git a/dist/fixed-data-table-base.css b/dist/fixed-data-table-base.css index 06fe2bf0..e075f21a 100644 --- a/dist/fixed-data-table-base.css +++ b/dist/fixed-data-table-base.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table-base.min.css b/dist/fixed-data-table-base.min.css index c8053a86..71dfad71 100644 --- a/dist/fixed-data-table-base.min.css +++ b/dist/fixed-data-table-base.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table-style.css b/dist/fixed-data-table-style.css index 41e82c00..abaf97a5 100644 --- a/dist/fixed-data-table-style.css +++ b/dist/fixed-data-table-style.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * 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 50a663d5..b1b1defe 100644 --- a/dist/fixed-data-table-style.min.css +++ b/dist/fixed-data-table-style.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table.css b/dist/fixed-data-table.css index 9d22a9fe..29d1d5f8 100644 --- a/dist/fixed-data-table.css +++ b/dist/fixed-data-table.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table.js b/dist/fixed-data-table.js index ac8a92f5..a387adae 100644 --- a/dist/fixed-data-table.js +++ b/dist/fixed-data-table.js @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * Copyright Schrodinger, LLC * All rights reserved. @@ -208,7 +208,7 @@ return /******/ (function(modules) { // webpackBootstrap Table: _FixedDataTable2.default }; - FixedDataTableRoot.version = '0.7.11'; + FixedDataTableRoot.version = '0.7.12'; module.exports = FixedDataTableRoot; /***/ }, @@ -460,6 +460,12 @@ return /******/ (function(modules) { // webpackBootstrap */ rowClassNameGetter: PropTypes.func, + /** + * If specified, `rowKeyGetter(index)` is called for each row and the + * returned value overrides `key` for the particular row. + */ + rowKeyGetter: PropTypes.func, + /** * Pixel height of the column group header. */ @@ -861,6 +867,7 @@ return /******/ (function(modules) { // webpackBootstrap rowsCount: state.rowsCount, rowGetter: state.rowGetter, rowHeightGetter: state.rowHeightGetter, + rowKeyGetter: state.rowKeyGetter, scrollLeft: state.scrollX, scrollableColumns: state.bodyScrollableColumns, showLastRowBorder: true, @@ -1071,10 +1078,13 @@ return /******/ (function(modules) { // webpackBootstrap var groupHeaderHeight = useGroupHeader ? props.groupHeaderHeight : 0; - if (oldState && (props.rowsCount !== oldState.rowsCount || props.rowHeight !== oldState.rowHeight)) { + if (oldState && (props.rowsCount !== oldState.rowsCount || props.rowHeight !== oldState.rowHeight || props.height !== oldState.height)) { // Number of rows changed, try to scroll to the row from before the // change var viewportHeight = (props.height === undefined ? props.maxHeight : props.height) - (props.headerHeight || 0) - (props.footerHeight || 0) - (props.groupHeaderHeight || 0); + + var oldViewportHeight = this._scrollHelper._viewportHeight; + this._scrollHelper = new _FixedDataTableScrollHelper2.default(props.rowsCount, props.rowHeight, viewportHeight, props.rowHeightGetter); scrollState = this._scrollHelper.scrollToRow(firstRowIndex, firstRowOffset); firstRowIndex = scrollState.index; @@ -1085,7 +1095,7 @@ return /******/ (function(modules) { // webpackBootstrap } var lastScrollToRow = oldState ? oldState.scrollToRow : undefined; - if (props.scrollToRow != null && props.scrollToRow !== lastScrollToRow) { + if (props.scrollToRow != null && (props.scrollToRow !== lastScrollToRow || viewportHeight !== oldViewportHeight)) { scrollState = this._scrollHelper.scrollRowIntoView(props.scrollToRow); firstRowIndex = scrollState.index; firstRowOffset = scrollState.offset; @@ -3948,6 +3958,7 @@ return /******/ (function(modules) { // webpackBootstrap rowClassNameGetter: PropTypes.func, rowsCount: PropTypes.number.isRequired, rowHeightGetter: PropTypes.func, + rowKeyGetter: PropTypes.func, rowPositionGetter: PropTypes.func.isRequired, scrollLeft: PropTypes.number.isRequired, scrollableColumns: PropTypes.array.isRequired, @@ -4021,11 +4032,12 @@ return /******/ (function(modules) { // webpackBootstrap var rowIndex = rowsToRender[i]; var currentRowHeight = this._getRowHeight(rowIndex); var rowOffsetTop = baseOffsetTop + rowPositions[rowIndex]; + var rowKey = props.rowKeyGetter ? props.rowKeyGetter(rowIndex) : i; var hasBottomBorder = rowIndex === props.rowsCount - 1 && props.showLastRowBorder; this._staticRowArray[i] = _React2.default.createElement(_FixedDataTableRow2.default, { - key: i, + key: rowKey, isScrolling: props.isScrolling, index: rowIndex, width: props.width, diff --git a/dist/fixed-data-table.min.css b/dist/fixed-data-table.min.css index 7f054d35..15bcbc58 100644 --- a/dist/fixed-data-table.min.css +++ b/dist/fixed-data-table.min.css @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * Copyright Schrodinger, LLC * All rights reserved. diff --git a/dist/fixed-data-table.min.js b/dist/fixed-data-table.min.js index 8c244786..567f8d1e 100644 --- a/dist/fixed-data-table.min.js +++ b/dist/fixed-data-table.min.js @@ -1,5 +1,5 @@ /** - * FixedDataTable v0.7.11 + * FixedDataTable v0.7.12 * * 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.11",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;t0||e>=0&&this.state.scrollX0||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.scrollYs-U?i=Math.min(i+q,this.state.maxScrollX):n<=U&&(i=Math.max(i-q,0)),t.dragDistance+=this.state.scrollX-t.scrollStart}this.setState({scrollX:i,columnReorderingData:t})},_onColumnReorderEnd:function(e,t){var o=this.state.columnReorderingData.columnBefore,i=this.state.columnReorderingData.columnAfter,n=this.state.columnReorderingData.columnKey,r=this.state.columnReorderingData.cancelReorder;if(this.setState({isColumnReordering:!1,columnReorderingData:{}}),!r){this.props.onColumnReorderEndCallback({columnBefore:o,columnAfter:i,reorderColumn:n});var s=this.props.onHorizontalScroll;this.state.columnReorderingData.scrollStart!==this.state.scrollX&&s&&s(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;null!=e.scrollToRow&&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;null!=e.scrollTop&&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 v,g;if(i){var w=x.default.adjustColumnGroupWidths(o,e.width);v=w.columns,g=w.columnGroups}else v=x.default.adjustColumnWidths(o,e.width);var b=this._populateColumnsAndColumnData(v,g,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;SH&&(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(v),V=G>e.width&&"hidden"!==e.overflowX&&e.showScrollbarX!==!1;V&&(F-=p.default.SIZE,X+=p.default.SIZE,P+=p.default.SIZE);var B=Math.max(0,G-e.width),q=Math.max(0,N-F);u=Math.min(u,B),a=Math.min(a,q),q||(L&&(O=X),F=X-P),this._scrollHelper.setViewportHeight(F);var U=Math.abs(l-this._scrollHelper.getRowPosition(s));U!==a&&(U=q,r=this._scrollHelper.scrollTo(U),s=r.index,l=r.offset,a=r.position);var K=n({isColumnResizing:t&&t.isColumnResizing},b,e,{columns:v,columnGroups:g,columnResizingData:_,firstRowIndex:s,firstRowOffset:l,horizontalScrollbarVisible:V,maxScrollX:B,maxScrollY:q,reservedHeight:P,scrollContentHeight:N,scrollX:u,scrollY:a,bodyHeight:F,height:O,groupHeaderHeight:c,useGroupHeader:i});return K},_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=this.props.onVerticalScroll;if(!n||n(i.position)){var r=Math.max(0,i.contentHeight-this.state.bodyHeight);this.setState({firstRowIndex:i.index,firstRowOffset:i.offset,scrollY:i.position,scrollContentHeight:i.contentHeight,maxScrollY:r})}}else if(e&&"hidden"!==this.props.overflowX){o+=e,o=o<0?0:o,o=o>this.state.maxScrollX?this.state.maxScrollX:o;var s=this.props.onHorizontalScroll;s&&!s(o)||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)||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)),o=this.props.onVerticalScroll;o&&!o(t.position)||(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},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||v},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;t0||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),v=i(_),g=o(49),w=i(g),b=o(33),R=i(b),C=o(50),y=i(C),x=u.default.PropTypes,S={position:0,scrollable:!1},T=parseInt((0,v.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,v.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)},_shouldHandleY:function(e){return"horizontal"!==this.props.orientation&&this._shouldHandleChange(e)},_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(t<1||o<=t)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;lu&&(e=u);var h=!!this._mouseMoveTracker&&this._mouseMoveTracker.isDragging(),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,v.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;o3&&void 0!==arguments[3]&&arguments[3];i?(e.left=t+"px",e.top=o+"px"):(0,s.default)(e,t,o)}var r=o(51),s=i(r);e.exports=n},function(e,t,o){(function(t){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var n=o(52),r=i(n),s=o(53),l=i(s),a=(0,l.default)("transform"),u=(0,l.default)("backfaceVisibility"),h=function(){if(r.default.hasCSSTransforms()){var e=t.window?t.window.navigator.userAgent:"UNKNOWN",o=/Safari\//.test(e)&&!/Chrome\//.test(e);return!o&&r.default.hasCSS3DTransforms()?function(e,t,o){e[a]="translate3d("+t+"px,"+o+"px,0)",e[u]="hidden"}:function(e,t,o){e[a]="translate("+t+"px,"+o+"px)"}}return function(e,t,o){e.left=t+"px",e.top=o+"px"}}();e.exports=h}).call(t,function(){return this}())},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var n=o(53),r=i(n),s={hasCSSAnimations:function(){return!!(0,r.default)("animationName")},hasCSSTransforms:function(){return!!(0,r.default)("transform")},hasCSS3DTransforms:function(){return!!(0,r.default)("perspective")},hasCSSTransitions:function(){return!!(0,r.default)("transition")}};e.exports=s},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function n(e){for(var t=0;t0;)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;n=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&&n<=t)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 e0&&(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(){if(0!==this._size)return this._items[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(oo?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;t=0){var c=a.columnKey||"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*v*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&&e===-1&&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?na&&(c=!0,h?o.displacement=0:o.displacement=e.columnReorderingData.columnWidth*-1),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===g?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,v.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,v.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;i=0&&t>=e-h;){var o=this._updateRowHeight(t);this._position+=o,t--}}},{key:"_updateRowHeight",value:function(e){if(e<0||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&&i0&&i>=0;)if(e=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 i<0&&(i=0),i}},{key:"scrollTo",value:function(e){if(0===this._rowCount)return c;if(e<=0)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(t=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)(0<=e&&e=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;o0||e>=0&&this.state.scrollX0||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.scrollYs-U?i=Math.min(i+q,this.state.maxScrollX):n<=U&&(i=Math.max(i-q,0)),t.dragDistance+=this.state.scrollX-t.scrollStart}this.setState({scrollX:i,columnReorderingData:t})},_onColumnReorderEnd:function(e,t){var o=this.state.columnReorderingData.columnBefore,i=this.state.columnReorderingData.columnAfter,n=this.state.columnReorderingData.columnKey,r=this.state.columnReorderingData.cancelReorder;if(this.setState({isColumnReordering:!1,columnReorderingData:{}}),!r){this.props.onColumnReorderEndCallback({columnBefore:o,columnAfter:i,reorderColumn:n});var s=this.props.onHorizontalScroll;this.state.columnReorderingData.scrollStart!==this.state.scrollX&&s&&s(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&&e.height===t.height)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),f=this._scrollHelper._viewportHeight;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 m=t?t.scrollToRow:void 0;null==e.scrollToRow||e.scrollToRow===m&&d===f||(r=this._scrollHelper.scrollRowIntoView(e.scrollToRow),s=r.index,l=r.offset,a=r.position);var _=t?t.scrollTop:void 0;null!=e.scrollTop&&e.scrollTop!==_&&(r=this._scrollHelper.scrollTo(e.scrollTop),s=r.index,l=r.offset,a=r.position);var v;v=e.isColumnResizing?t&&t.columnResizingData:Y;var g,w;if(i){var b=x.default.adjustColumnGroupWidths(o,e.width);g=b.columns,w=b.columnGroups}else g=x.default.adjustColumnWidths(o,e.width);var R=this._populateColumnsAndColumnData(g,w,t),y=t?t.scrollToColumn:void 0;if(null!==e.scrollToColumn&&e.scrollToColumn!==y){var S=R.bodyFixedColumns.length;if(e.scrollToColumn>=S){var T,M,D=0;for(T=0;TE&&(u=E)}}var O=void 0===e.height,P=Math.round(O?e.maxHeight:e.height),F=e.footerHeight+e.headerHeight+c+2*A,N=P-F,X=this._scrollHelper.getContentHeight(),G=X+F,V=x.default.getTotalWidth(g),B=V>e.width&&"hidden"!==e.overflowX&&e.showScrollbarX!==!1;B&&(N-=p.default.SIZE,G+=p.default.SIZE,F+=p.default.SIZE);var q=Math.max(0,V-e.width),U=Math.max(0,X-N);u=Math.min(u,q),a=Math.min(a,U),U||(O&&(P=G),N=G-F),this._scrollHelper.setViewportHeight(N);var K=Math.abs(l-this._scrollHelper.getRowPosition(s));K!==a&&(K=U,r=this._scrollHelper.scrollTo(K),s=r.index,l=r.offset,a=r.position);var j=n({isColumnResizing:t&&t.isColumnResizing},R,e,{columns:g,columnGroups:w,columnResizingData:v,firstRowIndex:s,firstRowOffset:l,horizontalScrollbarVisible:B,maxScrollX:q,maxScrollY:U,reservedHeight:F,scrollContentHeight:X,scrollX:u,scrollY:a,bodyHeight:N,height:P,groupHeaderHeight:c,useGroupHeader:i});return j},_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=this.props.onVerticalScroll;if(!n||n(i.position)){var r=Math.max(0,i.contentHeight-this.state.bodyHeight);this.setState({firstRowIndex:i.index,firstRowOffset:i.offset,scrollY:i.position,scrollContentHeight:i.contentHeight,maxScrollY:r})}}else if(e&&"hidden"!==this.props.overflowX){o+=e,o=o<0?0:o,o=o>this.state.maxScrollX?this.state.maxScrollX:o;var s=this.props.onHorizontalScroll;s&&!s(o)||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)||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)),o=this.props.onVerticalScroll;o&&!o(t.position)||(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},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||v},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;t0||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),v=i(_),g=o(49),w=i(g),b=o(33),R=i(b),C=o(50),y=i(C),x=u.default.PropTypes,S={position:0,scrollable:!1},T=parseInt((0,v.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,v.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)},_shouldHandleY:function(e){return"horizontal"!==this.props.orientation&&this._shouldHandleChange(e)},_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(t<1||o<=t)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;lu&&(e=u);var h=!!this._mouseMoveTracker&&this._mouseMoveTracker.isDragging(),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,v.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;o3&&void 0!==arguments[3]&&arguments[3];i?(e.left=t+"px",e.top=o+"px"):(0,s.default)(e,t,o)}var r=o(51),s=i(r);e.exports=n},function(e,t,o){(function(t){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var n=o(52),r=i(n),s=o(53),l=i(s),a=(0,l.default)("transform"),u=(0,l.default)("backfaceVisibility"),h=function(){if(r.default.hasCSSTransforms()){var e=t.window?t.window.navigator.userAgent:"UNKNOWN",o=/Safari\//.test(e)&&!/Chrome\//.test(e);return!o&&r.default.hasCSS3DTransforms()?function(e,t,o){e[a]="translate3d("+t+"px,"+o+"px,0)",e[u]="hidden"}:function(e,t,o){e[a]="translate("+t+"px,"+o+"px)"}}return function(e,t,o){e.left=t+"px",e.top=o+"px"}}();e.exports=h}).call(t,function(){return this}())},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}var n=o(53),r=i(n),s={hasCSSAnimations:function(){return!!(0,r.default)("animationName")},hasCSSTransforms:function(){return!!(0,r.default)("transform")},hasCSS3DTransforms:function(){return!!(0,r.default)("perspective")},hasCSSTransitions:function(){return!!(0,r.default)("transition")}};e.exports=s},function(e,t,o){"use strict";function i(e){return e&&e.__esModule?e:{default:e}}function n(e){for(var t=0;t0;)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;n=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&&n<=t)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 e0&&(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(){if(0!==this._size)return this._items[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(oo?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;t=0){var c=a.columnKey||"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*v*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&&e===-1&&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?na&&(c=!0,h?o.displacement=0:o.displacement=e.columnReorderingData.columnWidth*-1),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===g?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,v.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,v.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;i=0&&t>=e-h;){var o=this._updateRowHeight(t);this._position+=o,t--}}},{key:"_updateRowHeight",value:function(e){if(e<0||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&&i0&&i>=0;)if(e=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 i<0&&(i=0),i}},{key:"scrollTo",value:function(e){if(0===this._rowCount)return c;if(e<=0)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(t=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)(0<=e&&e=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