UNPKG

react-data-grid

Version:
2 lines • 101 kB
!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.ReactDataGrid=t(require("react"),require("react-dom")):e.ReactDataGrid=t(e.React,e.ReactDOM)}(this,function(e,t){return function(e){function t(r){if(o[r])return o[r].exports;var n=o[r]={exports:{},id:r,loaded:!1};return e[r].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){"use strict";var r=o(49),n=o(15),s=o(20);e.exports=r,e.exports.Row=n,e.exports.Cell=s},function(t,o){t.exports=e},function(e,o){e.exports=t},function(e,t,o){function r(){for(var e,t="",o=0;o<arguments.length;o++)if(e=arguments[o])if("string"==typeof e||"number"==typeof e)t+=" "+e;else if("[object Array]"===Object.prototype.toString.call(e))t+=" "+r.apply(null,e);else if("object"==typeof e)for(var n in e)e.hasOwnProperty(n)&&e[n]&&(t+=" "+n);return t.substr(1)}var n,s;"undefined"!=typeof e&&e.exports&&(e.exports=r),n=[],s=function(){return r}.apply(t,n),!(void 0!==s&&(e.exports=s))},function(e,t,o){var r=o(28),n="object"==typeof self&&self&&self.Object===Object&&self,s=r||n||Function("return this")();e.exports=s},function(e,t){"use strict";e.exports={getColumn:function(e,t){return Array.isArray(e)?e[t]:"undefined"!=typeof Immutable?e.get(t):void 0},spliceColumn:function(e,t,o){return Array.isArray(e.columns)?e.columns.splice(t,1,o):"undefined"!=typeof Immutable&&(e.columns=e.columns.splice(t,1,o)),e},getSize:function(e){return Array.isArray(e)?e.length:"undefined"!=typeof Immutable?e.size:void 0},canEdit:function(e,t,o){return null!=e.editable&&"function"==typeof e.editable?o===!0&&e.editable(t):!(o!==!0||!e.editor&&!e.editable)}}},function(e,t,o){"use strict";var r=o(1),n={name:r.PropTypes.node.isRequired,key:r.PropTypes.string.isRequired,width:r.PropTypes.number.isRequired,filterable:r.PropTypes.bool};e.exports=n},function(e,t,o){function r(e,t){var o=s(e,t);return n(o)?o:void 0}var n=o(79),s=o(88);e.exports=r},function(e,t,o){"use strict";var r=o(1).PropTypes;e.exports={selected:r.object.isRequired,copied:r.object,dragged:r.object,onCellClick:r.func.isRequired,onCellDoubleClick:r.func.isRequired,onCommit:r.func.isRequired,onCommitCancel:r.func.isRequired,handleDragEnterRow:r.func.isRequired,handleTerminateDrag:r.func.isRequired}},function(e,t,o){"use strict";var r=o(1),n=o(16),s={metricsComputator:r.PropTypes.object},i={childContextTypes:s,getChildContext:function(){return{metricsComputator:this}},getMetricImpl:function(e){return this._DOMMetrics.metrics[e].value},registerMetricsImpl:function(e,t){var o={},r=this._DOMMetrics;for(var n in t){if(void 0!==r.metrics[n])throw new Error("DOM metric "+n+" is already defined");r.metrics[n]={component:e,computator:t[n].bind(e)},o[n]=this.getMetricImpl.bind(null,n)}return r.components.indexOf(e)===-1&&r.components.push(e),o},unregisterMetricsFor:function(e){var t=this._DOMMetrics,o=t.components.indexOf(e);if(o>-1){t.components.splice(o,1);var r=void 0,n={};for(r in t.metrics)t.metrics[r].component===e&&(n[r]=!0);for(r in n)n.hasOwnProperty(r)&&delete t.metrics[r]}},updateMetrics:function(){var e=this._DOMMetrics,t=!1;for(var o in e.metrics)if(e.metrics.hasOwnProperty(o)){var r=e.metrics[o].computator();r!==e.metrics[o].value&&(t=!0),e.metrics[o].value=r}if(t)for(var n=0,s=e.components.length;n<s;n++)e.components[n].metricsUpdated&&e.components[n].metricsUpdated()},componentWillMount:function(){this._DOMMetrics={metrics:{},components:[]}},componentDidMount:function(){window.addEventListener?window.addEventListener("resize",this.updateMetrics):window.attachEvent("resize",this.updateMetrics),this.updateMetrics()},componentWillUnmount:function(){window.removeEventListener("resize",this.updateMetrics)}},l={contextTypes:s,componentWillMount:function(){if(this.DOMMetrics){this._DOMMetricsDefs=n(this.DOMMetrics),this.DOMMetrics={};for(var e in this._DOMMetricsDefs)this._DOMMetricsDefs.hasOwnProperty(e)&&(this.DOMMetrics[e]=function(){})}},componentDidMount:function(){this.DOMMetrics&&(this.DOMMetrics=this.registerMetrics(this._DOMMetricsDefs))},componentWillUnmount:function(){return this.registerMetricsImpl?void(this.hasOwnProperty("DOMMetrics")&&delete this.DOMMetrics):this.context.metricsComputator.unregisterMetricsFor(this)},registerMetrics:function(e){return this.registerMetricsImpl?this.registerMetricsImpl(this,e):this.context.metricsComputator.registerMetricsImpl(this,e)},getMetric:function(e){return this.getMetricImpl?this.getMetricImpl(e):this.context.metricsComputator.getMetricImpl(e)}};e.exports={MetricsComputatorMixin:i,MetricsMixin:l}},function(e,t,o){function r(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}var n=o(98),s=o(99),i=o(100),l=o(101),a=o(102);r.prototype.clear=n,r.prototype["delete"]=s,r.prototype.get=i,r.prototype.has=l,r.prototype.set=a,e.exports=r},function(e,t,o){function r(e,t){for(var o=e.length;o--;)if(n(e[o][0],t))return o;return-1}var n=o(31);e.exports=r},function(e,t,o){function r(e,t){var o=e.__data__;return n(t)?o["string"==typeof t?"string":"hash"]:o.map}var n=o(95);e.exports=r},function(e,t,o){var r=o(7),n=r(Object,"create");e.exports=n},function(e,t,o){"use strict";function r(e,t){return e.map(function(e){var o=Object.assign({},e);return e.width&&/^([0-9]+)%$/.exec(e.width.toString())&&(o.width=Math.floor(e.width/100*t)),o})}function n(e,t,o){var r=e.filter(function(e){return!e.width});return e.map(function(e){return e.width||(t<=0?e.width=o:e.width=Math.floor(t/h.getSize(r))),e})}function s(e){var t=0;return e.map(function(e){return e.left=t,t+=e.width,e})}function i(e){var t=r(e.columns,e.totalWidth),o=t.filter(function(e){return e.width}).reduce(function(e,t){return e-t.width},e.totalWidth);o-=f();var i=t.filter(function(e){return e.width}).reduce(function(e,t){return e+t.width},0);return t=n(t,o,e.minColumnWidth),t=s(t),{columns:t,width:i,totalWidth:e.totalWidth,minColumnWidth:e.minColumnWidth}}function l(e,t,o){var r=h.getColumn(e.columns,t),n=u(e);n.columns=e.columns.slice(0);var s=u(r);return s.width=Math.max(o,n.minColumnWidth),n=h.spliceColumn(n,t,s),i(n)}function a(e,t){return"undefined"!=typeof Immutable&&e instanceof Immutable.List&&t instanceof Immutable.List}function c(e,t,o){var r=void 0,n=void 0,s=void 0,i={},l={};if(h.getSize(e)!==h.getSize(t))return!1;for(r=0,n=h.getSize(e);r<n;r++)s=e[r],i[s.key]=s;for(r=0,n=h.getSize(t);r<n;r++){s=t[r],l[s.key]=s;var a=i[s.key];if(void 0===a||!o(a,s))return!1}for(r=0,n=h.getSize(e);r<n;r++){s=e[r];var c=l[s.key];if(void 0===c)return!1}return!0}function p(e,t,o){return a(e,t)?e===t:c(e,t,o)}var u=o(16),d=o(39),h=o(5),f=o(24);e.exports={recalculate:i,resizeColumn:l,sameColumn:d,sameColumns:p}},function(e,t,o){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},n=o(1),s=o(3),i=o(20),l=o(14),a=o(5),c=o(8),p=n.PropTypes,u=n.createClass({displayName:"CellExpander",render:function(){return n.createElement(i,this.props)}}),d=n.createClass({displayName:"Row",propTypes:{height:p.number.isRequired,columns:p.oneOfType([p.object,p.array]).isRequired,row:p.any.isRequired,cellRenderer:p.func,cellMetaData:p.shape(c),isSelected:p.bool,idx:p.number.isRequired,expandedRows:p.arrayOf(p.object),extraClasses:p.string,forceUpdate:p.bool,subRowDetails:p.object,isRowHovered:p.bool},mixins:[a],getDefaultProps:function(){return{cellRenderer:i,isSelected:!1,height:35}},shouldComponentUpdate:function(e){return!l.sameColumns(this.props.columns,e.columns,l.sameColumn)||this.doesRowContainSelectedCell(this.props)||this.doesRowContainSelectedCell(e)||this.willRowBeDraggedOver(e)||e.row!==this.props.row||this.hasRowBeenCopied()||this.props.isSelected!==e.isSelected||e.height!==this.props.height||this.props.forceUpdate===!0},handleDragEnter:function(){var e=this.props.cellMetaData.handleDragEnterRow;e&&e(this.props.idx)},getSelectedColumn:function(){if(this.props.cellMetaData){var e=this.props.cellMetaData.selected;if(e&&e.idx)return this.getColumn(this.props.columns,e.idx)}},getCellRenderer:function(e){var t=this.props.cellRenderer;return this.props.subRowDetails&&this.props.subRowDetails.field===e?u:t},getCells:function(){var e=this,t=[],o=[],r=this.getSelectedColumn();return this.props.columns&&this.props.columns.forEach(function(s,i){var l=e.props.cellRenderer,a=n.createElement(l,{ref:i,key:s.key+"-"+i,idx:i,rowIdx:e.props.idx,value:e.getCellValue(s.key||i),column:s,height:e.getRowHeight(),formatter:s.formatter,cellMetaData:e.props.cellMetaData,rowData:e.props.row,selectedColumn:r,isRowSelected:e.props.isSelected,expandableOptions:e.getExpandableOptions(s.key)});s.locked?o.push(a):t.push(a)}),t.concat(o)},getRowHeight:function(){var e=this.props.expandedRows||null;if(e&&this.props.idx){var t=e[this.props.idx]||null;if(t)return t.height}return this.props.height},getCellValue:function(e){var t=void 0;return"select-row"===e?this.props.isSelected:t="function"==typeof this.props.row.get?this.props.row.get(e):this.props.row[e]},setScrollLeft:function(e){var t=this;this.props.columns.forEach(function(o,r){if(o.locked){if(!t.refs[r])return;t.refs[r].setScrollLeft(e)}})},doesRowContainSelectedCell:function(e){var t=e.cellMetaData.selected;return!(!t||t.rowIdx!==e.idx)},isContextMenuDisplayed:function(){if(this.props.cellMetaData){var e=this.props.cellMetaData.selected;if(e&&e.contextMenuDisplayed&&e.rowIdx===this.props.idx)return!0}return!1},willRowBeDraggedOver:function(e){var t=e.cellMetaData.dragged;return null!=t&&(t.rowIdx>=0||t.complete===!0)},hasRowBeenCopied:function(){var e=this.props.cellMetaData.copied;return null!=e&&e.rowIdx===this.props.idx},getExpandableOptions:function(e){return{canExpand:this.props.subRowDetails&&this.props.subRowDetails.field===e,expanded:this.props.subRowDetails&&this.props.subRowDetails.expanded,children:this.props.subRowDetails&&this.props.subRowDetails.children,treeDepth:this.props.subRowDetails?this.props.subRowDetails.treeDepth:0}},renderCell:function(e){return"function"==typeof this.props.cellRenderer&&this.props.cellRenderer.call(this,e),n.isValidElement(this.props.cellRenderer)?n.cloneElement(this.props.cellRenderer,e):this.props.cellRenderer(e)},render:function(){var e=s("react-grid-Row","react-grid-Row--"+(this.props.idx%2===0?"even":"odd"),{"row-selected":this.props.isSelected,"row-context-menu":this.isContextMenuDisplayed()},this.props.extraClasses),t={height:this.getRowHeight(this.props),overflow:"hidden"},o=this.getCells();return n.createElement("div",r({},this.props,{className:e,style:t,onDragEnter:this.handleDragEnter}),n.isValidElement(this.props.row)?this.props.row:o)}});e.exports=d},function(e,t){"use strict";function o(e){var t={};for(var o in e)e.hasOwnProperty(o)&&(t[o]=e[o]);return t}e.exports=o},function(e,t,o){var r=o(7),n=o(4),s=r(n,"Map");e.exports=s},function(e,t){function o(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}e.exports=o},function(e,t){function o(e){return!!e&&"object"==typeof e}e.exports=o},function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},s=o(122),i=r(s),l=o(1),a=o(2),c=o(3),p=o(60),u=o(6),d=o(23),h=o(8),f=o(62),w=o(5),m=l.createClass({displayName:"Cell",propTypes:{rowIdx:l.PropTypes.number.isRequired,idx:l.PropTypes.number.isRequired,selected:l.PropTypes.shape({idx:l.PropTypes.number.isRequired}),selectedColumn:l.PropTypes.object,height:l.PropTypes.number,tabIndex:l.PropTypes.number,ref:l.PropTypes.string,column:l.PropTypes.shape(u).isRequired,value:l.PropTypes.oneOfType([l.PropTypes.string,l.PropTypes.number,l.PropTypes.object,l.PropTypes.bool]).isRequired,isExpanded:l.PropTypes.bool,isRowSelected:l.PropTypes.bool,cellMetaData:l.PropTypes.shape(h).isRequired,handleDragStart:l.PropTypes.func,className:l.PropTypes.string,cellControls:l.PropTypes.any,rowData:l.PropTypes.object.isRequired,forceUpdate:l.PropTypes.bool,expandableOptions:l.PropTypes.object.isRequired},getDefaultProps:function(){return{tabIndex:-1,ref:"cell",isExpanded:!1}},getInitialState:function(){return{isCellValueChanging:!1}},componentDidMount:function(){this.checkFocus()},componentWillReceiveProps:function(e){this.setState({isCellValueChanging:this.props.value!==e.value})},componentDidUpdate:function(){this.checkFocus();var e=this.props.cellMetaData.dragged;e&&e.complete===!0&&this.props.cellMetaData.handleTerminateDrag(),this.state.isCellValueChanging&&null!=this.props.selectedColumn&&this.applyUpdateClass()},shouldComponentUpdate:function(e){return this.props.column.width!==e.column.width||this.props.column.left!==e.column.left||this.props.height!==e.height||this.props.rowIdx!==e.rowIdx||this.isCellSelectionChanging(e)||this.isDraggedCellChanging(e)||this.isCopyCellChanging(e)||this.props.isRowSelected!==e.isRowSelected||this.isSelected()||this.props.value!==e.value||this.props.forceUpdate===!0||this.props.className!==e.className||this.hasChangedDependentValues(e)},onCellClick:function(e){var t=this.props.cellMetaData;null!=t&&t.onCellClick&&"function"==typeof t.onCellClick&&t.onCellClick({rowIdx:this.props.rowIdx,idx:this.props.idx},e)},onCellContextMenu:function(){var e=this.props.cellMetaData;null!=e&&e.onCellContextMenu&&"function"==typeof e.onCellContextMenu&&e.onCellContextMenu({rowIdx:this.props.rowIdx,idx:this.props.idx})},onCellDoubleClick:function(e){var t=this.props.cellMetaData;null!=t&&t.onCellDoubleClick&&"function"==typeof t.onCellDoubleClick&&t.onCellDoubleClick({rowIdx:this.props.rowIdx,idx:this.props.idx},e)},onCellExpand:function(e){e.stopPropagation();var t=this.props.cellMetaData;null!=t&&null!=t.onCellExpand&&t.onCellExpand({rowIdx:this.props.rowIdx,idx:this.props.idx,rowData:this.props.rowData,expandArgs:this.props.expandableOptions})},onCellKeyDown:function(e){this.canExpand()&&"Enter"===e.key&&this.onCellExpand(e)},onDragHandleDoubleClick:function(e){e.stopPropagation();var t=this.props.cellMetaData;null!=t&&t.onDragHandleDoubleClick&&"function"==typeof t.onDragHandleDoubleClick&&t.onDragHandleDoubleClick({rowIdx:this.props.rowIdx,idx:this.props.idx,rowData:this.getRowData(),e:e})},onDragOver:function(e){e.preventDefault()},getStyle:function(){var e={position:"absolute",width:this.props.column.width,height:this.props.height,left:this.props.column.left};return e},getFormatter:function(){var e=this.props.column;return this.isActive()?l.createElement(p,{rowData:this.getRowData(),rowIdx:this.props.rowIdx,idx:this.props.idx,cellMetaData:this.props.cellMetaData,column:e,height:this.props.height}):this.props.column.formatter},getRowData:function(){var e=arguments.length<=0||void 0===arguments[0]?this.props:arguments[0];return e.rowData.toJSON?e.rowData.toJSON():e.rowData},getFormatterDependencies:function(){if("function"==typeof this.props.column.getRowMetaData)return this.props.column.getRowMetaData(this.getRowData(),this.props.column)},getCellClass:function(){var e=c(this.props.column.cellClass,"react-grid-Cell",this.props.className,this.props.column.locked?"react-grid-Cell--locked":null),t=c({"row-selected":this.props.isRowSelected,selected:this.isSelected()&&!this.isActive()&&this.isCellSelectEnabled(),editing:this.isActive(),copied:this.isCopied()||this.wasDraggedOver()||this.isDraggedOverUpwards()||this.isDraggedOverDownwards(),"active-drag-cell":this.isSelected()||this.isDraggedOver(),"is-dragged-over-up":this.isDraggedOverUpwards(),"is-dragged-over-down":this.isDraggedOverDownwards(),"was-dragged-over":this.wasDraggedOver()});return c(e,t)},getUpdateCellClass:function(){return this.props.column.getUpdateCellClass?this.props.column.getUpdateCellClass(this.props.selectedColumn,this.props.column,this.state.isCellValueChanging):""},isColumnSelected:function(){var e=this.props.cellMetaData;return null!=e&&(e.selected&&e.selected.idx===this.props.idx)},isSelected:function(){var e=this.props.cellMetaData;return null!=e&&(e.selected&&e.selected.rowIdx===this.props.rowIdx&&e.selected.idx===this.props.idx)},isActive:function(){var e=this.props.cellMetaData;return null!=e&&(this.isSelected()&&e.selected.active===!0)},isCellSelectionChanging:function(e){var t=this.props.cellMetaData;if(null==t)return!1;var o=e.cellMetaData.selected;return!t.selected||!o||(this.props.idx===o.idx||this.props.idx===t.selected.idx)},isCellSelectEnabled:function(){var e=this.props.cellMetaData;return null!=e&&e.enableCellSelect},hasChangedDependentValues:function g(e){var t=this.props.column,g=!1;if(t.getRowMetaData){var o=t.getRowMetaData(this.getRowData(),t),r=e.column,n=r.getRowMetaData(this.getRowData(e),r);g=!(0,i["default"])(o,n)}return g},applyUpdateClass:function(){var e=this.getUpdateCellClass();if(null!=e&&""!==e){var t=a.findDOMNode(this);t.classList?(t.classList.remove(e),t.classList.add(e)):t.className.indexOf(e)===-1&&(t.className=t.className+" "+e)}},setScrollLeft:function(e){var t=this;if(t.isMounted()){var o=a.findDOMNode(this),r="translate3d("+e+"px, 0px, 0px)";o.style.webkitTransform=r,o.style.transform=r}},isCopied:function(){var e=this.props.cellMetaData.copied;return e&&e.rowIdx===this.props.rowIdx&&e.idx===this.props.idx},isDraggedOver:function(){var e=this.props.cellMetaData.dragged;return e&&e.overRowIdx===this.props.rowIdx&&e.idx===this.props.idx},wasDraggedOver:function(){var e=this.props.cellMetaData.dragged;return e&&(e.overRowIdx<this.props.rowIdx&&this.props.rowIdx<e.rowIdx||e.overRowIdx>this.props.rowIdx&&this.props.rowIdx>e.rowIdx)&&e.idx===this.props.idx},isDraggedCellChanging:function(e){var t=void 0,o=this.props.cellMetaData.dragged,r=e.cellMetaData.dragged;return!!o&&(t=r&&this.props.idx===r.idx||o&&this.props.idx===o.idx)},isCopyCellChanging:function(e){var t=void 0,o=this.props.cellMetaData.copied,r=e.cellMetaData.copied;return!!o&&(t=r&&this.props.idx===r.idx||o&&this.props.idx===o.idx)},isDraggedOverUpwards:function(){var e=this.props.cellMetaData.dragged;return!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx<e.rowIdx},isDraggedOverDownwards:function(){var e=this.props.cellMetaData.dragged;return!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx>e.rowIdx},checkFocus:function(){if(this.isSelected()&&!this.isActive()){for(var e=a.findDOMNode(this);null!=e&&e.className.indexOf("react-grid-Viewport")===-1;)e=e.parentElement;var t=!1;if(null==document.activeElement||document.activeElement.nodeName&&"string"==typeof document.activeElement.nodeName&&"body"===document.activeElement.nodeName.toLowerCase())t=!0;else if(e)for(var o=document.activeElement;null!=o;){if(o===e){t=!0;break}o=o.parentElement}t&&a.findDOMNode(this).focus()}},canEdit:function(){return null!=this.props.column.editor||this.props.column.editable},canExpand:function(){return this.props.expandableOptions&&this.props.expandableOptions.canExpand},createColumEventCallBack:function(e,t){return function(o){e(o,t)}},createCellEventCallBack:function(e,t){return function(o){e(o),t(o)}},createEventDTO:function(e,t,o){var r=Object.assign({},e);for(var n in t)if(t.hasOwnProperty(n)){var s=t[s],i={rowIdx:this.props.rowIdx,idx:this.props.idx,name:n},l=this.createColumEventCallBack(o,i);if(r.hasOwnProperty(n)){var a=r[n];r[n]=this.createCellEventCallBack(a,l)}else r[n]=l}return r},getEvents:function(){var e=this.props.column?Object.assign({},this.props.column.events):void 0,t=this.props.cellMetaData?this.props.cellMetaData.onColumnEvent:void 0,o={onClick:this.onCellClick,onDoubleClick:this.onCellDoubleClick,onContextMenu:this.onCellContextMenu,onDragOver:this.onDragOver};return e&&t?this.createEventDTO(o,e,t):o},renderCellContent:function(e){var t=void 0,o=this.getFormatter();l.isValidElement(o)?(e.dependentValues=this.getFormatterDependencies(),t=l.cloneElement(o,e)):t=d(o)?l.createElement(o,{value:this.props.value,dependentValues:this.getFormatterDependencies()}):l.createElement(f,{value:this.props.value});var r=void 0,n=this.props.expandableOptions?30*this.props.expandableOptions.treeDepth:0;return this.canExpand()&&(r=l.createElement("span",{style:{"float":"left",marginLeft:n},onClick:this.onCellExpand},this.props.expandableOptions.expanded?String.fromCharCode("9660"):String.fromCharCode("9658"))),l.createElement("div",{ref:"cell",className:"react-grid-Cell__value"},r,l.createElement("span",null,t)," ",this.props.cellControls," ")},render:function(){var e=this.getStyle(),t=this.getCellClass(),o=this.renderCellContent({value:this.props.value,column:this.props.column,rowIdx:this.props.rowIdx,isExpanded:this.props.isExpanded}),r=!this.isActive()&&w.canEdit(this.props.column,this.props.rowData,this.props.cellMetaData.enableCellSelect)?l.createElement("div",{className:"drag-handle",draggable:"true",onDoubleClick:this.onDragHandleDoubleClick},l.createElement("span",{style:{display:"none"}})):null,s=this.getEvents();return l.createElement("div",n({},this.props,{className:t,style:e},s),o,r)}});e.exports=m},function(e,t){"use strict";var o={onKeyDown:function(e){if(this.isCtrlKeyHeldDown(e))this.checkAndCall("onPressKeyWithCtrl",e);else if(this.isKeyExplicitlyHandled(e.key)){var t="onPress"+e.key;this.checkAndCall(t,e)}else this.isKeyPrintable(e.keyCode)&&this.checkAndCall("onPressChar",e);this._keysDown=this._keysDown||{},this._keysDown[e.keyCode]=!0,this.props.onGridKeyDown&&"function"==typeof this.props.onGridKeyDown&&this.props.onGridKeyDown(e)},onKeyUp:function(e){this._keysDown=this._keysDown||{},delete this._keysDown[e.keyCode],this.props.onGridKeyUp&&"function"==typeof this.props.onGridKeyUp&&this.props.onGridKeyUp(e)},isKeyDown:function(e){return!!this._keysDown&&e in this._keysDown},isSingleKeyDown:function(e){return!!this._keysDown&&(e in this._keysDown&&1===Object.keys(this._keysDown).length)},isKeyPrintable:function(e){var t=e>47&&e<58||32===e||13===e||e>64&&e<91||e>95&&e<112||e>185&&e<193||e>218&&e<223;return t},isKeyExplicitlyHandled:function(e){return"function"==typeof this["onPress"+e]},isCtrlKeyHeldDown:function(e){return e.ctrlKey===!0&&"Control"!==e.key},checkAndCall:function(e,t){"function"==typeof this[e]&&this[e](t)}};e.exports=o},function(e,t){"use strict";var o={get:function(e,t){return"function"==typeof e.get?e.get(t):e[t]},isRowSelected:function(e,t,o,r,n){return t&&"[object Array]"===Object.prototype.toString.call(t)?t.indexOf(n)>-1:e&&e.rowKey&&e.values&&"[object Array]"===Object.prototype.toString.call(e.values)?e.values.indexOf(r[e.rowKey])>-1:!(!o||!r||"string"!=typeof o)&&r[o]}};e.exports=o},function(e,t){"use strict";var o=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)};e.exports=o},function(e,t){"use strict";function o(){if(void 0===r){var e=document.createElement("div");e.style.width="50px",e.style.height="50px",e.style.position="absolute",e.style.top="-200px",e.style.left="-200px";var t=document.createElement("div");t.style.height="100px",t.style.width="100%",e.appendChild(t),document.body.appendChild(e);var o=e.clientWidth;e.style.overflowY="scroll";var n=t.clientWidth;document.body.removeChild(e),r=o-n}return r}var r=void 0;e.exports=o},function(e,t){"use strict";function o(e,t){if(e===t)return!0;if("object"!=typeof e||null===e||"object"!=typeof t||null===t)return!1;var o=Object.keys(e),n=Object.keys(t);if(o.length!==n.length)return!1;for(var s=r.bind(t),i=0;i<o.length;i++)if(!s(o[i])||e[o[i]]!==t[o[i]])return!1;return!0}var r=Object.prototype.hasOwnProperty;e.exports=o},function(e,t,o){function r(e){var t=-1,o=e?e.length:0;for(this.clear();++t<o;){var r=e[t];this.set(r[0],r[1])}}var n=o(103),s=o(104),i=o(105),l=o(106),a=o(107);r.prototype.clear=n,r.prototype["delete"]=s,r.prototype.get=i,r.prototype.has=l,r.prototype.set=a,e.exports=r},function(e,t,o){function r(e,t,o,r,a,c){var p=a&l,u=e.length,d=t.length;if(u!=d&&!(p&&d>u))return!1;var h=c.get(e);if(h&&c.get(t))return h==t;var f=-1,w=!0,m=a&i?new n:void 0;for(c.set(e,t),c.set(t,e);++f<u;){var g=e[f],y=t[f];if(r)var v=p?r(y,g,f,t,e,c):r(g,y,f,e,t,c);if(void 0!==v){if(v)continue;w=!1;break}if(m){if(!s(t,function(e,t){if(!m.has(t)&&(g===e||o(g,e,r,a,c)))return m.add(t)})){w=!1;break}}else if(g!==y&&!o(g,y,r,a,c)){w=!1;break}}return c["delete"](e),c["delete"](t),w}var n=o(69),s=o(75),i=1,l=2;e.exports=r},function(e,t,o){var r="object"==typeof window&&window&&window.Object===Object&&window;e.exports=r},function(e,t){function o(e){var t=!1;if(null!=e&&"function"!=typeof e.toString)try{t=!!(e+"")}catch(o){}return t}e.exports=o},function(e,t){function o(e){if(null!=e){try{return n.call(e)}catch(t){}try{return e+""}catch(t){}}return""}var r=Function.prototype,n=r.toString;e.exports=o},function(e,t){function o(e,t){return e===t||e!==e&&t!==t}e.exports=o},function(e,t){var o=Array.isArray;e.exports=o},function(e,t,o){function r(e){return null!=e&&s(e.length)&&!n(e)}var n=o(34),s=o(35);e.exports=r},function(e,t,o){function r(e){var t=n(e)?a.call(e):"";return t==s||t==i}var n=o(18),s="[object Function]",i="[object GeneratorFunction]",l=Object.prototype,a=l.toString;e.exports=r},function(e,t){function o(e){return"number"==typeof e&&e>-1&&e%1==0&&e<=r}var r=9007199254740991;e.exports=o},function(e,t){"use strict";function o(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=Object.assign||function(e,t){for(var r,n,s=o(e),i=1;i<arguments.length;i++){r=arguments[i],n=Object.keys(Object(r));for(var l=0;l<n.length;l++)s[n[l]]=r[n[l]]}return s}},function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var n=o(64),s=r(n),i={UpdateActions:(0,s["default"])({CELL_UPDATE:null,COLUMN_FILL:null,COPY_PASTE:null,CELL_DRAG:null})};t["default"]=i},function(e,t,o){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}var n=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},s=o(25),i=r(s),l=o(52),a=r(l),c=o(51),p=r(c),u=o(1),d=o(2),h=o(3),f=u.PropTypes,w=o(53),m=o(15),g=o(8),y=o(22),v=u.createClass({displayName:"Canvas",mixins:[w],propTypes:{rowRenderer:f.oneOfType([f.func,f.element]),rowHeight:f.number.isRequired,height:f.number.isRequired,width:f.number,totalWidth:f.oneOfType([f.number,f.string]),style:f.string,className:f.string,displayStart:f.number.isRequired,displayEnd:f.number.isRequired,rowsCount:f.number.isRequired,rowGetter:f.oneOfType([f.func.isRequired,f.array.isRequired]),expandedRows:f.array,onRows:f.func,onScroll:f.func,columns:f.oneOfType([f.object,f.array]).isRequired,cellMetaData:f.shape(g).isRequired,selectedRows:f.array,rowKey:u.PropTypes.string,rowScrollTimeout:u.PropTypes.number,contextMenu:f.element,getSubRowDetails:f.func,rowSelection:u.PropTypes.oneOfType([u.PropTypes.shape({indexes:u.PropTypes.arrayOf(u.PropTypes.number).isRequired}),u.PropTypes.shape({isSelectedKey:u.PropTypes.string.isRequired}),u.PropTypes.shape({keys:u.PropTypes.shape({values:u.PropTypes.array.isRequired,rowKey:u.PropTypes.string.isRequired}).isRequired})]),rowGroupRenderer:u.PropTypes.func},getDefaultProps:function(){return{rowRenderer:m,onRows:function(){},selectedRows:[],rowScrollTimeout:0}},getInitialState:function(){return{displayStart:this.props.displayStart,displayEnd:this.props.displayEnd,scrollingTimeout:null}},componentWillMount:function(){this._currentRowsLength=0,this._currentRowsRange={start:0,end:0},this._scroll={scrollTop:0,scrollLeft:0}},componentDidMount:function(){this.onRows()},componentWillReceiveProps:function(e){e.displayStart===this.state.displayStart&&e.displayEnd===this.state.displayEnd||this.setState({displayStart:e.displayStart,displayEnd:e.displayEnd})},shouldComponentUpdate:function(e,t){var o=t.displayStart!==this.state.displayStart||t.displayEnd!==this.state.displayEnd||t.scrollingTimeout!==this.state.scrollingTimeout||e.rowsCount!==this.props.rowsCount||e.rowHeight!==this.props.rowHeight||e.columns!==this.props.columns||e.width!==this.props.width||e.cellMetaData!==this.props.cellMetaData||!(0,i["default"])(e.style,this.props.style);return o},componentWillUnmount:function(){this._currentRowsLength=0,this._currentRowsRange={start:0,end:0},this._scroll={scrollTop:0,scrollLeft:0}},componentDidUpdate:function(){0!==this._scroll.scrollTop&&0!==this._scroll.scrollLeft&&this.setScrollLeft(this._scroll.scrollLeft),this.onRows()},onRows:function(){this._currentRowsRange!=={start:0,end:0}&&(this.props.onRows(this._currentRowsRange),this._currentRowsRange={start:0,end:0})},onScroll:function(e){var t=this;if(d.findDOMNode(this)===e.target){this.appendScrollShim();var o=e.target.scrollLeft,r=e.target.scrollTop,n={scrollTop:r,scrollLeft:o},s=Math.abs(this._scroll.scrollTop-n.scrollTop)/this.props.rowHeight,i=s>this.props.displayEnd-this.props.displayStart;if(this._scroll=n,this.props.onScroll(n),i&&this.props.rowScrollTimeout>0){var l=this.state.scrollingTimeout;l&&clearTimeout(l),l=setTimeout(function(){null!==t.state.scrollingTimeout&&t.setState({scrollingTimeout:null})},this.props.rowScrollTimeout),this.setState({scrollingTimeout:l})}}},getSubRows:function(e){var t=this.props.getSubRowDetails(e);if(t.expanded===!0)return t.children.map(function(e){return{row:e}})},addSubRows:function(e,t,o,r,n){var s=this,i=this.props.getSubRowDetails(t)||{},l=e,a=o;if(a<r&&(i.treeDepth=n,l.push({row:t,subRowDetails:i}),a++),i&&i.expanded){var c=this.getSubRows(t);c.forEach(function(e){var t=s.addSubRows(l,e.row,a,r,n+1);l=t.rows,a=t.increment})}return{rows:l,increment:a}},getRows:function(e,t){if(this._currentRowsRange={start:e,end:t},Array.isArray(this.props.rowGetter))return this.props.rowGetter.slice(e,t);for(var o=[],r=e,n=e;n<t;){var s=this.props.rowGetter(r);if(this.props.getSubRowDetails){var i=0,l=this.addSubRows(o,s,n,t,i);o=l.rows,n=l.increment}else o.push({row:s}),n++;r++}return o},getScrollbarWidth:function(){var e=0,t=d.findDOMNode(this);return e=t.offsetWidth-t.clientWidth},getScroll:function(){var e=d.findDOMNode(this),t=e.scrollTop,o=e.scrollLeft;return{scrollTop:t,scrollLeft:o}},isRowSelected:function(e,t){var o=this;if(null!==this.props.selectedRows){var r=this.props.selectedRows.filter(function(e){var r=t.get?t.get(o.props.rowKey):t[o.props.rowKey];return e[o.props.rowKey]===r});return r.length>0&&r[0].isSelected}if(this.props.rowSelection){var n=this.props.rowSelection,s=n.keys,i=n.indexes,l=n.isSelectedKey;return y.isRowSelected(s,i,l,t,e)}return!1},_currentRowsLength:0,_currentRowsRange:{start:0,end:0},_scroll:{scrollTop:0,scrollLeft:0},setScrollLeft:function(e){if(0!==this._currentRowsLength){if(!this.refs)return;for(var t=0,o=this._currentRowsLength;t<o;t++)this.refs[t]&&this.refs[t].setScrollLeft&&this.refs[t].setScrollLeft(e)}},renderRow:function(e){var t=e.row;if(t.__metaData&&t.__metaData.isGroup)return u.createElement(p["default"],n({name:t.name},t.__metaData,{row:e.row,idx:e.idx,cellMetaData:this.props.cellMetaData,renderer:this.props.rowGroupRenderer}));if(null!==this.state.scrollingTimeout)return this.renderScrollingPlaceholder(e);var o=this.props.rowRenderer;return"function"==typeof o?u.createElement(o,e):u.isValidElement(this.props.rowRenderer)?u.cloneElement(this.props.rowRenderer,e):void 0},renderScrollingPlaceholder:function(e){var t={row:{height:e.height,overflow:"hidden"},cell:{height:e.height,position:"absolute"},placeholder:{backgroundColor:"rgba(211, 211, 211, 0.45)",width:"60%",height:Math.floor(.3*e.height)}};return u.createElement("div",{key:e.key,style:t.row,className:"react-grid-Row"},this.props.columns.map(function(e,o){return u.createElement("div",{style:Object.assign(t.cell,{width:e.width,left:e.left}),key:o,className:"react-grid-Cell"},u.createElement("div",{style:Object.assign(t.placeholder,{width:Math.floor(.6*e.width)})}))}))},renderPlaceholder:function(e,t){return u.createElement("div",{ key:e,style:{height:t}},this.props.columns.map(function(e,t){return u.createElement("div",{style:{width:e.width},key:t})}))},render:function(){var e=this,t=this.state.displayStart,o=this.state.displayEnd,r=this.props.rowHeight,n=this.props.rowsCount,s=this.getRows(t,o).map(function(n,s){return e.renderRow({key:t+s,ref:s,idx:t+s,row:n.row,height:r,onMouseOver:e.onMouseOver,columns:e.props.columns,isSelected:e.isRowSelected(t+s,n.row,t,o),expandedRows:e.props.expandedRows,cellMetaData:e.props.cellMetaData,subRowDetails:n.subRowDetails})});this._currentRowsLength=s.length,t>0&&s.unshift(this.renderPlaceholder("top",t*r)),n-o>0&&s.push(this.renderPlaceholder("bottom",(n-o)*r));var i={position:"absolute",top:0,left:0,overflowX:"auto",overflowY:"scroll",width:this.props.totalWidth,height:this.props.height,transform:"translate3d(0, 0, 0)"};return u.createElement("div",{style:i,onScroll:this.onScroll,className:h("react-grid-Canvas",this.props.className,{opaque:this.props.cellMetaData.selected&&this.props.cellMetaData.selected.active})},u.createElement(a["default"],{width:this.props.width,rows:s,contextMenu:this.props.contextMenu,rowIdx:this.props.cellMetaData.selected.rowIdx,idx:this.props.cellMetaData.selected.idx}))}});e.exports=v},function(e,t,o){"use strict";var r=o(1).isValidElement;e.exports=function(e,t){var o=void 0;for(o in e)if(e.hasOwnProperty(o)){if("function"==typeof e[o]&&"function"==typeof t[o]||r(e[o])&&r(t[o]))continue;if(!t.hasOwnProperty(o)||e[o]!==t[o])return!1}for(o in t)if(t.hasOwnProperty(o)&&!e.hasOwnProperty(o))return!1;return!0}},function(e,t,o){"use strict";function r(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 s=o(2),i=r(s),l=o(14),a=o(9);Object.assign=o(36);var c=o(1).PropTypes,p=o(5),u=function d(){n(this,d)};e.exports={mixins:[a.MetricsMixin],propTypes:{columns:c.arrayOf(u),minColumnWidth:c.number,columnEquality:c.func,onColumnResize:c.func},DOMMetrics:{gridWidth:function(){return i["default"].findDOMNode(this).parentElement.offsetWidth}},getDefaultProps:function(){return{minColumnWidth:80,columnEquality:l.sameColumn}},componentWillMount:function(){this._mounted=!0},componentWillReceiveProps:function(e){if(e.columns&&(!l.sameColumns(this.props.columns,e.columns,this.props.columnEquality)||e.minWidth!==this.props.minWidth)){var t=this.createColumnMetrics(e);this.setState({columnMetrics:t})}},getTotalWidth:function(){var e=0;return e=this._mounted?this.DOMMetrics.gridWidth():p.getSize(this.props.columns)*this.props.minColumnWidth},getColumnMetricsType:function(e){var t=e.totalWidth||this.getTotalWidth(),o={columns:e.columns,totalWidth:t,minColumnWidth:e.minColumnWidth},r=l.recalculate(o);return r},getColumn:function(e){var t=this.state.columnMetrics.columns;return Array.isArray(t)?t[e]:"undefined"!=typeof Immutable?t.get(e):void 0},getSize:function(){var e=this.state.columnMetrics.columns;return Array.isArray(e)?e.length:"undefined"!=typeof Immutable?e.size:void 0},metricsUpdated:function(){var e=this.createColumnMetrics();this.setState({columnMetrics:e})},createColumnMetrics:function(){var e=arguments.length<=0||void 0===arguments[0]?this.props:arguments[0],t=this.setupGridColumns(e);return this.getColumnMetricsType({columns:t,minColumnWidth:this.props.minColumnWidth,totalWidth:e.minWidth})},onColumnResize:function(e,t){var o=l.resizeColumn(this.state.columnMetrics,e,t);this.setState({columnMetrics:o}),this.props.onColumnResize&&this.props.onColumnResize(e,t)}}},function(e,t,o){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},n=o(1),s=n.PropTypes,i=n.createClass({displayName:"Draggable",propTypes:{onDragStart:s.func,onDragEnd:s.func,onDrag:s.func,component:s.oneOfType([s.func,s.constructor])},getDefaultProps:function(){return{onDragStart:function(){return!0},onDragEnd:function(){},onDrag:function(){}}},getInitialState:function(){return{drag:null}},componentWillUnmount:function(){this.cleanUp()},onMouseDown:function(e){var t=this.props.onDragStart(e);null===t&&0!==e.button||(window.addEventListener("mouseup",this.onMouseUp),window.addEventListener("mousemove",this.onMouseMove),window.addEventListener("touchend",this.onMouseUp),window.addEventListener("touchmove",this.onMouseMove),this.setState({drag:t}))},onMouseMove:function(e){null!==this.state.drag&&(e.preventDefault&&e.preventDefault(),this.props.onDrag(e))},onMouseUp:function(e){this.cleanUp(),this.props.onDragEnd(e,this.state.drag),this.setState({drag:null})},cleanUp:function(){window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove),window.removeEventListener("touchend",this.onMouseUp),window.removeEventListener("touchmove",this.onMouseMove)},render:function(){return n.createElement("div",r({},this.props,{onMouseDown:this.onMouseDown,onTouchStart:this.onMouseDown,className:"react-grid-HeaderCell__draggable"}))}});e.exports=i},function(e,t,o){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},n=o(1),s=n.PropTypes,i=o(44),l=o(54),a=o(43),c=o(9),p=o(8),u=n.createClass({displayName:"Grid",propTypes:{rowGetter:s.oneOfType([s.array,s.func]).isRequired,columns:s.oneOfType([s.array,s.object]),columnMetrics:s.object,minHeight:s.number,totalWidth:s.oneOfType([s.number,s.string]),headerRows:s.oneOfType([s.array,s.func]),rowHeight:s.number,rowRenderer:s.oneOfType([s.element,s.func]),emptyRowsView:s.func,expandedRows:s.oneOfType([s.array,s.func]),selectedRows:s.oneOfType([s.array,s.func]),rowSelection:n.PropTypes.oneOfType([n.PropTypes.shape({indexes:n.PropTypes.arrayOf(n.PropTypes.number).isRequired}),n.PropTypes.shape({isSelectedKey:n.PropTypes.string.isRequired}),n.PropTypes.shape({keys:n.PropTypes.shape({values:n.PropTypes.array.isRequired,rowKey:n.PropTypes.string.isRequired}).isRequired})]),rowsCount:s.number,onRows:s.func,sortColumn:n.PropTypes.string,sortDirection:n.PropTypes.oneOf(["ASC","DESC","NONE"]),rowOffsetHeight:s.number.isRequired,onViewportKeydown:s.func.isRequired,onViewportKeyup:s.func,onViewportDragStart:s.func.isRequired,onViewportDragEnd:s.func.isRequired,onViewportDoubleClick:s.func.isRequired,onColumnResize:s.func,onSort:s.func,cellMetaData:s.shape(p),rowKey:s.string.isRequired,rowScrollTimeout:s.number,contextMenu:s.element,getSubRowDetails:s.func,draggableHeaderCell:s.func,getValidFilterValues:s.func,rowGroupRenderer:s.func},mixins:[a,c.MetricsComputatorMixin],getDefaultProps:function(){return{rowHeight:35,minHeight:350}},getStyle:function(){return{overflow:"hidden",outline:0,position:"relative",minHeight:this.props.minHeight}},render:function(){var e=this.props.headerRows||[{ref:"row"}],t=this.props.emptyRowsView;return n.createElement("div",r({},this.props,{style:this.getStyle(),className:"react-grid-Grid"}),n.createElement(i,{ref:"header",columnMetrics:this.props.columnMetrics,onColumnResize:this.props.onColumnResize,height:this.props.rowHeight,totalWidth:this.props.totalWidth,headerRows:e,sortColumn:this.props.sortColumn,sortDirection:this.props.sortDirection,draggableHeaderCell:this.props.draggableHeaderCell,onSort:this.props.onSort,onScroll:this.onHeaderScroll,getValidFilterValues:this.props.getValidFilterValues}),this.props.rowsCount>=1||0===this.props.rowsCount&&!this.props.emptyRowsView?n.createElement("div",{ref:"viewPortContainer",tabIndex:"0",onKeyDown:this.props.onViewportKeydown,onKeyUp:this.props.onViewportKeyup,onDoubleClick:this.props.onViewportDoubleClick,onDragStart:this.props.onViewportDragStart,onDragEnd:this.props.onViewportDragEnd},n.createElement(l,{ref:"viewport",rowKey:this.props.rowKey,width:this.props.columnMetrics.width,rowHeight:this.props.rowHeight,rowRenderer:this.props.rowRenderer,rowGetter:this.props.rowGetter,rowsCount:this.props.rowsCount,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,columnMetrics:this.props.columnMetrics,totalWidth:this.props.totalWidth,onScroll:this.onScroll,onRows:this.props.onRows,cellMetaData:this.props.cellMetaData,rowOffsetHeight:this.props.rowOffsetHeight||this.props.rowHeight*e.length,minHeight:this.props.minHeight,rowScrollTimeout:this.props.rowScrollTimeout,contextMenu:this.props.contextMenu,rowSelection:this.props.rowSelection,getSubRowDetails:this.props.getSubRowDetails,rowGroupRenderer:this.props.rowGroupRenderer})):n.createElement("div",{ref:"emptyView",className:"react-grid-Empty"},n.createElement(t,null)))}});e.exports=u},function(e,t,o){"use strict";var r=o(2);e.exports={componentDidMount:function(){this._scrollLeft=this.refs.viewport?this.refs.viewport.getScroll().scrollLeft:0,this._onScroll()},componentDidUpdate:function(){this._onScroll()},componentWillMount:function(){this._scrollLeft=void 0},componentWillUnmount:function(){this._scrollLeft=void 0},onScroll:function(e){this._scrollLeft!==e.scrollLeft&&(this._scrollLeft=e.scrollLeft,this._onScroll())},onHeaderScroll:function(e){var t=e.target.scrollLeft;if(this._scrollLeft!==t){this._scrollLeft=t,this.refs.header.setScrollLeft(t);var o=r.findDOMNode(this.refs.viewport.refs.canvas);o.scrollLeft=t,this.refs.viewport.refs.canvas.setScrollLeft(t)}},_onScroll:function(){void 0!==this._scrollLeft&&(this.refs.header.setScrollLeft(this._scrollLeft),this.refs.viewport&&this.refs.viewport.setScrollLeft(this._scrollLeft))}}},function(e,t,o){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},n=o(1),s=o(2),i=o(3),l=o(16),a=o(14),c=o(5),p=o(47),u=n.PropTypes,d=n.createClass({displayName:"Header",propTypes:{columnMetrics:u.shape({width:u.number.isRequired,columns:u.any}).isRequired,totalWidth:u.oneOfType([u.number,u.string]),height:u.number.isRequired,headerRows:u.array.isRequired,sortColumn:u.string,sortDirection:u.oneOf(["ASC","DESC","NONE"]),onSort:u.func,onColumnResize:u.func,onScroll:u.func,draggableHeaderCell:u.func,getValidFilterValues:u.func},getInitialState:function(){return{resizing:null}},componentWillReceiveProps:function(){this.setState({resizing:null})},shouldComponentUpdate:function(e,t){var o=!a.sameColumns(this.props.columnMetrics.columns,e.columnMetrics.columns,a.sameColumn)||this.props.totalWidth!==e.totalWidth||this.props.headerRows.length!==e.headerRows.length||this.state.resizing!==t.resizing||this.props.sortColumn!==e.sortColumn||this.props.sortDirection!==e.sortDirection;return o},onColumnResize:function(e,t){var o=this.state.resizing||this.props,r=this.getColumnPosition(e);if(null!=r){var n={columnMetrics:l(o.columnMetrics)};n.columnMetrics=a.resizeColumn(n.columnMetrics,r,t),n.columnMetrics.totalWidth<o.columnMetrics.totalWidth&&(n.columnMetrics.totalWidth=o.columnMetrics.totalWidth),n.column=c.getColumn(n.columnMetrics.columns,r),this.setState({resizing:n})}},onColumnResizeEnd:function(e,t){var o=this.getColumnPosition(e);null!==o&&this.props.onColumnResize&&this.props.onColumnResize(o,t||e.width)},getHeaderRows:function(){var e=this,t=this.getColumnMetrics(),o=void 0;this.state.resizing&&(o=this.state.resizing.column);var r=[];return this.props.headerRows.forEach(function(s,i){var l="auto";"filter"===s.rowType&&(l="500px");var a={position:"absolute",top:e.getCombinedHeaderHeights(i),left:0,width:e.props.totalWidth,overflowX:"hidden",minHeight:l};r.push(n.createElement(p,{key:s.ref,ref:s.ref,rowType:s.rowType,style:a,onColumnResize:e.onColumnResize,onColumnResizeEnd:e.onColumnResizeEnd,width:t.width,height:s.height||e.props.height,columns:t.columns,resizing:o,draggableHeaderCell:e.props.draggableHeaderCell,filterable:s.filterable,onFilterChange:s.onFilterChange,sortColumn:e.props.sortColumn,sortDirection:e.props.sortDirection,onSort:e.props.onSort,onScroll:e.props.onScroll,getValidFilterValues:e.props.getValidFilterValues}))}),r},getColumnMetrics:function(){var e=void 0;return e=this.state.resizing?this.state.resizing.columnMetrics:this.props.columnMetrics},getColumnPosition:function(e){var t=this.getColumnMetrics(),o=-1;return t.columns.forEach(function(t,r){t.key===e.key&&(o=r)}),o===-1?null:o},getCombinedHeaderHeights:function(e){var t=this.props.headerRows.length;"undefined"!=typeof e&&(t=e);for(var o=0,r=0;r<t;r++)o+=this.props.headerRows[r].height||this.props.height;return o},getStyle:function(){return{position:"relative",height:this.getCombinedHeaderHeights()}},setScrollLeft:function(e){var t=s.findDOMNode(this.refs.row);if(t.scrollLeft=e,this.refs.row.setScrollLeft(e),this.refs.filterRow){var o=s.findDOMNode(this.refs.filterRow);o.scrollLeft=e,this.refs.filterRow.setScrollLeft(e)}},render:function(){var e=i({"react-grid-Header":!0,"react-grid-Header--resizing":!!this.state.resizing}),t=this.getHeaderRows();return n.createElement("div",r({},this.props,{style:this.getStyle(),className:e}),t)}});e.exports=d},function(e,t,o){"use strict";function r(e){return n.createElement("div",{className:"widget-HeaderCell__value"},e.column.name)}var n=o(1),s=o(2),i=o(3),l=o(6),a=o(50),c=n.PropTypes,p=n.createClass({displayName:"HeaderCell",propTypes:{renderer:c.oneOfType([c.func,c.element]).isRequired,column:c.shape(l).isRequired,onResize:c.func.isRequired,height:c.number.isRequired,onResizeEnd:c.func.isRequired,className:c.string},getDefaultProps:function(){return{renderer:r}},getInitialState:function(){return{resizing:!1}},onDragStart:function(e){this.setState({resizing:!0}),e&&e.dataTransfer&&e.dataTransfer.setData&&e.dataTransfer.setData("text/plain","dummy")},onDrag:function(e){var t=this.props.onResize||null;if(t){var o=this.getWidthFromMouseEvent(e);o>0&&t(this.props.column,o)}},onDragEnd:function(e){var t=this.getWidthFromMouseEvent(e);this.props.onResizeEnd(this.props.column,t),this.setState({resizing:!1})},getWidthFromMouseEvent:function(e){var t=e.pageX||e.touches&&e.touches[0]&&e.touches[0].pageX||e.changedTouches&&e.changedTouches[e.changedTouches.length-1].pageX,o=s.findDOMNode(this).getBoundingClientRect().left;return t-o},getCell:function(){return n.isValidElement(this.props.renderer)?n.cloneElement(this.props.renderer,{column:this.props.column,height:this.props.height}):this.props.renderer({column:this.props.column})},getStyle:function(){return{width:this.props.column.width,left:this.props.column.left,display:"inline-block",position:"absolute",height:this.props.height,margin:0,textOverflow:"ellipsis",whiteSpace:"nowrap"}},setScrollLeft:function(e){var t=s.findDOMNode(this);t.style.webkitTransform="translate3d("+e+"px, 0px, 0px)",t.style.transform="translate3d("+e+"px, 0px, 0px)"},render:function(){var e=void 0;this.props.column.resizable&&(e=n.createElement(a,{onDrag:this.onDrag,onDragStart:this.onDragStart,onDragEnd:this.onDragEnd}));var t=i({"react-grid-HeaderCell":!0,"react-grid-HeaderCell--resizing":this.state.resizing,"react-grid-HeaderCell--locked":this.props.column.locked});t=i(t,this.props.className,this.props.column.cellClass);var o=this.getCell();return n.createElement("div",{className:t,style:this.getStyle()},o,e)}});e.exports=p},function(e,t){"use strict";var o={SORTABLE:0,FILTERABLE:1,NONE:2,CHECKBOX:3};e.exports=o},function(e,t,o){"use strict";var r=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var o=arguments[t];for(var r in o)Object.prototype.hasOwnProperty.call(o,r)&&(e[r]=o[r])}return e},n=o(1),s=o(25),i=o(45),l=o(24),a=(o(6),o(5)),c=o(57),p=o(56),u=o(46),d=n.PropTypes,h={overflow:n.PropTypes.string,width:d.oneOfType([d.number,d.string]),height:n.PropTypes.number,position:n.PropTypes.string},f=["ASC","DESC","NONE"],w=n.createClass({displayName:"HeaderRow",propTypes:{width:d.oneOfType([d.number,d.string]),height:d.number.isRequired,columns:d.oneOfType([d.array,d.object]),onColumnResize:d.func,onSort:d.func.isRequired,onColumnResizeEnd:d.func,style:d.shape(h),sortColumn:d.string,sortDirection:n.PropTypes.oneOf(f),cellRenderer:d.func,headerCellRenderer:d.func,filterable:d.bool,onFilterChange:d.func,resizing:d.object,onScroll:d.func,rowType:d.string,draggableHeaderCell:d.func},mixins:[a],shouldComponentUpdate:function(e){return e.width!==this.props.width||e.height!==this.props.height||e.columns!==this.props.columns||!s(e.style,this.props.style)||this.props.sortColumn!==e.sortColumn||this.props.sortDirection!==e.sortDirection},getHeaderCellType:function(e){return e.filterable&&this.props.filterable?u.FILTERABLE:e.sortable?u.SORTABLE:u.NONE},getFilterableHeaderCell:function(e){var t=p;return void 0!==e.filterRenderer&&(t=e.filterRenderer),n.createElement(t,r({},this.props,{onChange:this.props.onFilterChange}))},getSortableHeaderCell:function(e){var t=this.props.sortColumn===e.key?this.props.sortDirection:f.NONE;return n.createElement(c,{columnKey:e.key,onSort:this.props.onSort,sortDirection:t})},getHeaderRenderer:function(e){var t=void 0;if(e.headerRenderer)t=e.headerRenderer;else{var o=this.getHeaderCellType(e);switch(o){case u.SORTABLE:t=this.getSortableHeaderCell(e);break;case u.FILTERABLE:t=this.getFilterableHeaderCell(e)}}return t},getStyle:function(){return{overflow:"hidden",width:"100%",height:this.props.height,position:"absolute"}},getCells:function(){for(var e=[],t=[],o=0,r=this.getSize(this.props.columns);o<r;o++){var s=this.getColumn(this.props.columns,o),l=this.getHeaderRenderer(s);"select-row"===s.key&&"filter"===this.props.rowType&&(l=n.createElement("div",null));var a=s.draggable?this.props.draggableHeaderCell:i,c=n.createElement(a,{ref:o,key:o,height:this.props.height,column:s,renderer:l,resizing:this.props.resizing===s,onResize:this.props.onColumnResize,onResizeEnd:this.props.onColumnResizeEnd});s.locked?t.push(c):e.push(c)}return e.concat(t)},setScrollLeft:function(e){var t=this;this.props.columns.forEach(function(o,r){o.locked&&t.refs[r].setScrollLeft(e)})},render:function(){var e={width:this.pro