dtd
Version:
根据数梦工场视觉规范打造的组件库,感谢react-components和ant design
1 lines • 11.1 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var _classCallCheck2=require("babel-runtime/helpers/classCallCheck"),_classCallCheck3=_interopRequireDefault(_classCallCheck2),_createClass2=require("babel-runtime/helpers/createClass"),_createClass3=_interopRequireDefault(_createClass2),_possibleConstructorReturn2=require("babel-runtime/helpers/possibleConstructorReturn"),_possibleConstructorReturn3=_interopRequireDefault(_possibleConstructorReturn2),_inherits2=require("babel-runtime/helpers/inherits"),_inherits3=_interopRequireDefault(_inherits2),_react=require("react"),React=_interopRequireWildcard(_react),_propTypes=require("prop-types"),PropTypes=_interopRequireWildcard(_propTypes),_Pager=require("./Pager"),_Pager2=_interopRequireDefault(_Pager),_Options=require("./Options"),_Options2=_interopRequireDefault(_Options),_KeyCode=require("./KeyCode"),_KeyCode2=_interopRequireDefault(_KeyCode),_zh_CN=require("./locale/zh_CN"),_zh_CN2=_interopRequireDefault(_zh_CN);function _interopRequireWildcard(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&(t[r]=e[r]);return t.default=e,t}function _interopRequireDefault(e){return e&&e.__esModule?e:{default:e}}function noop(){}function isInteger(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e}function defaultItemRender(e,t,r){return r}var Pagination=function(e){function s(e){(0,_classCallCheck3.default)(this,s);var a=(0,_possibleConstructorReturn3.default)(this,(s.__proto__||Object.getPrototypeOf(s)).call(this,e));a.savePaginationNode=function(e){a.paginationNode=e},a.calculatePage=function(e){var t=e,r=a.props.total||0;return void 0===t&&(t=a.state.pageSize),Math.floor((r-1)/t)+1},a.isValid=function(e){return isInteger(e)&&1<=e&&e!==a.state.current},a.handleKeyDown=function(e){e.keyCode!==_KeyCode2.default.ARROW_UP&&e.keyCode!==_KeyCode2.default.ARROW_DOWN||e.preventDefault()},a.handleKeyUp=function(e){var t=e.target.value,r=a.state.currentInputValue,n=void 0;(n=""===t?t:isNaN(Number(t))?r:Number(t))!==r&&a.setState({currentInputValue:n}),e.keyCode===_KeyCode2.default.ENTER?a.handleChange(n):e.keyCode===_KeyCode2.default.ARROW_UP?a.handleChange(n-1):e.keyCode===_KeyCode2.default.ARROW_DOWN&&a.handleChange(n+1)},a.changePageSize=function(e){var t=a.state.current,r=a.calculatePage(e);t=r<t?r:t,"number"==typeof e&&("pageSize"in a.props||a.setState({pageSize:e}),"current"in a.props||a.setState({current:t,currentInputValue:t}));var n=a.props.onShowSizeChange;n&&n(t,e)},a.handleChange=function(e){var t=e;if(a.isValid(t)){t>a.calculatePage()&&(t=a.calculatePage()),"current"in a.props||a.setState({current:t,currentInputValue:t});var r=a.state.pageSize;return a.props.onChange&&a.props.onChange(t,r),t}return a.state.current},a.prev=function(){a.hasPrev()&&a.handleChange(a.state.current-1)},a.next=function(){a.hasNext()&&a.handleChange(a.state.current+1)},a.jumpPrev=function(){a.handleChange(a.getJumpPrevPage())},a.jumpNext=function(){a.handleChange(a.getJumpNextPage())},a.hasPrev=function(){return 1<a.state.current},a.hasNext=function(){return a.state.current<a.calculatePage()},a.runIfEnter=function(e,t){for(var r=arguments.length,n=Array(2<r?r-2:0),a=2;a<r;a++)n[a-2]=arguments[a];"Enter"!==e.key&&13!==e.charCode||t.apply(void 0,n)},a.runIfEnterPrev=function(e){a.runIfEnter(e,a.prev)},a.runIfEnterNext=function(e){a.runIfEnter(e,a.next)},a.runIfEnterJumpPrev=function(e){a.runIfEnter(e,a.jumpPrev)},a.runIfEnterJumpNext=function(e){a.runIfEnter(e,a.jumpNext)},a.handleGoTO=function(e){e.keyCode!==_KeyCode2.default.ENTER&&"click"!==e.type||a.handleChange(a.state.currentInputValue)};var t=e.onChange!==noop;"current"in e&&!t&&console.warn("Warning: You provided a `current` prop to a Pagination component without an `onChange` handler. This will render a read-only component.");var r=e.defaultCurrent;"current"in e&&(r=e.current);var n=e.defaultPageSize;return"pageSize"in e&&(n=e.pageSize),a.state={current:r,currentInputValue:r,pageSize:n},a}return(0,_inherits3.default)(s,e),(0,_createClass3.default)(s,[{key:"componentWillReceiveProps",value:function(e){if("current"in e&&this.setState({current:e.current,currentInputValue:e.current}),"pageSize"in e){var t={},r=this.state.current,n=this.calculatePage(e.pageSize);r=n<r?n:r,"current"in e||(t.current=r,t.currentInputValue=r),t.pageSize=e.pageSize,this.setState(t)}}},{key:"componentDidUpdate",value:function(e,t){var r=this.props.prefixCls;if(t.current!==this.state.current&&this.paginationNode){var n=this.paginationNode.querySelector("."+r+"-item-"+t.current);n&&document.activeElement===n&&n.blur()}}},{key:"getJumpPrevPage",value:function(){return Math.max(1,this.state.current-(this.props.showLessItems?3:5))}},{key:"getJumpNextPage",value:function(){return Math.min(this.calculatePage(),this.state.current+(this.props.showLessItems?3:5))}},{key:"render",value:function(){if(!0===this.props.hideOnSinglePage&&(this.props.total||0)<=this.state.pageSize)return null;var e=this.props,t=e.locale,r=void 0===t?{}:t,n=e.itemRender,a=void 0===n?defaultItemRender:n,s=e.pageSizeOptions,i=void 0===s?["10","20","30","40"]:s,l=e.prefixCls,o=this.calculatePage(),u=[],p=null,c=null,h=null,m=null,d=null,f=e.showQuickJumper&&e.goButton,g=e.showLessItems?1:2,C=this.state,P=C.current,y=C.pageSize,v=0<P-1?P-1:0,_=P+1<o?P+1:o;if(e.simple)return f&&(d="boolean"==typeof f?React.createElement("button",{type:"button",onClick:this.handleGoTO,onKeyUp:this.handleGoTO},r.jump_to_confirm):React.createElement("span",{onClick:this.handleGoTO,onKeyUp:this.handleGoTO},f),d=React.createElement("li",{title:e.showTitle?""+r.jump_to+this.state.current+"/"+o:"",className:l+"-simple-pager"},d)),React.createElement("ul",{className:l+" "+l+"-simple "+e.className,style:e.style},React.createElement("li",{title:e.showTitle?r.prev_page:"",onClick:this.prev,tabIndex:this.hasPrev()?0:-1,onKeyPress:this.runIfEnterPrev,className:(this.hasPrev()?"":l+"-disabled")+" "+l+"-prev","aria-disabled":!this.hasPrev()},a(v,"prev",React.createElement("a",{className:l+"-item-link"}))),React.createElement("li",{title:e.showTitle?this.state.current+"/"+o:"",className:l+"-simple-pager"},React.createElement("input",{type:"text",value:this.state.currentInputValue,onKeyDown:this.handleKeyDown,onKeyUp:this.handleKeyUp,onChange:this.handleKeyUp,size:3}),React.createElement("span",{className:l+"-slash"},"/"),o),React.createElement("li",{title:e.showTitle?r.next_page:"",onClick:this.next,tabIndex:this.hasPrev()?0:-1,onKeyPress:this.runIfEnterNext,className:(this.hasNext()?"":l+"-disabled")+" "+l+"-next","aria-disabled":!this.hasNext()},a(_,"next",React.createElement("a",{className:l+"-item-link"}))),d);if(o<=5+2*g)for(var R=1;R<=o;R++){var x=this.state.current===R;u.push(React.createElement(_Pager2.default,{locale:r,rootPrefixCls:l,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:R,page:R,active:x,showTitle:e.showTitle,itemRender:a}))}else{var N=e.showLessItems?r.prev_3:r.prev_5,T=e.showLessItems?r.next_3:r.next_5;e.showPrevNextJumpers&&(p=React.createElement("li",{title:e.showTitle?N:"",key:"prev",onClick:this.jumpPrev,tabIndex:0,onKeyPress:this.runIfEnterJumpPrev,className:l+"-jump-prev"},a(this.getJumpPrevPage(),"jump-prev",React.createElement("a",{className:l+"-item-link"}))),c=React.createElement("li",{title:e.showTitle?T:"",key:"next",tabIndex:0,onClick:this.jumpNext,onKeyPress:this.runIfEnterJumpNext,className:l+"-jump-next"},a(this.getJumpNextPage(),"jump-next",React.createElement("a",{className:l+"-item-link"})))),m=React.createElement(_Pager2.default,{locale:r,rootPrefixCls:l,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:o,page:o,active:!1,showTitle:e.showTitle,itemRender:a}),h=React.createElement(_Pager2.default,{locale:r,rootPrefixCls:l,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:1,page:1,active:!1,showTitle:e.showTitle,itemRender:a});var E=Math.max(1,P-g),b=Math.min(P+g,o);P-1<=g&&(b=1+2*g),o-P<=g&&(E=o-2*g);for(var k=E;k<=b;k++){var w=P===k;u.push(React.createElement(_Pager2.default,{locale:r,rootPrefixCls:l,onClick:this.handleChange,onKeyPress:this.runIfEnter,key:k,page:k,active:w,showTitle:e.showTitle,itemRender:a}))}2*g<=P-1&&3!==P&&(u[0]=React.cloneElement(u[0],{className:l+"-item-after-jump-prev"}),u.unshift(p)),2*g<=o-P&&P!==o-2&&(u[u.length-1]=React.cloneElement(u[u.length-1],{className:l+"-item-before-jump-next"}),u.push(c)),1!==E&&u.unshift(h),b!==o&&u.push(m)}var S=null;if(e.showTotal){var I=e.total||0;S=React.createElement("li",{className:l+"-total-text"},e.showTotal(I,[(P-1)*y+1,I<P*y?I:P*y]))}var z=!this.hasPrev(),O=!this.hasNext();return React.createElement("ul",{className:l+" "+e.className,style:e.style,ref:this.savePaginationNode},S,React.createElement(_Options2.default,{locale:r,rootPrefixCls:l,selectComponentClass:e.selectComponentClass,selectPrefixCls:e.selectPrefixCls,changeSize:this.props.showSizeChanger?this.changePageSize:null,current:this.state.current,pageSize:this.state.pageSize,pageSizeOptions:i,getPopupContainer:e.getPopupContainer,quickGo:null,goButton:!1}),React.createElement("li",{title:e.showTitle?r.prev_page:"",onClick:this.prev,tabIndex:z?void 0:0,onKeyPress:this.runIfEnterPrev,className:(z?l+"-disabled":"")+" "+l+"-prev","aria-disabled":z},a(v,"prev",React.createElement("a",{className:l+"-item-link"}))),u,React.createElement("li",{title:e.showTitle?r.next_page:"",onClick:this.next,tabIndex:O?void 0:0,onKeyPress:this.runIfEnterNext,className:(O?l+"-disabled":"")+" "+l+"-next","aria-disabled":O},a(_,"next",React.createElement("a",{className:l+"-item-link"}))),React.createElement(_Options2.default,{locale:r,rootPrefixCls:l,selectComponentClass:e.selectComponentClass,selectPrefixCls:e.selectPrefixCls,changeSize:null,current:this.state.current,pageSize:this.state.pageSize,pageSizeOptions:i,quickGo:this.props.showQuickJumper?this.handleChange:null,goButton:f}))}}]),s}(React.Component);(exports.default=Pagination).propTypes={prefixCls:PropTypes.string,current:PropTypes.number,defaultCurrent:PropTypes.number,total:PropTypes.number,pageSize:PropTypes.number,defaultPageSize:PropTypes.number,onChange:PropTypes.func,hideOnSinglePage:PropTypes.bool,showSizeChanger:PropTypes.bool,showLessItems:PropTypes.bool,onShowSizeChange:PropTypes.func,selectComponentClass:PropTypes.func,showPrevNextJumpers:PropTypes.bool,showQuickJumper:PropTypes.oneOfType([PropTypes.bool,PropTypes.object]),showTitle:PropTypes.bool,pageSizeOptions:PropTypes.arrayOf(PropTypes.string),showTotal:PropTypes.func,locale:PropTypes.object,style:PropTypes.object,itemRender:PropTypes.func,getPopupContainer:PropTypes.func},Pagination.defaultProps={defaultCurrent:1,total:0,defaultPageSize:10,onChange:noop,className:"",selectPrefixCls:"rc-select",prefixCls:"rc-pagination",selectComponentClass:null,hideOnSinglePage:!1,showPrevNextJumpers:!0,showQuickJumper:!1,showSizeChanger:!1,showLessItems:!1,showTitle:!0,onShowSizeChange:noop,locale:_zh_CN2.default,style:{},itemRender:defaultItemRender,getPopupContainer:function(e){return e.parentNode}},module.exports=exports.default;