adazzle-react-grid
Advanced tools
Comparing version 0.12.1 to 0.12.2
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react/addons")):"function"==typeof define&&define.amd?define(["react/addons"],t):"object"==typeof exports?exports.Grid=t(require("react/addons")):(e.ReactGrid=e.ReactGrid||{},e.ReactGrid.Grid=t(e.React))}(this,function(e){return function(e){function t(r){if(s[r])return s[r].exports;var i=s[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){"use strict";var r=s(6),i=s(7),o=s(8);e.exports=r,e.exports.Row=i,e.exports.Cell=o},,function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=s(14),n={propTypes:{onCommit:r.PropTypes.func.isRequired},getStyle:function(){return{height:this.props.height-1}},getInitialState:function(){return{isInvalid:!1}},onPressEnter:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Enter"})},onPressTab:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Tab"})},commit:function(e){var t=this.getValue(),s={};s[this.props.column.key]=t,this.isNewValueValid(t)&&this.props.onCommit({updated:s,key:e.key})},isNewValueValid:function(e){if(o(this.validate)){var t=this.validate(e);return this.setState({isInvalid:!t}),t}return!0},getValue:function(){return this.getInputNode().value},setValue:function(e){this.getInputNode().value=e},componentDidMount:function(){void 0!==this.getInputNode()&&(this.checkFocus(),this.getInputNode().className+=" editor-main")},checkFocus:function(){this.getInputNode().focus()},getInputNode:function(){return this.getDOMNode().getElementsByTagName("input")[0]},getContainerClass:function(){return i({"has-error":this.state.isInvalid===!0})},renderStatusIcon:function(){return this.state.isInvalid===!0?r.createElement("span",{className:"glyphicon glyphicon-remove form-control-feedback"}):void 0},render:function(){if(!o(this.renderEditorNode))throw"Editor Mixin Error : "+this.displayName+" component must implement method renderEditorNode";var e=this.renderEditorNode();return r.createElement("div",{className:this.getContainerClass()},e,this.renderStatusIcon())}};e.exports=n},function(e){"use strict";var t={onPressArrowLeft:function(e){e.stopPropagation()},onPressArrowRight:function(e){e.stopPropagation()},getDefaultValue:function(){var e=this.props.initialKeyCode;if("Delete"===e||"Backspace"===e)return"";if("Enter"===e)return this.props.value;var t=e?String.fromCharCode(e):this.props.value;return t},setCaretAtEndOfInput:function(){var e=this.getInputNode(),t=e.value.length;if(e.setSelectionRange)e.setSelectionRange(t,t);else if(e.createTextRange){var s=e.createTextRange();s.moveStart("character",txt.value.length),s.collapse(),s.select()}},setTextInputFocus:function(){this.isKeyPrintable(this.props.initialKeyCode)?this.getInputNode().select():(this.getInputNode().focus(),this.setCaretAtEndOfInput())}};e.exports=t},,,function(e,t,s){"use strict";var r=s(9),i=(r.PropTypes,s(16)),o=s(17),n=s(18),l=(s(19),s(20)),a=s(21),c=s(22),p=s(23),h=s(24),d=s(25),u=s(26),f=(s(27),r.addons.cloneWithProps,r.createClass({displayName:"ExcelGrid",mixins:[l,p,a,c,h,d],getInitialState:function(){return{selectedRows:[],expandedRows:[]}},overrides:{onCellCommit:function(e){var t=e[0],s=Object.assign({},this.state.selected);s.active=!1,"Tab"===t.keyCode&&(s.idx+=1);var r=this.state.expandedRows;t.changed&&t.changed.expandedHeight&&(r=this.expandRow(t.rowIdx,t.changed.expandedHeight)),this.setState({selected:s,expandedRows:r}),this.props.onRowUpdated(t)},getColumns:function(){var e=this.getDecoratedColumns(this.props.columns);return this.props.enableRowSelect&&e.unshift({key:"select-row",name:"",formatter:r.createElement(u,null),onRowSelect:this.handleRowSelect,filterable:!1,headerRenderer:r.createElement("input",{type:"checkbox",onChange:this.handleCheckboxChange}),width:60}),e}},getDefaultProps:function(){return{rowHeight:35,enableRowSelect:!1,minHeight:350}},handleCheckboxChange:function(e){if(e.currentTarget.checked===!0){var t=this.props.rows.map(function(){return!0});this.setState({selectedRows:t})}else{var t=this.props.rows.map(function(){return!1});this.setState({selectedRows:t})}},handleRowSelect:function(e){var t=this.state.selectedRows;t[e]=null==t[e]||0==t[e]?!0:!1,this.setState({selectedRows:t})},expandRow:function(e,t){var s=this.state.expandedRows;return s[e]?(null==s[e]||s[e]<t)&&(s[e]=t):s[e]=t,s},addRow:function(){},handleShowMore:function(e,t){var s=this.expandRow(e,t);this.setState({expandedRows:s})},handleShowLess:function(e){var t=this.state.expandedRows;t[e]&&(t[e]=!1),this.setState({expandedRows:t})},expandAllRows:function(){},collapseAllRows:function(){},onAfterAddRow:function(e){this.setState({selected:{idx:1,rowIdx:e-2}}),this.refs.base.refs.viewport.refs.canvas.getDOMNode().scrollTop=e*this.props.rowHeight},componentWillReceiveProps:function(e){e.rows.length===this.props.rows.length+1&&this.onAfterAddRow(e.rows.length+1)},render:function(){var e=r.createElement(o,{selected:this.state.selected,copied:this.state.copied,dragged:this.state.dragged,onSelect:this.onSelect,onClick:this.onSelect,onSetActive:this.onSetActive,onCommit:this.onCellCommit,handleCopy:this.handleCopy,handlePaste:this.handlePaste,handleDragStart:this.handleDragStart,handleDragEnter:this.handleDragEnter,handleDragEnd:this.handleDragEnd,handleTerminateDrag:this.handleTerminateDrag,onShowMore:this.handleShowMore,onShowLess:this.handleShowLess,expandedRows:this.state.expandedRows}),t=this.filterRows(),s=this.renderToolbar();return r.createElement("div",{className:"react-grid-Container"},s,r.createElement("div",{className:"react-grid-Main"},r.createElement(i,r.__spread({ref:"base"},this.props,{length:this.props.rows.length,headerRows:this.getHeaderRows(),columns:this.getColumns(),rows:t,cellRenderer:e,rowRenderer:r.createElement(n,null),selectedRows:this.state.selectedRows,expandedRows:this.state.expandedRows,rowOffsetHeight:this.getRowOffsetHeight(),minHeight:this.props.minHeight}))))},renderToolbar:function(){var e=this.props.toolbar;return r.isValidElement(e)?r.addons.cloneWithProps(e,{onToggleFilter:this.onToggleFilter,rows:this.props.rows}):void 0}}));e.exports=f},function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=s(8),n=r.addons.cloneWithProps,l=s(15),a=r.createClass({displayName:"Row",render:function(){var e=i("react-grid-Row","react-grid-Row--"+(this.props.idx%2===0?"even":"odd")),t={height:this.getRowHeight(),overflow:"hidden"},s=this.getCells();return r.createElement("div",r.__spread({},this.props,{className:e,style:t}),r.isValidElement(this.props.row)?this.props.row:s)},getCells:function(){for(var e=[],t=[],s=0,r=this.props.columns.length;r>s;s++){var i=this.props.columns[s],o=this.renderCell({ref:s,key:s,idx:s,rowIdx:this.props.idx,filterRowIdx:this.props.row.key,value:this.getCellValue(i.key||s),column:i,height:this.getRowHeight(),formatter:i.formatter,rowData:this.props.row});i.locked?t.push(o):e.push(o)}return e.concat(t)},getRowHeight:function(){return this.props.expandedRows&&this.props.expandedRows[this.props.key]?this.props.expandedRows[this.props.key]:this.props.height},getCellValue:function(e){return"select-row"===e?this.props.isSelected:this.props.row[e]},renderCell:function(e){return r.isValidElement(this.props.cellRenderer)?n(this.props.cellRenderer,e):this.props.cellRenderer(e)},getDefaultProps:function(){return{cellRenderer:o}},shouldComponentUpdate:function(e){return!l.sameColumns(this.props.columns,e.columns,l.sameColumn)||this.doesRowContainSelectedCell()||this.doesRowContainSelectedCell(e)||this.willRowBeDraggedOver(e)||this.hasRowBeenCopied()||e.row!==this.props.row||e.height!==this.props.height},setScrollLeft:function(e){for(var t=0,s=this.props.columns.length;s>t;t++)this.props.columns[t].locked&&this.refs[t].setScrollLeft(e)},doesRowContainSelectedCell:function(e){var t=e||this.props,s=s||t.cellRenderer;return s.props.selected&&s.props.selected.rowIdx===t.idx?!0:!1},willRowBeDraggedOver:function(e){var t=e.cellRenderer.props.dragged;return null!=t&&(t.rowIdx||t.complete===!0)},hasRowBeenCopied:function(){var e=this.props.cellRenderer;return null!=e.props.copied&&e.props.copied.rowIdx===this.props.idx}});e.exports=a},function(e,t,s){"use strict";function r(e){return e.value}var i=s(9),o=i.addons.classSet,n=i.addons.cloneWithProps,l=i.createClass({displayName:"Cell",render:function(){var e=this.getStyle(),t=o("react-grid-Cell",this.props.className,this.props.column.locked?"react-grid-Cell--locked":null),s=this.renderCellContent({value:this.props.value,column:this.props.column,rowIdx:this.props.rowIdx,isExpanded:this.props.isExpanded});return i.createElement("div",i.__spread({},this.props,{className:t,style:e}),s,i.createElement("div",{className:"drag-handle",draggable:"true",onDragStart:this.props.handleDragStart}))},renderCellContent:function(e){var t=i.isValidElement(this.props.formatter)?n(this.props.formatter,e):this.props.formatter(e);return i.createElement("div",{className:"react-grid-Cell__value"},t," ",this.props.cellControls)},getDefaultProps:function(){return{formatter:r}},getStyle:function(){var e={position:"absolute",width:this.props.column.width,height:this.props.height,left:this.props.column.left};return e},setScrollLeft:function(e){if(this.isMounted()){var t=this.getDOMNode(),s="translate3d("+e+"px, 0px, 0px)";t.style.webkitTransform=s,t.style.transform=s}}});e.exports=l},function(t){t.exports=e},,,,function(e,t,s){"use strict";var r=s(9),i=(r.addons.classSet,s(27),s(2)),o=s(3),n=s(29),l=r.createClass({displayName:"SimpleTextEditor",mixins:[n,i,o],overrides:{checkFocus:function(){this.setTextInputFocus()}},renderEditorNode:function(){return r.createElement("input",{type:"text",onBlur:this.commit,className:"form-control",defaultValue:this.getDefaultValue(),style:this.getStyle(),onKeyDown:this.onKeyDown})}});e.exports=l},function(e){"use strict";var t=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)};e.exports=t},function(e,t,s){"use strict";function r(e){var t,s,r,i=0,o=e.totalWidth,n=[],l=e.columns.map(p);for(t=0,s=l.length;s>t;t++)r=l[t],r.width?(/^([0-9]+)%$/.exec(r.width)&&(r.width=Math.floor(parseInt(r.width,10)/100*e.totalWidth)),o-=r.width,i+=r.width):n.push(r);for(t=0,s=n.length;s>t;t++)r=n[t],r.width=0>=o?e.minColumnWidth:Math.floor(o/n.length),i+=r.width;var a=0;for(t=0,s=l.length;s>t;t++)r=l[t],r.left=a,a+=r.width;return{columns:l,width:i,totalWidth:e.totalWidth,minColumnWidth:e.minColumnWidth}}function i(e,t,s){var i=e.columns[t];e=p(e),e.columns=e.columns.slice(0);var o=p(i);return o.width=Math.max(s,e.minColumnWidth),e.columns.splice(t,1,o),r(e)}function o(e,t,s){var r,i,o,n={},l={};if(e.length!==t.length)return!1;for(r=0,i=e.length;i>r;r++)o=e[r],n[o.key]=o;for(r=0,i=t.length;i>r;r++){o=t[r],l[o.key]=o;var a=n[o.key];if(void 0===a||!s(a,o))return!1}for(r=0,i=e.length;i>r;r++){o=e[r];var c=l[o.key];if(void 0===c)return!1}return!0}function n(e,t){var s;for(s in e)if(e.hasOwnProperty(s)){if("function"==typeof e[s]&&"function"==typeof t[s]||c(e[s])&&c(t[s]))continue;if(!t.hasOwnProperty(s)||e[s]!==t[s])return!1}for(s in t)if(t.hasOwnProperty(s)&&!e.hasOwnProperty(s))return!1;return!0}var l=s(9),a=l.PropTypes,c=l.isValidElement,p=s(30),h=s(31),d=s(19),u={mixins:[h.MetricsMixin],propTypes:{columns:a.array,minColumnWidth:a.number,columnEquality:a.func},DOMMetrics:{gridWidth:function(){return this.getDOMNode().offsetWidth-2}},getDefaultProps:function(){return{minColumnWidth:80,columnEquality:n}},getInitialState:function(){return this.getColumnMetrics(this.props,!0)},componentWillReceiveProps:function(e){if(e.columns)if(o(this.props.columns,e.columns,this.props.columnEquality)){var t={};this.state.columns.columns.forEach(function(e){t[e.key]={width:e.width,left:e.left}});var s=d(this.state.columns,{columns:e.columns.map(function(e){return d(e,t[e.key])})});this.setState({columns:s})}else this.setState(this.getColumnMetrics(e))},getColumnMetrics:function(e,t){var s=t?null:this.DOMMetrics.gridWidth();return{columns:r({columns:e.columns,width:null,totalWidth:s,minColumnWidth:e.minColumnWidth}),gridWidth:s}},metricsUpdated:function(){this.setState(this.getColumnMetrics(this.props))},onColumnResize:function(e,t){var s=i(this.state.columns,e,t);this.setState({columns:s})}};e.exports={Mixin:u,calculate:r,resizeColumn:i,sameColumns:o,sameColumn:n}},function(e,t,s){"use strict";var r=s(9),i=r.PropTypes,o=s(32),n=s(33),l=s(15),a=s(31),c={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){var t=e.scrollLeft;this._scrollLeft!==t&&(this._scrollLeft=t,this._onScroll())},_onScroll:function(){void 0!==this._scrollLeft&&(this.refs.header.setScrollLeft(this._scrollLeft),this.refs.viewport.setScrollLeft(this._scrollLeft))}},p=r.createClass({displayName:"Grid",mixins:[c,l.Mixin,a.MetricsComputatorMixin],propTypes:{rows:i.oneOfType([i.array,i.func]).isRequired,columns:i.array.isRequired},getStyle:function(){return{overflow:"hidden",outline:0,position:"relative",minHeight:this.props.minHeight}},render:function(){var e=this.props.headerRows||[{ref:"row"}];return r.createElement("div",r.__spread({},this.props,{style:this.getStyle(),className:"react-grid-Grid"}),r.createElement(o,{ref:"header",columns:this.state.columns,onColumnResize:this.onColumnResize,height:this.props.rowHeight,totalWidth:this.DOMMetrics.gridWidth(),headerRows:e}),r.createElement(n,{ref:"viewport",width:this.state.columns.width,rowHeight:this.props.rowHeight,rowRenderer:this.props.rowRenderer,cellRenderer:this.props.cellRenderer,rows:this.props.rows,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,length:this.props.length,columns:this.state.columns,totalWidth:this.DOMMetrics.gridWidth(),onScroll:this.onScroll,onRows:this.props.onRows,rowOffsetHeight:this.props.rowOffsetHeight||this.props.rowHeight*e.length}))},getDefaultProps:function(){return{rowHeight:35,minHeight:350}}});e.exports=p},function(e,t,s){"use strict";var r=s(9),i=s(8),o=(s(35),s(36)),n=s(37),l=s(38),a=(s(27),s(29),s(14)),c=(r.PropTypes,r.addons.classSet),p=(r.addons.cloneWithProps,r.createClass({displayName:"CellControls",onClickEdit:function(e){e.stopPropagation(),e.preventDefault(),this.props.onClickEdit()},onShowMore:function(e){e.stopPropagation(),e.preventDefault();var t=this.props.column.getExpandedHeight(this.props.value);this.props.onShowMore(this.props.rowIdx,t)},onShowLess:function(e){e.stopPropagation(),e.preventDefault(),this.props.onShowLess(this.props.rowIdx)},shouldComponentUpdate:function(e){return this.props.height!=e.height},renderShowMoreButton:function(){if(a(this.props.column.getExpandedHeight)&&this.props.column.getExpandedHeight(this.props.value)>0){var e=this.props.column.getExpandedHeight(this.props.value);return e>this.props.height?r.createElement("button",{type:"button",className:"btn btn-link btn-xs",onClick:this.onShowMore},"Show More"):r.createElement("button",{type:"button",className:"btn btn-link btn-xs",onClick:this.onShowLess},"Show Less")}return null},render:function(){return r.createElement("div",{className:"pull-right btn-group"},this.renderShowMoreButton,r.createElement("button",{onClick:this.onClickEdit,type:"button",className:"btn btn-link btn-xs"},"Edit"))}})),h=r.createClass({displayName:"ExcelCell",mixins:[o,n,l],overrides:{getCellClass:function(){return c({selected:this.isSelected()&&!this.isCopied()&&!this.isActive(),editing:this.isActive(),copied:this.isCopied(),"selected-draggable":this.isSelected()&&!this.isActive()&&this.canEdit(),"active-drag-cell":this.isActiveDragCell()&&this.canEdit(),"is-dragged-over-up":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx<this.props.dragged.rowIdx,"is-dragged-over-down":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx>this.props.dragged.rowIdx,"was-dragged-over":this.wasDraggedOver()&&this.canEdit()})}},isActiveDragCell:function(){return(this.isSelected()||this.isDraggedOver())&&!this.isActive()},isExpanded:function(){var e=!1;if(a(this.props.column.getExpandedHeight)&&this.props.column.getExpandedHeight(this.props.value)>0){var t=this.props.column.getExpandedHeight(this.props.value);e=this.props.height>=t?!0:!1}return e},shouldComponentUpdate:function(e){return this.props.column.width!==e.column.width||this.props.value!==e.value||this.props.height!==e.height||this.props.rowIdx!==e.rowIdx||this.isCellSelectionChanging(e)||this.isDraggedCellChanging(e)},render:function(){return r.createElement(i,r.__spread({},this.props,{className:this.getCellClass(),onKeyDown:this.onKeyDown,onClick:this.onClick,onDoubleClick:this.onDoubleClick,formatter:this.getFormatter(),handleDragStart:this.handleDragStart,onDragEnter:this.handleDragEnter,onDragEnd:this.props.handleDragEnd,cellControls:this.props.column.showCellControls&&!this.isActive()?r.createElement(p,{height:this.props.height,value:this.props.value,rowIdx:this.props.rowIdx,column:this.props.column,onShowMore:this.props.onShowMore,onShowLess:this.props.onShowLess,onClickEdit:this.setActive}):null,isExpanded:this.isExpanded()}))}});e.exports=h},function(e,t,s){"use strict";var r=s(9),i=(r.addons.classSet,s(7)),o=s(15),n=r.createClass({displayName:"ExcelRow",render:function(){var e=r.addons.update(this.props.row,{$merge:{"select-row":this.props.isSelected}});return r.createElement(i,r.__spread({},this.props,{row:e,height:this.getRowHeight(this.props)}))},getRowHeight:function(e){return e.expandedRows&&e.expandedRows[e.key]?e.expandedRows[e.key]:e.height},hasRowHeightChanged:function(e){return e.expandedRows&&"undefined"!=typeof e.expandedRows[e.key]?this.props.height!==e.expandedRows[e.key]:!1},shouldComponentUpdate:function(e){return!o.sameColumns(this.props.columns,e.columns,o.sameColumn)||this.doesRowContainSelectedCell()||this.doesRowContainSelectedCell(e)||this.willRowBeDraggedOver(e)||this.hasRowBeenCopied()||e.row!==this.props.row||this.hasRowHeightChanged(e)},doesRowContainSelectedCell:function(e){var t=e||this.props,s=s||t.cellRenderer;return s.props&&s.props.selected&&s.props.selected.rowIdx===t.idx?!0:!1},willRowBeDraggedOver:function(e){if(e.cellRenderer.props){var t=e.cellRenderer.props.dragged;return null!=t&&(t.rowIdx||t.complete===!0)}return!1},hasRowBeenCopied:function(){if(this.props.cellRenderer.props){var e=this.props.cellRenderer;return null!=e.props.copied&&e.props.copied.rowIdx===this.props.idx}return!1},setScrollLeft:function(e){for(var t=0,s=this.props.columns.length;s>t;t++)this.props.columns[t].locked&&this.refs[t].setScrollLeft(e)}});e.exports=n},function(e){"use strict";function t(e,t){var s={};for(var r in e)s[r]=e[r];for(var r in t)s[r]=t[r];return s}var s=function(e,t){var s={};return null!=e&&Object.assign(s,e),null!=t&&Object.assign(s,t),s};e.exports=Object.assign?s:t},function(e){"use strict";var t={getDefaultProps:function(){return{enableCellSelect:!1}},getColumns:function(){return this.props.columns},getInitialState:function(){return this.props.enableCellSelect?{selected:{rowIdx:0,idx:0}}:{selected:{rowIdx:-1,idx:-1}}},onSelect:function(e){if(this.props.enableCellSelect){var t=e.idx,s=e.rowIdx;t>=0&&s>=0&&t<this.getColumns().length&&s<this.props.rows.length&&(this.props.onSelect&&this.props.onSelect({selected:e}),this.setState({selected:e}))}}};e.exports=t},function(e,t,s){"use strict";{var r=s(9),i=(r.PropTypes,s(27));s(20)}i.addAlias("SelectableGridMixin");var o={mixinDependencies:["SelectableGridMixin"],propTypes:{onCellsDragged:r.PropTypes.func},getInitialState:function(){return{dragged:null}},handleDragStart:function(e){var t=e.idx,s=e.rowIdx;t>=0&&s>=0&&t<this.getColumns().length&&s<this.props.rows.length&&this.setState({dragged:e})},handleDragEnter:function(e){var t=(this.state.selected,this.state.dragged);t.overRowIdx=e,this.setState({dragged:t})},handleDragEnd:function(){var e,t,s=this.state.selected,r=this.state.dragged,i=this.getColumns()[this.state.selected.idx].key;e=s.rowIdx<r.overRowIdx?s.rowIdx:r.overRowIdx,t=s.rowIdx>r.overRowIdx?s.rowIdx:r.overRowIdx,this.props.onCellsDragged({cellKey:i,fromRow:e,toRow:t,value:r.copiedText}),this.setState({dragged:{complete:!0}})},handleTerminateDrag:function(){this.setState({dragged:null})}};e.exports=o},function(e,t,s){"use strict";var r=s(9),i=(r.PropTypes,{propTypes:{onCellCopyPaste:r.PropTypes.func},getInitialState:function(){return{copied:null}},handleCopy:function(e){var t=e.value,s=this.state.selected,r={idx:s.idx,rowIdx:s.rowIdx};this.setState({textToCopy:t,copied:r})},handlePaste:function(){var e=this.state.selected,t=this.getColumns()[e.idx].key;this.props.onCellCopyPaste({cellKey:t,rowIdx:e.rowIdx,value:this.state.textToCopy,fromRow:this.state.copied.rowIdx,toRow:e.rowIdx}),this.setState({copied:null})}});e.exports=i},function(e,t,s){"use strict";var r=s(9),i=(r.PropTypes,s(19)),o={propTypes:{onRowUpdated:r.PropTypes.func},onCellCommit:function(e){var t=this.state.selected;t.active=!1,"Tab"===e.keyCode&&(t.idx+=1),this.setState({selected:t}),this.props.onRowUpdate(e)},onSetActive:function(e){var t=i(this.state.selected,e);this.setState({selected:t})}};e.exports=o},function(e,t,s){"use strict";var r=s(9),i=(r.PropTypes,s(34)),o=s(30),n={ASC:"ASC",DESC:"DESC"};Object.freeze(n);var l={getInitialState:function(){return{sortDirection:null,sortColumn:null}},getDecoratedColumns:function(){return this.props.columns.map(function(e){return e=o(e),e.sortable&&(e.headerRenderer=r.createElement(i,null),e.sortBy=this.sortBy,e.sorted=this.state.sortColumn===e.key?this.state.sortDirection:n.NONE),e},this)},sortBy:function(e,t){switch(t){case null:case void 0:t=n.ASC;break;case n.ASC:t=n.DESC;break;case n.DESC:t=null}this.setState({sortDirection:t,sortColumn:e.key})},sortRows:function(e){e=[].concat(e);var t=this.state.sortColumn,s=this.state.sortDirection;return null!=t&&null!==s?e.sort(function(e,r){var i=e[t],o=r[t];return s===n.ASC?i>o?1:o>i?-1:0:s===n.DESC?i>o?-1:o>i?1:0:void 0}):e}};e.exports=l},function(e,t,s){"use strict";var r=s(9),i=(r.PropTypes,s(39)),o={getInitialState:function(){return{canFilter:!1,columnFilters:{}}},filterRows:function(){var e=this.props.rows;return this.state.sortColumn&&(e=this.sortRows(e)),this.hasFilters()&&(e=e.map(function(e,t){return e.key=t,e}).filter(this.isRowDisplayed),this.props.onFilter&&this.props.onFilter(e)),e},hasFilters:function(){var e=!1;return Object.keys(this.state.columnFilters).every(function(t){var s=this.state.columnFilters[t];return null!=s&&void 0!=s&&""!=s?(e=!0,!1):!0},this),e},isRowDisplayed:function(e){var t=null;return Object.keys(this.state.columnFilters).every(function(s){var r=this.state.columnFilters[s].toLowerCase(),i=e[s].toString().toLowerCase();if(null!=r&&void 0!=r&&""!=r&&"string"==typeof i){if(!(i.indexOf(r)>-1))return t=!1,!1;t=!0}return!0},this),null==t?!1:t},onToggleFilter:function(){this.setState({canFilter:!this.state.canFilter})},handleAddFilter:function(e){var t=this.state.columnFilters;t[e.columnKey]=e.filterTerm,this.setState({columnFilters:t,selected:null})},getHeaderRows:function(){var e=[{ref:"row",height:this.props.rowHeight}];return this.state.canFilter===!0&&e.push({ref:"filterRow",headerCellRenderer:r.createElement(i,{onChange:this.handleAddFilter}),height:45}),e},getRowOffsetHeight:function(){var e=0;return this.getHeaderRows().forEach(function(t){return e+=t.height}),e}};e.exports=o},function(e,t,s){"use strict";var r=s(9),i=(r.addons.classSet,r.createClass({displayName:"CheckBoxEditor",PropTypes:{value:r.PropTypes.bool.isRequired},render:function(){return r.createElement("input",{className:"react-grid-CheckBox",type:"checkbox",checked:this.props.value,onChange:this.handleChange})},handleChange:function(){this.props.column.onRowSelect(this.props.rowIdx)},shouldComponentUpdate:function(e){return this.props.value!=e.value}}));e.exports=i},function(e,t,s){"use strict";var r=s(42),i=s(14),o=s(9);Object.assign||(Object.assign=s(41));var n=r({DEFINE_LIFE_CYCLE_METHOD:null,DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),l={getDefaultProps:n.DEFINE_LIFE_CYCLE_METHOD,propTypes:n.DEFINE_LIFE_CYCLE_METHOD,getInitialState:n.DEFINE_LIFE_CYCLE_METHOD,statics:n.DEFINE_LIFE_CYCLE_METHOD,displayName:n.DEFINE_LIFE_CYCLE_METHOD,componentWillMount:n.DEFINE_LIFE_CYCLE_METHOD,componentWillReceiveProps:n.DEFINE_LIFE_CYCLE_METHOD,shouldComponentUpdate:n.DEFINE_LIFE_CYCLE_METHOD,componentWillUpdate:n.DEFINE_LIFE_CYCLE_METHOD,componentDidUpdate:n.DEFINE_LIFE_CYCLE_METHOD,componentWillUnmount:n.DEFINE_LIFE_CYCLE_METHOD},a={},c=function(e,t){this.base=e,this.dependsOn=t},p=function(e){this.assignTo=function(t){return new c(t,e)}},h=function(e,t){Object.keys(e).forEach(function(s){if(f.isCustomProperty(s))i(e[s])&&(e[s]=f.wrapCustomMethod(s,e[s]));else{switch(l[s]){case n.DEFINE_LIFE_CYCLE_METHOD:var r={};r[s]=e[s],t.push(r);break;case n.DEFINE_MANY_MERGED:}delete e[s]}},this)},d={mix:function(e){var t=[],s={},r=f.getUniqueDependencies(e);for(var i in r)Object.assign(s,a[r[i]]);return h(s,t),e.forEach(function(e){var r={};e instanceof c?Object.assign(r,e.base):Object.assign(r,e),h(r,t),Object.assign(s,r)},this),t.push(s),t},createDependency:function(e){var t=[];for(var s in e)e[s]instanceof c?this.addAlias(s,e[s].base):this.addAlias(s,e[s]),t.push(s);var r=t.filter(function(e,t,s){return s.indexOf(e)===t});return new p(r)},addAlias:function(e,t){a[e]=t}},u=o.createClass;o.createClass=function(e){return e.mixins&&(e.mixins=d.mix(e.mixins)),u.apply(o,arguments)};var f={isCustomProperty:function(e){return!l[e]},wrapCustomMethod:function(e,t){return function(){return f.isMethodOverridden.call(this,e)?f.callOverriddenMethod.call(this,e,arguments):t.apply(this,arguments)}},checkMethodExtendedAndCall:function(e,t){return this.extended&&"function"==typeof this.extended[e]?this.extended[e].call(this,t):void 0},checkMethodImplementedAndCall:function(e,t){return this.implemented&&"function"==typeof this.implemented[e]?this.implemented[e].call(this,t):void 0},isMethodOverridden:function(e){return this.overrides&&"function"==typeof this.overrides[e]},callOverriddenMethod:function(e,t){return this.overrides[e].call(this,t)},getUniqueDependencies:function(e){var t=[];return e.forEach(function(e){e instanceof c&&(t=t.concat(e.dependsOn))},this),t.filter(function(e,t,s){return s.indexOf(e)===t})}};e.exports=d},,function(e,t,s){"use strict";var r=s(9),i=(r.addons.Perf,{onKeyDown:function(e){if(this.isCtrlKeyHeldDown(e))this.checkAndCall("onPressKeyWithCtrl",e);else if(this.isKeyIdentified(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},isKeyIdentified:function(e){return"Unidentified"!==e},isCtrlKeyHeldDown:function(e){return e.ctrlKey===!0&&"Control"!==e.key},checkAndCall:function(e,t){"function"==typeof this[e]&&this[e](t)}});e.exports=i},function(e){"use strict";function t(e){var t={};for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);return t}e.exports=t},function(e,t,s){"use strict";var r=s(9),i=s(43),o=s(30),n=s(44),l={metricsComputator:r.PropTypes.object},a={childContextTypes:l,getChildContext:function(){return{metricsComputator:this}},getMetricImpl:function(e){return this._DOMMetrics.metrics[e].value},registerMetricsImpl:function(e,t){var s={},r=this._DOMMetrics;for(var i in t)n(void 0===r.metrics[i],"DOM metric "+i+" is already defined"),r.metrics[i]={component:e,computator:t[i].bind(e)},s[i]=this.getMetricImpl.bind(null,i);return-1===r.components.indexOf(e)&&r.components.push(e),s},unregisterMetricsFor:function(e){var t=this._DOMMetrics,s=t.components.indexOf(e);if(s>-1){t.components.splice(s,1);var r,i={};for(r in t.metrics)t.metrics[r].component===e&&(i[r]=!0);for(r in i)delete t.metrics[r]}},updateMetrics:function(){var e=this._DOMMetrics,t=!1;for(var s in e.metrics){var r=e.metrics[s].computator();r!==e.metrics[s].value&&(t=!0),e.metrics[s].value=r}if(t)for(var i=0,o=e.components.length;o>i;i++)e.components[i].metricsUpdated&&e.components[i].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)}},c={contextTypes:l,componentWillMount:function(){if(this.DOMMetrics){this._DOMMetricsDefs=o(this.DOMMetrics),this.DOMMetrics={};for(var e in this._DOMMetricsDefs)this.DOMMetrics[e]=i}},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:a,MetricsMixin:c}},function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=s(30),n=s(15),l=s(45),n=s(15),a=r.createClass({displayName:"Header",propTypes:{columns:r.PropTypes.object.isRequired,totalWidth:r.PropTypes.number,height:r.PropTypes.number.isRequired,headerRows:r.PropTypes.array.isRequired},render:function(){var e=(this.state.resizing||this.props,i({"react-grid-Header":!0,"react-grid-Header--resizing":!!this.state.resizing})),t=this.getHeaderRows();return r.createElement("div",r.__spread({},this.props,{style:this.getStyle(),className:e}),t)},shouldComponentUpdate:function(e,t){return!n.sameColumns(this.props.columns.columns,e.columns.columns,n.sameColumn)||this.props.totalWidth!=e.totalWidth||this.props.headerRows.length!=e.headerRows.length||this.state.resizing!=t.resizing},getHeaderRows:function(){var e=this.state.resizing||this.props,t=[];return this.props.headerRows.forEach(function(s,i){var o={position:"absolute",top:this.props.height*i,left:0,width:this.props.totalWidth};t.push(r.createElement(l,{key:s.ref,ref:s.ref,style:o,onColumnResize:this.onColumnResize,onColumnResizeEnd:this.onColumnResizeEnd,width:e.columns.width,height:s.height||this.props.height,columns:e.columns.columns,resizing:e.column,headerCellRenderer:s.headerCellRenderer}))}.bind(this)),t},getInitialState:function(){return{resizing:null}},componentWillReceiveProps:function(){this.setState({resizing:null})},onColumnResize:function(e,t){var s=this.state.resizing||this.props,r=this.getColumnPosition(e);if(null!==r){var i={columns:o(s.columns)};i.columns=n.resizeColumn(i.columns,r,t),i.columns.width<s.columns.width&&(i.columns.width=s.columns.width),i.column=i.columns.columns[r],this.setState({resizing:i})}},getColumnPosition:function(e){var t=this.state.resizing||this.props,s=t.columns.columns.indexOf(e);return-1===s?null:s},onColumnResizeEnd:function(e,t){var s=this.getColumnPosition(e);null!==s&&this.props.onColumnResize&&this.props.onColumnResize(s,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}}});e.exports=a},function(e,t,s){"use strict";var r=s(9),i=s(46),o=s(31),n=s(47),l=Math.min,a=Math.max,c=Math.floor,p=Math.ceil,h={mixins:[o.MetricsMixin],DOMMetrics:{viewportHeight:function(){return this.getDOMNode().offsetHeight}},propTypes:{rowHeight:r.PropTypes.number,length:r.PropTypes.number.isRequired},getDefaultProps:function(){return{rowHeight:30}},getInitialState:function(){return this.getGridState(this.props)},getGridState:function(e){var t=this.state&&this.state.height?this.state.height:i().height,s=p(t/e.rowHeight); | ||
return{displayStart:0,displayEnd:2*s,height:t,scrollTop:0,scrollLeft:0}},updateScroll:function(e,t,s,r,i){var o=p(s/r),n=c(e/r),h=l(n+o,i),d=a(0,n-2*o),u=l(n+2*o,i),f={visibleStart:n,visibleEnd:h,displayStart:d,displayEnd:u,height:s,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.length)},componentWillReceiveProps:function(e){this.props.rowHeight!==e.rowHeight?this.setState(this.getGridState(e)):this.props.length!==e.length&&this.updateScroll(this.state.scrollTop,this.state.scrollLeft,this.state.height,e.rowHeight,e.length)}},d=r.createClass({displayName:"Viewport",mixins:[h],render:function(){var e={padding:0,bottom:0,left:0,right:0,overflow:"hidden",position:"absolute",top:this.props.rowOffsetHeight};return r.createElement("div",{className:"react-grid-Viewport",style:e},r.createElement(n,{ref:"canvas",totalWidth:this.props.totalWidth,width:this.props.columns.width,rows:this.props.rows,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,columns:this.props.columns.columns,cellRenderer:this.props.cellRenderer,rowRenderer:this.props.rowRenderer,visibleStart:this.state.visibleStart,visibleEnd:this.state.visibleEnd,displayStart:this.state.displayStart,displayEnd:this.state.displayEnd,length:this.props.length,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){var t=e.scrollTop,s=e.scrollLeft;this.updateScroll(t,s,this.state.height,this.props.rowHeight,this.props.length),this.props.onScroll&&this.props.onScroll({scrollTop:t,scrollLeft:s})},setScrollLeft:function(e){this.refs.canvas.setScrollLeft(e)}});e.exports=d},function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=r.createClass({displayName:"SortableHeaderCell",onClick:function(){this.props.column.sortBy(this.props.column,this.props.column.sorted)},getSortByClass:function(){var e=this.props.column.sorted;return i({"pull-right":!0,"glyphicon glyphicon-arrow-up":"ASC"===e,"glyphicon glyphicon-arrow-down":"DESC"===e})},render:function(){return r.createElement("div",{onClick:this.onClick,style:{cursor:"pointer"}},this.props.column.name,r.createElement("span",{className:this.getSortByClass()}))}});e.exports=o},function(e,t,s){"use strict";var r=s(9),i=(r.addons.classSet,r.addons.cloneWithProps,s(29)),o=s(27),n=o.createDependency({KeyboardHandlerMixin:i}).assignTo({getDefaultProps:function(){return{tabIndex:-1,ref:"cell"}},isSelected:function(){return this.props.selected&&this.props.selected.rowIdx===this.props.rowIdx&&this.props.selected.idx===this.props.idx},onClick:function(){var e=this.props.rowIdx,t=this.props.idx;this.props.onClick({rowIdx:e,idx:t})},onPressArrowUp:function(e){this.moveSelectedCell(e,-1,0)},onPressArrowDown:function(e){this.moveSelectedCell(e,1,0)},onPressArrowLeft:function(e){this.moveSelectedCell(e,0,-1)},onPressArrowRight:function(e){this.moveSelectedCell(e,0,1)},onPressTab:function(e){this.moveSelectedCell(e,0,1)},moveSelectedCell:function(e,t,s){e.stopPropagation(),e.preventDefault();var r=this.props.rowIdx+t,i=this.props.idx+s;this.props.onSelect({idx:i,rowIdx:r})},setScrollLeft:function(e){this.refs.row.setScrollLeft(e)},componentDidMount:function(){this.checkFocus()},componentDidUpdate:function(){this.checkFocus()},isCellSelectionChanging:function(e){return this.props.selected&&e.selected?this.props.idx===e.selected.idx||this.props.idx===this.props.selected.idx:!0},checkFocus:function(){this.isSelected()&&this.getDOMNode().focus()}});e.exports=n},function(e,t,s){"use strict";var r=s(9),i=(r.addons.classSet,r.addons.cloneWithProps),o=s(13),n=r.PropTypes,l=s(27),a=s(35),c=s(29),p=l.createDependency({KeyboardHandlerMixin:c,SelectableMixin:a}).assignTo({propTypes:{onCommit:n.func.isRequired},canEdit:function(){return null!=this.props.column.editor||this.props.column.editable},getEditor:function(){var e={height:this.props.height,onPressEscape:this.onPressEscape,onCommit:this.onCommit,initialKeyCode:this.props.selected.initialKeyCode,editorRowMetaData:this.getEditorRowMetaData()},t=this.props.column.editor;return t&&r.isValidElement(t)?i(t,e):i(o(),e)},getEditorRowMetaData:function(){this.props.column.ItemId;return"function"==typeof this.props.column.getEditorRowMetaData?this.props.column.getEditorRowMetaData(this.props.rowData):void 0},getFormatter:function(){this.props.column;return this.isActive()?this.getEditor():this.props.column.formatter},onCommit:function(e){var t=this.props.rowIdx,s=(this.props.idx,this.props.column.key);this.props.onCommit({cellKey:s,rowIdx:this.props.filterRowIdx||t,updated:e.updated,keyCode:e.key})},checkFocus:function(){this.isSelected()&&!this.isActive()&&this.getDOMNode().focus()},onClick:function(){if(!this.isActive()){var e=this.props.rowIdx,t=this.props.idx;this.props.onClick({rowIdx:e,idx:t})}},onDoubleClick:function(){var e=this.props.rowIdx,t=this.props.idx;this.props.onClick({rowIdx:e,idx:t,active:this.canEdit()})},setActive:function(e){var t=this.props.rowIdx,s=this.props.idx;"select-row"===this.props.column.key&&this.props.column.onRowSelect?this.props.column.onRowSelect(t):this.canEdit()&&!this.isActive()&&this.props.onSetActive({idx:s,rowIdx:t,active:!0,initialKeyCode:e})},setInactive:function(){if(this.canEdit()&&this.isActive()){var e=this.props.rowIdx,t=this.props.idx;this.props.onSetActive({idx:t,rowIdx:e,active:!1})}},isActive:function(){return this.isSelected()&&this.props.selected.active===!0},onPressEnter:function(e){this.setActive(e.key)},onPressDelete:function(e){this.setActive(e.key)},onPressEscape:function(e){this.setInactive(e.key)},onPressBackspace:function(e){this.setActive(e.key)},onPressChar:function(e){this.isKeyPrintable(e.keyCode)&&this.setActive(e.keyCode)}});e.exports=p},function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=(r.addons.cloneWithProps,r.PropTypes,s(13),s(27)),n=s(35),l=s(29),a=o.createDependency({KeyboardHandlerMixin:l,SelectableMixin:n}).assignTo({getCellClass:function(){return i({selected:this.isSelected()&&!this.isCopied(),copied:this.isCopied()})},KeyCode_c:"99",KeyCode_C:"67",KeyCode_V:"86",KeyCode_v:"118",propTypes:{handleCopy:r.PropTypes.func.isRequired,handlePaste:r.PropTypes.func.isRequired},isCopied:function(){return this.props.copied&&this.props.copied.rowIdx===this.props.rowIdx&&this.props.copied.idx===this.props.idx},onPressKeyWithCtrl:function(e){this.canEdit()&&(e.keyCode==this.KeyCode_c||e.keyCode==this.KeyCode_C?this.props.handleCopy({value:this.props.value}):(e.keyCode==this.KeyCode_v||e.keyCode==this.KeyCode_V)&&this.props.handlePaste({value:this.props.value}))}});e.exports=a},function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=(r.addons.cloneWithProps,r.PropTypes,s(27)),n=s(35),l=s(29),a=o.createDependency({KeyboardHandlerMixin:l,SelectableMixin:n}).assignTo({getCellClass:function(){return i({"selected-draggable":this.isSelected(),"active-drag-cell":this.isSelected()||this.isDraggedOver(),"is-dragged-over-up":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx<this.props.dragged.rowIdx,"is-dragged-over-down":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx>this.props.dragged.rowIdx,"was-dragged-over":this.wasDraggedOver()})},getDefaultProps:function(){return{handleDragStart:this.handleDragStart,onDragEnter:this.handleDragEnter,onDragEnd:this.handleDragEnd}},propTypes:{handleDragEnter:r.PropTypes.func.isRequired,handleDragStart:r.PropTypes.func.isRequired,handleDragEnd:r.PropTypes.func.isRequired,handleTerminateDrag:r.PropTypes.func.isRequired},isDraggedOver:function(){return this.props.dragged&&this.props.dragged.overRowIdx===this.props.rowIdx&&this.props.dragged.idx===this.props.idx},wasDraggedOver:function(){return this.props.dragged&&(this.props.dragged.overRowIdx<this.props.rowIdx&&this.props.rowIdx<this.props.dragged.rowIdx||this.props.dragged.overRowIdx>this.props.rowIdx&&this.props.rowIdx>this.props.dragged.rowIdx)&&this.props.dragged.idx===this.props.idx},handleDragStart:function(){var e=this.props.rowIdx,t=this.props.idx;this.props.handleDragStart({rowIdx:e,idx:t,copiedText:this.props.value})},handleDragEnter:function(){this.props.handleDragEnter(this.props.rowIdx)},handleDragEnd:function(){this.props.handleDragEnd()},isDraggedCellChanging:function(e){return this.props.dragged?e.dragged&&this.props.idx===e.dragged.idx||this.props.dragged&&this.props.idx===this.props.dragged.idx:!1},componentDidUpdate:function(){var e=this.props.dragged;e&&e.complete===!0&&this.props.handleTerminateDrag()}});e.exports=a},function(e,t,s){"use strict";var r=s(9),i=(r.addons.classSet,r.createClass({displayName:"FilterableHeaderCell",getInitialState:function(){return{filterTerm:""}},handleChange:function(e){e.preventDefault(),e.stopPropagation(),this.setState({filterTerm:e.currentTarget.value}),this.props.onChange({filterTerm:e.currentTarget.value,columnKey:this.props.column.key})},componentDidUpdate:function(){this.getDOMNode().focus()},render:function(){return r.createElement("div",null,r.createElement("div",{className:"form-group"},r.createElement(this.renderInput,null)))},renderInput:function(){return this.props.column.filterable===!1?r.createElement("span",null):r.createElement("input",{type:"text",className:"form-control input-sm",placeholder:"Search",value:this.state.filterTerm,onChange:this.handleChange})}}));e.exports=i},,function(e){"use strict";function t(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){for(var s,r,i=t(e),o=1;o<arguments.length;o++){s=arguments[o],r=Object.keys(Object(s));for(var n=0;n<r.length;n++)i[r[n]]=s[r[n]]}return i}},function(e,t,s){(function(t){"use strict";var r=s(53),i=function(e){var s,i={};"production"!==t.env.NODE_ENV?r(e instanceof Object&&!Array.isArray(e),"keyMirror(...): Argument must be an object."):r(e instanceof Object&&!Array.isArray(e));for(s in e)e.hasOwnProperty(s)&&(i[s]=s);return i};e.exports=i}).call(t,s(54))},function(e,t,s){"use strict";function r(e){return function(){return e}}function i(){}var o=s(48);o(i,{thatReturns:r,thatReturnsFalse:r(!1),thatReturnsTrue:r(!0),thatReturnsNull:r(null),thatReturnsThis:function(){return this},thatReturnsArgument:function(e){return e}}),e.exports=i},function(e,t,s){(function(t){"use strict";var s=function(e,s,r,i,o,n,l,a){if(t.env.NODE_ENV&&void 0===s)throw new Error("invariant requires an error message argument");if(!e){var c;if(void 0===s)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[r,i,o,n,l,a],h=0;c=new Error("Invariant Violation: "+s.replace(/%s/g,function(){return p[h++]}))}throw c.framesToPop=1,c}};e.exports=s}).call(t,s(54))},function(e,t,s){"use strict";var r=s(9),i=r.PropTypes,o=s(49),n=s(50),l=s(51),a=r.createClass({displayName:"HeaderRow",propTypes:{width:i.number,height:i.number.isRequired,columns:i.array.isRequired,onColumnResize:i.func},render:function(){var e={width:this.props.width?this.props.width+l():"100%",height:this.props.height,whiteSpace:"nowrap",overflowX:"hidden",overflowY:"hidden"},t=this.getCells();return r.createElement("div",r.__spread({},this.props,{style:this.getStyle(),className:"react-grid-HeaderRow"}),r.createElement("div",{style:e},t))},getCells:function(){for(var e=[],t=[],s=0,i=this.props.columns.length;i>s;s++){var o=this.props.columns[s],l=r.createElement(n,{ref:s,key:s,height:this.props.height,column:o,renderer:this.props.headerCellRenderer||o.headerRenderer||this.props.cellRenderer,resizing:this.props.resizing===o,onResize:this.props.onColumnResize,onResizeEnd:this.props.onColumnResizeEnd});o.locked?t.push(l):e.push(l)}return e.concat(t)},setScrollLeft:function(e){for(var t=0,s=this.props.columns.length;s>t;t++)this.props.columns[t].locked&&this.refs[t].setScrollLeft(e)},shouldComponentUpdate:function(e){return e.width!==this.props.width||e.height!==this.props.height||e.columns!==this.props.columns||!o(e.style,this.props.style)},getStyle:function(){return{overflow:"hidden",width:"100%",height:this.props.height,position:"absolute"}}});e.exports=a},function(e){"use strict";function t(){var e=window.innerWidth,t=window.innerHeight;return e&&t||(e=document.documentElement.clientWidth,t=document.documentElement.clientHeight),e&&t||(e=document.body.clientWidth,t=document.body.clientHeight),{width:e,height:t}}e.exports=t},function(e,t,s){"use strict";var r=s(9),i=r.addons.classSet,o=r.PropTypes,n=r.addons.cloneWithProps,l=s(49),a=s(43),c=s(52),p=s(7),h=r.createClass({displayName:"Canvas",mixins:[c],propTypes:{cellRenderer:o.element,rowRenderer:o.oneOfType([o.func,o.element]),rowHeight:o.number.isRequired,displayStart:o.number.isRequired,displayEnd:o.number.isRequired,length:o.number.isRequired,rows:o.oneOfType([o.func.isRequired,o.array.isRequired]),onRows:o.func},render:function(){var e=this.state.displayStart,t=this.state.displayEnd,s=this.props.rowHeight,o=this.props.length,n=this.getRows(e,t).map(function(t,r){return this.renderRow({key:e+r,ref:r,idx:e+r,row:t,height:s,columns:this.props.columns,cellRenderer:this.props.cellRenderer,isSelected:this.isRowSelected(e+r),expandedRows:this.props.expandedRows})}.bind(this));this._currentRowsLength=n.length,e>0&&n.unshift(this.renderPlaceholder("top",e*s)),o-t>0&&n.push(this.renderPlaceholder("bottom",(o-t)*s));var l={position:"absolute",top:0,left:0,overflowX:"auto",overflowY:"scroll",width:this.props.totalWidth,height:this.props.height,transform:"translate3d(0, 0, 0)"};return r.createElement("div",{style:l,onScroll:this.onScroll,className:i("react-grid-Canvas",this.props.className)},r.createElement("div",{style:{width:this.props.width,overflow:"hidden"}},n))},renderRow:function(e){return r.isValidElement(this.props.rowRenderer)?n(this.props.rowRenderer,e):this.props.rowRenderer(e)},renderPlaceholder:function(e,t){return r.createElement("div",{key:e,style:{height:t}},this.props.columns.map(function(e,t){return r.createElement("div",{style:{width:e.width},key:t})}))},getDefaultProps:function(){return{rowRenderer:r.createElement(p,null),onRows:a}},isRowSelected:function(e){return this.props.selectedRows&&this.props.selectedRows[e]===!0},getInitialState:function(){return{shouldUpdate:!0,displayStart:this.props.displayStart,displayEnd:this.props.displayEnd}},componentWillMount:function(){this._currentRowsLength=void 0,this._currentRowsRange=void 0,this._scroll=void 0},componentDidMount:function(){this.onRows()},componentDidUpdate:function(){void 0!==this._scroll&&this.setScrollLeft(this._scroll),this.onRows()},componentWillUnmount:function(){this._currentRowsLength=void 0,this._currentRowsRange=void 0,this._scroll=void 0},componentWillReceiveProps:function(e){var t=!(e.visibleStart>this.state.displayStart&&e.visibleEnd<this.state.displayEnd&&e.length===this.props.length&&e.rowHeight===this.props.rowHeight&&e.columns===this.props.columns&&e.width===this.props.width&&l(e.style,this.props.style));this.setState(t?{shouldUpdate:!0,displayStart:e.displayStart,displayEnd:e.displayEnd}:{shouldUpdate:!1})},shouldComponentUpdate:function(e,t){return t.shouldUpdate},onRows:function(){void 0!==this._currentRowsRange&&(this.props.onRows(this._currentRowsRange),this._currentRowsRange=void 0)},getRows:function(e,t){return this._currentRowsRange={start:e,end:t},Array.isArray(this.props.rows)?this.props.rows.slice(e,t):this.props.rows(e,t)},setScrollLeft:function(e){if(void 0!==this._currentRowsLength)for(var t=0,s=this._currentRowsLength;s>t;t++)this.refs[t]&&this.refs[t].setScrollLeft(e)},getScroll:function(){var e=this.getDOMNode(),t=e.scrollTop,s=e.scrollLeft;return{scrollTop:t,scrollLeft:s}},onScroll:function(e){this.appendScrollShim();var t=e.target,s=t.scrollTop,r=t.scrollLeft,i={scrollTop:s,scrollLeft:r};this._scroll=i,this.props.onScroll(i)}});e.exports=h},function(e,t,s){(function(t){"use strict";function s(e,s,r,i,o,n,l){if(e=e||{},t.env.NODE_ENV&&l)throw new Error("Too many arguments passed to copyProperties");for(var a,c=[s,r,i,o,n],p=0;c[p];){a=c[p++];for(var h in a)e[h]=a[h];a.hasOwnProperty&&a.hasOwnProperty("toString")&&"undefined"!=typeof a.toString&&e.toString!==a.toString&&(e.toString=a.toString)}return e}e.exports=s}).call(t,s(54))},function(e){"use strict";function t(e,t){if(e===t)return!0;var s;for(s in e)if(e.hasOwnProperty(s)&&(!t.hasOwnProperty(s)||e[s]!==t[s]))return!1;for(s in t)if(t.hasOwnProperty(s)&&!e.hasOwnProperty(s))return!1;return!0}e.exports=t},function(e,t,s){"use strict";function r(e){return i.createElement("div",{className:"rex-widget-HeaderCell__value"},e.column.name)}var i=s(9),o=i.addons.classSet,n=s(55),l=i.PropTypes,a=i.createClass({displayName:"ResizeHandle",style:{position:"absolute",top:0,right:0,width:6,height:"100%"},render:function(){return i.createElement(n,i.__spread({},this.props,{className:"react-grid-HeaderCell__resizeHandle",style:this.style}))}}),c=i.createClass({displayName:"HeaderCell",propTypes:{renderer:l.oneOfType([l.func,l.element]).isRequired,column:l.object.isRequired,onResize:l.func},render:function(){var e=o({"react-grid-HeaderCell":!0,"react-grid-HeaderCell--resizing":this.state.resizing,"react-grid-HeaderCell--locked":this.props.column.locked});e=o(e,this.props.className);var t=this.getCell();return i.createElement("div",{className:e,style:this.getStyle()},t,this.props.column.resizeable?i.createElement(a,{onDrag:this.onDrag,onDragStart:this.onDragStart,onDragEnd:this.onDragEnd}):null)},getCell:function(){return i.isValidElement(this.props.renderer)?i.addons.cloneWithProps(this.props.renderer,{column:this.props.column}):this.props.renderer({column:this.props.column})},getDefaultProps:function(){return{renderer:r}},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(){this.setState({resizing:!0})},onDrag:function(e){var t=this.getWidthFromMouseEvent(e);t>0&&this.props.onResize&&this.props.onResize(this.props.column,t)},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,s=this.getDOMNode().getBoundingClientRect().left;return t-s}});e.exports=c},function(e){"use strict";function t(){if(void 0===s){var e=document.createElement("div");e.style.width="50px",e.style.height="50px",e.style.overflowY="scroll",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 r=e.offsetWidth,i=t.offsetWidth;document.body.removeChild(e),s=r-i}return s}var s;e.exports=t},function(e){"use strict";var t={appendScrollShim:function(){if(!this._scrollShim){var e=this._scrollShimSize(),t=document.createElement("div");t.classList.add("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=t},function(e,t,s){(function(t){"use strict";var s=function(e,s,r,i,o,n,l,a){if("production"!==t.env.NODE_ENV&&void 0===s)throw new Error("invariant requires an error message argument");if(!e){var c;if(void 0===s)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[r,i,o,n,l,a],h=0;c=new Error("Invariant Violation: "+s.replace(/%s/g,function(){return p[h++]}))}throw c.framesToPop=1,c}};e.exports=s}).call(t,s(54))},function(e){function t(){}var s=e.exports={};s.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.MutationObserver,s="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};var r=[];if(t){var i=document.createElement("div"),o=new MutationObserver(function(){var e=r.slice();r.length=0,e.forEach(function(e){e()})});return o.observe(i,{attributes:!0}),function(e){r.length||i.setAttribute("yes","no"),r.push(e)}}return s?(window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),r.length>0)){var s=r.shift();s()}},!0),function(e){r.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}}(),s.title="browser",s.browser=!0,s.env={},s.argv=[],s.on=t,s.addListener=t,s.once=t,s.off=t,s.removeListener=t,s.removeAllListeners=t,s.emit=t,s.binding=function(){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(){throw new Error("process.chdir is not supported")}},function(e,t,s){"use strict";var r=s(9),i=r.PropTypes,o=s(43),n=r.createClass({displayName:"Draggable",propTypes:{onDragStart:i.func,onDragEnd:i.func,onDrag:i.func,component:i.oneOfType([i.func,i.constructor])},render:function(){var e=this.props.component;return r.createElement(e,r.__spread({},this.props,{onMouseDown:this.onMouseDown}))},getDefaultProps:function(){return{component:r.DOM.div,onDragStart:o.thatReturnsTrue,onDragEnd:o,onDrag:o}},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.stopPropagation&&e.stopPropagation(),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=n}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react/addons")):"function"==typeof define&&define.amd?define(["react/addons"],t):"object"==typeof exports?exports.Grid=t(require("react/addons")):(e.ReactGrid=e.ReactGrid||{},e.ReactGrid.Grid=t(e.React))}(this,function(e){return function(e){function t(r){if(s[r])return s[r].exports;var i=s[r]={exports:{},id:r,loaded:!1};return e[r].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){"use strict";var r=s(1),i=s(2),o=s(3);e.exports=r,e.exports.Row=i,e.exports.Cell=o},function(e,t,s){"use strict";var r=s(10),i=(r.PropTypes,s(12)),o=s(13),n=s(14),l=(s(15),s(16)),a=s(17),c=s(18),p=s(19),h=s(20),d=s(21),u=s(22),f=(s(23),r.addons.cloneWithProps,r.createClass({displayName:"ExcelGrid",mixins:[l,p,a,c,h,d],getInitialState:function(){return{selectedRows:[],expandedRows:[]}},overrides:{onCellCommit:function(e){var t=e[0],s=Object.assign({},this.state.selected);s.active=!1,"Tab"===t.keyCode&&(s.idx+=1);var r=this.state.expandedRows;t.changed&&t.changed.expandedHeight&&(r=this.expandRow(t.rowIdx,t.changed.expandedHeight)),this.setState({selected:s,expandedRows:r}),this.props.onRowUpdated(t)},getColumns:function(){var e=this.getDecoratedColumns(this.props.columns);return this.props.enableRowSelect&&e.unshift({key:"select-row",name:"",formatter:r.createElement(u,null),onRowSelect:this.handleRowSelect,filterable:!1,headerRenderer:r.createElement("input",{type:"checkbox",onChange:this.handleCheckboxChange}),width:60}),e}},getDefaultProps:function(){return{rowHeight:35,enableRowSelect:!1,minHeight:350}},handleCheckboxChange:function(e){if(e.currentTarget.checked===!0){var t=this.props.rows.map(function(){return!0});this.setState({selectedRows:t})}else{var t=this.props.rows.map(function(){return!1});this.setState({selectedRows:t})}},handleRowSelect:function(e){var t=this.state.selectedRows;t[e]=null==t[e]||0==t[e]?!0:!1,this.setState({selectedRows:t})},expandRow:function(e,t){var s=this.state.expandedRows;return s[e]?(null==s[e]||s[e]<t)&&(s[e]=t):s[e]=t,s},addRow:function(){},handleShowMore:function(e,t){var s=this.expandRow(e,t);this.setState({expandedRows:s})},handleShowLess:function(e){var t=this.state.expandedRows;t[e]&&(t[e]=!1),this.setState({expandedRows:t})},expandAllRows:function(){},collapseAllRows:function(){},onAfterAddRow:function(e){this.setState({selected:{idx:1,rowIdx:e-2}}),this.refs.base.refs.viewport.refs.canvas.getDOMNode().scrollTop=e*this.props.rowHeight},componentWillReceiveProps:function(e){e.rows.length===this.props.rows.length+1&&this.onAfterAddRow(e.rows.length+1)},render:function(){var e=r.createElement(o,{selected:this.state.selected,copied:this.state.copied,dragged:this.state.dragged,onSelect:this.onSelect,onClick:this.onSelect,onSetActive:this.onSetActive,onCommit:this.onCellCommit,handleCopy:this.handleCopy,handlePaste:this.handlePaste,handleDragStart:this.handleDragStart,handleDragEnter:this.handleDragEnter,handleDragEnd:this.handleDragEnd,handleTerminateDrag:this.handleTerminateDrag,onShowMore:this.handleShowMore,onShowLess:this.handleShowLess,expandedRows:this.state.expandedRows}),t=this.filterRows(),s=this.renderToolbar();return r.createElement("div",{className:"react-grid-Container"},s,r.createElement("div",{className:"react-grid-Main"},r.createElement(i,r.__spread({ref:"base"},this.props,{length:this.props.rows.length,headerRows:this.getHeaderRows(),columns:this.getColumns(),rows:t,cellRenderer:e,rowRenderer:r.createElement(n,null),selectedRows:this.state.selectedRows,expandedRows:this.state.expandedRows,rowOffsetHeight:this.getRowOffsetHeight(),minHeight:this.props.minHeight}))))},renderToolbar:function(){var e=this.props.toolbar;return r.isValidElement(e)?r.addons.cloneWithProps(e,{onToggleFilter:this.onToggleFilter,rows:this.props.rows}):void 0}}));e.exports=f},function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=s(3),n=r.addons.cloneWithProps,l=s(11),a=r.createClass({displayName:"Row",render:function(){var e=i("react-grid-Row","react-grid-Row--"+(this.props.idx%2===0?"even":"odd")),t={height:this.getRowHeight(),overflow:"hidden"},s=this.getCells();return r.createElement("div",r.__spread({},this.props,{className:e,style:t}),r.isValidElement(this.props.row)?this.props.row:s)},getCells:function(){for(var e=[],t=[],s=0,r=this.props.columns.length;r>s;s++){var i=this.props.columns[s],o=this.renderCell({ref:s,key:s,idx:s,rowIdx:this.props.idx,filterRowIdx:this.props.row.key,value:this.getCellValue(i.key||s),column:i,height:this.getRowHeight(),formatter:i.formatter,rowData:this.props.row});i.locked?t.push(o):e.push(o)}return e.concat(t)},getRowHeight:function(){return this.props.expandedRows&&this.props.expandedRows[this.props.key]?this.props.expandedRows[this.props.key]:this.props.height},getCellValue:function(e){return"select-row"===e?this.props.isSelected:this.props.row[e]},renderCell:function(e){return r.isValidElement(this.props.cellRenderer)?n(this.props.cellRenderer,e):this.props.cellRenderer(e)},getDefaultProps:function(){return{cellRenderer:o}},shouldComponentUpdate:function(e){return!l.sameColumns(this.props.columns,e.columns,l.sameColumn)||this.doesRowContainSelectedCell()||this.doesRowContainSelectedCell(e)||this.willRowBeDraggedOver(e)||this.hasRowBeenCopied()||e.row!==this.props.row||e.height!==this.props.height},setScrollLeft:function(e){for(var t=0,s=this.props.columns.length;s>t;t++)this.props.columns[t].locked&&this.refs[t].setScrollLeft(e)},doesRowContainSelectedCell:function(e){var t=e||this.props,s=s||t.cellRenderer;return s.props.selected&&s.props.selected.rowIdx===t.idx?!0:!1},willRowBeDraggedOver:function(e){var t=e.cellRenderer.props.dragged;return null!=t&&(t.rowIdx||t.complete===!0)},hasRowBeenCopied:function(){var e=this.props.cellRenderer;return null!=e.props.copied&&e.props.copied.rowIdx===this.props.idx}});e.exports=a},function(e,t,s){"use strict";function r(e){return e.value}var i=s(10),o=i.addons.classSet,n=i.addons.cloneWithProps,l=i.createClass({displayName:"Cell",render:function(){var e=this.getStyle(),t=o("react-grid-Cell",this.props.className,this.props.column.locked?"react-grid-Cell--locked":null),s=this.renderCellContent({value:this.props.value,column:this.props.column,rowIdx:this.props.rowIdx,isExpanded:this.props.isExpanded});return i.createElement("div",i.__spread({},this.props,{className:t,style:e}),s,i.createElement("div",{className:"drag-handle",draggable:"true",onDragStart:this.props.handleDragStart}))},renderCellContent:function(e){var t=i.isValidElement(this.props.formatter)?n(this.props.formatter,e):this.props.formatter(e);return i.createElement("div",{className:"react-grid-Cell__value"},t," ",this.props.cellControls)},getDefaultProps:function(){return{formatter:r}},getStyle:function(){var e={position:"absolute",width:this.props.column.width,height:this.props.height,left:this.props.column.left};return e},setScrollLeft:function(e){if(this.isMounted()){var t=this.getDOMNode(),s="translate3d("+e+"px, 0px, 0px)";t.style.webkitTransform=s,t.style.transform=s}}});e.exports=l},,function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=s(24),n={propTypes:{onCommit:r.PropTypes.func.isRequired},getStyle:function(){return{height:this.props.height-1}},getInitialState:function(){return{isInvalid:!1}},onPressEnter:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Enter"})},onPressTab:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Tab"})},commit:function(e){var t=this.getValue(),s={};s[this.props.column.key]=t,this.isNewValueValid(t)&&this.props.onCommit({updated:s,key:e.key})},isNewValueValid:function(e){if(o(this.validate)){var t=this.validate(e);return this.setState({isInvalid:!t}),t}return!0},getValue:function(){return this.getInputNode().value},setValue:function(e){this.getInputNode().value=e},componentDidMount:function(){void 0!==this.getInputNode()&&(this.checkFocus(),this.getInputNode().className+=" editor-main")},checkFocus:function(){this.getInputNode().focus()},getInputNode:function(){return this.getDOMNode().getElementsByTagName("input")[0]},getContainerClass:function(){return i({"has-error":this.state.isInvalid===!0})},renderStatusIcon:function(){return this.state.isInvalid===!0?r.createElement("span",{className:"glyphicon glyphicon-remove form-control-feedback"}):void 0},render:function(){if(!o(this.renderEditorNode))throw"Editor Mixin Error : "+this.displayName+" component must implement method renderEditorNode";var e=this.renderEditorNode();return r.createElement("div",{className:this.getContainerClass()},e,this.renderStatusIcon())}};e.exports=n},function(e){"use strict";var t={onPressArrowLeft:function(e){e.stopPropagation()},onPressArrowRight:function(e){e.stopPropagation()},getDefaultValue:function(){var e=this.props.initialKeyCode;if("Delete"===e||"Backspace"===e)return"";if("Enter"===e)return this.props.value;var t=e?String.fromCharCode(e):this.props.value;return t},setCaretAtEndOfInput:function(){var e=this.getInputNode(),t=e.value.length;if(e.setSelectionRange)e.setSelectionRange(t,t);else if(e.createTextRange){var s=e.createTextRange();s.moveStart("character",txt.value.length),s.collapse(),s.select()}},setTextInputFocus:function(){this.isKeyPrintable(this.props.initialKeyCode)?this.getInputNode().select():(this.getInputNode().focus(),this.setCaretAtEndOfInput())}};e.exports=t},,,function(e,t,s){"use strict";var r=s(10),i=(r.addons.Perf,{onKeyDown:function(e){if(this.isCtrlKeyHeldDown(e))this.checkAndCall("onPressKeyWithCtrl",e);else if(this.isKeyIdentified(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},isKeyIdentified:function(e){return"Unidentified"!==e},isCtrlKeyHeldDown:function(e){return e.ctrlKey===!0&&"Control"!==e.key},checkAndCall:function(e,t){"function"==typeof this[e]&&this[e](t)}});e.exports=i},function(t){t.exports=e},function(e,t,s){"use strict";function r(e){var t,s,r,i=0,o=e.totalWidth,n=[],l=e.columns.map(p);for(t=0,s=l.length;s>t;t++)r=l[t],r.width?(/^([0-9]+)%$/.exec(r.width)&&(r.width=Math.floor(parseInt(r.width,10)/100*e.totalWidth)),o-=r.width,i+=r.width):n.push(r);for(t=0,s=n.length;s>t;t++)r=n[t],r.width=0>=o?e.minColumnWidth:Math.floor(o/n.length),i+=r.width;var a=0;for(t=0,s=l.length;s>t;t++)r=l[t],r.left=a,a+=r.width;return{columns:l,width:i,totalWidth:e.totalWidth,minColumnWidth:e.minColumnWidth}}function i(e,t,s){var i=e.columns[t];e=p(e),e.columns=e.columns.slice(0);var o=p(i);return o.width=Math.max(s,e.minColumnWidth),e.columns.splice(t,1,o),r(e)}function o(e,t,s){var r,i,o,n={},l={};if(e.length!==t.length)return!1;for(r=0,i=e.length;i>r;r++)o=e[r],n[o.key]=o;for(r=0,i=t.length;i>r;r++){o=t[r],l[o.key]=o;var a=n[o.key];if(void 0===a||!s(a,o))return!1}for(r=0,i=e.length;i>r;r++){o=e[r];var c=l[o.key];if(void 0===c)return!1}return!0}function n(e,t){var s;for(s in e)if(e.hasOwnProperty(s)){if("function"==typeof e[s]&&"function"==typeof t[s]||c(e[s])&&c(t[s]))continue;if(!t.hasOwnProperty(s)||e[s]!==t[s])return!1}for(s in t)if(t.hasOwnProperty(s)&&!e.hasOwnProperty(s))return!1;return!0}var l=s(10),a=l.PropTypes,c=l.isValidElement,p=s(28),h=s(29),d=s(15),u={mixins:[h.MetricsMixin],propTypes:{columns:a.array,minColumnWidth:a.number,columnEquality:a.func},DOMMetrics:{gridWidth:function(){return this.getDOMNode().offsetWidth-2}},getDefaultProps:function(){return{minColumnWidth:80,columnEquality:n}},getInitialState:function(){return this.getColumnMetrics(this.props,!0)},componentWillReceiveProps:function(e){if(e.columns)if(o(this.props.columns,e.columns,this.props.columnEquality)){var t={};this.state.columns.columns.forEach(function(e){t[e.key]={width:e.width,left:e.left}});var s=d(this.state.columns,{columns:e.columns.map(function(e){return d(e,t[e.key])})});this.setState({columns:s})}else this.setState(this.getColumnMetrics(e))},getColumnMetrics:function(e,t){var s=t?null:this.DOMMetrics.gridWidth();return{columns:r({columns:e.columns,width:null,totalWidth:s,minColumnWidth:e.minColumnWidth}),gridWidth:s}},metricsUpdated:function(){this.setState(this.getColumnMetrics(this.props))},onColumnResize:function(e,t){var s=i(this.state.columns,e,t);this.setState({columns:s})}};e.exports={Mixin:u,calculate:r,resizeColumn:i,sameColumns:o,sameColumn:n}},function(e,t,s){"use strict";var r=s(10),i=r.PropTypes,o=s(30),n=s(31),l=s(11),a=s(29),c={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){var t=e.scrollLeft;this._scrollLeft!==t&&(this._scrollLeft=t,this._onScroll())},_onScroll:function(){void 0!==this._scrollLeft&&(this.refs.header.setScrollLeft(this._scrollLeft),this.refs.viewport.setScrollLeft(this._scrollLeft))}},p=r.createClass({displayName:"Grid",mixins:[c,l.Mixin,a.MetricsComputatorMixin],propTypes:{rows:i.oneOfType([i.array,i.func]).isRequired,columns:i.array.isRequired},getStyle:function(){return{overflow:"hidden",outline:0,position:"relative",minHeight:this.props.minHeight}},render:function(){var e=this.props.headerRows||[{ref:"row"}];return r.createElement("div",r.__spread({},this.props,{style:this.getStyle(),className:"react-grid-Grid"}),r.createElement(o,{ref:"header",columns:this.state.columns,onColumnResize:this.onColumnResize,height:this.props.rowHeight,totalWidth:this.DOMMetrics.gridWidth(),headerRows:e}),r.createElement(n,{ref:"viewport",width:this.state.columns.width,rowHeight:this.props.rowHeight,rowRenderer:this.props.rowRenderer,cellRenderer:this.props.cellRenderer,rows:this.props.rows,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,length:this.props.length,columns:this.state.columns,totalWidth:this.DOMMetrics.gridWidth(),onScroll:this.onScroll,onRows:this.props.onRows,rowOffsetHeight:this.props.rowOffsetHeight||this.props.rowHeight*e.length}))},getDefaultProps:function(){return{rowHeight:35,minHeight:350}}});e.exports=p},function(e,t,s){"use strict";var r=s(10),i=s(3),o=(s(32),s(33)),n=s(34),l=s(35),a=(s(23),s(9),s(24)),c=(r.PropTypes,r.addons.classSet),p=(r.addons.cloneWithProps,r.createClass({displayName:"CellControls",onClickEdit:function(e){e.stopPropagation(),e.preventDefault(),this.props.onClickEdit()},onShowMore:function(e){e.stopPropagation(),e.preventDefault();var t=this.props.column.getExpandedHeight(this.props.value);this.props.onShowMore(this.props.rowIdx,t)},onShowLess:function(e){e.stopPropagation(),e.preventDefault(),this.props.onShowLess(this.props.rowIdx)},shouldComponentUpdate:function(e){return this.props.height!=e.height},renderShowMoreButton:function(){if(a(this.props.column.getExpandedHeight)&&this.props.column.getExpandedHeight(this.props.value)>0){var e=this.props.column.getExpandedHeight(this.props.value);return e>this.props.height?r.createElement("button",{type:"button",className:"btn btn-link btn-xs",onClick:this.onShowMore},"Show More"):r.createElement("button",{type:"button",className:"btn btn-link btn-xs",onClick:this.onShowLess},"Show Less")}return null},render:function(){return r.createElement("div",{className:"pull-right btn-group"},this.renderShowMoreButton,r.createElement("button",{onClick:this.onClickEdit,type:"button",className:"btn btn-link btn-xs"},"Edit"))}})),h=r.createClass({displayName:"ExcelCell",mixins:[o,n,l],overrides:{getCellClass:function(){return c({selected:this.isSelected()&&!this.isCopied()&&!this.isActive(),editing:this.isActive(),copied:this.isCopied(),"selected-draggable":this.isSelected()&&!this.isActive()&&this.canEdit(),"active-drag-cell":this.isActiveDragCell()&&this.canEdit(),"is-dragged-over-up":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx<this.props.dragged.rowIdx,"is-dragged-over-down":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx>this.props.dragged.rowIdx,"was-dragged-over":this.wasDraggedOver()&&this.canEdit()})}},isActiveDragCell:function(){return(this.isSelected()||this.isDraggedOver())&&!this.isActive()},isExpanded:function(){var e=!1;if(a(this.props.column.getExpandedHeight)&&this.props.column.getExpandedHeight(this.props.value)>0){var t=this.props.column.getExpandedHeight(this.props.value);e=this.props.height>=t?!0:!1}return e},shouldComponentUpdate:function(e){return this.props.column.width!==e.column.width||this.props.value!==e.value||this.props.height!==e.height||this.props.rowIdx!==e.rowIdx||this.isCellSelectionChanging(e)||this.isDraggedCellChanging(e)},render:function(){return r.createElement(i,r.__spread({},this.props,{className:this.getCellClass(),onKeyDown:this.onKeyDown,onClick:this.onClick,onDoubleClick:this.onDoubleClick,formatter:this.getFormatter(),handleDragStart:this.handleDragStart,onDragEnter:this.handleDragEnter,onDragEnd:this.props.handleDragEnd,cellControls:this.props.column.showCellControls&&!this.isActive()?r.createElement(p,{height:this.props.height,value:this.props.value,rowIdx:this.props.rowIdx,column:this.props.column,onShowMore:this.props.onShowMore,onShowLess:this.props.onShowLess,onClickEdit:this.setActive}):null,isExpanded:this.isExpanded()}))}});e.exports=h},function(e,t,s){"use strict";var r=s(10),i=(r.addons.classSet,s(2)),o=s(11),n=r.createClass({displayName:"ExcelRow",render:function(){var e=r.addons.update(this.props.row,{$merge:{"select-row":this.props.isSelected}});return r.createElement(i,r.__spread({},this.props,{row:e,height:this.getRowHeight(this.props)}))},getRowHeight:function(e){return e.expandedRows&&e.expandedRows[e.key]?e.expandedRows[e.key]:e.height},hasRowHeightChanged:function(e){return e.expandedRows&&"undefined"!=typeof e.expandedRows[e.key]?this.props.height!==e.expandedRows[e.key]:!1},shouldComponentUpdate:function(e){return!o.sameColumns(this.props.columns,e.columns,o.sameColumn)||this.doesRowContainSelectedCell()||this.doesRowContainSelectedCell(e)||this.willRowBeDraggedOver(e)||this.hasRowBeenCopied()||e.row!==this.props.row||this.hasRowHeightChanged(e)},doesRowContainSelectedCell:function(e){var t=e||this.props,s=s||t.cellRenderer;return s.props&&s.props.selected&&s.props.selected.rowIdx===t.idx?!0:!1},willRowBeDraggedOver:function(e){if(e.cellRenderer.props){var t=e.cellRenderer.props.dragged;return null!=t&&(t.rowIdx||t.complete===!0)}return!1},hasRowBeenCopied:function(){if(this.props.cellRenderer.props){var e=this.props.cellRenderer;return null!=e.props.copied&&e.props.copied.rowIdx===this.props.idx}return!1},setScrollLeft:function(e){for(var t=0,s=this.props.columns.length;s>t;t++)this.props.columns[t].locked&&this.refs[t].setScrollLeft(e)}});e.exports=n},function(e){"use strict";function t(e,t){var s={};for(var r in e)s[r]=e[r];for(var r in t)s[r]=t[r];return s}var s=function(e,t){var s={};return null!=e&&Object.assign(s,e),null!=t&&Object.assign(s,t),s};e.exports=Object.assign?s:t},function(e){"use strict";var t={getDefaultProps:function(){return{enableCellSelect:!1}},getColumns:function(){return this.props.columns},getInitialState:function(){return this.props.enableCellSelect?{selected:{rowIdx:0,idx:0}}:{selected:{rowIdx:-1,idx:-1}}},onSelect:function(e){if(this.props.enableCellSelect){var t=e.idx,s=e.rowIdx;t>=0&&s>=0&&t<this.getColumns().length&&s<this.props.rows.length&&(this.props.onSelect&&this.props.onSelect({selected:e}),this.setState({selected:e}))}}};e.exports=t},function(e,t,s){"use strict";{var r=s(10),i=(r.PropTypes,s(23));s(16)}i.addAlias("SelectableGridMixin");var o={mixinDependencies:["SelectableGridMixin"],propTypes:{onCellsDragged:r.PropTypes.func},getInitialState:function(){return{dragged:null}},handleDragStart:function(e){var t=e.idx,s=e.rowIdx;t>=0&&s>=0&&t<this.getColumns().length&&s<this.props.rows.length&&this.setState({dragged:e})},handleDragEnter:function(e){var t=(this.state.selected,this.state.dragged);t.overRowIdx=e,this.setState({dragged:t})},handleDragEnd:function(){var e,t,s=this.state.selected,r=this.state.dragged,i=this.getColumns()[this.state.selected.idx].key;e=s.rowIdx<r.overRowIdx?s.rowIdx:r.overRowIdx,t=s.rowIdx>r.overRowIdx?s.rowIdx:r.overRowIdx,this.props.onCellsDragged({cellKey:i,fromRow:e,toRow:t,value:r.copiedText}),this.setState({dragged:{complete:!0}})},handleTerminateDrag:function(){this.setState({dragged:null})}};e.exports=o},function(e,t,s){"use strict";var r=s(10),i=(r.PropTypes,{propTypes:{onCellCopyPaste:r.PropTypes.func},getInitialState:function(){return{copied:null}},handleCopy:function(e){var t=e.value,s=this.state.selected,r={idx:s.idx,rowIdx:s.rowIdx};this.setState({textToCopy:t,copied:r})},handlePaste:function(){var e=this.state.selected,t=this.getColumns()[e.idx].key;this.props.onCellCopyPaste({cellKey:t,rowIdx:e.rowIdx,value:this.state.textToCopy,fromRow:this.state.copied.rowIdx,toRow:e.rowIdx}),this.setState({copied:null})}});e.exports=i},function(e,t,s){"use strict";var r=s(10),i=(r.PropTypes,s(15)),o={propTypes:{onRowUpdated:r.PropTypes.func},onCellCommit:function(e){var t=this.state.selected;t.active=!1,"Tab"===e.keyCode&&(t.idx+=1),this.setState({selected:t}),this.props.onRowUpdate(e)},onSetActive:function(e){var t=i(this.state.selected,e);this.setState({selected:t})}};e.exports=o},function(e,t,s){"use strict";var r=s(10),i=(r.PropTypes,s(36)),o=s(28),n={ASC:"ASC",DESC:"DESC"};Object.freeze(n);var l={getInitialState:function(){return{sortDirection:null,sortColumn:null}},getDecoratedColumns:function(){return this.props.columns.map(function(e){return e=o(e),e.sortable&&(e.headerRenderer=r.createElement(i,null),e.sortBy=this.sortBy,e.sorted=this.state.sortColumn===e.key?this.state.sortDirection:n.NONE),e},this)},sortBy:function(e,t){switch(t){case null:case void 0:t=n.ASC;break;case n.ASC:t=n.DESC;break;case n.DESC:t=null}this.setState({sortDirection:t,sortColumn:e.key})},sortRows:function(e){e=[].concat(e);var t=this.state.sortColumn,s=this.state.sortDirection;return null!=t&&null!==s?e.sort(function(e,r){var i=e[t],o=r[t];return s===n.ASC?i>o?1:o>i?-1:0:s===n.DESC?i>o?-1:o>i?1:0:void 0}):e}};e.exports=l},function(e,t,s){"use strict";var r=s(10),i=(r.PropTypes,s(37)),o={getInitialState:function(){return{canFilter:!1,columnFilters:{}}},filterRows:function(){var e=this.props.rows;return this.state.sortColumn&&(e=this.sortRows(e)),this.hasFilters()&&(e=e.map(function(e,t){return e.key=t,e}).filter(this.isRowDisplayed),this.props.onFilter&&this.props.onFilter(e)),e},hasFilters:function(){var e=!1;return Object.keys(this.state.columnFilters).every(function(t){var s=this.state.columnFilters[t];return null!=s&&void 0!=s&&""!=s?(e=!0,!1):!0},this),e},isRowDisplayed:function(e){var t=null;return Object.keys(this.state.columnFilters).every(function(s){var r=this.state.columnFilters[s].toLowerCase(),i=e[s].toString().toLowerCase();if(null!=r&&void 0!=r&&""!=r&&"string"==typeof i){if(!(i.indexOf(r)>-1))return t=!1,!1;t=!0}return!0},this),null==t?!1:t},onToggleFilter:function(){this.setState({canFilter:!this.state.canFilter})},handleAddFilter:function(e){var t=this.state.columnFilters;t[e.columnKey]=e.filterTerm,this.setState({columnFilters:t,selected:null})},getHeaderRows:function(){var e=[{ref:"row",height:this.props.rowHeight}];return this.state.canFilter===!0&&e.push({ref:"filterRow",headerCellRenderer:r.createElement(i,{onChange:this.handleAddFilter}),height:45}),e},getRowOffsetHeight:function(){var e=0;return this.getHeaderRows().forEach(function(t){return e+=t.height}),e}};e.exports=o},function(e,t,s){"use strict";var r=s(10),i=(r.addons.classSet,r.createClass({displayName:"CheckBoxEditor",PropTypes:{value:r.PropTypes.bool.isRequired},render:function(){return r.createElement("input",{className:"react-grid-CheckBox",type:"checkbox",checked:this.props.value,onChange:this.handleChange})},handleChange:function(){this.props.column.onRowSelect(this.props.rowIdx)},shouldComponentUpdate:function(e){return this.props.value!=e.value}}));e.exports=i},function(e,t,s){"use strict";var r=s(41),i=s(24),o=s(10);Object.assign||(Object.assign=s(38));var n=r({DEFINE_LIFE_CYCLE_METHOD:null,DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),l={getDefaultProps:n.DEFINE_LIFE_CYCLE_METHOD,propTypes:n.DEFINE_LIFE_CYCLE_METHOD,getInitialState:n.DEFINE_LIFE_CYCLE_METHOD,statics:n.DEFINE_LIFE_CYCLE_METHOD,displayName:n.DEFINE_LIFE_CYCLE_METHOD,componentWillMount:n.DEFINE_LIFE_CYCLE_METHOD,componentWillReceiveProps:n.DEFINE_LIFE_CYCLE_METHOD,shouldComponentUpdate:n.DEFINE_LIFE_CYCLE_METHOD,componentWillUpdate:n.DEFINE_LIFE_CYCLE_METHOD,componentDidUpdate:n.DEFINE_LIFE_CYCLE_METHOD,componentWillUnmount:n.DEFINE_LIFE_CYCLE_METHOD},a={},c=function(e,t){this.base=e,this.dependsOn=t},p=function(e){this.assignTo=function(t){return new c(t,e)}},h=function(e,t){Object.keys(e).forEach(function(s){if(f.isCustomProperty(s))i(e[s])&&(e[s]=f.wrapCustomMethod(s,e[s]));else{switch(l[s]){case n.DEFINE_LIFE_CYCLE_METHOD:var r={};r[s]=e[s],t.push(r);break;case n.DEFINE_MANY_MERGED:}delete e[s]}},this)},d={mix:function(e){var t=[],s={},r=f.getUniqueDependencies(e);for(var i in r)Object.assign(s,a[r[i]]);return h(s,t),e.forEach(function(e){var r={};e instanceof c?Object.assign(r,e.base):Object.assign(r,e),h(r,t),Object.assign(s,r)},this),t.push(s),t},createDependency:function(e){var t=[];for(var s in e)e[s]instanceof c?this.addAlias(s,e[s].base):this.addAlias(s,e[s]),t.push(s);var r=t.filter(function(e,t,s){return s.indexOf(e)===t});return new p(r)},addAlias:function(e,t){a[e]=t}},u=o.createClass;o.createClass=function(e){return e.mixins&&(e.mixins=d.mix(e.mixins)),u.apply(o,arguments)};var f={isCustomProperty:function(e){return!l[e]},wrapCustomMethod:function(e,t){return function(){return f.isMethodOverridden.call(this,e)?f.callOverriddenMethod.call(this,e,arguments):t.apply(this,arguments)}},checkMethodExtendedAndCall:function(e,t){return this.extended&&"function"==typeof this.extended[e]?this.extended[e].call(this,t):void 0},checkMethodImplementedAndCall:function(e,t){return this.implemented&&"function"==typeof this.implemented[e]?this.implemented[e].call(this,t):void 0},isMethodOverridden:function(e){return this.overrides&&"function"==typeof this.overrides[e]},callOverriddenMethod:function(e,t){return this.overrides[e].call(this,t)},getUniqueDependencies:function(e){var t=[];return e.forEach(function(e){e instanceof c&&(t=t.concat(e.dependsOn))},this),t.filter(function(e,t,s){return s.indexOf(e)===t})}};e.exports=d},function(e){"use strict";var t=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)};e.exports=t},,,function(e,t,s){"use strict";var r=s(10),i=(r.addons.classSet,s(23),s(5)),o=s(6),n=s(9),l=r.createClass({displayName:"SimpleTextEditor",mixins:[n,i,o],overrides:{checkFocus:function(){this.setTextInputFocus()}},renderEditorNode:function(){return r.createElement("input",{type:"text",onBlur:this.commit,className:"form-control",defaultValue:this.getDefaultValue(),style:this.getStyle(),onKeyDown:this.onKeyDown})}});e.exports=l},function(e){"use strict";function t(e){var t={};for(var s in e)e.hasOwnProperty(s)&&(t[s]=e[s]);return t}e.exports=t},function(e,t,s){"use strict";var r=s(10),i=s(39),o=s(28),n=s(40),l={metricsComputator:r.PropTypes.object},a={childContextTypes:l,getChildContext:function(){return{metricsComputator:this}},getMetricImpl:function(e){return this._DOMMetrics.metrics[e].value},registerMetricsImpl:function(e,t){var s={},r=this._DOMMetrics;for(var i in t)n(void 0===r.metrics[i],"DOM metric "+i+" is already defined"),r.metrics[i]={component:e,computator:t[i].bind(e)},s[i]=this.getMetricImpl.bind(null,i);return-1===r.components.indexOf(e)&&r.components.push(e),s},unregisterMetricsFor:function(e){var t=this._DOMMetrics,s=t.components.indexOf(e);if(s>-1){t.components.splice(s,1);var r,i={};for(r in t.metrics)t.metrics[r].component===e&&(i[r]=!0);for(r in i)delete t.metrics[r]}},updateMetrics:function(){var e=this._DOMMetrics,t=!1;for(var s in e.metrics){var r=e.metrics[s].computator();r!==e.metrics[s].value&&(t=!0),e.metrics[s].value=r}if(t)for(var i=0,o=e.components.length;o>i;i++)e.components[i].metricsUpdated&&e.components[i].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)}},c={contextTypes:l,componentWillMount:function(){if(this.DOMMetrics){this._DOMMetricsDefs=o(this.DOMMetrics),this.DOMMetrics={};for(var e in this._DOMMetricsDefs)this.DOMMetrics[e]=i}},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:a,MetricsMixin:c}},function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=s(28),n=s(11),l=s(42),n=s(11),a=r.createClass({displayName:"Header",propTypes:{columns:r.PropTypes.object.isRequired,totalWidth:r.PropTypes.number,height:r.PropTypes.number.isRequired,headerRows:r.PropTypes.array.isRequired},render:function(){var e=(this.state.resizing||this.props,i({"react-grid-Header":!0,"react-grid-Header--resizing":!!this.state.resizing})),t=this.getHeaderRows();return r.createElement("div",r.__spread({},this.props,{style:this.getStyle(),className:e}),t)},shouldComponentUpdate:function(e,t){return!n.sameColumns(this.props.columns.columns,e.columns.columns,n.sameColumn)||this.props.totalWidth!=e.totalWidth||this.props.headerRows.length!=e.headerRows.length||this.state.resizing!=t.resizing},getHeaderRows:function(){var e=this.state.resizing||this.props,t=[];return this.props.headerRows.forEach(function(s,i){var o={position:"absolute",top:this.props.height*i,left:0,width:this.props.totalWidth};t.push(r.createElement(l,{key:s.ref,ref:s.ref,style:o,onColumnResize:this.onColumnResize,onColumnResizeEnd:this.onColumnResizeEnd,width:e.columns.width,height:s.height||this.props.height,columns:e.columns.columns,resizing:e.column,headerCellRenderer:s.headerCellRenderer}))}.bind(this)),t},getInitialState:function(){return{resizing:null}},componentWillReceiveProps:function(){this.setState({resizing:null})},onColumnResize:function(e,t){var s=this.state.resizing||this.props,r=this.getColumnPosition(e);if(null!==r){var i={columns:o(s.columns)};i.columns=n.resizeColumn(i.columns,r,t),i.columns.width<s.columns.width&&(i.columns.width=s.columns.width),i.column=i.columns.columns[r],this.setState({resizing:i})}},getColumnPosition:function(e){var t=this.state.resizing||this.props,s=t.columns.columns.indexOf(e);return-1===s?null:s},onColumnResizeEnd:function(e,t){var s=this.getColumnPosition(e);null!==s&&this.props.onColumnResize&&this.props.onColumnResize(s,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}}});e.exports=a},function(e,t,s){"use strict";var r=s(10),i=s(44),o=s(29),n=s(45),l=Math.min,a=Math.max,c=Math.floor,p=Math.ceil,h={mixins:[o.MetricsMixin],DOMMetrics:{viewportHeight:function(){return this.getDOMNode().offsetHeight}},propTypes:{rowHeight:r.PropTypes.number,length:r.PropTypes.number.isRequired},getDefaultProps:function(){return{rowHeight:30}},getInitialState:function(){return this.getGridState(this.props) | ||
},getGridState:function(e){var t=this.state&&this.state.height?this.state.height:i().height,s=p(t/e.rowHeight);return{displayStart:0,displayEnd:2*s,height:t,scrollTop:0,scrollLeft:0}},updateScroll:function(e,t,s,r,i){var o=p(s/r),n=c(e/r),h=l(n+o,i),d=a(0,n-2*o),u=l(n+2*o,i),f={visibleStart:n,visibleEnd:h,displayStart:d,displayEnd:u,height:s,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.length)},componentWillReceiveProps:function(e){this.props.rowHeight!==e.rowHeight?this.setState(this.getGridState(e)):this.props.length!==e.length&&this.updateScroll(this.state.scrollTop,this.state.scrollLeft,this.state.height,e.rowHeight,e.length)}},d=r.createClass({displayName:"Viewport",mixins:[h],render:function(){var e={padding:0,bottom:0,left:0,right:0,overflow:"hidden",position:"absolute",top:this.props.rowOffsetHeight};return r.createElement("div",{className:"react-grid-Viewport",style:e},r.createElement(n,{ref:"canvas",totalWidth:this.props.totalWidth,width:this.props.columns.width,rows:this.props.rows,selectedRows:this.props.selectedRows,expandedRows:this.props.expandedRows,columns:this.props.columns.columns,cellRenderer:this.props.cellRenderer,rowRenderer:this.props.rowRenderer,visibleStart:this.state.visibleStart,visibleEnd:this.state.visibleEnd,displayStart:this.state.displayStart,displayEnd:this.state.displayEnd,length:this.props.length,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){var t=e.scrollTop,s=e.scrollLeft;this.updateScroll(t,s,this.state.height,this.props.rowHeight,this.props.length),this.props.onScroll&&this.props.onScroll({scrollTop:t,scrollLeft:s})},setScrollLeft:function(e){this.refs.canvas.setScrollLeft(e)}});e.exports=d},function(e,t,s){"use strict";var r=s(10),i=(r.addons.classSet,r.addons.cloneWithProps,s(9)),o=s(23),n=o.createDependency({KeyboardHandlerMixin:i}).assignTo({getDefaultProps:function(){return{tabIndex:-1,ref:"cell"}},isSelected:function(){return this.props.selected&&this.props.selected.rowIdx===this.props.rowIdx&&this.props.selected.idx===this.props.idx},onClick:function(){var e=this.props.rowIdx,t=this.props.idx;this.props.onClick({rowIdx:e,idx:t})},onPressArrowUp:function(e){this.moveSelectedCell(e,-1,0)},onPressArrowDown:function(e){this.moveSelectedCell(e,1,0)},onPressArrowLeft:function(e){this.moveSelectedCell(e,0,-1)},onPressArrowRight:function(e){this.moveSelectedCell(e,0,1)},onPressTab:function(e){this.moveSelectedCell(e,0,1)},moveSelectedCell:function(e,t,s){e.stopPropagation(),e.preventDefault();var r=this.props.rowIdx+t,i=this.props.idx+s;this.props.onSelect({idx:i,rowIdx:r})},setScrollLeft:function(e){this.refs.row.setScrollLeft(e)},componentDidMount:function(){this.checkFocus()},componentDidUpdate:function(){this.checkFocus()},isCellSelectionChanging:function(e){return this.props.selected&&e.selected?this.props.idx===e.selected.idx||this.props.idx===this.props.selected.idx:!0},checkFocus:function(){this.isSelected()&&this.getDOMNode().focus()}});e.exports=n},function(e,t,s){"use strict";var r=s(10),i=(r.addons.classSet,r.addons.cloneWithProps),o=s(27),n=r.PropTypes,l=s(23),a=s(32),c=s(9),p=l.createDependency({KeyboardHandlerMixin:c,SelectableMixin:a}).assignTo({propTypes:{onCommit:n.func.isRequired},canEdit:function(){return null!=this.props.column.editor||this.props.column.editable},getEditor:function(){var e={height:this.props.height,onPressEscape:this.onPressEscape,onCommit:this.onCommit,initialKeyCode:this.props.selected.initialKeyCode,editorRowMetaData:this.getEditorRowMetaData()},t=this.props.column.editor;return t&&r.isValidElement(t)?i(t,e):i(o(),e)},getEditorRowMetaData:function(){this.props.column.ItemId;return"function"==typeof this.props.column.getEditorRowMetaData?this.props.column.getEditorRowMetaData(this.props.rowData):void 0},getFormatter:function(){this.props.column;return this.isActive()?this.getEditor():this.props.column.formatter},onCommit:function(e){var t=this.props.rowIdx,s=(this.props.idx,this.props.column.key);this.props.onCommit({cellKey:s,rowIdx:this.props.filterRowIdx||t,updated:e.updated,keyCode:e.key})},checkFocus:function(){this.isSelected()&&!this.isActive()&&this.getDOMNode().focus()},onClick:function(){if(!this.isActive()){var e=this.props.rowIdx,t=this.props.idx;this.props.onClick({rowIdx:e,idx:t})}},onDoubleClick:function(){var e=this.props.rowIdx,t=this.props.idx;this.props.onClick({rowIdx:e,idx:t,active:this.canEdit()})},setActive:function(e){var t=this.props.rowIdx,s=this.props.idx;"select-row"===this.props.column.key&&this.props.column.onRowSelect?this.props.column.onRowSelect(t):this.canEdit()&&!this.isActive()&&this.props.onSetActive({idx:s,rowIdx:t,active:!0,initialKeyCode:e})},setInactive:function(){if(this.canEdit()&&this.isActive()){var e=this.props.rowIdx,t=this.props.idx;this.props.onSetActive({idx:t,rowIdx:e,active:!1})}},isActive:function(){return this.isSelected()&&this.props.selected.active===!0},onPressEnter:function(e){this.setActive(e.key)},onPressDelete:function(e){this.setActive(e.key)},onPressEscape:function(e){this.setInactive(e.key)},onPressBackspace:function(e){this.setActive(e.key)},onPressChar:function(e){this.isKeyPrintable(e.keyCode)&&this.setActive(e.keyCode)}});e.exports=p},function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=(r.addons.cloneWithProps,r.PropTypes,s(27),s(23)),n=s(32),l=s(9),a=o.createDependency({KeyboardHandlerMixin:l,SelectableMixin:n}).assignTo({getCellClass:function(){return i({selected:this.isSelected()&&!this.isCopied(),copied:this.isCopied()})},KeyCode_c:"99",KeyCode_C:"67",KeyCode_V:"86",KeyCode_v:"118",propTypes:{handleCopy:r.PropTypes.func.isRequired,handlePaste:r.PropTypes.func.isRequired},isCopied:function(){return this.props.copied&&this.props.copied.rowIdx===this.props.rowIdx&&this.props.copied.idx===this.props.idx},onPressKeyWithCtrl:function(e){this.canEdit()&&(e.keyCode==this.KeyCode_c||e.keyCode==this.KeyCode_C?this.props.handleCopy({value:this.props.value}):(e.keyCode==this.KeyCode_v||e.keyCode==this.KeyCode_V)&&this.props.handlePaste({value:this.props.value}))}});e.exports=a},function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=(r.addons.cloneWithProps,r.PropTypes,s(23)),n=s(32),l=s(9),a=o.createDependency({KeyboardHandlerMixin:l,SelectableMixin:n}).assignTo({getCellClass:function(){return i({"selected-draggable":this.isSelected(),"active-drag-cell":this.isSelected()||this.isDraggedOver(),"is-dragged-over-up":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx<this.props.dragged.rowIdx,"is-dragged-over-down":!this.isSelected()&&this.isDraggedOver()&&this.props.rowIdx>this.props.dragged.rowIdx,"was-dragged-over":this.wasDraggedOver()})},getDefaultProps:function(){return{handleDragStart:this.handleDragStart,onDragEnter:this.handleDragEnter,onDragEnd:this.handleDragEnd}},propTypes:{handleDragEnter:r.PropTypes.func.isRequired,handleDragStart:r.PropTypes.func.isRequired,handleDragEnd:r.PropTypes.func.isRequired,handleTerminateDrag:r.PropTypes.func.isRequired},isDraggedOver:function(){return this.props.dragged&&this.props.dragged.overRowIdx===this.props.rowIdx&&this.props.dragged.idx===this.props.idx},wasDraggedOver:function(){return this.props.dragged&&(this.props.dragged.overRowIdx<this.props.rowIdx&&this.props.rowIdx<this.props.dragged.rowIdx||this.props.dragged.overRowIdx>this.props.rowIdx&&this.props.rowIdx>this.props.dragged.rowIdx)&&this.props.dragged.idx===this.props.idx},handleDragStart:function(){var e=this.props.rowIdx,t=this.props.idx;this.props.handleDragStart({rowIdx:e,idx:t,copiedText:this.props.value})},handleDragEnter:function(){this.props.handleDragEnter(this.props.rowIdx)},handleDragEnd:function(){this.props.handleDragEnd()},isDraggedCellChanging:function(e){return this.props.dragged?e.dragged&&this.props.idx===e.dragged.idx||this.props.dragged&&this.props.idx===this.props.dragged.idx:!1},componentDidUpdate:function(){var e=this.props.dragged;e&&e.complete===!0&&this.props.handleTerminateDrag()}});e.exports=a},function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=r.createClass({displayName:"SortableHeaderCell",onClick:function(){this.props.column.sortBy(this.props.column,this.props.column.sorted)},getSortByClass:function(){var e=this.props.column.sorted;return i({"pull-right":!0,"glyphicon glyphicon-arrow-up":"ASC"===e,"glyphicon glyphicon-arrow-down":"DESC"===e})},render:function(){return r.createElement("div",{onClick:this.onClick,style:{cursor:"pointer"}},this.props.column.name,r.createElement("span",{className:this.getSortByClass()}))}});e.exports=o},function(e,t,s){"use strict";var r=s(10),i=(r.addons.classSet,r.createClass({displayName:"FilterableHeaderCell",getInitialState:function(){return{filterTerm:""}},handleChange:function(e){e.preventDefault(),e.stopPropagation(),this.setState({filterTerm:e.currentTarget.value}),this.props.onChange({filterTerm:e.currentTarget.value,columnKey:this.props.column.key})},componentDidUpdate:function(){this.getDOMNode().focus()},render:function(){return r.createElement("div",null,r.createElement("div",{className:"form-group"},r.createElement(this.renderInput,null)))},renderInput:function(){return this.props.column.filterable===!1?r.createElement("span",null):r.createElement("input",{type:"text",className:"form-control input-sm",placeholder:"Search",value:this.state.filterTerm,onChange:this.handleChange})}}));e.exports=i},function(e){"use strict";function t(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){for(var s,r,i=t(e),o=1;o<arguments.length;o++){s=arguments[o],r=Object.keys(Object(s));for(var n=0;n<r.length;n++)i[r[n]]=s[r[n]]}return i}},function(e,t,s){"use strict";function r(e){return function(){return e}}function i(){}var o=s(46);o(i,{thatReturns:r,thatReturnsFalse:r(!1),thatReturnsTrue:r(!0),thatReturnsNull:r(null),thatReturnsThis:function(){return this},thatReturnsArgument:function(e){return e}}),e.exports=i},function(e,t,s){(function(t){"use strict";var s=function(e,s,r,i,o,n,l,a){if(t.env.NODE_ENV&&void 0===s)throw new Error("invariant requires an error message argument");if(!e){var c;if(void 0===s)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[r,i,o,n,l,a],h=0;c=new Error("Invariant Violation: "+s.replace(/%s/g,function(){return p[h++]}))}throw c.framesToPop=1,c}};e.exports=s}).call(t,s(52))},function(e,t,s){(function(t){"use strict";var r=s(51),i=function(e){var s,i={};"production"!==t.env.NODE_ENV?r(e instanceof Object&&!Array.isArray(e),"keyMirror(...): Argument must be an object."):r(e instanceof Object&&!Array.isArray(e));for(s in e)e.hasOwnProperty(s)&&(i[s]=s);return i};e.exports=i}).call(t,s(52))},function(e,t,s){"use strict";var r=s(10),i=r.PropTypes,o=s(47),n=s(48),l=s(49),a=r.createClass({displayName:"HeaderRow",propTypes:{width:i.number,height:i.number.isRequired,columns:i.array.isRequired,onColumnResize:i.func},render:function(){var e={width:this.props.width?this.props.width+l():"100%",height:this.props.height,whiteSpace:"nowrap",overflowX:"hidden",overflowY:"hidden"},t=this.getCells();return r.createElement("div",r.__spread({},this.props,{style:this.getStyle(),className:"react-grid-HeaderRow"}),r.createElement("div",{style:e},t))},getCells:function(){for(var e=[],t=[],s=0,i=this.props.columns.length;i>s;s++){var o=this.props.columns[s],l=r.createElement(n,{ref:s,key:s,height:this.props.height,column:o,renderer:this.props.headerCellRenderer||o.headerRenderer||this.props.cellRenderer,resizing:this.props.resizing===o,onResize:this.props.onColumnResize,onResizeEnd:this.props.onColumnResizeEnd});o.locked?t.push(l):e.push(l)}return e.concat(t)},setScrollLeft:function(e){for(var t=0,s=this.props.columns.length;s>t;t++)this.props.columns[t].locked&&this.refs[t].setScrollLeft(e)},shouldComponentUpdate:function(e){return e.width!==this.props.width||e.height!==this.props.height||e.columns!==this.props.columns||!o(e.style,this.props.style)},getStyle:function(){return{overflow:"hidden",width:"100%",height:this.props.height,position:"absolute"}}});e.exports=a},,function(e){"use strict";function t(){var e=window.innerWidth,t=window.innerHeight;return e&&t||(e=document.documentElement.clientWidth,t=document.documentElement.clientHeight),e&&t||(e=document.body.clientWidth,t=document.body.clientHeight),{width:e,height:t}}e.exports=t},function(e,t,s){"use strict";var r=s(10),i=r.addons.classSet,o=r.PropTypes,n=r.addons.cloneWithProps,l=s(47),a=s(39),c=s(50),p=s(2),h=r.createClass({displayName:"Canvas",mixins:[c],propTypes:{cellRenderer:o.element,rowRenderer:o.oneOfType([o.func,o.element]),rowHeight:o.number.isRequired,displayStart:o.number.isRequired,displayEnd:o.number.isRequired,length:o.number.isRequired,rows:o.oneOfType([o.func.isRequired,o.array.isRequired]),onRows:o.func},render:function(){var e=this.state.displayStart,t=this.state.displayEnd,s=this.props.rowHeight,o=this.props.length,n=this.getRows(e,t).map(function(t,r){return this.renderRow({key:e+r,ref:r,idx:e+r,row:t,height:s,columns:this.props.columns,cellRenderer:this.props.cellRenderer,isSelected:this.isRowSelected(e+r),expandedRows:this.props.expandedRows})}.bind(this));this._currentRowsLength=n.length,e>0&&n.unshift(this.renderPlaceholder("top",e*s)),o-t>0&&n.push(this.renderPlaceholder("bottom",(o-t)*s));var l={position:"absolute",top:0,left:0,overflowX:"auto",overflowY:"scroll",width:this.props.totalWidth,height:this.props.height,transform:"translate3d(0, 0, 0)"};return r.createElement("div",{style:l,onScroll:this.onScroll,className:i("react-grid-Canvas",this.props.className)},r.createElement("div",{style:{width:this.props.width,overflow:"hidden"}},n))},renderRow:function(e){return r.isValidElement(this.props.rowRenderer)?n(this.props.rowRenderer,e):this.props.rowRenderer(e)},renderPlaceholder:function(e,t){return r.createElement("div",{key:e,style:{height:t}},this.props.columns.map(function(e,t){return r.createElement("div",{style:{width:e.width},key:t})}))},getDefaultProps:function(){return{rowRenderer:r.createElement(p,null),onRows:a}},isRowSelected:function(e){return this.props.selectedRows&&this.props.selectedRows[e]===!0},getInitialState:function(){return{shouldUpdate:!0,displayStart:this.props.displayStart,displayEnd:this.props.displayEnd}},componentWillMount:function(){this._currentRowsLength=void 0,this._currentRowsRange=void 0,this._scroll=void 0},componentDidMount:function(){this.onRows()},componentDidUpdate:function(){void 0!==this._scroll&&this.setScrollLeft(this._scroll),this.onRows()},componentWillUnmount:function(){this._currentRowsLength=void 0,this._currentRowsRange=void 0,this._scroll=void 0},componentWillReceiveProps:function(e){var t=!(e.visibleStart>this.state.displayStart&&e.visibleEnd<this.state.displayEnd&&e.length===this.props.length&&e.rowHeight===this.props.rowHeight&&e.columns===this.props.columns&&e.width===this.props.width&&l(e.style,this.props.style));this.setState(t?{shouldUpdate:!0,displayStart:e.displayStart,displayEnd:e.displayEnd}:{shouldUpdate:!1})},shouldComponentUpdate:function(e,t){return t.shouldUpdate},onRows:function(){void 0!==this._currentRowsRange&&(this.props.onRows(this._currentRowsRange),this._currentRowsRange=void 0)},getRows:function(e,t){return this._currentRowsRange={start:e,end:t},Array.isArray(this.props.rows)?this.props.rows.slice(e,t):this.props.rows(e,t)},setScrollLeft:function(e){if(void 0!==this._currentRowsLength)for(var t=0,s=this._currentRowsLength;s>t;t++)this.refs[t]&&this.refs[t].setScrollLeft(e)},getScroll:function(){var e=this.getDOMNode(),t=e.scrollTop,s=e.scrollLeft;return{scrollTop:t,scrollLeft:s}},onScroll:function(e){this.appendScrollShim();var t=e.target,s=t.scrollTop,r=t.scrollLeft,i={scrollTop:s,scrollLeft:r};this._scroll=i,this.props.onScroll(i)}});e.exports=h},function(e,t,s){(function(t){"use strict";function s(e,s,r,i,o,n,l){if(e=e||{},t.env.NODE_ENV&&l)throw new Error("Too many arguments passed to copyProperties");for(var a,c=[s,r,i,o,n],p=0;c[p];){a=c[p++];for(var h in a)e[h]=a[h];a.hasOwnProperty&&a.hasOwnProperty("toString")&&"undefined"!=typeof a.toString&&e.toString!==a.toString&&(e.toString=a.toString)}return e}e.exports=s}).call(t,s(52))},function(e){"use strict";function t(e,t){if(e===t)return!0;var s;for(s in e)if(e.hasOwnProperty(s)&&(!t.hasOwnProperty(s)||e[s]!==t[s]))return!1;for(s in t)if(t.hasOwnProperty(s)&&!e.hasOwnProperty(s))return!1;return!0}e.exports=t},function(e,t,s){"use strict";function r(e){return i.createElement("div",{className:"rex-widget-HeaderCell__value"},e.column.name)}var i=s(10),o=i.addons.classSet,n=s(53),l=i.PropTypes,a=i.createClass({displayName:"ResizeHandle",style:{position:"absolute",top:0,right:0,width:6,height:"100%"},render:function(){return i.createElement(n,i.__spread({},this.props,{className:"react-grid-HeaderCell__resizeHandle",style:this.style}))}}),c=i.createClass({displayName:"HeaderCell",propTypes:{renderer:l.oneOfType([l.func,l.element]).isRequired,column:l.object.isRequired,onResize:l.func},render:function(){var e=o({"react-grid-HeaderCell":!0,"react-grid-HeaderCell--resizing":this.state.resizing,"react-grid-HeaderCell--locked":this.props.column.locked});e=o(e,this.props.className);var t=this.getCell();return i.createElement("div",{className:e,style:this.getStyle()},t,this.props.column.resizeable?i.createElement(a,{onDrag:this.onDrag,onDragStart:this.onDragStart,onDragEnd:this.onDragEnd}):null)},getCell:function(){return i.isValidElement(this.props.renderer)?i.addons.cloneWithProps(this.props.renderer,{column:this.props.column}):this.props.renderer({column:this.props.column})},getDefaultProps:function(){return{renderer:r}},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(){this.setState({resizing:!0})},onDrag:function(e){var t=this.getWidthFromMouseEvent(e);t>0&&this.props.onResize&&this.props.onResize(this.props.column,t)},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,s=this.getDOMNode().getBoundingClientRect().left;return t-s}});e.exports=c},function(e){"use strict";function t(){if(void 0===s){var e=document.createElement("div");e.style.width="50px",e.style.height="50px",e.style.overflowY="scroll",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 r=e.offsetWidth,i=t.offsetWidth;document.body.removeChild(e),s=r-i}return s}var s;e.exports=t},function(e){"use strict";var t={appendScrollShim:function(){if(!this._scrollShim){var e=this._scrollShimSize(),t=document.createElement("div");t.classList.add("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=t},function(e,t,s){(function(t){"use strict";var s=function(e,s,r,i,o,n,l,a){if("production"!==t.env.NODE_ENV&&void 0===s)throw new Error("invariant requires an error message argument");if(!e){var c;if(void 0===s)c=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var p=[r,i,o,n,l,a],h=0;c=new Error("Invariant Violation: "+s.replace(/%s/g,function(){return p[h++]}))}throw c.framesToPop=1,c}};e.exports=s}).call(t,s(52))},function(e){function t(){}var s=e.exports={};s.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.MutationObserver,s="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};var r=[];if(t){var i=document.createElement("div"),o=new MutationObserver(function(){var e=r.slice();r.length=0,e.forEach(function(e){e()})});return o.observe(i,{attributes:!0}),function(e){r.length||i.setAttribute("yes","no"),r.push(e)}}return s?(window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),r.length>0)){var s=r.shift();s()}},!0),function(e){r.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}}(),s.title="browser",s.browser=!0,s.env={},s.argv=[],s.on=t,s.addListener=t,s.once=t,s.off=t,s.removeListener=t,s.removeAllListeners=t,s.emit=t,s.binding=function(){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(){throw new Error("process.chdir is not supported")}},function(e,t,s){"use strict";var r=s(10),i=r.PropTypes,o=s(39),n=r.createClass({displayName:"Draggable",propTypes:{onDragStart:i.func,onDragEnd:i.func,onDrag:i.func,component:i.oneOfType([i.func,i.constructor])},render:function(){var e=this.props.component;return r.createElement(e,r.__spread({},this.props,{onMouseDown:this.onMouseDown}))},getDefaultProps:function(){return{component:r.DOM.div,onDragStart:o.thatReturnsTrue,onDragEnd:o,onDrag:o}},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.stopPropagation&&e.stopPropagation(),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=n}])}); |
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(typeof exports === 'object' && typeof module === 'object') | ||
module.exports = factory(require("react/addons"), require("moment")); | ||
module.exports = factory(require("react/addons")); | ||
else if(typeof define === 'function' && define.amd) | ||
define(["react/addons", "moment"], factory); | ||
define(["react/addons"], factory); | ||
else if(typeof exports === 'object') | ||
exports["GridAddons"] = factory(require("react/addons"), require("moment")); | ||
exports["GridAddons"] = factory(require("react/addons")); | ||
else | ||
root["ReactGrid"] = root["ReactGrid"] || {}, root["ReactGrid"]["GridAddons"] = factory(root["React"], root["moment"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_9__, __WEBPACK_EXTERNAL_MODULE_28__) { | ||
root["ReactGrid"] = root["ReactGrid"] || {}, root["ReactGrid"]["GridAddons"] = factory(root["React"]); | ||
})(this, function(__WEBPACK_EXTERNAL_MODULE_10__) { | ||
return /******/ (function(modules) { // webpackBootstrap | ||
@@ -58,8 +58,9 @@ /******/ // The module cache | ||
module.exports = { | ||
Editors : __webpack_require__(4), | ||
Formatters : __webpack_require__(5), | ||
Toolbar : __webpack_require__(1), | ||
Editors : __webpack_require__(7), | ||
Formatters : __webpack_require__(8), | ||
Toolbar : __webpack_require__(4), | ||
Mixins : { | ||
EditorMixin : __webpack_require__(2), | ||
TextInputMixin : __webpack_require__(3) | ||
EditorMixin : __webpack_require__(5), | ||
TextInputMixin : __webpack_require__(6), | ||
KeyboardHandlerMixin : __webpack_require__(9) | ||
} | ||
@@ -70,3 +71,6 @@ } | ||
/***/ }, | ||
/* 1 */ | ||
/* 1 */, | ||
/* 2 */, | ||
/* 3 */, | ||
/* 4 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -80,3 +84,3 @@ | ||
var React = __webpack_require__(9); | ||
var React = __webpack_require__(10); | ||
var Toolbar = React.createClass({displayName: 'Toolbar', | ||
@@ -109,3 +113,3 @@ | ||
/***/ }, | ||
/* 2 */ | ||
/* 5 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -118,5 +122,5 @@ | ||
'use strict'; | ||
var React = __webpack_require__(9); | ||
var React = __webpack_require__(10); | ||
var cx = React.addons.classSet; | ||
var isFunction = __webpack_require__(14); | ||
var isFunction = __webpack_require__(24); | ||
@@ -223,3 +227,3 @@ var EditorMixin = { | ||
/***/ }, | ||
/* 3 */ | ||
/* 6 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -288,9 +292,9 @@ | ||
/***/ }, | ||
/* 4 */ | ||
/* 7 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var Editors = { | ||
AutoComplete : __webpack_require__(11), | ||
DropDownEditor : __webpack_require__(12), | ||
SimpleTextEditor : __webpack_require__(13) | ||
AutoComplete : __webpack_require__(25), | ||
DropDownEditor : __webpack_require__(26), | ||
SimpleTextEditor : __webpack_require__(27) | ||
@@ -303,7 +307,7 @@ } | ||
/***/ }, | ||
/* 5 */ | ||
/* 8 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
var formatters = { | ||
DateRangeFormatter : __webpack_require__(10) | ||
} | ||
@@ -315,14 +319,5 @@ | ||
/***/ }, | ||
/* 6 */, | ||
/* 7 */, | ||
/* 8 */, | ||
/* 9 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_9__; | ||
/***/ }, | ||
/* 10 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
@@ -332,292 +327,70 @@ * @jsx React.DOM | ||
*/ | ||
'use strict'; | ||
var React = __webpack_require__(9); | ||
var cx = React.addons.classSet; | ||
var moment = __webpack_require__(28); | ||
var PropTypes = React.PropTypes; | ||
var DateRangeFormatter = React.createClass({displayName: 'DateRangeFormatter', | ||
propTypes : { | ||
value : PropTypes.shape({ | ||
startDate : PropTypes.oneOfType([PropTypes.string, PropTypes.object]), | ||
endDate : PropTypes.oneOfType([PropTypes.string, PropTypes.object]) | ||
}).isRequired | ||
}, | ||
getDefaultProps:function(){ | ||
return { | ||
inputFormat : 'YYYY-MM-DD', | ||
displayFormat : 'YYYY-MM-DD', | ||
value : {startDate : null, endDate : null} | ||
} | ||
}, | ||
formatDate:function(date){ | ||
if(moment.isMoment(date)){ | ||
return date.format(this.props.displayFormat); | ||
}else{ | ||
return moment(date, this.props.inputFormat).format(this.props.displayFormat); | ||
} | ||
}, | ||
render:function(){ | ||
var startDate = this.props.value.startDate; | ||
var endDate = this.props.value.endDate; | ||
return (React.createElement("span", null, startDate, " to ", endDate)); | ||
} | ||
}); | ||
module.exports = DateRangeFormatter; | ||
/***/ }, | ||
/* 11 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
* @jsx React.DOM | ||
* @copyright Prometheus Research, LLC 2014 | ||
*/ | ||
'use strict'; | ||
var React = __webpack_require__(9); | ||
var cx = React.addons.classSet; | ||
var MixinHelper = __webpack_require__(27); | ||
var EditorMixin = __webpack_require__(2); | ||
var TextInputMixin = __webpack_require__(3); | ||
var ReactAutocomplete = __webpack_require__(40); | ||
var keyboardHandlerMixin = __webpack_require__(29); | ||
var React = __webpack_require__(10); | ||
var Perf = React.addons.Perf; | ||
var optionPropType = React.PropTypes.shape({ | ||
id : React.PropTypes.required, | ||
title : React.PropTypes.string | ||
}); | ||
var hasPerfStarted = false; | ||
var AutoCompleteEditor = React.createClass({displayName: 'AutoCompleteEditor', | ||
var KeyboardHandlerMixin = { | ||
propTypes : { | ||
options : React.PropTypes.arrayOf(optionPropType) | ||
}, | ||
mixins : MixinHelper.mix([keyboardHandlerMixin, EditorMixin, TextInputMixin]), | ||
overrides : { | ||
checkFocus : function(){ | ||
this.setTextInputFocus(); | ||
}, | ||
getInputNode:function(){ | ||
return this.getSearchComponent().getDOMNode(); | ||
}, | ||
onPressEnter:function(args){ | ||
var e = args[0]; | ||
this.handleEnter(e); | ||
}, | ||
onPressTab:function(args){ | ||
var e = args[0]; | ||
this.handleTab(e); | ||
} | ||
}, | ||
handleTab:function(e){ | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
if(!this.isFocusedOnSuggestion()){ | ||
this.handleChange(null, 'Tab'); | ||
}else{ | ||
this.handleChange(this.getFocusedSuggestion(), 'Tab'); | ||
onKeyDown:function(e){ | ||
if(this.isCtrlKeyHeldDown(e)){ | ||
this.checkAndCall('onPressKeyWithCtrl', e); | ||
} | ||
}, | ||
handleEnter:function(e){ | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
if(!this.isFocusedOnSuggestion()){ | ||
this.props.onCommit({value : this.refs.autoComplete.state.searchTerm, key : 'Enter'}); | ||
else if (this.isKeyIdentified(e.key)) { | ||
//break up individual keyPress events to have their own specific callbacks | ||
//this allows multiple mixins to listen to onKeyDown events and somewhat reduces methodName clashing | ||
var callBack = 'onPress' + e.key; | ||
this.checkAndCall(callBack, e); | ||
}else if(this.isKeyPrintable(e.keyCode)){ | ||
this.checkAndCall('onPressChar', e); | ||
} | ||
}, | ||
getSearchComponent:function(){ | ||
return this.refs.autoComplete.refs.search; | ||
}, | ||
//taken from http://stackoverflow.com/questions/12467240/determine-if-javascript-e-keycode-is-a-printable-non-control-character | ||
isKeyPrintable:function(keycode){ | ||
var valid = | ||
(keycode > 47 && keycode < 58) || // number keys | ||
keycode == 32 || keycode == 13 || // spacebar & return key(s) (if you want to allow carriage returns) | ||
(keycode > 64 && keycode < 91) || // letter keys | ||
(keycode > 95 && keycode < 112) || // numpad keys | ||
(keycode > 185 && keycode < 193) || // ;=,-./` (in order) | ||
(keycode > 218 && keycode < 223); // [\]' (in order) | ||
isFocusedOnSuggestion:function(){ | ||
var autoComplete = this.refs.autoComplete; | ||
return autoComplete.state.focusedValue != null; | ||
return valid; | ||
}, | ||
getFocusedSuggestion:function(){ | ||
return this.refs.autoComplete.state.focusedValue; | ||
isKeyIdentified:function(key){ | ||
return key !== "Unidentified"; | ||
}, | ||
onPressArrowDown:function(e){ | ||
//prevent event propogation. this disables downwards cell navigation | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
isCtrlKeyHeldDown:function(e){ | ||
return e.ctrlKey === true && e.key !== "Control"; | ||
}, | ||
onPressArrowUp:function(e){ | ||
//prevent event propogation. this disables upwards cell navigation | ||
e.stopPropagation(); | ||
}, | ||
getLabel:function(result) { | ||
var label = this.props.label != null ? this.props.label : 'title'; | ||
if (typeof label === "function") { | ||
return label(result); | ||
} else if (typeof label === "string") { | ||
return result[label]; | ||
checkAndCall:function(methodName, args){ | ||
if(typeof this[methodName] === 'function'){ | ||
this[methodName](args); | ||
} | ||
}, | ||
handleChange:function(item, key){ | ||
var rowDataChanged = {}; | ||
var value = this.props.value; | ||
if(item!=null){ | ||
value = this.getLabel(item); | ||
if(this.props.valueParams){ | ||
value = this.constuctValueFromParams(item, this.props.valueParams); | ||
} | ||
rowDataChanged[this.props.column.key] = value; | ||
} | ||
key = key ? key : 'Enter'; | ||
this.props.onCommit({value : value, key : key, rowDataChanged : rowDataChanged}); | ||
}, | ||
constuctValueFromParams:function(obj, props) { | ||
var ret = []; | ||
for (var i = 0, ii = props.length; i < ii; i++) { | ||
ret.push(obj[props[i]]); | ||
} | ||
return ret.join('|'); | ||
}, | ||
renderEditorNode:function(){ | ||
var val = {title : this.getDefaultValue()}; | ||
var label = this.props.label != null ? this.props.label : 'title'; | ||
return (React.createElement("div", {style: this.getStyle(), onKeyDown: this.onKeyDown}, | ||
React.createElement(ReactAutocomplete, {search: this.props.search, ref: "autoComplete", label: label, resultIdentifier: this.props.resultIdentifier, options: this.props.options, value: val, onChange: this.handleChange}) | ||
)); | ||
} | ||
} | ||
}); | ||
module.exports = AutoCompleteEditor; | ||
module.exports = KeyboardHandlerMixin; | ||
/***/ }, | ||
/* 12 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
* @jsx React.DOM | ||
* @copyright Prometheus Research, LLC 2014 | ||
*/ | ||
'use strict'; | ||
var React = __webpack_require__(9); | ||
var cx = React.addons.classSet; | ||
var MixinHelper = __webpack_require__(27); | ||
var keyboardHandlerMixin = __webpack_require__(29); | ||
var EditorMixin = __webpack_require__(2); | ||
var cloneWithProps = React.addons.cloneWithProps; | ||
var DropDownEditor = React.createClass({displayName: 'DropDownEditor', | ||
mixins : [keyboardHandlerMixin, EditorMixin], | ||
overrides : { | ||
getInputNode : function(){ | ||
return this.refs.select.getDOMNode(); | ||
} | ||
}, | ||
propTypes : { | ||
options : React.PropTypes.array.isRequired | ||
}, | ||
renderEditorNode:function(){ | ||
return ( | ||
React.createElement("select", {ref: "select", style: this.getStyle(), defaultValue: this.props.value, onChange: this.onChange}, | ||
this.renderOptions() | ||
)); | ||
}, | ||
renderOptions:function(){ | ||
var options = []; | ||
this.props.options.forEach(function(name){ | ||
options.push(React.createElement("option", {key: name, value: name}, name)); | ||
}, this); | ||
return options; | ||
}, | ||
onChange:function(e){ | ||
this.props.onCommit({value : e.currentTarget.value}); | ||
}, | ||
onClick:function(e){ | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
} | ||
}); | ||
module.exports = DropDownEditor; | ||
/***/ }, | ||
/* 13 */ | ||
/* 10 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
* @jsx React.DOM | ||
* @copyright Prometheus Research, LLC 2014 | ||
*/ | ||
'use strict'; | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_10__; | ||
var React = __webpack_require__(9); | ||
var cx = React.addons.classSet; | ||
var MixinHelper = __webpack_require__(27); | ||
var EditorMixin = __webpack_require__(2); | ||
var TextInputMixin = __webpack_require__(3); | ||
var keyboardHandlerMixin = __webpack_require__(29); | ||
var SimpleTextEditor = React.createClass({displayName: 'SimpleTextEditor', | ||
mixins : [keyboardHandlerMixin, EditorMixin, TextInputMixin], | ||
overrides : { | ||
checkFocus : function(){ | ||
this.setTextInputFocus(); | ||
} | ||
}, | ||
renderEditorNode:function(){ | ||
return (React.createElement("input", {type: "text", onBlur: this.commit, className: "form-control", defaultValue: this.getDefaultValue(), style: this.getStyle(), onKeyDown: this.onKeyDown})); | ||
} | ||
}); | ||
module.exports = SimpleTextEditor; | ||
/***/ }, | ||
/* 14 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
"use strict"; | ||
var isFunction = function(functionToCheck){ | ||
var getType = {}; | ||
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; | ||
} | ||
module.exports = isFunction; | ||
/***/ }, | ||
/* 11 */, | ||
/* 12 */, | ||
/* 13 */, | ||
/* 14 */, | ||
/* 15 */, | ||
@@ -631,7 +404,3 @@ /* 16 */, | ||
/* 22 */, | ||
/* 23 */, | ||
/* 24 */, | ||
/* 25 */, | ||
/* 26 */, | ||
/* 27 */ | ||
/* 23 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -642,7 +411,7 @@ | ||
var keyMirror = __webpack_require__(42); | ||
var isFunction = __webpack_require__(14) | ||
var React = __webpack_require__(9); | ||
var keyMirror = __webpack_require__(41); | ||
var isFunction = __webpack_require__(24) | ||
var React = __webpack_require__(10); | ||
if (!Object.assign) { | ||
Object.assign = __webpack_require__(41); | ||
Object.assign = __webpack_require__(38); | ||
} | ||
@@ -872,9 +641,18 @@ | ||
/***/ }, | ||
/* 28 */ | ||
/* 24 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
module.exports = __WEBPACK_EXTERNAL_MODULE_28__; | ||
"use strict"; | ||
var isFunction = function(functionToCheck){ | ||
var getType = {}; | ||
return functionToCheck && getType.toString.call(functionToCheck) === '[object Function]'; | ||
} | ||
module.exports = isFunction; | ||
/***/ }, | ||
/* 29 */ | ||
/* 25 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -886,60 +664,229 @@ | ||
*/ | ||
'use strict'; | ||
var React = __webpack_require__(9); | ||
var Perf = React.addons.Perf; | ||
var React = __webpack_require__(10); | ||
var cx = React.addons.classSet; | ||
var MixinHelper = __webpack_require__(23); | ||
var EditorMixin = __webpack_require__(5); | ||
var TextInputMixin = __webpack_require__(6); | ||
var ReactAutocomplete = __webpack_require__(43); | ||
var keyboardHandlerMixin = __webpack_require__(9); | ||
var hasPerfStarted = false; | ||
var optionPropType = React.PropTypes.shape({ | ||
id : React.PropTypes.required, | ||
title : React.PropTypes.string | ||
}); | ||
var KeyboardHandlerMixin = { | ||
var AutoCompleteEditor = React.createClass({displayName: 'AutoCompleteEditor', | ||
onKeyDown:function(e){ | ||
if(this.isCtrlKeyHeldDown(e)){ | ||
this.checkAndCall('onPressKeyWithCtrl', e); | ||
propTypes : { | ||
options : React.PropTypes.arrayOf(optionPropType) | ||
}, | ||
mixins : MixinHelper.mix([keyboardHandlerMixin, EditorMixin, TextInputMixin]), | ||
overrides : { | ||
checkFocus : function(){ | ||
this.setTextInputFocus(); | ||
}, | ||
getInputNode:function(){ | ||
return this.getSearchComponent().getDOMNode(); | ||
}, | ||
onPressEnter:function(args){ | ||
var e = args[0]; | ||
this.handleEnter(e); | ||
}, | ||
onPressTab:function(args){ | ||
var e = args[0]; | ||
this.handleTab(e); | ||
} | ||
}, | ||
handleTab:function(e){ | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
if(!this.isFocusedOnSuggestion()){ | ||
this.handleChange(null, 'Tab'); | ||
}else{ | ||
this.handleChange(this.getFocusedSuggestion(), 'Tab'); | ||
} | ||
else if (this.isKeyIdentified(e.key)) { | ||
//break up individual keyPress events to have their own specific callbacks | ||
//this allows multiple mixins to listen to onKeyDown events and somewhat reduces methodName clashing | ||
var callBack = 'onPress' + e.key; | ||
this.checkAndCall(callBack, e); | ||
}else if(this.isKeyPrintable(e.keyCode)){ | ||
this.checkAndCall('onPressChar', e); | ||
}, | ||
handleEnter:function(e){ | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
if(!this.isFocusedOnSuggestion()){ | ||
this.props.onCommit({value : this.refs.autoComplete.state.searchTerm, key : 'Enter'}); | ||
} | ||
}, | ||
//taken from http://stackoverflow.com/questions/12467240/determine-if-javascript-e-keycode-is-a-printable-non-control-character | ||
isKeyPrintable:function(keycode){ | ||
var valid = | ||
(keycode > 47 && keycode < 58) || // number keys | ||
keycode == 32 || keycode == 13 || // spacebar & return key(s) (if you want to allow carriage returns) | ||
(keycode > 64 && keycode < 91) || // letter keys | ||
(keycode > 95 && keycode < 112) || // numpad keys | ||
(keycode > 185 && keycode < 193) || // ;=,-./` (in order) | ||
(keycode > 218 && keycode < 223); // [\]' (in order) | ||
getSearchComponent:function(){ | ||
return this.refs.autoComplete.refs.search; | ||
}, | ||
return valid; | ||
isFocusedOnSuggestion:function(){ | ||
var autoComplete = this.refs.autoComplete; | ||
return autoComplete.state.focusedValue != null; | ||
}, | ||
isKeyIdentified:function(key){ | ||
return key !== "Unidentified"; | ||
getFocusedSuggestion:function(){ | ||
return this.refs.autoComplete.state.focusedValue; | ||
}, | ||
isCtrlKeyHeldDown:function(e){ | ||
return e.ctrlKey === true && e.key !== "Control"; | ||
onPressArrowDown:function(e){ | ||
//prevent event propogation. this disables downwards cell navigation | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
}, | ||
checkAndCall:function(methodName, args){ | ||
if(typeof this[methodName] === 'function'){ | ||
this[methodName](args); | ||
onPressArrowUp:function(e){ | ||
//prevent event propogation. this disables upwards cell navigation | ||
e.stopPropagation(); | ||
}, | ||
getLabel:function(result) { | ||
var label = this.props.label != null ? this.props.label : 'title'; | ||
if (typeof label === "function") { | ||
return label(result); | ||
} else if (typeof label === "string") { | ||
return result[label]; | ||
} | ||
}, | ||
handleChange:function(item, key){ | ||
var rowDataChanged = {}; | ||
var value = this.props.value; | ||
if(item!=null){ | ||
value = this.getLabel(item); | ||
if(this.props.valueParams){ | ||
value = this.constuctValueFromParams(item, this.props.valueParams); | ||
} | ||
rowDataChanged[this.props.column.key] = value; | ||
} | ||
key = key ? key : 'Enter'; | ||
this.props.onCommit({value : value, key : key, rowDataChanged : rowDataChanged}); | ||
}, | ||
constuctValueFromParams:function(obj, props) { | ||
var ret = []; | ||
for (var i = 0, ii = props.length; i < ii; i++) { | ||
ret.push(obj[props[i]]); | ||
} | ||
return ret.join('|'); | ||
}, | ||
renderEditorNode:function(){ | ||
var val = {title : this.getDefaultValue()}; | ||
var label = this.props.label != null ? this.props.label : 'title'; | ||
return (React.createElement("div", {style: this.getStyle(), onKeyDown: this.onKeyDown}, | ||
React.createElement(ReactAutocomplete, {search: this.props.search, ref: "autoComplete", label: label, resultIdentifier: this.props.resultIdentifier, options: this.props.options, value: val, onChange: this.handleChange}) | ||
)); | ||
} | ||
} | ||
}); | ||
module.exports = AutoCompleteEditor; | ||
module.exports = KeyboardHandlerMixin; | ||
/***/ }, | ||
/* 26 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
* @jsx React.DOM | ||
* @copyright Prometheus Research, LLC 2014 | ||
*/ | ||
'use strict'; | ||
var React = __webpack_require__(10); | ||
var cx = React.addons.classSet; | ||
var MixinHelper = __webpack_require__(23); | ||
var keyboardHandlerMixin = __webpack_require__(9); | ||
var EditorMixin = __webpack_require__(5); | ||
var cloneWithProps = React.addons.cloneWithProps; | ||
var DropDownEditor = React.createClass({displayName: 'DropDownEditor', | ||
mixins : [keyboardHandlerMixin, EditorMixin], | ||
overrides : { | ||
getInputNode : function(){ | ||
return this.refs.select.getDOMNode(); | ||
} | ||
}, | ||
propTypes : { | ||
options : React.PropTypes.array.isRequired | ||
}, | ||
renderEditorNode:function(){ | ||
return ( | ||
React.createElement("select", {ref: "select", style: this.getStyle(), defaultValue: this.props.value, onChange: this.onChange}, | ||
this.renderOptions() | ||
)); | ||
}, | ||
renderOptions:function(){ | ||
var options = []; | ||
this.props.options.forEach(function(name){ | ||
options.push(React.createElement("option", {key: name, value: name}, name)); | ||
}, this); | ||
return options; | ||
}, | ||
onChange:function(e){ | ||
this.props.onCommit({value : e.currentTarget.value}); | ||
}, | ||
onClick:function(e){ | ||
e.stopPropagation(); | ||
e.preventDefault(); | ||
} | ||
}); | ||
module.exports = DropDownEditor; | ||
/***/ }, | ||
/* 27 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/** | ||
* @jsx React.DOM | ||
* @copyright Prometheus Research, LLC 2014 | ||
*/ | ||
'use strict'; | ||
var React = __webpack_require__(10); | ||
var cx = React.addons.classSet; | ||
var MixinHelper = __webpack_require__(23); | ||
var EditorMixin = __webpack_require__(5); | ||
var TextInputMixin = __webpack_require__(6); | ||
var keyboardHandlerMixin = __webpack_require__(9); | ||
var SimpleTextEditor = React.createClass({displayName: 'SimpleTextEditor', | ||
mixins : [keyboardHandlerMixin, EditorMixin, TextInputMixin], | ||
overrides : { | ||
checkFocus : function(){ | ||
this.setTextInputFocus(); | ||
} | ||
}, | ||
renderEditorNode:function(){ | ||
return (React.createElement("input", {type: "text", onBlur: this.commit, className: "form-control", defaultValue: this.getDefaultValue(), style: this.getStyle(), onKeyDown: this.onKeyDown})); | ||
} | ||
}); | ||
module.exports = SimpleTextEditor; | ||
/***/ }, | ||
/* 28 */, | ||
/* 29 */, | ||
/* 30 */, | ||
@@ -953,10 +900,101 @@ /* 31 */, | ||
/* 37 */, | ||
/* 38 */, | ||
/* 38 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
function ToObject(val) { | ||
if (val == null) { | ||
throw new TypeError('Object.assign cannot be called with null or undefined'); | ||
} | ||
return Object(val); | ||
} | ||
module.exports = Object.assign || function (target, source) { | ||
var from; | ||
var keys; | ||
var to = ToObject(target); | ||
for (var s = 1; s < arguments.length; s++) { | ||
from = arguments[s]; | ||
keys = Object.keys(Object(from)); | ||
for (var i = 0; i < keys.length; i++) { | ||
to[keys[i]] = from[keys[i]]; | ||
} | ||
} | ||
return to; | ||
}; | ||
/***/ }, | ||
/* 39 */, | ||
/* 40 */ | ||
/* 40 */, | ||
/* 41 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/* WEBPACK VAR INJECTION */(function(process) {/** | ||
* Copyright 2013-2014, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule keyMirror | ||
* @typechecks static-only | ||
*/ | ||
"use strict"; | ||
var invariant = __webpack_require__(51); | ||
/** | ||
* Constructs an enumeration with keys equal to their value. | ||
* | ||
* For example: | ||
* | ||
* var COLORS = keyMirror({blue: null, red: null}); | ||
* var myColor = COLORS.blue; | ||
* var isColorValid = !!COLORS[myColor]; | ||
* | ||
* The last line could not be performed if the values of the generated enum were | ||
* not equal to their keys. | ||
* | ||
* Input: {key1: val1, key2: val2} | ||
* Output: {key1: key1, key2: key2} | ||
* | ||
* @param {object} obj | ||
* @return {object} | ||
*/ | ||
var keyMirror = function(obj) { | ||
var ret = {}; | ||
var key; | ||
("production" !== process.env.NODE_ENV ? invariant( | ||
obj instanceof Object && !Array.isArray(obj), | ||
'keyMirror(...): Argument must be an object.' | ||
) : invariant(obj instanceof Object && !Array.isArray(obj))); | ||
for (key in obj) { | ||
if (!obj.hasOwnProperty(key)) { | ||
continue; | ||
} | ||
ret[key] = key; | ||
} | ||
return ret; | ||
}; | ||
module.exports = keyMirror; | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(52))) | ||
/***/ }, | ||
/* 42 */, | ||
/* 43 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
(function webpackUniversalModuleDefinition(root, factory) { | ||
if(true) | ||
module.exports = factory(__webpack_require__(9)); | ||
module.exports = factory(__webpack_require__(10)); | ||
else if(typeof define === 'function' && define.amd) | ||
@@ -1415,93 +1453,2 @@ define(["react/addons"], factory); | ||
/***/ }, | ||
/* 41 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
'use strict'; | ||
function ToObject(val) { | ||
if (val == null) { | ||
throw new TypeError('Object.assign cannot be called with null or undefined'); | ||
} | ||
return Object(val); | ||
} | ||
module.exports = Object.assign || function (target, source) { | ||
var from; | ||
var keys; | ||
var to = ToObject(target); | ||
for (var s = 1; s < arguments.length; s++) { | ||
from = arguments[s]; | ||
keys = Object.keys(Object(from)); | ||
for (var i = 0; i < keys.length; i++) { | ||
to[keys[i]] = from[keys[i]]; | ||
} | ||
} | ||
return to; | ||
}; | ||
/***/ }, | ||
/* 42 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
/* WEBPACK VAR INJECTION */(function(process) {/** | ||
* Copyright 2013-2014, Facebook, Inc. | ||
* All rights reserved. | ||
* | ||
* This source code is licensed under the BSD-style license found in the | ||
* LICENSE file in the root directory of this source tree. An additional grant | ||
* of patent rights can be found in the PATENTS file in the same directory. | ||
* | ||
* @providesModule keyMirror | ||
* @typechecks static-only | ||
*/ | ||
"use strict"; | ||
var invariant = __webpack_require__(53); | ||
/** | ||
* Constructs an enumeration with keys equal to their value. | ||
* | ||
* For example: | ||
* | ||
* var COLORS = keyMirror({blue: null, red: null}); | ||
* var myColor = COLORS.blue; | ||
* var isColorValid = !!COLORS[myColor]; | ||
* | ||
* The last line could not be performed if the values of the generated enum were | ||
* not equal to their keys. | ||
* | ||
* Input: {key1: val1, key2: val2} | ||
* Output: {key1: key1, key2: key2} | ||
* | ||
* @param {object} obj | ||
* @return {object} | ||
*/ | ||
var keyMirror = function(obj) { | ||
var ret = {}; | ||
var key; | ||
("production" !== process.env.NODE_ENV ? invariant( | ||
obj instanceof Object && !Array.isArray(obj), | ||
'keyMirror(...): Argument must be an object.' | ||
) : invariant(obj instanceof Object && !Array.isArray(obj))); | ||
for (key in obj) { | ||
if (!obj.hasOwnProperty(key)) { | ||
continue; | ||
} | ||
ret[key] = key; | ||
} | ||
return ret; | ||
}; | ||
module.exports = keyMirror; | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(54))) | ||
/***/ }, | ||
/* 43 */, | ||
/* 44 */, | ||
@@ -1514,5 +1461,3 @@ /* 45 */, | ||
/* 50 */, | ||
/* 51 */, | ||
/* 52 */, | ||
/* 53 */ | ||
/* 51 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1574,6 +1519,6 @@ | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(54))) | ||
/* WEBPACK VAR INJECTION */}.call(exports, __webpack_require__(52))) | ||
/***/ }, | ||
/* 54 */ | ||
/* 52 */ | ||
/***/ function(module, exports, __webpack_require__) { | ||
@@ -1580,0 +1525,0 @@ |
@@ -1,1 +0,1 @@ | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react/addons"),require("moment")):"function"==typeof define&&define.amd?define(["react/addons","moment"],t):"object"==typeof exports?exports.GridAddons=t(require("react/addons"),require("moment")):(e.ReactGrid=e.ReactGrid||{},e.ReactGrid.GridAddons=t(e.React,e.moment))}(this,function(e,t){return function(e){function t(n){if(s[n])return s[n].exports;var o=s[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){e.exports={Editors:s(4),Formatters:s(5),Toolbar:s(1),Mixins:{EditorMixin:s(2),TextInputMixin:s(3)}}},function(e,t,s){"use strict";var n=s(9),o=n.createClass({displayName:"Toolbar",onAddRow:function(){this.props.onAddRow&&this.props.onAddRow({newRowIndex:this.props.rows.length})},render:function(){return n.createElement("div",{className:"react-grid-Toolbar"},n.createElement("div",{className:"tools"},n.createElement("button",{type:"button",className:"btn",onClick:this.onAddRow},"Add Row"),n.createElement("button",{type:"button",className:"btn",onClick:this.props.onToggleFilter},"Filter Rows")))}});e.exports=o},function(e,t,s){"use strict";var n=s(9),o=n.addons.classSet,r=s(14),i={propTypes:{onCommit:n.PropTypes.func.isRequired},getStyle:function(){return{height:this.props.height-1}},getInitialState:function(){return{isInvalid:!1}},onPressEnter:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Enter"})},onPressTab:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Tab"})},commit:function(e){var t=this.getValue(),s={};s[this.props.column.key]=t,this.isNewValueValid(t)&&this.props.onCommit({updated:s,key:e.key})},isNewValueValid:function(e){if(r(this.validate)){var t=this.validate(e);return this.setState({isInvalid:!t}),t}return!0},getValue:function(){return this.getInputNode().value},setValue:function(e){this.getInputNode().value=e},componentDidMount:function(){void 0!==this.getInputNode()&&(this.checkFocus(),this.getInputNode().className+=" editor-main")},checkFocus:function(){this.getInputNode().focus()},getInputNode:function(){return this.getDOMNode().getElementsByTagName("input")[0]},getContainerClass:function(){return o({"has-error":this.state.isInvalid===!0})},renderStatusIcon:function(){return this.state.isInvalid===!0?n.createElement("span",{className:"glyphicon glyphicon-remove form-control-feedback"}):void 0},render:function(){if(!r(this.renderEditorNode))throw"Editor Mixin Error : "+this.displayName+" component must implement method renderEditorNode";var e=this.renderEditorNode();return n.createElement("div",{className:this.getContainerClass()},e,this.renderStatusIcon())}};e.exports=i},function(e){"use strict";var t={onPressArrowLeft:function(e){e.stopPropagation()},onPressArrowRight:function(e){e.stopPropagation()},getDefaultValue:function(){var e=this.props.initialKeyCode;if("Delete"===e||"Backspace"===e)return"";if("Enter"===e)return this.props.value;var t=e?String.fromCharCode(e):this.props.value;return t},setCaretAtEndOfInput:function(){var e=this.getInputNode(),t=e.value.length;if(e.setSelectionRange)e.setSelectionRange(t,t);else if(e.createTextRange){var s=e.createTextRange();s.moveStart("character",txt.value.length),s.collapse(),s.select()}},setTextInputFocus:function(){this.isKeyPrintable(this.props.initialKeyCode)?this.getInputNode().select():(this.getInputNode().focus(),this.setCaretAtEndOfInput())}};e.exports=t},function(e,t,s){var n={AutoComplete:s(11),DropDownEditor:s(12),SimpleTextEditor:s(13)};e.exports=n},function(e,t,s){var n={DateRangeFormatter:s(10)};e.exports=n},,,,function(t){t.exports=e},function(e,t,s){"use strict";var n=s(9),o=(n.addons.classSet,s(28)),r=n.PropTypes,i=n.createClass({displayName:"DateRangeFormatter",propTypes:{value:r.shape({startDate:r.oneOfType([r.string,r.object]),endDate:r.oneOfType([r.string,r.object])}).isRequired},getDefaultProps:function(){return{inputFormat:"YYYY-MM-DD",displayFormat:"YYYY-MM-DD",value:{startDate:null,endDate:null}}},formatDate:function(e){return o.isMoment(e)?e.format(this.props.displayFormat):o(e,this.props.inputFormat).format(this.props.displayFormat)},render:function(){var e=this.props.value.startDate,t=this.props.value.endDate;return n.createElement("span",null,e," to ",t)}});e.exports=i},function(e,t,s){"use strict";var n=s(9),o=(n.addons.classSet,s(27)),r=s(2),i=s(3),a=s(40),u=s(29),l=n.PropTypes.shape({id:n.PropTypes.required,title:n.PropTypes.string}),c=n.createClass({displayName:"AutoCompleteEditor",propTypes:{options:n.PropTypes.arrayOf(l)},mixins:o.mix([u,r,i]),overrides:{checkFocus:function(){this.setTextInputFocus()},getInputNode:function(){return this.getSearchComponent().getDOMNode()},onPressEnter:function(e){var t=e[0];this.handleEnter(t)},onPressTab:function(e){var t=e[0];this.handleTab(t)}},handleTab:function(e){e.stopPropagation(),e.preventDefault(),this.isFocusedOnSuggestion()?this.handleChange(this.getFocusedSuggestion(),"Tab"):this.handleChange(null,"Tab")},handleEnter:function(e){e.stopPropagation(),e.preventDefault(),this.isFocusedOnSuggestion()||this.props.onCommit({value:this.refs.autoComplete.state.searchTerm,key:"Enter"})},getSearchComponent:function(){return this.refs.autoComplete.refs.search},isFocusedOnSuggestion:function(){var e=this.refs.autoComplete;return null!=e.state.focusedValue},getFocusedSuggestion:function(){return this.refs.autoComplete.state.focusedValue},onPressArrowDown:function(e){e.stopPropagation(),e.preventDefault()},onPressArrowUp:function(e){e.stopPropagation()},getLabel:function(e){var t=null!=this.props.label?this.props.label:"title";return"function"==typeof t?t(e):"string"==typeof t?e[t]:void 0},handleChange:function(e,t){var s={},n=this.props.value;null!=e&&(n=this.getLabel(e),this.props.valueParams&&(n=this.constuctValueFromParams(e,this.props.valueParams)),s[this.props.column.key]=n),t=t?t:"Enter",this.props.onCommit({value:n,key:t,rowDataChanged:s})},constuctValueFromParams:function(e,t){for(var s=[],n=0,o=t.length;o>n;n++)s.push(e[t[n]]);return s.join("|")},renderEditorNode:function(){var e={title:this.getDefaultValue()},t=null!=this.props.label?this.props.label:"title";return n.createElement("div",{style:this.getStyle(),onKeyDown:this.onKeyDown},n.createElement(a,{search:this.props.search,ref:"autoComplete",label:t,resultIdentifier:this.props.resultIdentifier,options:this.props.options,value:e,onChange:this.handleChange}))}});e.exports=c},function(e,t,s){"use strict";var n=s(9),o=(n.addons.classSet,s(27),s(29)),r=s(2),i=(n.addons.cloneWithProps,n.createClass({displayName:"DropDownEditor",mixins:[o,r],overrides:{getInputNode:function(){return this.refs.select.getDOMNode()}},propTypes:{options:n.PropTypes.array.isRequired},renderEditorNode:function(){return n.createElement("select",{ref:"select",style:this.getStyle(),defaultValue:this.props.value,onChange:this.onChange},this.renderOptions())},renderOptions:function(){var e=[];return this.props.options.forEach(function(t){e.push(n.createElement("option",{key:t,value:t},t))},this),e},onChange:function(e){this.props.onCommit({value:e.currentTarget.value})},onClick:function(e){e.stopPropagation(),e.preventDefault()}}));e.exports=i},function(e,t,s){"use strict";var n=s(9),o=(n.addons.classSet,s(27),s(2)),r=s(3),i=s(29),a=n.createClass({displayName:"SimpleTextEditor",mixins:[i,o,r],overrides:{checkFocus:function(){this.setTextInputFocus()}},renderEditorNode:function(){return n.createElement("input",{type:"text",onBlur:this.commit,className:"form-control",defaultValue:this.getDefaultValue(),style:this.getStyle(),onKeyDown:this.onKeyDown})}});e.exports=a},function(e){"use strict";var t=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)};e.exports=t},,,,,,,,,,,,,function(e,t,s){"use strict";var n=s(42),o=s(14),r=s(9);Object.assign||(Object.assign=s(41));var i=n({DEFINE_LIFE_CYCLE_METHOD:null,DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),a={getDefaultProps:i.DEFINE_LIFE_CYCLE_METHOD,propTypes:i.DEFINE_LIFE_CYCLE_METHOD,getInitialState:i.DEFINE_LIFE_CYCLE_METHOD,statics:i.DEFINE_LIFE_CYCLE_METHOD,displayName:i.DEFINE_LIFE_CYCLE_METHOD,componentWillMount:i.DEFINE_LIFE_CYCLE_METHOD,componentWillReceiveProps:i.DEFINE_LIFE_CYCLE_METHOD,shouldComponentUpdate:i.DEFINE_LIFE_CYCLE_METHOD,componentWillUpdate:i.DEFINE_LIFE_CYCLE_METHOD,componentDidUpdate:i.DEFINE_LIFE_CYCLE_METHOD,componentWillUnmount:i.DEFINE_LIFE_CYCLE_METHOD},u={},l=function(e,t){this.base=e,this.dependsOn=t},c=function(e){this.assignTo=function(t){return new l(t,e)}},p=function(e,t){Object.keys(e).forEach(function(s){if(f.isCustomProperty(s))o(e[s])&&(e[s]=f.wrapCustomMethod(s,e[s]));else{switch(a[s]){case i.DEFINE_LIFE_CYCLE_METHOD:var n={};n[s]=e[s],t.push(n);break;case i.DEFINE_MANY_MERGED:}delete e[s]}},this)},h={mix:function(e){var t=[],s={},n=f.getUniqueDependencies(e);for(var o in n)Object.assign(s,u[n[o]]);return p(s,t),e.forEach(function(e){var n={};e instanceof l?Object.assign(n,e.base):Object.assign(n,e),p(n,t),Object.assign(s,n)},this),t.push(s),t},createDependency:function(e){var t=[];for(var s in e)e[s]instanceof l?this.addAlias(s,e[s].base):this.addAlias(s,e[s]),t.push(s);var n=t.filter(function(e,t,s){return s.indexOf(e)===t});return new c(n)},addAlias:function(e,t){u[e]=t}},d=r.createClass;r.createClass=function(e){return e.mixins&&(e.mixins=h.mix(e.mixins)),d.apply(r,arguments)};var f={isCustomProperty:function(e){return!a[e]},wrapCustomMethod:function(e,t){return function(){return f.isMethodOverridden.call(this,e)?f.callOverriddenMethod.call(this,e,arguments):t.apply(this,arguments)}},checkMethodExtendedAndCall:function(e,t){return this.extended&&"function"==typeof this.extended[e]?this.extended[e].call(this,t):void 0},checkMethodImplementedAndCall:function(e,t){return this.implemented&&"function"==typeof this.implemented[e]?this.implemented[e].call(this,t):void 0},isMethodOverridden:function(e){return this.overrides&&"function"==typeof this.overrides[e]},callOverriddenMethod:function(e,t){return this.overrides[e].call(this,t)},getUniqueDependencies:function(e){var t=[];return e.forEach(function(e){e instanceof l&&(t=t.concat(e.dependsOn))},this),t.filter(function(e,t,s){return s.indexOf(e)===t})}};e.exports=h},function(e){e.exports=t},function(e,t,s){"use strict";var n=s(9),o=(n.addons.Perf,{onKeyDown:function(e){if(this.isCtrlKeyHeldDown(e))this.checkAndCall("onPressKeyWithCtrl",e);else if(this.isKeyIdentified(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},isKeyIdentified:function(e){return"Unidentified"!==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,s){!function(t,n){e.exports=n(s(9))}(this,function(e){return function(e){function t(n){if(s[n])return s[n].exports;var o=s[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){"use strict";function n(e,t,s){if(!e)return s(null,[]);t=new RegExp(t,"i");for(var n=[],o=0,r=e.length;r>o;o++)t.exec(e[o].title)&&n.push(e[o]);s(null,n)}var o=s(1),r=o.addons.classSet,i=o.createClass({displayName:"Autocomplete",propTypes:{options:o.PropTypes.any,search:o.PropTypes.func,resultRenderer:o.PropTypes.oneOfType([o.PropTypes.component,o.PropTypes.func]),value:o.PropTypes.object,onChange:o.PropTypes.func,onError:o.PropTypes.func},getDefaultProps:function(){return{search:n}},getInitialState:function(){var e=this.props.searchTerm?this.props.searchTerm:this.props.value?this.props.value.title:"";return{results:[],showResults:!1,showResultsInProgress:!1,searchTerm:e,focusedValue:null}},getResultIdentifier:function(e){return void 0===this.props.resultIdentifier?e.id:e[this.props.resultIdentifier]},render:function(){var e=r(this.props.className,"react-autocomplete-Autocomplete",this.state.showResults?"react-autocomplete-Autocomplete--resultsShown":void 0),t={position:"relative",outline:"none"};return o.createElement("div",{tabIndex:"1",className:e,onFocus:this.onFocus,onBlur:this.onBlur,style:t},o.createElement("input",{ref:"search",className:"react-autocomplete-Autocomplete__search",style:{width:"100%"},onClick:this.showAllResults,onChange:this.onQueryChange,onFocus:this.showAllResults,onBlur:this.onQueryBlur,onKeyDown:this.onQueryKeyDown,value:this.state.searchTerm}),o.createElement(a,{className:"react-autocomplete-Autocomplete__results",onSelect:this.onValueChange,onFocus:this.onValueFocus,results:this.state.results,focusedValue:this.state.focusedValue,show:this.state.showResults,renderer:this.props.resultRenderer,label:this.props.label,resultIdentifier:this.props.resultIdentifier}))},componentWillReceiveProps:function(e){var t=e.searchTerm?e.searchTerm:e.value?e.value.title:"";this.setState({searchTerm:t})},componentWillMount:function(){this.blurTimer=null},showResults:function(e){this.setState({showResultsInProgress:!0}),this.props.search(this.props.options,e.trim(),this.onSearchComplete)},showAllResults:function(){this.state.showResultsInProgress||this.state.showResults||this.showResults("")},onValueChange:function(e){var t={value:e,showResults:!1};e&&(t.searchTerm=e.title),this.setState(t),this.props.onChange&&this.props.onChange(e)},onSearchComplete:function(e,t){if(e){if(!this.props.onError)throw e;this.props.onError(e)}this.setState({showResultsInProgress:!1,showResults:!0,results:t})},onValueFocus:function(e){this.setState({focusedValue:e})},onQueryChange:function(e){var t=e.target.value;this.setState({searchTerm:t,focusedValue:null}),this.showResults(t)},onFocus:function(){this.blurTimer&&(clearTimeout(this.blurTimer),this.blurTimer=null),this.refs.search.getDOMNode().focus()},onBlur:function(){this.blurTimer=setTimeout(function(){this.isMounted()&&this.setState({showResults:!1})}.bind(this),100)},onQueryKeyDown:function(e){if("Enter"===e.key)e.preventDefault(),this.state.focusedValue&&this.onValueChange(this.state.focusedValue);else if("ArrowUp"===e.key&&this.state.showResults){e.preventDefault();var t=Math.max(this.focusedValueIndex()-1,0);this.setState({focusedValue:this.state.results[t]})}else if("ArrowDown"===e.key)if(e.preventDefault(),this.state.showResults){var s=Math.min(this.focusedValueIndex()+(this.state.showResults?1:0),this.state.results.length-1);this.setState({showResults:!0,focusedValue:this.state.results[s]})}else this.showAllResults()},focusedValueIndex:function(){if(!this.state.focusedValue)return-1;for(var e=0,t=this.state.results.length;t>e;e++)if(this.getResultIdentifier(this.state.results[e])===this.getResultIdentifier(this.state.focusedValue))return e;return-1}}),a=o.createClass({displayName:"Results",getResultIdentifier:function(e){if(void 0===this.props.resultIdentifier){if(!e.id)throw"id property not found on result. You must specify a resultIdentifier and pass as props to autocomplete component";return e.id}return e[this.props.resultIdentifier]},render:function(){var e={display:this.props.show?"block":"none",position:"absolute",listStyleType:"none"},t=this.props,s=t.className,n=function(e,t){var s={},n=Object.prototype.hasOwnProperty;if(null==e)throw new TypeError;for(var o in e)n.call(e,o)&&!n.call(t,o)&&(s[o]=e[o]);return s}(t,{className:1});return o.createElement("ul",o.__spread({},n,{style:e,className:s+" react-autocomplete-Results"}),this.props.results.map(this.renderResult))},renderResult:function(e){var t=this.props.focusedValue&&this.getResultIdentifier(this.props.focusedValue)===this.getResultIdentifier(e),s=this.props.renderer||u;return s({ref:t?"focused":void 0,key:this.getResultIdentifier(e),result:e,focused:t,onMouseEnter:this.onMouseEnterResult,onClick:this.props.onSelect,label:this.props.label})},componentDidUpdate:function(){this.scrollToFocused()},componentDidMount:function(){this.scrollToFocused()},componentWillMount:function(){this.ignoreFocus=!1},scrollToFocused:function(){var e=this.refs&&this.refs.focused;if(e){var t=this.getDOMNode(),s=t.scrollTop,n=t.offsetHeight,o=e.getDOMNode(),r=o.offsetTop,i=r+o.offsetHeight;s>r?(this.ignoreFocus=!0,t.scrollTop=r):i-s>n&&(this.ignoreFocus=!0,t.scrollTop=i-n)}},onMouseEnterResult:function(e,t){if(this.ignoreFocus)this.ignoreFocus=!1;else{var s=this.getDOMNode(),n=s.scrollTop,o=s.offsetHeight,r=e.target,i=r.offsetTop,a=i+r.offsetHeight;a>n&&n+o>i&&this.props.onFocus(t)}}}),u=o.createClass({displayName:"Result",getDefaultProps:function(){return{label:function(e){return e.title}}},getLabel:function(e){return"function"==typeof this.props.label?this.props.label(e):"string"==typeof this.props.label?e[this.props.label]:void 0},render:function(){var e=r({"react-autocomplete-Result":!0,"react-autocomplete-Result--active":this.props.focused});return o.createElement("li",{style:{listStyleType:"none"},className:e,onClick:this.onClick,onMouseEnter:this.onMouseEnter},o.createElement("a",null,this.getLabel(this.props.result)))},onClick:function(){this.props.onClick(this.props.result)},onMouseEnter:function(e){this.props.onMouseEnter&&this.props.onMouseEnter(e,this.props.result)},shouldComponentUpdate:function(e){return e.result.id!==this.props.result.id||e.focused!==this.props.focused}});e.exports=i},function(t){t.exports=e}])})},function(e){"use strict";function t(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){for(var s,n,o=t(e),r=1;r<arguments.length;r++){s=arguments[r],n=Object.keys(Object(s));for(var i=0;i<n.length;i++)o[n[i]]=s[n[i]]}return o}},function(e,t,s){(function(t){"use strict";var n=s(53),o=function(e){var s,o={};"production"!==t.env.NODE_ENV?n(e instanceof Object&&!Array.isArray(e),"keyMirror(...): Argument must be an object."):n(e instanceof Object&&!Array.isArray(e));for(s in e)e.hasOwnProperty(s)&&(o[s]=s);return o};e.exports=o}).call(t,s(54))},,,,,,,,,,,function(e,t,s){(function(t){"use strict";var s=function(e,s,n,o,r,i,a,u){if("production"!==t.env.NODE_ENV&&void 0===s)throw new Error("invariant requires an error message argument");if(!e){var l;if(void 0===s)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,r,i,a,u],p=0;l=new Error("Invariant Violation: "+s.replace(/%s/g,function(){return c[p++]}))}throw l.framesToPop=1,l}};e.exports=s}).call(t,s(54))},function(e){function t(){}var s=e.exports={};s.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.MutationObserver,s="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};var n=[];if(t){var o=document.createElement("div"),r=new MutationObserver(function(){var e=n.slice();n.length=0,e.forEach(function(e){e()})});return r.observe(o,{attributes:!0}),function(e){n.length||o.setAttribute("yes","no"),n.push(e)}}return s?(window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var s=n.shift();s()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}}(),s.title="browser",s.browser=!0,s.env={},s.argv=[],s.on=t,s.addListener=t,s.once=t,s.off=t,s.removeListener=t,s.removeAllListeners=t,s.emit=t,s.binding=function(){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(){throw new Error("process.chdir is not supported")}}])}); | ||
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("react/addons")):"function"==typeof define&&define.amd?define(["react/addons"],t):"object"==typeof exports?exports.GridAddons=t(require("react/addons")):(e.ReactGrid=e.ReactGrid||{},e.ReactGrid.GridAddons=t(e.React))}(this,function(e){return function(e){function t(n){if(s[n])return s[n].exports;var o=s[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){e.exports={Editors:s(7),Formatters:s(8),Toolbar:s(4),Mixins:{EditorMixin:s(5),TextInputMixin:s(6),KeyboardHandlerMixin:s(9)}}},,,,function(e,t,s){"use strict";var n=s(10),o=n.createClass({displayName:"Toolbar",onAddRow:function(){this.props.onAddRow&&this.props.onAddRow({newRowIndex:this.props.rows.length})},render:function(){return n.createElement("div",{className:"react-grid-Toolbar"},n.createElement("div",{className:"tools"},n.createElement("button",{type:"button",className:"btn",onClick:this.onAddRow},"Add Row"),n.createElement("button",{type:"button",className:"btn",onClick:this.props.onToggleFilter},"Filter Rows")))}});e.exports=o},function(e,t,s){"use strict";var n=s(10),o=n.addons.classSet,r=s(24),i={propTypes:{onCommit:n.PropTypes.func.isRequired},getStyle:function(){return{height:this.props.height-1}},getInitialState:function(){return{isInvalid:!1}},onPressEnter:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Enter"})},onPressTab:function(e){e.stopPropagation(),e.preventDefault(),this.commit({key:"Tab"})},commit:function(e){var t=this.getValue(),s={};s[this.props.column.key]=t,this.isNewValueValid(t)&&this.props.onCommit({updated:s,key:e.key})},isNewValueValid:function(e){if(r(this.validate)){var t=this.validate(e);return this.setState({isInvalid:!t}),t}return!0},getValue:function(){return this.getInputNode().value},setValue:function(e){this.getInputNode().value=e},componentDidMount:function(){void 0!==this.getInputNode()&&(this.checkFocus(),this.getInputNode().className+=" editor-main")},checkFocus:function(){this.getInputNode().focus()},getInputNode:function(){return this.getDOMNode().getElementsByTagName("input")[0]},getContainerClass:function(){return o({"has-error":this.state.isInvalid===!0})},renderStatusIcon:function(){return this.state.isInvalid===!0?n.createElement("span",{className:"glyphicon glyphicon-remove form-control-feedback"}):void 0},render:function(){if(!r(this.renderEditorNode))throw"Editor Mixin Error : "+this.displayName+" component must implement method renderEditorNode";var e=this.renderEditorNode();return n.createElement("div",{className:this.getContainerClass()},e,this.renderStatusIcon())}};e.exports=i},function(e){"use strict";var t={onPressArrowLeft:function(e){e.stopPropagation()},onPressArrowRight:function(e){e.stopPropagation()},getDefaultValue:function(){var e=this.props.initialKeyCode;if("Delete"===e||"Backspace"===e)return"";if("Enter"===e)return this.props.value;var t=e?String.fromCharCode(e):this.props.value;return t},setCaretAtEndOfInput:function(){var e=this.getInputNode(),t=e.value.length;if(e.setSelectionRange)e.setSelectionRange(t,t);else if(e.createTextRange){var s=e.createTextRange();s.moveStart("character",txt.value.length),s.collapse(),s.select()}},setTextInputFocus:function(){this.isKeyPrintable(this.props.initialKeyCode)?this.getInputNode().select():(this.getInputNode().focus(),this.setCaretAtEndOfInput())}};e.exports=t},function(e,t,s){var n={AutoComplete:s(25),DropDownEditor:s(26),SimpleTextEditor:s(27)};e.exports=n},function(e){var t={};e.exports=t},function(e,t,s){"use strict";var n=s(10),o=(n.addons.Perf,{onKeyDown:function(e){if(this.isCtrlKeyHeldDown(e))this.checkAndCall("onPressKeyWithCtrl",e);else if(this.isKeyIdentified(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},isKeyIdentified:function(e){return"Unidentified"!==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(t){t.exports=e},,,,,,,,,,,,,function(e,t,s){"use strict";var n=s(41),o=s(24),r=s(10);Object.assign||(Object.assign=s(38));var i=n({DEFINE_LIFE_CYCLE_METHOD:null,DEFINE_ONCE:null,DEFINE_MANY:null,OVERRIDE_BASE:null,DEFINE_MANY_MERGED:null}),u={getDefaultProps:i.DEFINE_LIFE_CYCLE_METHOD,propTypes:i.DEFINE_LIFE_CYCLE_METHOD,getInitialState:i.DEFINE_LIFE_CYCLE_METHOD,statics:i.DEFINE_LIFE_CYCLE_METHOD,displayName:i.DEFINE_LIFE_CYCLE_METHOD,componentWillMount:i.DEFINE_LIFE_CYCLE_METHOD,componentWillReceiveProps:i.DEFINE_LIFE_CYCLE_METHOD,shouldComponentUpdate:i.DEFINE_LIFE_CYCLE_METHOD,componentWillUpdate:i.DEFINE_LIFE_CYCLE_METHOD,componentDidUpdate:i.DEFINE_LIFE_CYCLE_METHOD,componentWillUnmount:i.DEFINE_LIFE_CYCLE_METHOD},a={},l=function(e,t){this.base=e,this.dependsOn=t},c=function(e){this.assignTo=function(t){return new l(t,e)}},p=function(e,t){Object.keys(e).forEach(function(s){if(f.isCustomProperty(s))o(e[s])&&(e[s]=f.wrapCustomMethod(s,e[s]));else{switch(u[s]){case i.DEFINE_LIFE_CYCLE_METHOD:var n={};n[s]=e[s],t.push(n);break;case i.DEFINE_MANY_MERGED:}delete e[s]}},this)},h={mix:function(e){var t=[],s={},n=f.getUniqueDependencies(e);for(var o in n)Object.assign(s,a[n[o]]);return p(s,t),e.forEach(function(e){var n={};e instanceof l?Object.assign(n,e.base):Object.assign(n,e),p(n,t),Object.assign(s,n)},this),t.push(s),t},createDependency:function(e){var t=[];for(var s in e)e[s]instanceof l?this.addAlias(s,e[s].base):this.addAlias(s,e[s]),t.push(s);var n=t.filter(function(e,t,s){return s.indexOf(e)===t});return new c(n)},addAlias:function(e,t){a[e]=t}},d=r.createClass;r.createClass=function(e){return e.mixins&&(e.mixins=h.mix(e.mixins)),d.apply(r,arguments)};var f={isCustomProperty:function(e){return!u[e]},wrapCustomMethod:function(e,t){return function(){return f.isMethodOverridden.call(this,e)?f.callOverriddenMethod.call(this,e,arguments):t.apply(this,arguments)}},checkMethodExtendedAndCall:function(e,t){return this.extended&&"function"==typeof this.extended[e]?this.extended[e].call(this,t):void 0},checkMethodImplementedAndCall:function(e,t){return this.implemented&&"function"==typeof this.implemented[e]?this.implemented[e].call(this,t):void 0},isMethodOverridden:function(e){return this.overrides&&"function"==typeof this.overrides[e]},callOverriddenMethod:function(e,t){return this.overrides[e].call(this,t)},getUniqueDependencies:function(e){var t=[];return e.forEach(function(e){e instanceof l&&(t=t.concat(e.dependsOn))},this),t.filter(function(e,t,s){return s.indexOf(e)===t})}};e.exports=h},function(e){"use strict";var t=function(e){var t={};return e&&"[object Function]"===t.toString.call(e)};e.exports=t},function(e,t,s){"use strict";var n=s(10),o=(n.addons.classSet,s(23)),r=s(5),i=s(6),u=s(43),a=s(9),l=n.PropTypes.shape({id:n.PropTypes.required,title:n.PropTypes.string}),c=n.createClass({displayName:"AutoCompleteEditor",propTypes:{options:n.PropTypes.arrayOf(l)},mixins:o.mix([a,r,i]),overrides:{checkFocus:function(){this.setTextInputFocus()},getInputNode:function(){return this.getSearchComponent().getDOMNode()},onPressEnter:function(e){var t=e[0];this.handleEnter(t)},onPressTab:function(e){var t=e[0];this.handleTab(t)}},handleTab:function(e){e.stopPropagation(),e.preventDefault(),this.isFocusedOnSuggestion()?this.handleChange(this.getFocusedSuggestion(),"Tab"):this.handleChange(null,"Tab")},handleEnter:function(e){e.stopPropagation(),e.preventDefault(),this.isFocusedOnSuggestion()||this.props.onCommit({value:this.refs.autoComplete.state.searchTerm,key:"Enter"})},getSearchComponent:function(){return this.refs.autoComplete.refs.search},isFocusedOnSuggestion:function(){var e=this.refs.autoComplete;return null!=e.state.focusedValue},getFocusedSuggestion:function(){return this.refs.autoComplete.state.focusedValue},onPressArrowDown:function(e){e.stopPropagation(),e.preventDefault()},onPressArrowUp:function(e){e.stopPropagation()},getLabel:function(e){var t=null!=this.props.label?this.props.label:"title";return"function"==typeof t?t(e):"string"==typeof t?e[t]:void 0},handleChange:function(e,t){var s={},n=this.props.value;null!=e&&(n=this.getLabel(e),this.props.valueParams&&(n=this.constuctValueFromParams(e,this.props.valueParams)),s[this.props.column.key]=n),t=t?t:"Enter",this.props.onCommit({value:n,key:t,rowDataChanged:s})},constuctValueFromParams:function(e,t){for(var s=[],n=0,o=t.length;o>n;n++)s.push(e[t[n]]);return s.join("|")},renderEditorNode:function(){var e={title:this.getDefaultValue()},t=null!=this.props.label?this.props.label:"title";return n.createElement("div",{style:this.getStyle(),onKeyDown:this.onKeyDown},n.createElement(u,{search:this.props.search,ref:"autoComplete",label:t,resultIdentifier:this.props.resultIdentifier,options:this.props.options,value:e,onChange:this.handleChange}))}});e.exports=c},function(e,t,s){"use strict";var n=s(10),o=(n.addons.classSet,s(23),s(9)),r=s(5),i=(n.addons.cloneWithProps,n.createClass({displayName:"DropDownEditor",mixins:[o,r],overrides:{getInputNode:function(){return this.refs.select.getDOMNode()}},propTypes:{options:n.PropTypes.array.isRequired},renderEditorNode:function(){return n.createElement("select",{ref:"select",style:this.getStyle(),defaultValue:this.props.value,onChange:this.onChange},this.renderOptions())},renderOptions:function(){var e=[];return this.props.options.forEach(function(t){e.push(n.createElement("option",{key:t,value:t},t))},this),e},onChange:function(e){this.props.onCommit({value:e.currentTarget.value})},onClick:function(e){e.stopPropagation(),e.preventDefault()}}));e.exports=i},function(e,t,s){"use strict";var n=s(10),o=(n.addons.classSet,s(23),s(5)),r=s(6),i=s(9),u=n.createClass({displayName:"SimpleTextEditor",mixins:[i,o,r],overrides:{checkFocus:function(){this.setTextInputFocus()}},renderEditorNode:function(){return n.createElement("input",{type:"text",onBlur:this.commit,className:"form-control",defaultValue:this.getDefaultValue(),style:this.getStyle(),onKeyDown:this.onKeyDown})}});e.exports=u},,,,,,,,,,,function(e){"use strict";function t(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){for(var s,n,o=t(e),r=1;r<arguments.length;r++){s=arguments[r],n=Object.keys(Object(s));for(var i=0;i<n.length;i++)o[n[i]]=s[n[i]]}return o}},,,function(e,t,s){(function(t){"use strict";var n=s(51),o=function(e){var s,o={};"production"!==t.env.NODE_ENV?n(e instanceof Object&&!Array.isArray(e),"keyMirror(...): Argument must be an object."):n(e instanceof Object&&!Array.isArray(e));for(s in e)e.hasOwnProperty(s)&&(o[s]=s);return o};e.exports=o}).call(t,s(52))},,function(e,t,s){!function(t,n){e.exports=n(s(10))}(this,function(e){return function(e){function t(n){if(s[n])return s[n].exports;var o=s[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var s={};return t.m=e,t.c=s,t.p="",t(0)}([function(e,t,s){"use strict";function n(e,t,s){if(!e)return s(null,[]);t=new RegExp(t,"i");for(var n=[],o=0,r=e.length;r>o;o++)t.exec(e[o].title)&&n.push(e[o]);s(null,n)}var o=s(1),r=o.addons.classSet,i=o.createClass({displayName:"Autocomplete",propTypes:{options:o.PropTypes.any,search:o.PropTypes.func,resultRenderer:o.PropTypes.oneOfType([o.PropTypes.component,o.PropTypes.func]),value:o.PropTypes.object,onChange:o.PropTypes.func,onError:o.PropTypes.func},getDefaultProps:function(){return{search:n}},getInitialState:function(){var e=this.props.searchTerm?this.props.searchTerm:this.props.value?this.props.value.title:"";return{results:[],showResults:!1,showResultsInProgress:!1,searchTerm:e,focusedValue:null}},getResultIdentifier:function(e){return void 0===this.props.resultIdentifier?e.id:e[this.props.resultIdentifier]},render:function(){var e=r(this.props.className,"react-autocomplete-Autocomplete",this.state.showResults?"react-autocomplete-Autocomplete--resultsShown":void 0),t={position:"relative",outline:"none"};return o.createElement("div",{tabIndex:"1",className:e,onFocus:this.onFocus,onBlur:this.onBlur,style:t},o.createElement("input",{ref:"search",className:"react-autocomplete-Autocomplete__search",style:{width:"100%"},onClick:this.showAllResults,onChange:this.onQueryChange,onFocus:this.showAllResults,onBlur:this.onQueryBlur,onKeyDown:this.onQueryKeyDown,value:this.state.searchTerm}),o.createElement(u,{className:"react-autocomplete-Autocomplete__results",onSelect:this.onValueChange,onFocus:this.onValueFocus,results:this.state.results,focusedValue:this.state.focusedValue,show:this.state.showResults,renderer:this.props.resultRenderer,label:this.props.label,resultIdentifier:this.props.resultIdentifier}))},componentWillReceiveProps:function(e){var t=e.searchTerm?e.searchTerm:e.value?e.value.title:"";this.setState({searchTerm:t})},componentWillMount:function(){this.blurTimer=null},showResults:function(e){this.setState({showResultsInProgress:!0}),this.props.search(this.props.options,e.trim(),this.onSearchComplete)},showAllResults:function(){this.state.showResultsInProgress||this.state.showResults||this.showResults("")},onValueChange:function(e){var t={value:e,showResults:!1};e&&(t.searchTerm=e.title),this.setState(t),this.props.onChange&&this.props.onChange(e)},onSearchComplete:function(e,t){if(e){if(!this.props.onError)throw e;this.props.onError(e)}this.setState({showResultsInProgress:!1,showResults:!0,results:t})},onValueFocus:function(e){this.setState({focusedValue:e})},onQueryChange:function(e){var t=e.target.value;this.setState({searchTerm:t,focusedValue:null}),this.showResults(t)},onFocus:function(){this.blurTimer&&(clearTimeout(this.blurTimer),this.blurTimer=null),this.refs.search.getDOMNode().focus()},onBlur:function(){this.blurTimer=setTimeout(function(){this.isMounted()&&this.setState({showResults:!1})}.bind(this),100)},onQueryKeyDown:function(e){if("Enter"===e.key)e.preventDefault(),this.state.focusedValue&&this.onValueChange(this.state.focusedValue);else if("ArrowUp"===e.key&&this.state.showResults){e.preventDefault();var t=Math.max(this.focusedValueIndex()-1,0);this.setState({focusedValue:this.state.results[t]})}else if("ArrowDown"===e.key)if(e.preventDefault(),this.state.showResults){var s=Math.min(this.focusedValueIndex()+(this.state.showResults?1:0),this.state.results.length-1);this.setState({showResults:!0,focusedValue:this.state.results[s]})}else this.showAllResults()},focusedValueIndex:function(){if(!this.state.focusedValue)return-1;for(var e=0,t=this.state.results.length;t>e;e++)if(this.getResultIdentifier(this.state.results[e])===this.getResultIdentifier(this.state.focusedValue))return e;return-1}}),u=o.createClass({displayName:"Results",getResultIdentifier:function(e){if(void 0===this.props.resultIdentifier){if(!e.id)throw"id property not found on result. You must specify a resultIdentifier and pass as props to autocomplete component";return e.id}return e[this.props.resultIdentifier]},render:function(){var e={display:this.props.show?"block":"none",position:"absolute",listStyleType:"none"},t=this.props,s=t.className,n=function(e,t){var s={},n=Object.prototype.hasOwnProperty;if(null==e)throw new TypeError;for(var o in e)n.call(e,o)&&!n.call(t,o)&&(s[o]=e[o]);return s}(t,{className:1});return o.createElement("ul",o.__spread({},n,{style:e,className:s+" react-autocomplete-Results"}),this.props.results.map(this.renderResult))},renderResult:function(e){var t=this.props.focusedValue&&this.getResultIdentifier(this.props.focusedValue)===this.getResultIdentifier(e),s=this.props.renderer||a;return s({ref:t?"focused":void 0,key:this.getResultIdentifier(e),result:e,focused:t,onMouseEnter:this.onMouseEnterResult,onClick:this.props.onSelect,label:this.props.label})},componentDidUpdate:function(){this.scrollToFocused()},componentDidMount:function(){this.scrollToFocused()},componentWillMount:function(){this.ignoreFocus=!1},scrollToFocused:function(){var e=this.refs&&this.refs.focused;if(e){var t=this.getDOMNode(),s=t.scrollTop,n=t.offsetHeight,o=e.getDOMNode(),r=o.offsetTop,i=r+o.offsetHeight;s>r?(this.ignoreFocus=!0,t.scrollTop=r):i-s>n&&(this.ignoreFocus=!0,t.scrollTop=i-n)}},onMouseEnterResult:function(e,t){if(this.ignoreFocus)this.ignoreFocus=!1;else{var s=this.getDOMNode(),n=s.scrollTop,o=s.offsetHeight,r=e.target,i=r.offsetTop,u=i+r.offsetHeight;u>n&&n+o>i&&this.props.onFocus(t)}}}),a=o.createClass({displayName:"Result",getDefaultProps:function(){return{label:function(e){return e.title}}},getLabel:function(e){return"function"==typeof this.props.label?this.props.label(e):"string"==typeof this.props.label?e[this.props.label]:void 0},render:function(){var e=r({"react-autocomplete-Result":!0,"react-autocomplete-Result--active":this.props.focused});return o.createElement("li",{style:{listStyleType:"none"},className:e,onClick:this.onClick,onMouseEnter:this.onMouseEnter},o.createElement("a",null,this.getLabel(this.props.result)))},onClick:function(){this.props.onClick(this.props.result)},onMouseEnter:function(e){this.props.onMouseEnter&&this.props.onMouseEnter(e,this.props.result)},shouldComponentUpdate:function(e){return e.result.id!==this.props.result.id||e.focused!==this.props.focused}});e.exports=i},function(t){t.exports=e}])})},,,,,,,,function(e,t,s){(function(t){"use strict";var s=function(e,s,n,o,r,i,u,a){if("production"!==t.env.NODE_ENV&&void 0===s)throw new Error("invariant requires an error message argument");if(!e){var l;if(void 0===s)l=new Error("Minified exception occurred; use the non-minified dev environment for the full error message and additional helpful warnings.");else{var c=[n,o,r,i,u,a],p=0;l=new Error("Invariant Violation: "+s.replace(/%s/g,function(){return c[p++]}))}throw l.framesToPop=1,l}};e.exports=s}).call(t,s(52))},function(e){function t(){}var s=e.exports={};s.nextTick=function(){var e="undefined"!=typeof window&&window.setImmediate,t="undefined"!=typeof window&&window.MutationObserver,s="undefined"!=typeof window&&window.postMessage&&window.addEventListener;if(e)return function(e){return window.setImmediate(e)};var n=[];if(t){var o=document.createElement("div"),r=new MutationObserver(function(){var e=n.slice();n.length=0,e.forEach(function(e){e()})});return r.observe(o,{attributes:!0}),function(e){n.length||o.setAttribute("yes","no"),n.push(e)}}return s?(window.addEventListener("message",function(e){var t=e.source;if((t===window||null===t)&&"process-tick"===e.data&&(e.stopPropagation(),n.length>0)){var s=n.shift();s()}},!0),function(e){n.push(e),window.postMessage("process-tick","*")}):function(e){setTimeout(e,0)}}(),s.title="browser",s.browser=!0,s.env={},s.argv=[],s.on=t,s.addListener=t,s.once=t,s.off=t,s.removeListener=t,s.removeAllListeners=t,s.emit=t,s.binding=function(){throw new Error("process.binding is not supported")},s.cwd=function(){return"/"},s.chdir=function(){throw new Error("process.chdir is not supported")}}])}); |
{ | ||
"name": "adazzle-react-grid", | ||
"version": "0.12.1", | ||
"version": "0.12.2", | ||
"description": "Data grid for React", | ||
@@ -5,0 +5,0 @@ "main": "src/index.js", |
Sorry, the diff of this file is too big to display
262125
5547