UNPKG

react-data-grid

Version:
2 lines • 76 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react")):"function"==typeof define&&define.amd?define(["react"],t):"object"==typeof exports?exports.ReactDataGrid=t(require("react")):e.ReactDataGrid=t(e.React)}(this,function(e){return function(e){function t(s){if(r[s])return r[s].exports;var o=r[s]={exports:{},id:s,loaded:!1};return e[s].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var r={};return t.m=e,t.c=r,t.p="",t(0)}([function(e,t,r){"use strict";e.exports=r(43),e.exports.Editors=r(68),e.exports.Formatters=r(70),e.exports.Toolbar=r(71),e.exports.Row=r(11)},function(t,r){t.exports=e},function(e,t,r){"use strict";var s=(r(17)["default"],r(1)),o={name:s.PropTypes.string.isRequired,key:s.PropTypes.string.isRequired,width:s.PropTypes.number.isRequired};e.exports=o},function(e,t,r){"use strict";var s=r(14)["default"];t["default"]=s||function(e){for(var t=1;t<arguments.length;t++){var r=arguments[t];for(var s in r)Object.prototype.hasOwnProperty.call(r,s)&&(e[s]=r[s])}return e},t.__esModule=!0},function(e,t,r){function s(){for(var e,t="",r=0;r<arguments.length;r++)if(e=arguments[r])if("string"==typeof e||"number"==typeof e)t+=" "+e;else if("[object Array]"===Object.prototype.toString.call(e))t+=" "+s.apply(null,e);else if("object"==typeof e)for(var o in e)e.hasOwnProperty(o)&&e[o]&&(t+=" "+o);return t.substr(1)}var o,n;"undefined"!=typeof e&&e.exports&&(e.exports=s),o=[],n=function(){return s}.apply(t,o),!(void 0!==n&&(e.exports=n))},function(e,t,r){(function(t){"use strict";function s(e,r){"production"!==t.env.NODE_ENV&&("production"!==t.env.NODE_ENV?l(!e.ref,"You are calling cloneWithProps() on a child with a ref. This is dangerous because you're creating a new child which will not be added as a ref to its parent."):null);var s=n.mergeProps(r,e.props);return!s.hasOwnProperty(a)&&e.props.hasOwnProperty(a)&&(s.children=e.props.children),o.createElement(e.type,s)}var o=r(60),n=r(61),i=r(64),l=r(15),a=i({children:null});e.exports=s}).call(t,r(8))},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,r){return Array.isArray(e.columns)?e.columns.splice(t,1,r):"undefined"!=typeof Immutable&&(e.columns=e.columns.splice(t,1,r)),e},getSize:function(e){return Array.isArray(e)?e.length:"undefined"!=typeof Immutable?e.size:void 0}}},function(e,t){function r(e){return function(){return e}}function s(){}s.thatReturns=r,s.thatReturnsFalse=r(!1),s.thatReturnsTrue=r(!0),s.thatReturnsNull=r(null),s.thatReturnsThis=function(){return this},s.thatReturnsArgument=function(e){return e},e.exports=s},function(e,t){function r(){u=!1,i.length?a=i.concat(a):c=-1,a.length&&s()}function s(){if(!u){var e=setTimeout(r);u=!0;for(var t=a.length;t;){for(i=a,a=[];++c<t;)i&&i[c].run();c=-1,t=a.length}i=null,u=!1,clearTimeout(e)}}function o(e,t){this.fun=e,this.array=t}function n(){}var i,l=e.exports={},a=[],u=!1,c=-1;l.nextTick=function(e){var t=new Array(arguments.length-1);if(arguments.length>1)for(var r=1;r<arguments.length;r++)t[r-1]=arguments[r];a.push(new o(e,t)),1!==a.length||u||setTimeout(s,0)},o.prototype.run=function(){this.fun.apply(null,this.array)},l.title="browser",l.browser=!0,l.env={},l.argv=[],l.version="",l.versions={},l.on=n,l.addListener=n,l.once=n,l.off=n,l.removeListener=n,l.removeAllListeners=n,l.emit=n,l.binding=function(e){throw new Error("process.binding is not supported")},l.cwd=function(){return"/"},l.chdir=function(e){throw new Error("process.chdir is not supported")},l.umask=function(){return 0}},function(e,t,r){"use strict";var s=r(1),o=r(7),n=r(13),i={metricsComputator:s.PropTypes.object},l={childContextTypes:i,getChildContext:function(){return{metricsComputator:this}},getMetricImpl:function(e){return this._DOMMetrics.metrics[e].value},registerMetricsImpl:function(e,t){var r={},s=this._DOMMetrics;for(var o in t){if(void 0!==s.metrics[o])throw new Error("DOM metric "+o+" is already defined");s.metrics[o]={component:e,computator:t[o].bind(e)},r[o]=this.getMetricImpl.bind(null,o)}return-1===s.components.indexOf(e)&&s.components.push(e),r},unregisterMetricsFor:function(e){var t=this._DOMMetrics,r=t.components.indexOf(e);if(r>-1){t.components.splice(r,1);var s,o={};for(s in t.metrics)t.metrics[s].component===e&&(o[s]=!0);for(s in o)delete t.metrics[s]}},updateMetrics:function(){var e=this._DOMMetrics,t=!1;for(var r in e.metrics){var s=e.metrics[r].computator();s!==e.metrics[r].value&&(t=!0),e.metrics[r].value=s}if(t)for(var o=0,n=e.components.length;n>o;o++)e.components[o].metricsUpdated&&e.components[o].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)}},a={contextTypes:i,componentWillMount:function(){if(this.DOMMetrics){this._DOMMetricsDefs=n(this.DOMMetrics),this.DOMMetrics={};for(var e in this._DOMMetricsDefs)this.DOMMetrics[e]=o}},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:l,MetricsMixin:a}},function(e,t,r){"use strict";var s=(r(1),{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)},isKeyPrintable:function(e){var t=e>47&&58>e||32==e||13==e||e>64&&91>e||e>95&&112>e||e>185&&193>e||e>218&&223>e;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=s},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=r(4),i=r(22),l=(r(5),r(12)),a=r(6),u=o.createClass({displayName:"Row",propTypes:{height:o.PropTypes.number.isRequired,columns:o.PropTypes.oneOfType([o.PropTypes.object,o.PropTypes.array]).isRequired,row:o.PropTypes.object.isRequired,cellRenderer:o.PropTypes.func,isSelected:o.PropTypes.bool,idx:o.PropTypes.number.isRequired,expandedRows:o.PropTypes.arrayOf(o.PropTypes.object)},mixins:[a],render:function(){var e=n("react-grid-Row","react-grid-Row--${this.props.idx % 2 === 0 ? 'even' : 'odd'}"),t={height:this.getRowHeight(this.props),overflow:"hidden"},r=this.getCells();return o.createElement("div",s({},this.props,{className:e,style:t,onDragEnter:this.handleDragEnter}),o.isValidElement(this.props.row)?this.props.row:r)},getCells:function(){var e=this,t=[],r=[],s=this.getSelectedColumn();return this.props.columns.forEach(function(n,i){var l=e.props.cellRenderer,a=o.createElement(l,{ref:i,key:i,idx:i,rowIdx:e.props.idx,value:e.getCellValue(n.key||i),column:n,height:e.getRowHeight(),formatter:n.formatter,cellMetaData:e.props.cellMetaData,rowData:e.props.row,selectedColumn:s,isRowSelected:e.props.isSelected});n.locked?r.push(a):t.push(a)}),t.concat(r)},getRowHeight:function(){var e=this.props.expandedRows||null;if(e&&this.props.key){var t=e[this.props.key]||null;if(t)return t.height}return this.props.height},getCellValue:function(e){var t;return"select-row"===e?this.props.isSelected:t="function"==typeof this.props.row.get?this.props.row.get(e):this.props.row[e]},getRowData:function(){return this.props.row.toJSON?this.props.row.toJSON():this.props.row},getDefaultProps:function(){return{cellRenderer:i,isSelected:!1,height:35}},setScrollLeft:function(e){var t=this;this.props.columns.forEach(function(r,s){if(r.locked){if(!t.refs[s])return;t.refs[s].setScrollLeft(e)}})},doesRowContainSelectedCell:function(e){var t=e.cellMetaData.selected;return t&&t.rowIdx===e.idx?!0:!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},shouldComponentUpdate:function(e,t){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},handleDragEnter:function(){var e=this.props.cellMetaData.handleDragEnterRow;e&&e(this.props.idx)},getSelectedColumn:function(){var e=this.props.cellMetaData.selected;return e&&e.idx?this.getColumn(this.props.columns,e.idx):void 0}});e.exports=u},function(e,t,r){"use strict";function s(e){var t=n(e.columns,e.totalWidth),r=t.filter(function(e){return e.width}).reduce(function(e,t){return e-t.width},e.totalWidth),s=t.filter(function(e){return e.width}).reduce(function(e,t){return e+t.width},0);return t=i(t,r,e.minColumnWidth),t=o(t),{columns:t,width:s,totalWidth:e.totalWidth,minColumnWidth:e.minColumnWidth}}function o(e){var t=0;return e.map(function(e){return e.left=t,t+=e.width,e})}function n(e,t){return e.map(function(e){var r=p({},e);return e.width&&/^([0-9]+)%$/.exec(e.width.toString())&&(r.width=Math.floor(e.width/100*t)),r})}function i(e,t,r){var s=e.filter(function(e){return!e.width});return e.map(function(e,o,n){return e.width||(0>=t?e.width=r:e.width=Math.floor(t/f.getSize(s))),e})}function l(e,t,r){var o=f.getColumn(e.columns,t);e=h(e),e.columns=e.columns.slice(0);var n=h(o);return n.width=Math.max(r,e.minColumnWidth),e=f.spliceColumn(e,t,n),s(e)}function a(e,t){return"undefined"!=typeof Immutable&&e instanceof Immutable.List&&t instanceof Immutable.List}function u(e,t,r){var s,o,n,i={},l={};if(f.getSize(e)!==f.getSize(t))return!1;for(s=0,o=f.getSize(e);o>s;s++)n=e[s],i[n.key]=n;for(s=0,o=f.getSize(t);o>s;s++){n=t[s],l[n.key]=n;var a=i[n.key];if(void 0===a||!r(a,n))return!1}for(s=0,o=f.getSize(e);o>s;s++){n=e[s];var u=l[n.key];if(void 0===u)return!1}return!0}function c(e,t,r){return a(e,t)?e===t:u(e,t,r)}var p=r(14)["default"],h=r(13),d=(r(1).isValidElement,r(26)),f=r(6);e.exports={recalculate:s,resizeColumn:l,sameColumn:d,sameColumns:c}},function(e,t){"use strict";function r(e){var t={};for(var r in e)e.hasOwnProperty(r)&&(t[r]=e[r]);return t}e.exports=r},function(e,t,r){e.exports={"default":r(46),__esModule:!0}},function(e,t,r){(function(t){"use strict";var s=r(7),o=s;"production"!==t.env.NODE_ENV&&(o=function(e,t){for(var r=[],s=2,o=arguments.length;o>s;s++)r.push(arguments[s]);if(void 0===t)throw new Error("`warning(condition, format, ...args)` requires a warning message argument");if(!e){var n=0;console.warn("Warning: "+t.replace(/%s/g,function(){return r[n++]}))}}),e.exports=o}).call(t,r(8))},function(e,t){"use strict";var r=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)};e.exports=r},function(e,t){"use strict";t["default"]=function(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")},t.__esModule=!0},function(e,t){var r=e.exports={};"number"==typeof __e&&(__e=r)},function(e,t){"use strict";function r(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 s,o,n=r(e),i=1;i<arguments.length;i++){s=arguments[i],o=Object.keys(Object(s));for(var l=0;l<o.length;l++)n[o[l]]=s[o[l]]}return n}},function(e,t){function r(e,t){if(null==e)throw new TypeError("Object.assign target cannot be null or undefined");for(var r=Object(e),s=Object.prototype.hasOwnProperty,o=1;o<arguments.length;o++){var n=arguments[o];if(null!=n){var i=Object(n);for(var l in i)s.call(i,l)&&(r[l]=i[l])}}return r}e.exports=r},function(e,t){"use strict";function r(e,t){if(e===t)return!0;var r;for(r in e)if(e.hasOwnProperty(r)&&(!t.hasOwnProperty(r)||e[r]!==t[r]))return!1;for(r in t)if(t.hasOwnProperty(r)&&!e.hasOwnProperty(r))return!1;return!0}e.exports=r},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=r(4),i=r(5),l=r(42),a=r(2),u=r(16),c=r(34),p=o.createClass({displayName:"Cell",propTypes:{rowIdx:o.PropTypes.number.isRequired,idx:o.PropTypes.number.isRequired,selected:o.PropTypes.shape({idx:o.PropTypes.number.isRequired}),tabIndex:o.PropTypes.number,ref:o.PropTypes.string,column:o.PropTypes.shape(a).isRequired,value:o.PropTypes.oneOfType([o.PropTypes.string,o.PropTypes.number,o.PropTypes.object,o.PropTypes.bool]).isRequired,isExpanded:o.PropTypes.bool,cellMetaData:o.PropTypes.shape(c).isRequired,handleDragStart:o.PropTypes.func,className:o.PropTypes.string,rowData:o.PropTypes.object.isRequired},getDefaultProps:function(){return{tabIndex:-1,ref:"cell",isExpanded:!1}},getInitialState:function(){return{isRowChanging:!1,isCellValueChanging:!1}},componentDidMount:function(){this.checkFocus()},componentDidUpdate:function(e,t){this.checkFocus();var r=this.props.cellMetaData.dragged;r&&r.complete===!0&&this.props.cellMetaData.handleTerminateDrag(),this.state.isRowChanging&&null!=this.props.selectedColumn&&this.applyUpdateClass()},componentWillReceiveProps:function(e){this.setState({isRowChanging:this.props.rowData!==e.rowData,isCellValueChanging:this.props.value!==e.value})},shouldComponentUpdate:function(e,t){return this.props.column.width!==e.column.width||this.props.column.left!==e.column.left||this.props.rowData!==e.rowData||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()},getStyle:function(){var e={position:"absolute",width:this.props.column.width,height:this.props.height,left:this.props.column.left};return e},render:function(){var e=this.getStyle(),t=this.getCellClass(),r=this.renderCellContent({value:this.props.value,column:this.props.column,rowIdx:this.props.rowIdx,isExpanded:this.props.isExpanded});return o.createElement("div",s({},this.props,{className:t,style:e,onClick:this.onCellClick,onDoubleClick:this.onCellDoubleClick}),r,o.createElement("div",{className:"drag-handle",draggable:"true"}))},renderCellContent:function(e){var t,r=this.getFormatter();return o.isValidElement(r)?(e.dependentValues=this.getFormatterDependencies(),t=i(r,e)):t=u(r)?o.createElement(r,{value:this.props.value,dependentValues:this.getFormatterDependencies()}):o.createElement(h,{value:this.props.value}),o.createElement("div",{ref:"cell",className:"react-grid-Cell__value"},t," ",this.props.cellControls)},isColumnSelected:function(){var e=this.props.cellMetaData;return null==e||null==e.selected?!1:e.selected&&e.selected.idx===this.props.idx},isSelected:function(){var e=this.props.cellMetaData;return null==e||null==e.selected?!1:e.selected&&e.selected.rowIdx===this.props.rowIdx&&e.selected.idx===this.props.idx},isActive:function(){var e=this.props.cellMetaData;return null==e||null==e.selected?!1:this.isSelected()&&e.selected.active===!0},isCellSelectionChanging:function(e){var t=this.props.cellMetaData;if(null==t||null==t.selected)return!1;var r=e.cellMetaData.selected;return t.selected&&r?this.props.idx===r.idx||this.props.idx===t.selected.idx:!0},getFormatter:function(){var e=this.props.column;return this.isActive()?o.createElement(l,{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(){return this.props.rowData.toJSON?this.props.rowData.toJSON():this.props.rowData},getFormatterDependencies:function(){this.props.column.ItemId;return"function"==typeof this.props.column.getRowMetaData?this.props.column.getRowMetaData(this.getRowData(),this.props.column):void 0},onCellClick:function(e){var t=this.props.cellMetaData;null!=t&&null!=t.onCellClick&&t.onCellClick({rowIdx:this.props.rowIdx,idx:this.props.idx})},onCellDoubleClick:function(e){var t=this.props.cellMetaData;null!=t&&null!=t.onCellDoubleClick&&t.onCellDoubleClick({rowIdx:this.props.rowIdx,idx:this.props.idx})},checkFocus:function(){this.isSelected()&&!this.isActive()&&this.getDOMNode().focus()},getCellClass:function(){var e=n(this.props.column.cellClass,"react-grid-Cell",this.props.className,this.props.column.locked?"react-grid-Cell--locked":null),t=n({selected:this.isSelected()&&!this.isActive(),editing:this.isActive(),copied:this.isCopied(),"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 n(e,t)},getUpdateCellClass:function(){return this.props.column.getUpdateCellClass?this.props.column.getUpdateCellClass(this.props.selectedColumn,this.props.column,this.state.isCellValueChanging):""},applyUpdateClass:function(){var e=this.getUpdateCellClass();if(null!=e&&""!=e){var t=this.getDOMNode();t.classList?(t.classList.remove(e),t.classList.add(e)):-1===t.className.indexOf(e)&&(t.className=t.className+" "+e)}},setScrollLeft:function(e){var t=this;if(t.isMounted()){var r=this.getDOMNode(),s="translate3d("+e+"px, 0px, 0px)";r.style.webkitTransform=s,r.style.transform=s}},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,r=this.props.cellMetaData.dragged,s=e.cellMetaData.dragged;return r?t=s&&this.props.idx===s.idx||r&&this.props.idx===r.idx:!1},isCopyCellChanging:function(e){var t,r=this.props.cellMetaData.copied,s=e.cellMetaData.copied;return r?t=s&&this.props.idx===s.idx||r&&this.props.idx===r.idx:!1},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}}),h=o.createClass({displayName:"SimpleCellFormatter",propTypes:{value:o.PropTypes.oneOfType([o.PropTypes.string,o.PropTypes.number,o.PropTypes.object,o.PropTypes.bool]).isRequired},render:function(){return o.createElement("span",null,this.props.value)},shouldComponentUpdate:function(e,t){return e.value!==this.props.value}});e.exports=p},function(e,t,r){"use strict";var s=r(1),o=s.createClass({displayName:"CheckboxEditor",PropTypes:{value:s.PropTypes.bool.isRequired,rowIdx:s.PropTypes.number.isRequired,column:s.PropTypes.shape({key:s.PropTypes.string.isRequired,onCellChange:s.PropTypes.func.isRequired}).isRequired},render:function(){var e=null!=this.props.value?this.props.value:!1;return s.createElement("input",{className:"react-grid-CheckBox",type:"checkbox",checked:e,onClick:this.handleChange})},handleChange:function(e){this.props.column.onCellChange(this.props.rowIdx,this.props.column.key,e)}});e.exports=o},function(e,t,r){"use strict";var s=r(1),o=(r(10),r(2)),n=s.createClass({displayName:"SimpleTextEditor",propTypes:{value:s.PropTypes.any.isRequired,onBlur:s.PropTypes.func,column:s.PropTypes.shape(o).isRequired},getValue:function(){var e={};return e[this.props.column.key]=this.refs.input.getDOMNode().value,e},getInputNode:function(){return this.getDOMNode()},render:function(){return s.createElement("input",{ref:"input",type:"text",onBlur:this.props.onBlur,className:"form-control",defaultValue:this.props.value})}});e.exports=n},function(e,t,r){"use strict";var s=r(1),o=r(4),n=s.PropTypes,i=r(5),l=r(21),a=r(7),u=r(37),c=r(11),p=(r(2),s.createClass({displayName:"Canvas",mixins:[u],propTypes:{rowRenderer:n.oneOfType([n.func,n.element]),rowHeight:n.number.isRequired,height:n.number.isRequired,displayStart:n.number.isRequired,displayEnd:n.number.isRequired,rowsCount:n.number.isRequired,rowGetter:n.oneOfType([n.func.isRequired,n.array.isRequired]),onRows:n.func,columns:n.oneOfType([n.object,n.array]).isRequired},render:function(){var e=this,t=this.state.displayStart,r=this.state.displayEnd,n=this.props.rowHeight,i=this.props.rowsCount,l=this.getRows(t,r).map(function(r,s){return e.renderRow({key:t+s,ref:s,idx:t+s,row:r,height:n,columns:e.props.columns,isSelected:e.isRowSelected(t+s),expandedRows:e.props.expandedRows,cellMetaData:e.props.cellMetaData})});this._currentRowsLength=l.length,t>0&&l.unshift(this.renderPlaceholder("top",t*n)),i-r>0&&l.push(this.renderPlaceholder("bottom",(i-r)*n));var a=0;if(this.isMounted()){var u=this.getDOMNode();a=u.offsetWidth-u.clientWidth}var c={position:"absolute",top:0,left:0,overflowX:"auto",overflowY:"scroll",width:this.props.totalWidth+a,height:this.props.height,transform:"translate3d(0, 0, 0)"};return s.createElement("div",{style:c,onScroll:this.onScroll,className:o("react-grid-Canvas",this.props.className,{opaque:this.props.cellMetaData.selected&&this.props.cellMetaData.selected.active})},s.createElement("div",{style:{width:this.props.width,overflow:"hidden"}},l))},renderRow:function(e){var t=this.props.rowRenderer;return"function"==typeof t?s.createElement(t,e):s.isValidElement(this.props.rowRenderer)?i(this.props.rowRenderer,e):void 0},renderPlaceholder:function(e,t){return s.createElement("div",{key:e,style:{height:t}},this.props.columns.map(function(e,t){return s.createElement("div",{style:{width:e.width},key:t})}))},getDefaultProps:function(){return{rowRenderer:c,onRows:a}},isRowSelected:function(e){return this.props.selectedRows&&this.props.selectedRows[e]===!0},_currentRowsLength:0,_currentRowsRange:{start:0,end:0},_scroll:{scrollTop:0,scrollLeft:0},getInitialState:function(){return{shouldUpdate:!0,displayStart:this.props.displayStart,displayEnd:this.props.displayEnd}},componentWillMount:function(){this._currentRowsLength=0,this._currentRowsRange={start:0,end:0},this._scroll={scrollTop:0,scrollLeft:0}},componentDidMount:function(){this.onRows()},componentDidUpdate:function(e){this._scroll!=={start:0,end:0}&&this.setScrollLeft(this._scroll.scrollLeft),this.onRows()},componentWillUnmount:function(){this._currentRowsLength=0,this._currentRowsRange={start:0,end:0},this._scroll={scrollTop:0,scrollLeft:0}},componentWillReceiveProps:function(e){e.rowsCount>this.props.rowsCount&&(this.getDOMNode().scrollTop=e.rowsCount*this.props.rowHeight);var t=!(e.visibleStart>this.state.displayStart&&e.visibleEnd<this.state.displayEnd&&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&&l(e.style,this.props.style));t?this.setState({shouldUpdate:!0,displayStart:e.displayStart,displayEnd:e.displayEnd}):this.setState({shouldUpdate:!1})},shouldComponentUpdate:function(e,t){return!t||t.shouldUpdate},onRows:function(){this._currentRowsRange!=={start:0,end:0}&&(this.props.onRows(this._currentRowsRange),this._currentRowsRange={start:0,end:0})},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 r=[],s=e;t>s;s++)r.push(this.props.rowGetter(s));return r},setScrollLeft:function(e){if(0!==this._currentRowsLength){if(!this.refs)return;for(var t=0,r=this._currentRowsLength;r>t;t++)this.refs[t]&&this.refs[t].setScrollLeft&&this.refs[t].setScrollLeft(e)}},getScroll:function(){var e=this.getDOMNode(),t=e.scrollTop,r=e.scrollLeft;return{scrollTop:t,scrollLeft:r}},onScroll:function(e){this.appendScrollShim();var t=e.target,r=t.scrollTop,s=t.scrollLeft,o={scrollTop:r,scrollLeft:s};this._scroll=o,this.props.onScroll(o)}}));e.exports=p},function(e,t,r){"use strict";var s=r(1).isValidElement;e.exports=function(e,t){var r;for(r in e)if(e.hasOwnProperty(r)){if("function"==typeof e[r]&&"function"==typeof t[r]||s(e[r])&&s(t[r]))continue;if(!t.hasOwnProperty(r)||e[r]!==t[r])return!1}for(r in t)if(t.hasOwnProperty(r)&&!e.hasOwnProperty(r))return!1;return!0}},function(e,t,r){"use strict";var s=r(17)["default"],o=r(12),n=r(9);Object.assign=r(19);var i=r(1).PropTypes,l=r(6),a=function u(){s(this,u)};e.exports={mixins:[n.MetricsMixin],propTypes:{columns:i.arrayOf(a),minColumnWidth:i.number,columnEquality:i.func},DOMMetrics:{gridWidth:function(){return this.getDOMNode().offsetWidth-2}},getDefaultProps:function(){return{minColumnWidth:80,columnEquality:o.sameColumn}},componentWillReceiveProps:function(e){if(e.columns&&!o.sameColumns(this.props.columns,e.columns,this.props.columnEquality)){var t=this.createColumnMetrics();this.setState({columnMetrics:t})}},getTotalWidth:function(){var e=0;return e=this.isMounted()?this.DOMMetrics.gridWidth():l.getSize(this.props.columns)*this.props.minColumnWidth},getColumnMetricsType:function(e){var t=this.getTotalWidth(),r={columns:e.columns,totalWidth:t,minColumnWidth:e.minColumnWidth},s=o.recalculate(r);return s},getColumn:function(e,t){return Array.isArray(e)?e[t]:"undefined"!=typeof Immutable?e.get(t):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(e){var t=this.setupGridColumns();return this.getColumnMetricsType({columns:t,minColumnWidth:this.props.minColumnWidth},e)},onColumnResize:function(e,t){var r=o.resizeColumn(this.state.columnMetrics,e,t);this.setState({columnMetrics:r})}}},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=o.PropTypes,i=r(7),l=o.createClass({displayName:"Draggable",propTypes:{onDragStart:n.func,onDragEnd:n.func,onDrag:n.func,component:n.oneOfType([n.func,n.constructor])},render:function(){this.props.component;return o.createElement("div",s({},this.props,{onMouseDown:this.onMouseDown,className:"react-grid-HeaderCell__draggable"}))},getDefaultProps:function(){return{onDragStart:i.thatReturnsTrue,onDragEnd:i,onDrag:i}},getInitialState:function(){return{drag:null}},onMouseDown:function(e){var t=this.props.onDragStart(e);(null!==t||0===e.button)&&(window.addEventListener("mouseup",this.onMouseUp),window.addEventListener("mousemove",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})},componentWillUnmount:function(){this.cleanUp()},cleanUp:function(){window.removeEventListener("mouseup",this.onMouseUp),window.removeEventListener("mousemove",this.onMouseMove)}});e.exports=l},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=o.PropTypes,i=r(31),l=r(38),a=(r(2),r(30)),u=r(9),c=o.createClass({displayName:"Grid",propTypes:{rowGetter:n.oneOfType([n.array,n.func]).isRequired,columns:n.oneOfType([n.array,n.object]),minHeight:n.number,headerRows:n.oneOfType([n.array,n.func]),rowHeight:n.number,rowRenderer:n.func,expandedRows:n.oneOfType([n.array,n.func]),selectedRows:n.oneOfType([n.array,n.func]),rowsCount:n.number,onRows:n.func,sortColumn:o.PropTypes.string,sortDirection:o.PropTypes.oneOf(["ASC","DESC","NONE"]),rowOffsetHeight:n.number.isRequired,onViewportKeydown:n.func.isRequired,onViewportDragStart:n.func.isRequired,onViewportDragEnd:n.func.isRequired,onViewportDoubleClick:n.func.isRequired},mixins:[a,u.MetricsComputatorMixin],getStyle:function(){return{overflow:"hidden",outline:0,position:"relative",minHeight:this.props.minHeight}},render:function(){var e=this.props.headerRows||[{ref:"row"}];return o.createElement("div",s({},this.props,{style:this.getStyle(),className:"react-grid-Grid"}),o.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,onSort:this.props.onSort}),o.createElement("div",{ref:"viewPortContainer",onKeyDown:this.props.onViewportKeydown,onDoubleClick:this.props.onViewportDoubleClick,onDragStart:this.props.onViewportDragStart,onDragEnd:this.props.onViewportDragEnd},o.createElement(l,{ref:"viewport",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})))},getDefaultProps:function(){return{rowHeight:35,minHeight:350}}});e.exports=c},function(e,t){"use strict";e.exports={componentDidMount:function(){this._scrollLeft=this.refs.viewport.getScroll().scrollLeft,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())},_onScroll:function(){void 0!==this._scrollLeft&&(this.refs.header.setScrollLeft(this._scrollLeft),this.refs.viewport.setScrollLeft(this._scrollLeft))}}},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=r(4),i=r(13),l=r(12),a=r(6),u=r(33),c=o.createClass({displayName:"Header",propTypes:{columnMetrics:o.PropTypes.shape({width:o.PropTypes.number.isRequired}).isRequired,totalWidth:o.PropTypes.number,height:o.PropTypes.number.isRequired,headerRows:o.PropTypes.array.isRequired},render:function(){var e=(this.state.resizing||this.props,n({"react-grid-Header":!0,"react-grid-Header--resizing":!!this.state.resizing})),t=this.getHeaderRows();return o.createElement("div",s({},this.props,{style:this.getStyle(),className:e}),t)},shouldComponentUpdate:function(e,t){var r=!l.sameColumns(this.props.columnMetrics.columns,e.columnMetrics.columns,l.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 r},getHeaderRows:function(){var e,t=this.getColumnMetrics();this.state.resizing&&(e=this.state.resizing.column);var r=[];return this.props.headerRows.forEach(function(s,n){var i={position:"absolute",top:this.props.height*n,left:0,width:this.props.totalWidth,overflow:"hidden"};r.push(o.createElement(u,{key:s.ref,ref:s.ref,style:i,onColumnResize:this.onColumnResize,onColumnResizeEnd:this.onColumnResizeEnd,width:t.width,height:s.height||this.props.height,columns:t.columns,resizing:e,headerCellRenderer:s.headerCellRenderer,sortColumn:this.props.sortColumn,sortDirection:this.props.sortDirection,onSort:this.props.onSort}))}.bind(this)),r},getInitialState:function(){return{resizing:null}},componentWillReceiveProps:function(e){this.setState({resizing:null})},onColumnResize:function(e,t){var r=this.state.resizing||this.props,s=this.getColumnPosition(e);if(null!=s){var o={columnMetrics:i(r.columnMetrics)};o.columnMetrics=l.resizeColumn(o.columnMetrics,s,t),o.columnMetrics.totalWidth<r.columnMetrics.totalWidth&&(o.columnMetrics.totalWidth=r.columnMetrics.totalWidth), o.column=a.getColumn(o.columnMetrics.columns,s),this.setState({resizing:o})}},getColumnMetrics:function(){var e;return e=this.state.resizing?this.state.resizing.columnMetrics:this.props.columnMetrics},getColumnPosition:function(e){var t=this.getColumnMetrics(),r=-1;return t.columns.forEach(function(t,s){t.key===e.key&&(r=s)}),-1===r?null:r},onColumnResizeEnd:function(e,t){var r=this.getColumnPosition(e);null!==r&&this.props.onColumnResize&&this.props.onColumnResize(r,t||e.width)},setScrollLeft:function(e){var t=this.refs.row.getDOMNode();t.scrollLeft=e,this.refs.row.setScrollLeft(e)},getStyle:function(){return{position:"relative",height:this.props.height*this.props.headerRows.length,overflow:"hidden"}}});e.exports=c},function(e,t,r){"use strict";function s(e){return o.createElement("div",{className:"widget-HeaderCell__value"},e.column.name)}var o=r(1),n=r(4),i=r(5),l=o.PropTypes,a=r(2),u=r(35),c=o.createClass({displayName:"HeaderCell",propTypes:{renderer:l.oneOfType([l.func,l.element]).isRequired,column:l.shape(a).isRequired,onResize:l.func.isRequired,height:l.number.isRequired,onResizeEnd:l.func.isRequired},render:function(){var e;this.props.column.resizable&&(e=o.createElement(u,{onDrag:this.onDrag,onDragStart:this.onDragStart,onDragEnd:this.onDragEnd}));var t=n({"react-grid-HeaderCell":!0,"react-grid-HeaderCell--resizing":this.state.resizing,"react-grid-HeaderCell--locked":this.props.column.locked});t=n(t,this.props.className);var r=this.getCell();return o.createElement("div",{className:t,style:this.getStyle()},r,{resizeHandle:e})},getCell:function(){return o.isValidElement(this.props.renderer)?i(this.props.renderer,{column:this.props.column}):this.props.renderer({column:this.props.column})},getDefaultProps:function(){return{renderer:s}},getInitialState:function(){return{resizing:!1}},setScrollLeft:function(e){var t=this.getDOMNode();t.style.webkitTransform="translate3d("+e+"px, 0px, 0px)",t.style.transform="translate3d("+e+"px, 0px, 0px)"},getStyle:function(){return{width:this.props.column.width,left:this.props.column.left,display:"inline-block",position:"absolute",overflow:"hidden",height:this.props.height,margin:0,textOverflow:"ellipsis",whiteSpace:"nowrap"}},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 r=this.getWidthFromMouseEvent(e);r>0&&t(this.props.column,r)}},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,r=this.getDOMNode().getBoundingClientRect().left;return t-r}});e.exports=c},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=o.PropTypes,i=r(21),l=r(32),a=r(44),u=(r(2),r(6)),c=r(41),p={overflow:o.PropTypes.string,width:n.oneOfType([n.number,n.string]),height:o.PropTypes.number,position:o.PropTypes.string},h={ASC:"ASC",DESC:"DESC",NONE:"NONE"},d=o.createClass({displayName:"HeaderRow",propTypes:{width:n.oneOfType([n.number,n.string]),height:n.number.isRequired,columns:n.oneOfType([n.array,n.object]),onColumnResize:n.func,onSort:n.func.isRequired,style:n.shape(p)},mixins:[u],render:function(){var e={width:this.props.width?this.props.width+a():"100%",height:this.props.height,whiteSpace:"nowrap",overflowX:"hidden",overflowY:"hidden"},t=this.getCells();return o.createElement("div",s({},this.props,{className:"react-grid-HeaderRow"}),o.createElement("div",{style:e},t))},getHeaderRenderer:function(e){if(e.sortable){var t=this.props.sortColumn===e.key?this.props.sortDirection:h.NONE;return o.createElement(c,{columnKey:e.key,onSort:this.props.onSort,sortDirection:t})}return this.props.headerCellRenderer||e.headerRenderer||this.props.cellRenderer},getCells:function(){for(var e=[],t=[],r=0,s=this.getSize(this.props.columns);s>r;r++){var n=this.getColumn(this.props.columns,r),i=o.createElement(l,{ref:r,key:r,height:this.props.height,column:n,renderer:this.getHeaderRenderer(n),resizing:this.props.resizing===n,onResize:this.props.onColumnResize,onResizeEnd:this.props.onColumnResizeEnd});n.locked?t.push(i):e.push(i)}return e.concat(t)},setScrollLeft:function(e){var t=this;this.props.columns.forEach(function(r,s){r.locked&&t.refs[s].setScrollLeft(e)})},shouldComponentUpdate:function(e){return e.width!==this.props.width||e.height!==this.props.height||e.columns!==this.props.columns||!i(e.style,this.props.style)||this.props.sortColumn!=e.sortColumn||this.props.sortDirection!=e.sortDirection},getStyle:function(){return{overflow:"hidden",width:"100%",height:this.props.height,position:"absolute"}}});e.exports=d},function(e,t,r){"use strict";var s=r(1).PropTypes;e.exports={selected:s.object.isRequired,copied:s.object,dragged:s.object,onCellClick:s.func.isRequired}},function(e,t,r){"use strict";var s=r(3)["default"],o=r(1),n=(r(4),r(28)),i=(r(5),o.PropTypes,o.createClass({displayName:"ResizeHandle",style:{position:"absolute",top:0,right:0,width:6,height:"100%"},render:function(){return o.createElement(n,s({},this.props,{className:"react-grid-HeaderCell__resizeHandle",style:this.style}))}}));e.exports=i},function(e,t){"use strict";var r={get:function(e,t){return"function"==typeof e.get?e.get(t):e[t]}};e.exports=r},function(e,t){"use strict";var r={appendScrollShim:function(){if(!this._scrollShim){var e=this._scrollShimSize(),t=document.createElement("div");t.classList?t.classList.add("react-grid-ScrollShim"):t.className+=" react-grid-ScrollShim",t.style.position="absolute",t.style.top=0,t.style.left=0,t.style.width=e.width+"px",t.style.height=e.height+"px",this.getDOMNode().appendChild(t),this._scrollShim=t}this._scheduleRemoveScrollShim()},_scrollShimSize:function(){return{width:this.props.width,height:this.props.length*this.props.rowHeight}},_scheduleRemoveScrollShim:function(){this._scheduleRemoveScrollShimTimer&&clearTimeout(this._scheduleRemoveScrollShimTimer),this._scheduleRemoveScrollShimTimer=setTimeout(this._removeScrollShim,200)},_removeScrollShim:function(){this._scrollShim&&(this._scrollShim.parentNode.removeChild(this._scrollShim),this._scrollShim=void 0)}};e.exports=r},function(e,t,r){"use strict";var s=r(1),o=r(25),n=s.PropTypes,i=r(39),l=s.createClass({displayName:"Viewport",mixins:[i],propTypes:{rowOffsetHeight:n.number.isRequired,totalWidth:n.number.isRequired,columnMetrics:n.object.isRequired,rowGetter:n.oneOfType([n.array,n.func]).isRequired,selectedRows:n.array,expandedRows:n.array,rowRenderer:n.func,rowsCount:n.number.isRequired,rowHeight:n.number.isRequired,onRows:n.func,onScroll:n.func,minHeight:n.number},render:function(){var e={padding:0,bottom:0,left:0,right:0,overflow:"hidden",position:"absolute",top:this.props.rowOffsetHeight};return s.createElement("div",{className:"react-grid-Viewport",style:e},s.createElement(o,{ref:"canvas",totalWidth:this.props.totalWidth,width:this.props.columnMetrics.width,rowGetter:this.props.rowGetter,rowsCount:this.props.rowsCount,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,columns:this.props.columnMetrics.columns,rowRenderer:this.props.rowRenderer,visibleStart:this.state.visibleStart,visibleEnd:this.state.visibleEnd,displayStart:this.state.displayStart,displayEnd:this.state.displayEnd,cellMetaData:this.props.cellMetaData,height:this.state.height,rowHeight:this.props.rowHeight,onScroll:this.onScroll,onRows:this.props.onRows}))},getScroll:function(){return this.refs.canvas.getScroll()},onScroll:function(e){this.updateScroll(e.scrollTop,e.scrollLeft,this.state.height,this.props.rowHeight,this.props.rowsCount),this.props.onScroll&&this.props.onScroll({scrollTop:e.scrollTop,scrollLeft:e.scrollLeft})},setScrollLeft:function(e){this.refs.canvas.setScrollLeft(e)}});e.exports=l},function(e,t,r){"use strict";var s=r(1),o=r(9),n=(r(45),s.PropTypes,Math.min),i=Math.max,l=Math.floor,a=Math.ceil;e.exports={mixins:[o.MetricsMixin],DOMMetrics:{viewportHeight:function(){return this.getDOMNode().offsetHeight}},propTypes:{rowHeight:s.PropTypes.number,rowsCount:s.PropTypes.number.isRequired},getDefaultProps:function(){return{rowHeight:30}},getInitialState:function(){return this.getGridState(this.props)},getGridState:function(e){var t=a((e.minHeight-e.rowHeight)/e.rowHeight),r=n(2*t,e.rowsCount);return{displayStart:0,displayEnd:r,height:e.minHeight,scrollTop:0,scrollLeft:0}},updateScroll:function(e,t,r,s,o){var u=a(r/s),c=l(e/s),p=n(c+u,o),h=i(0,c-2*u),d=n(c+2*u,o),f={visibleStart:c,visibleEnd:p,displayStart:h,displayEnd:d,height:r,scrollTop:e,scrollLeft:t};this.setState(f)},metricsUpdated:function(){var e=this.DOMMetrics.viewportHeight();e&&this.updateScroll(this.state.scrollTop,this.state.scrollLeft,e,this.props.rowHeight,this.props.rowsCount)},componentWillReceiveProps:function(e){this.props.rowHeight!==e.rowHeight?this.setState(this.getGridState(e)):this.props.rowsCount!==e.rowsCount&&this.updateScroll(this.state.scrollTop,this.state.scrollLeft,this.state.height,e.rowHeight,e.rowsCount)}}},function(e,t,r){"use strict";var s=r(1),o=r(2),n=s.createClass({displayName:"FilterableHeaderCell",propTypes:{onChange:s.PropTypes.func.isRequired,column:s.PropTypes.shape(o).isRequired},getInitialState:function(){return{filterTerm:""}},handleChange:function(e){var t=e.target.value;this.setState({filterTerm:t}),this.props.onChange({filterTerm:t,columnKey:this.props.column.key})},componentDidUpdate:function(e){var t=this.getDOMNode();t&&t.focus()},render:function(){return s.createElement("div",null,s.createElement("div",{className:"form-group"},s.createElement(this.renderInput,null)))},renderInput:function(){return this.props.column.filterable===!1?s.createElement("span",null):s.createElement("input",{type:"text",className:"form-control input-sm",placeholder:"Search",value:this.state.filterTerm,onChange:this.handleChange})}});e.exports=n},function(e,t,r){"use strict";var s=r(1),o=(r(4),r(2),{ASC:"ASC",DESC:"DESC",NONE:"NONE"}),n=s.createClass({displayName:"SortableHeaderCell",propTypes:{columnKey:s.PropTypes.string.isRequired,onSort:s.PropTypes.func.isRequired,sortDirection:s.PropTypes.oneOf(["ASC","DESC","NONE"])},onClick:function(){var e;switch(this.props.sortDirection){case null:case void 0:case o.NONE:e=o.ASC;break;case o.ASC:e=o.DESC;break;case o.DESC:e=o.NONE}this.props.onSort(this.props.columnKey,e)},getSortByText:function(){var e={ASC:"9650",DESC:"9660",NONE:""};return String.fromCharCode(e[this.props.sortDirection])},render:function(){return s.createElement("div",{onClick:this.onClick,style:{cursor:"pointer"}},this.props.column.name,s.createElement("span",{className:"pull-right"},this.getSortByText()))}});e.exports=n},function(e,t,r){"use strict";var s=r(1),o=r(4),n=r(10),i=r(24),l=r(16),a=(r(5),s.createClass({displayName:"EditorContainer",mixins:[n],propTypes:{rowData:s.PropTypes.object.isRequired,value:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.number,s.PropTypes.object,s.PropTypes.bool]).isRequired,cellMetaData:s.PropTypes.shape({selected:s.PropTypes.object.isRequired,copied:s.PropTypes.object,dragged:s.PropTypes.object,onCellClick:s.PropTypes.func,onCellDoubleClick:s.PropTypes.func}).isRequired,column:s.PropTypes.object.isRequired,height:s.PropTypes.number.isRequired},changeCommitted:!1,getInitialState:function(){return{isInvalid:!1}},componentDidMount:function(){var e=this.getInputNode();void 0!==e&&(this.setTextInputFocus(),this.getEditor().disableContainerStyles||(e.className+=" editor-main",e.style.height=this.props.height-1+"px"))},createEditor:function(){var e={ref:"editor",name:"editor",column:this.props.column,value:this.getInitialValue(),onCommit:this.commit,rowMetaData:this.getRowMetaData(),height:this.props.height,onBlur:this.commit,onOverrideKeyDown:this.onKeyDown},t=this.props.column.editor;return t&&s.isValidElement(t)?s.addons.cloneWithProps(t,e):s.createElement(i,{ref:"editor",column:this.props.column,value:this.getInitialValue(),rowMetaData:this.getRowMetaData()})},getRowMetaData:function(){this.props.column.ItemId;return"function"==typeof this.props.column.getRowMetaData?this.props.column.getRowMetaData(this.props.rowData,this.props.column):void 0},onPressEnter:function(e){this.commit({key:"Enter"})},onPressTab:function(e){this.commit({key:"Tab"})},onPressEscape:function(e){this.editorIsSelectOpen()?e.stopPropagation():this.props.cellMetaData.onCommitCancel()},onPressArrowDown:function(e){this.editorHasResults()?e.stopPropagation():this.commit(e)},onPressArrowUp:function(e){this.editorHasResults()?e.stopPropagation():this.commit(e)},onPressArrowLeft:function(e){this.isCaretAtBeginningOfInput()?this.commit(e):e.stopPropagation()},onPressArrowRight:function(e){this.isCaretAtEndOfInput()?this.commit(e):e.stopPropagation()},editorHasResults:function(){return"SELECT"===this.getEditor().getInputNode().tagName?!0:l(this.getEditor().hasResults)?this.getEditor().hasResults():!1},editorIsSelectOpen:function(){return l(this.getEditor().isSelectOpen)?this.getEditor().isSelectOpen():!1},getEditor:function(){return this.refs.editor},commit:function(e){var t=e||{},r=this.getEditor().getValue();if(this.isNewValueValid(r)){var s=this.props.column.key;this.props.cellMetaData.onCommit({cellKey:s,rowIdx:this.props.rowIdx,updated:r,key:t.key})}this.changeCommitted=!0},isNewValueValid:function(e){if(l(this.getEditor().validate)){var t=this.getEditor().validate(e);return this.setState({isInvalid:!t}),t}return!0},getInputNode:function(){return this.getEditor().getInputNode()},getInitialValue:function(){var e=this.props.cellMetaData.selected,t=e.initialKeyCode;if("Delete"===t||"Backspace"===t)return"";if("Enter"===t)return this.props.value;var r=t?String.fromCharCode(t):this.props.value;return r},getContainerClass:function(){return o({"has-error":this.state.isInvalid===!0})},setCaretAtEndOfInput:function(){var e=this.getInputNode(),t=e.value.length;if(e.setSelectionRange)e.setSelectionRange(t,t);else if(e.createTextRange){var r=e.createTextRange();r.moveStart("character",t),r.collapse(),r.select()}},isCaretAtBeginningOfInput:function(){var e=this.getInputNode();return e.selectionStart===e.selectionEnd&&0===e.selectionStart},isCaretAtEndOfInput:function(){var e=this.getInputNode();return e.selectionStart===e.value.length},setTextInputFocus:function(){var e=this.props.cellMetaData.selected,t=e.initialKeyCode,r=this.getInputNode();r.focus(),"INPUT"===r.tagName&&(this.isKeyPrintable(t)?r.select():(r.focus(),r.select()))},componentWillUnmount:function(){this.changeCommitted||this.hasEscapeBeenPressed()||this.commit({key:"Enter"})},renderStatusIcon:function(){return this.state.isInvalid===!0?s.createElement("span",{className:"glyphicon glyphicon-remove form-control-feedback"}):void 0},hasEscapeBeenPressed:function(){var e=!1,t=27;return window.event&&(window.event.keyCode===t?e=!0:window.event.which===t&&(e=!0)),e},render:function(){return s.createElement("div",{className:this.getContainerClass(),onKeyDown:this.onKeyDown},this.createEditor(),this.renderStatusIcon())}}));e.exports=a},function(e,t,r){"use strict";var s=r(3)["default"],o=r(14)["default"],n=r(1),i=(n.PropTypes,r(29)),l=(r(11),r(2),r(10)),a=r(23),u=r(40),c=r(5),p=r(9),h=r(27),d=r(36),f=r(6);o||(Object.assign=r(19));var m=n.createClass({displayName:"ReactDataGrid",propTypes:{rowHeight:n.PropTypes.number.isRequired,minHeight:n.PropTypes.number.isRequired,enableRowSelect:n.PropTypes.bool,onRowUpdated:n.PropTypes.func,rowGetter:n.PropTypes.func.isRequired,rowsCount:n.PropTypes.number.isRequired,toolbar:n.PropTypes.element,enableCellSelect:n.PropTypes.bool,columns:n.PropTypes.oneOfType([n.PropTypes.object,n.PropTypes.array]).isRequired,onFilter:n.PropTypes.func,onCellCopyPaste:n.PropTypes.func,onCellsDragged:n.PropTypes.func,onAddFilter:n.PropTypes.func},mixins:[h,p.MetricsComputatorMixin,l],getDefaultProps:function(){return{enableCellSelect:!1,tabIndex:-1,rowHeight:35,enableRowSelect:!1,minHeight:350}},getInitialState:function(){var e=this.createColumnMetrics(!0),t={columnMetrics:e,selectedRows:this.getInitialSelectedRows(),copied:null,expandedRows:[],canFilter:!1,columnFilters:{},sortDirection:null,sortColumn:null,dragged:null,scrollOffset:0};return this.props.enableCellSelect?t.selected={rowIdx:0,idx:0}:t.selected={rowIdx:-1,idx:-1},t},getInitialSelectedRows:function(){for(var e=[],t=0;t<this.props.rowsCount;t++)e.push(!1);return e},componentWillReceiveProps:function(e){e.rowsCount===this.props.rowsCount+1&&this.onAfterAddRow(e.rowsCount+1)},componentDidMount:function(){var e=0,t=this.getDOMNode().querySelector(".react-grid-Canvas");null!=t&&(e=t.offsetWidth-t.clientWidth),this.setState({scrollOffset:e})},render:function(){var e={selected:this.state.selected,dragged:this.state.dragged,onCellClick:this.onCellClick,onCellDoubleClick:this.onCellDoubleClick,onCommit:this.onCellCommit,onCommitCancel:this.setInactive,copied:this.state.copied,handleDragEnterRow:this.handleDragEnter,handleTerminateDrag:this.handleTerminateDrag},t=this.renderToolbar(),r=this.DOMMetrics.gridWidth(),o=r+this.state.scrollOffset;return n.createElement("div",{className:"react-grid-Container",style:{width:o}},t,n.createElement("div",{className:"react-grid-Main"},n.createElement(i,s({ref:"base"},this.props,{headerRows:this.getHeaderRows(),columnMetrics:this.state.columnMetrics,rowGetter:this.props.rowGetter,rowsCount:this.props.rowsCount,rowHeight:this.props.rowHeight,cellMetaData:e,selectedRows:this.state.selectedRows,expandedRows:this.state.expandedRows,rowOffsetHeight:this.getRowOffsetHeight(),sortColumn:this.state.sortColumn,sortDirection:this.state.sortDirection,onSort:this.handleSort,minHeight:this.props.minHeight,totalWidth:r,onViewportKeydown:this.onKeyDown,onViewportDragStart:this.onDragStart,onViewportDragEnd:this.handleDragEnd,onViewportDoubleClick:this.onViewportDoubleClick,onColumnResize:this.onColumnResize}))))},renderToolbar:function(){var e=this.props.toolbar;return n.isValidElement(e)?c(e,{onToggleFilter:this.onToggleFilter,numb