Files
react-table/react-table.js
2016-10-25 23:36:59 -06:00

7 lines
11 KiB
JavaScript
Raw Permalink Blame History

This file contains invisible Unicode characters
This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.reactTable = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
"use strict";function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function remove(e,t){return e.filter(function(a,s){var n=t(a);return!!n&&(e.splice(s,1),!0)})}function get(e,t){return isArray(t)&&(t=t.join(".")),t.replace("[",".").replace("]","").split(".").reduce(function(e,t){return e[t]},e)}function takeRight(e,t){var a=t>e.length?0:e.length-t;return e.slice(a)}function last(e){return e[e.length-1]}function range(e){for(var t=[],a=0;a<e;a++)t.push(e);return t}function orderBy(e,t,a){return e.sort(function(e,s){for(var n=0;n<t.length;n++){var r=t[n],i=r(e),o=r(s),c=a[n]===!1||"desc"===a[n];if(i>o)return c?-1:1;if(i<o)return c?1:-1}return 0})}function clone(e){return JSON.parse(JSON.stringify(e,function(e,t){return"function"==typeof t?t.toString():t}))}function isArray(e){return Array.isArray(e)}Object.defineProperty(exports,"__esModule",{value:!0}),exports.ReactTableDefaults=void 0;var _extends=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var a=arguments[t];for(var s in a)Object.prototype.hasOwnProperty.call(a,s)&&(e[s]=a[s])}return e},_react=require("react"),_react2=_interopRequireDefault(_react),_classnames=require("classnames"),_classnames2=_interopRequireDefault(_classnames),_={get:get,takeRight:takeRight,last:last,orderBy:orderBy,range:range,clone:clone,remove:remove},defaultButton=function(e){return _react2.default.createElement("button",_extends({},e,{className:"-btn"}),e.children)},ReactTableDefaults=exports.ReactTableDefaults={className:"-striped -highlight",tableClassName:"",theadClassName:"",tbodyClassName:"",trClassName:"",paginationClassName:"",pageSize:20,minRows:0,column:{sortable:!0,show:!0},previousText:"Previous",nextText:"Next",loadingText:"Loading...",tableComponent:function(e){return _react2.default.createElement("table",e,e.children)},theadComponent:function(e){return _react2.default.createElement("thead",e,e.children)},tbodyComponent:function(e){return _react2.default.createElement("tbody",e,e.children)},trComponent:function(e){return _react2.default.createElement("tr",e,e.children)},thComponent:function(e){return _react2.default.createElement("th",e,e.children)},tdComponent:function(e){return _react2.default.createElement("td",e,e.children)},previousComponent:null,nextComponent:null,data:[]};exports.default=_react2.default.createClass({displayName:"src",getDefaultProps:function(){return ReactTableDefaults},getInitialState:function(){return{sorting:!1}},componentWillMount:function(){this.update(this.props)},componentWillReceiveProps:function(e){this.update(e)},update:function(e){var t={loading:!1,page:0,pages:-1};this.setState(t);var a=Object.assign({},this.state,t);this.isAsync="function"==typeof e.data,this.buildColumns(e,a),this.buildData(e,a)},buildColumns:function(e){var t=this;this.hasHeaderGroups=!1,e.columns.forEach(function(e){e.columns&&(t.hasHeaderGroups=!0)}),this.headerGroups=[],this.decoratedColumns=[];var a=[],s=function(e){var s=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};t.headerGroups.push(Object.assign({},s,{columns:e})),a=[]},n=function(e){var a=Object.assign({},t.props.column,e);return"string"==typeof a.accessor&&!function(){a.id=a.id||a.accessor;var e=a.accessor;a.accessor=function(t){return _.get(t,e)}}(),a.id||console.warn("No column ID found for column: ",a),a.accessor||console.warn("No column accessor found for column: ",a),a};e.columns.forEach(function(e,r){e.columns?(e.columns.forEach(function(e){t.decoratedColumns.push(n(e))}),t.hasHeaderGroups&&(a.length>0&&s(a),s(_.takeRight(t.decoratedColumns,e.columns.length),e))):(t.decoratedColumns.push(n(e)),a.push(_.last(t.decoratedColumns)))}),this.hasHeaderGroups&&a.length>0&&s(a)},getInitSorting:function(){var e=this.decoratedColumns.filter(function(e){return"undefined"!=typeof e.sort}).map(function(e){return{id:e.id,asc:"asc"===e.sort}});return e.length?e:[{id:this.decoratedColumns[0].id,asc:!0}]},buildData:function(e,t){var a=this,s=t.sorting===!1?this.getInitSorting():t.sorting,n=function(e){a.setState({sorting:s,data:e,page:t.page,loading:!1})};if(this.isAsync){this.setState({loading:!0});var r=function(e){if(!e)return Promise.reject("Uh Oh! Nothing was returned in ReactTable's data callback!");e.pages&&a.setState({pages:e.pages});var t=a.accessData(e.rows);n(t)},i=e.data({sorting:s,page:t.page||0,pageSize:e.pageSize,pages:t.pages},r);i&&i.then&&i.then(r)}else{var o=this.accessData(e.data),c=this.sortData(o,s);n(c)}},accessData:function(e){var t=this;return e.map(function(e,a){var s={__original:e,__index:a};return t.decoratedColumns.forEach(function(t){s[t.id]=t.accessor(e)}),s})},sortData:function(e,t){var a=t.length?t:this.getInitSorting();return _.orderBy(e,a.map(function(e){return function(t){return null===t[e.id]||void 0===t[e.id]?-(1/0):"string"==typeof t[e.id]?t[e.id].toLowerCase():t[e.id]}}),a.map(function(e){return e.asc?"asc":"desc"}))},setPage:function(e){return this.isAsync?this.buildData(this.props,Object.assign({},this.state,{page:e})):void this.setState({page:e})},render:function(){var e=this,t=this.state.data?this.state.data:[],a=this.isAsync?this.state.pages:Math.ceil(t.length/this.props.pageSize),s=this.props.pageSize*this.state.page,n=s+this.props.pageSize,r=this.isAsync?t.slice(0,this.props.pageSize):t.slice(s,n),i=a>1?_.range(this.props.pageSize-r.length):this.props.minRows?_.range(Math.max(this.props.minRows-r.length,0)):[],o=this.state.page>0,c=this.state.page+1<a,l=this.props.tableComponent,u=this.props.theadComponent,d=this.props.tbodyComponent,p=this.props.trComponent,h=this.props.thComponent,f=this.props.tdComponent,m=this.props.previousComponent||defaultButton,g=this.props.nextComponent||defaultButton;return _react2.default.createElement("div",{className:(0,_classnames2.default)(this.props.className,"ReactTable")},_react2.default.createElement(l,{className:(0,_classnames2.default)(this.props.tableClassName)},this.hasHeaderGroups&&_react2.default.createElement(u,{className:(0,_classnames2.default)(this.props.theadClassName,"-headerGroups")},_react2.default.createElement(p,{className:this.props.trClassName},this.headerGroups.map(function(t,a){return _react2.default.createElement(h,{key:a,className:(0,_classnames2.default)(t.className),colSpan:t.columns.length},_react2.default.createElement("div",{className:(0,_classnames2.default)(t.innerClassName,"-th-inner")},"function"==typeof t.header?_react2.default.createElement(t.header,{data:e.props.data,column:t}):t.header))}))),_react2.default.createElement(u,{className:(0,_classnames2.default)(this.props.theadClassName)},_react2.default.createElement(p,{className:this.props.trClassName},this.decoratedColumns.map(function(t,a){var s=e.state.sorting.find(function(e){return e.id===t.id}),n="function"==typeof t.show?t.show():t.show;return _react2.default.createElement(h,{key:a,className:(0,_classnames2.default)(t.className,s?s.asc?"-sort-asc":"-sort-desc":"",{"-cursor-pointer":t.sortable,"-hidden":!n}),onClick:function(a){t.sortable&&e.sortColumn(t,a.shiftKey)}},_react2.default.createElement("div",{className:(0,_classnames2.default)(t.innerClassName,"-th-inner"),style:{width:t.width+"px",minWidth:t.minWidth+"px"}},"function"==typeof t.header?_react2.default.createElement(t.header,{data:e.props.data,column:t}):t.header))}))),_react2.default.createElement(d,{className:(0,_classnames2.default)(this.props.tbodyClassName)},r.map(function(t,a){return _react2.default.createElement(p,{className:(0,_classnames2.default)(e.props.trClassName),key:a},e.decoratedColumns.map(function(e,s){var n=e.render,r="function"==typeof e.show?e.show():e.show;return _react2.default.createElement(f,{className:(0,_classnames2.default)(e.className,{hidden:!r}),key:s},_react2.default.createElement("div",{className:(0,_classnames2.default)(e.innerClassName,"-td-inner"),style:{width:e.width+"px",minWidth:e.minWidth+"px"}},"function"==typeof n?_react2.default.createElement(n,{value:t[e.id],row:t.__original,index:t.__index,viewIndex:a}):"undefined"!=typeof n?n:t[e.id]))}))}),i.map(function(t,a){return _react2.default.createElement(p,{className:(0,_classnames2.default)(e.props.trClassName,"-padRow"),key:a},e.decoratedColumns.map(function(e,t){var a="function"==typeof e.show?e.show():e.show;return _react2.default.createElement(f,{className:(0,_classnames2.default)(e.className,{hidden:!a}),key:t},_react2.default.createElement("div",{className:(0,_classnames2.default)(e.innerClassName,"-td-inner"),style:{width:e.width+"px",minWidth:e.minWidth+"px"}}," "))}))}))),a>1&&_react2.default.createElement("div",{className:(0,_classnames2.default)(this.props.paginationClassName,"-pagination")},_react2.default.createElement("div",{className:"-left"},_react2.default.createElement(m,{onClick:o&&function(t){return e.previousPage(t)},disabled:!o},this.props.previousText)),_react2.default.createElement("div",{className:"-center"},"Page ",this.state.page+1," of ",a),_react2.default.createElement("div",{className:"-right"},_react2.default.createElement(g,{onClick:c&&function(t){return e.nextPage(t)},disabled:!c},this.props.nextText))),_react2.default.createElement("div",{className:(0,_classnames2.default)("-loading",{"-active":this.state.loading})},_react2.default.createElement("div",{className:"-loading-inner"},this.props.loadingText)))},sortColumn:function(e,t){var a=this.state.sorting||[],s=_.clone(this.state.sorting||[]),n=s.findIndex(function(t){return t.id===e.id});if(n>-1){var r=s[n];r.asc?(r.asc=!1,t||(s=[r])):t?s.splice(n,1):(r.asc=!0,s=[r])}else t?s.push({id:e.id,asc:!0}):s=[{id:e.id,asc:!0}];var i=0===n||!a.length&&s.length||!t?0:this.state.page;this.buildData(this.props,Object.assign({},this.state,{page:i,sorting:s}))},nextPage:function(e){e.preventDefault(),this.setPage(this.state.page+1)},previousPage:function(e){e.preventDefault(),this.setPage(this.state.page-1)}});
},{"classnames":2,"react":"react"}],2:[function(require,module,exports){
!function(){"use strict";function e(){for(var r=[],o=0;o<arguments.length;o++){var f=arguments[o];if(f){var i=typeof f;if("string"===i||"number"===i)r.push(f);else if(Array.isArray(f))r.push(e.apply(null,f));else if("object"===i)for(var t in f)n.call(f,t)&&f[t]&&r.push(t)}}return r.join(" ")}var n={}.hasOwnProperty;"undefined"!=typeof module&&module.exports?module.exports=e:"function"==typeof define&&"object"==typeof define.amd&&define.amd?define("classnames",[],function(){return e}):window.classNames=e}();
},{}]},{},[1])(1)
});