├── .gitignore
├── dist
├── imags
│ ├── result.png
│ └── pagination.gif
├── view
│ └── pagination.html
├── css
│ └── pagination.css
└── js
│ └── vendors.js
├── src
├── pagination.html
├── router
│ └── routeConfigOne.js
├── index.js
├── util
│ └── mockApi.js
├── css
│ └── main.css
└── components
│ ├── pageComponent.jsx
│ └── pagination.jsx
├── .babelrc
├── README.md
├── package.json
└── webpack.config.js
/.gitignore:
--------------------------------------------------------------------------------
1 | /node_modules
2 | .idea
3 | .git
4 | .git-credentials
--------------------------------------------------------------------------------
/dist/imags/result.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Silence11/reactPagination/HEAD/dist/imags/result.png
--------------------------------------------------------------------------------
/dist/imags/pagination.gif:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/Silence11/reactPagination/HEAD/dist/imags/pagination.gif
--------------------------------------------------------------------------------
/src/pagination.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/router/routeConfigOne.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by xiajing on 2016/9/22.
3 | */
4 | export default{
5 | childRoutes: [
6 | { path:'/',
7 | indexRoute:{component:require('../components/pagination.jsx').default}//默认路由
8 | }
9 | ]
10 | }
--------------------------------------------------------------------------------
/.babelrc:
--------------------------------------------------------------------------------
1 | {
2 | "presets": [ "es2015", "stage-0"],
3 |
4 | /* if you want to use babel runtime, uncomment the following line */
5 | "plugins": ["transform-runtime","react-html-attrs"],
6 |
7 | "env": {
8 | "build": {
9 | "optional": ["optimisation", "minification"]
10 | }
11 | }
12 | }
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # reactPagination
2 | 一款简单的react 组件实现的分页,clone后直接访问dist文件夹下的/view/pagination.html页面就能看到效果。
3 |
4 | 
5 | ###数据说明
6 | * 因数据是使用mock.js 模拟生成的,可以刷新看不到不同的记录数
7 | * mock 学习文档 http://mockjs.com/
8 |
9 | ###运行项目
10 | * npm install //初始化下载依赖包
11 | * npm run build //启动程序
12 |
--------------------------------------------------------------------------------
/dist/view/pagination.html:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/index.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by xiajing on 2016/9/22.
3 | */
4 | import React from 'react'
5 | import { Router, Route, Link ,hashHistory, Redirect, IndexRoute } from 'react-router'
6 | import ReactDOM from 'react-dom';
7 | import routes from './router/routeConfigOne.js';
8 | import './css/main.css';
9 | ReactDOM.render(, document.getElementById('paging'))
--------------------------------------------------------------------------------
/src/util/mockApi.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by xiajing on 2016/9/23.
3 | */
4 | import Mock from 'mockjs';
5 | //首页自定义数据接口 采用array的方式
6 | module.exports = {
7 | getIndexList(){
8 | var template ={
9 | "array|1-20":[
10 | {
11 | 'scoreChinese|+1':[
12 | '70'
13 | ],
14 | 'scoreMath|+1':[
15 | '90'
16 | ],
17 | 'scoreEnglish|+1':[
18 | '80'
19 | ]
20 | }
21 | ]
22 | }
23 | Mock.mock(/\.json/,template)
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "react-router-webpack",
3 | "version": "1.0.0",
4 | "description": "webpack build react-router demo",
5 | "main": "index.js",
6 | "scripts": {
7 | "test": "echo \"Error: no test specified\" && exit 1",
8 | "build": "webpack -p --watch"
9 | },
10 | "repository": {
11 | "type": "git",
12 | "url": "git+https://github.com/Silence11/reactPagination.git"
13 | },
14 | "keywords": [
15 | "webpack",
16 | "react-router"
17 | ],
18 | "author": "xiajing",
19 | "license": "ISC",
20 | "bugs": {
21 | "url": "https://github.com/Silence11/reactPagination/issues"
22 | },
23 | "homepage": "https://github.com/Silence11/reactPagination#readme",
24 | "devDependencies": {
25 | "babel": "^6.5.2",
26 | "babel-cli": "^6.10.1",
27 | "babel-core": "^6.10.4",
28 | "babel-loader": "^6.2.4",
29 | "babel-plugin-react-html-attrs": "^2.0.0",
30 | "babel-plugin-transform-runtime": "^6.9.0",
31 | "babel-preset-es2015": "^6.9.0",
32 | "babel-preset-react": "^6.11.1",
33 | "babel-preset-stage-0": "^6.5.0",
34 | "css-loader": "^0.23.1",
35 | "expose-loader": "^0.7.1",
36 | "extract-text-webpack-plugin": "^1.0.1",
37 | "file-loader": "^0.9.0",
38 | "history": "^3.0.0",
39 | "html-loader": "^0.4.3",
40 | "html-webpack-plugin": "^2.22.0",
41 | "jquery": "^3.1.1",
42 | "mockjs": "^1.0.1-beta2",
43 | "react": "^15.2.1",
44 | "react-dom": "^15.2.1",
45 | "react-router": "^2.6.0",
46 | "style-loader": "^0.13.1",
47 | "url-loader": "^0.5.7",
48 | "webpack": "^1.13.1"
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/dist/css/pagination.css:
--------------------------------------------------------------------------------
1 | body,html{font-family:Helvetica,Microsoft YaHei,Arial,sans-serif}.table-bordered{border:1px solid #ddd}.table{width:100%;max-width:37%;margin-bottom:20px}table{background-color:transparent;border-spacing:0;border-collapse:collapse}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd;text-align:center}.table>thead>tr>th{vertical-align:bottom;border-bottom:2px solid #ddd;text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd;text-align:center}.rightDiv{float:left;padding-left:16px;margin-top:1px}.paginationDiv{display:block;margin-top:50px;color:#535353;line-height:29px;text-align:center;margin-left:52px}.paginationDiv a{float:left;width:25px;height:30px;padding:0 7px;vertical-align:middle;text-decoration:none;cursor:pointer}.paginationDiv .next,.paginationDiv .prev{background-color:#f3f4f8;border:1px solid #e5e5e5}.paginationDiv .next:hover,.paginationDiv .prev:hover{background-color:#ddd;border:1px solid #ddd}.paginationDiv .next:before,.paginationDiv .prev:before{content:'<';font-size:14px}.paginationDiv .disable.next,.paginationDiv .prev.disable{background-color:#f3f4f8;border-color:#e5e5e5;cursor:no-drop}.paginationDiv .disable.next:before,.paginationDiv .prev.disable:before{color:#a0a0a0;border-color:#337ab7}.paginationDiv .next:before{content:'>'}.paginationDiv .num{margin-left:-1px;padding:0 7px;border:1px solid #e5e5e5;color:#707070}.paginationDiv .num.current{background-color:#337ab7;border-color:#337ab7;color:#fff}.paginationDiv .num:hover{background-color:#ddd;border-color:#ddd;color:#1a1a1a}.paginationDiv .ellipsis{width:42px;height:30px;color:#707070;line-height:30px}.paginationDiv input{width:44px;height:24px;border:1px solid #eee;text-align:center}
--------------------------------------------------------------------------------
/webpack.config.js:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by xiajing on 2016/9/21.
3 | */
4 | var path = require('path');
5 | var webpack = require ('webpack');
6 | var HtmlWebpackPlugin = require('html-webpack-plugin');
7 | var ExtractTextPlugin = require("extract-text-webpack-plugin");
8 |
9 | var config = {
10 | //配置入口
11 | entry:{
12 | pagination:'./src/index.js',//入口1
13 | vendors:['react','react-router']//抽成公用的可以减少重复打包,当你是多个入库页面时就能体会到其作用
14 | },
15 | //配置出口你想要输出的地方
16 | output:{
17 | path: path.join(__dirname,'dist'),
18 | publicPath: '../',
19 | filename:'js/[name].js',
20 | chunkFilename:'require/js/[id].chunk.js'//会将按需加载的生成js存放到的这个文件夹下面
21 | },
22 | resolve:{
23 | alias: {}
24 | },
25 | //加载器
26 | module:{
27 | noParse: [],
28 | loaders:[
29 | {test:/\.js[x]?$/,exclude: /node_modules/,loader:'babel',
30 | query: {
31 | presets: ['react', 'es2015']
32 | }
33 | },
34 | {test: /\.css$/, loader: ExtractTextPlugin.extract("style-loader", "css-loader")},//把样式独立出来
35 | //加载html
36 | {test: /\.html$/, loader: "html" },
37 | ]
38 | },
39 | //插件
40 | plugins:[
41 | new webpack.optimize.CommonsChunkPlugin('vendors', 'js/vendors.js'),//抽取公用的库或者方法
42 | new webpack.ProvidePlugin({ $: "jquery", jQuery: "jquery", "window.jQuery": "jquery" }),
43 | new ExtractTextPlugin("css/[name].css"),//生成的css样式文件
44 | new webpack.DefinePlugin({
45 | 'process.env':{
46 | 'NODE_ENV': JSON.stringify('production')
47 | }
48 | }),
49 | //将html打包压缩
50 | new HtmlWebpackPlugin({
51 | filename:'/view/pagination.html',//生成的html存放路径,相对于 path
52 | template:'./src/pagination.html', //html模板路径
53 | chunks:['vendors','pagination'],//区分你想要加载的js,名字要跟entry入口定义的保存一直
54 | inject:true, //允许插件修改哪些内容,包括head与body
55 | hash:true,//为静态资源生成hash值,可以实现缓存
56 | minify:{
57 | removeComments:true,//移除HTML中的注释
58 | collapseWhitespace:true //删除空白符与换行符
59 | }
60 | }),
61 | ]
62 | }
63 | module.exports = config;
--------------------------------------------------------------------------------
/src/css/main.css:
--------------------------------------------------------------------------------
1 | html, body{font-family:Helvetica,"Microsoft YaHei",Arial,sans-serif;}
2 | /*table样式*/
3 | .table-bordered { border: 1px solid #ddd; }
4 | .table { width: 100%; max-width: 37%; margin-bottom: 20px; }
5 | table { background-color: transparent; }
6 | table { border-spacing: 0; border-collapse: collapse; }
7 | .table-bordered>tbody>tr>td, .table-bordered>tbody>tr>th, .table-bordered>tfoot>tr>td, .table-bordered>tfoot>tr>th, .table-bordered>thead>tr>td, .table-bordered>thead>tr>th {
8 | border: 1px solid #ddd; text-align: center}
9 | .table>thead>tr>th { vertical-align: bottom; border-bottom: 2px solid #ddd; text-align: center}
10 | .table>tbody>tr>td, .table>tbody>tr>th, .table>tfoot>tr>td, .table>tfoot>tr>th, .table>thead>tr>td, .table>thead>tr>th {
11 | padding: 8px; line-height: 1.42857143; vertical-align: top; border-top: 1px solid #ddd;text-align: center }
12 | .rightDiv{float: left; float: left; padding-left: 16px; margin-top: 1px;}
13 | .paginationDiv {display: block; margin-top: 50px; color: #535353; line-height: 29px; text-align: center;margin-left: 52px;}
14 | .paginationDiv a {float: left; width: 25px; height: 30px; padding: 0 7px; vertical-align: middle; text-decoration: none; cursor: pointer;}
15 | .paginationDiv .next,.paginationDiv .prev {background-color: #f3f4f8; border: 1px solid #e5e5e5;}
16 | .paginationDiv .next:hover,.paginationDiv .prev:hover {background-color: #ddd; border: 1px solid #ddd;}
17 | .paginationDiv .next:before,.paginationDiv .prev:before {content: '<'; font-size: 14px }
18 | .paginationDiv .disable.next,.paginationDiv .prev.disable {background-color: #f3f4f8; border-color: #e5e5e5; cursor: no-drop;}
19 | .paginationDiv .disable.next:before,.paginationDiv .prev.disable:before {color: #a0a0a0;border-color: #337ab7 }
20 | .paginationDiv .next:before {content: '>'}
21 | .paginationDiv .num {margin-left: -1px; padding: 0 7px; border: 1px solid #e5e5e5; color: #707070 }
22 | .paginationDiv .num.current{background-color: #337ab7; border-color: #337ab7; color: #fff }
23 | .paginationDiv .num:hover {background-color: #ddd; border-color: #ddd; color: #1a1a1a }
24 | .paginationDiv .ellipsis {width: 42px; height: 30px; color: #707070; line-height: 30px }
25 | .paginationDiv input {width: 44px; height: 24px; border: 1px solid #eee; text-align: center }
26 |
--------------------------------------------------------------------------------
/src/components/pageComponent.jsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by xiajing on 2016/9/22.
3 | */
4 | import React, { Component } from 'react';
5 | class PageComponent extends Component{
6 | render(){
7 | let _this = this;
8 | //当前页码
9 | let cur = this.props.current;
10 | //显示分页按钮
11 | let pageNum = [];
12 | let begin;
13 | let len;
14 | if(_this.props.totalPage > 5){
15 | len = 5;
16 | if(cur >= (_this.props.totalPage-2)){
17 | begin = _this.props.totalPage - 4;
18 | }else if(cur <= 3){
19 | begin = 1;
20 | }else{
21 | begin = cur - 2;
22 | }
23 | }else{
24 | len = _this.props.totalPage;
25 | begin = 1;
26 | }
27 | //根据返回的总记录数计算当前页显示的数据
28 | for(let i = 0; i < len; i ++){
29 | let cur = this.props.current;
30 | let showI = begin + i;
31 | if(cur == showI){
32 | pageNum.push({num : showI, cur : true});
33 | }else{
34 | pageNum.push({num : showI, cur : false});
35 | }
36 | }
37 | return(
38 |
39 |
40 |
41 |
42 | {
43 | pageNum.map(function(curPageNum){
44 | return(
45 | {curPageNum.num}
46 | )
47 | })
48 | }
49 |
50 |
51 |
52 | 总共{_this.props.total}条,
53 | 共
54 | {_this.props.totalPage}
55 | 页,到第
56 |
57 | 页
58 |
59 |
60 |
61 | )
62 | }
63 | }
64 | export default PageComponent
--------------------------------------------------------------------------------
/src/components/pagination.jsx:
--------------------------------------------------------------------------------
1 | /**
2 | * Created by xiajing on 2016/9/22.
3 | */
4 | import React, { Component } from 'react';
5 | import PageComponent from './pageComponent.jsx';
6 | import Mock from 'mockjs';
7 | import MockApi from '../util/mockApi.js';
8 | console.info('React:', React); //这里打印出undefined
9 | class Pagination extends Component{
10 | constructor(props){
11 | super(props);
12 | this.state = {
13 | indexList : [], //获取数据的存放数组
14 | totalNum:'',//总记录数
15 | totalData:{},
16 | current: 1, //当前页码
17 | pageSize:5, //每页显示的条数5条
18 | goValue:'',
19 | totalPage:'',//总页数
20 | }
21 | }
22 | componentWillMount(){
23 | var _this = this;//如果不定义就会出现作用域的问题this.setState不是一个函数
24 | //使用mock模拟数据
25 | $.ajax({
26 | url:MockApi.getIndexList()+/\/\.json/,
27 | dataType:'json',
28 | }).done(function(data){
29 | _this.setState({totalData:data})
30 | _this.setState({totalNum:data.array.length})
31 | //计算总页数= 总记录数 / 每页显示的条数
32 | let totalPage =Math.ceil( _this.state.totalNum / _this.state.pageSize);
33 | _this.setState({totalPage:totalPage})
34 | _this.pageClick(1);
35 | })
36 |
37 | }
38 | //点击翻页
39 | pageClick(pageNum){
40 | let _this = this;
41 | if(pageNum != _this.state.current){
42 | _this.state.current = pageNum
43 | }
44 | _this.state.indexList=[];//清空之前的数据
45 | for(var i = (pageNum - 1) * _this.state.pageSize; i< _this.state.pageSize * pageNum; i++){
46 | if(_this.state.totalData.array[i]){
47 | _this.state.indexList.push(_this.state.totalData.array[i])
48 | }
49 | }
50 | _this.setState({indexList:_this.state.indexList})
51 | //console.log(_this.state.indexList)
52 | }
53 | //上一步
54 | goPrevClick(){
55 | var _this = this;
56 | let cur = this.state.current;
57 | if(cur > 1){
58 | _this.pageClick( cur - 1);
59 | }
60 | }
61 | //下一步
62 | goNext(){
63 | var _this = this;
64 | let cur = _this.state.current;
65 | //alert(cur+"==="+_this.state.totalPage)
66 | if(cur < _this.state.totalPage){
67 | _this.pageClick(cur + 1);
68 | }
69 | }
70 | //跳转到指定页
71 | goSwitchChange(e){
72 | var _this= this;
73 | _this.setState({goValue : e.target.value})
74 | var value = e.target.value;
75 | //alert(value+"==="+_this.state.totalPage)
76 | if(!/^[1-9]\d*$/.test(value)){
77 | alert('页码只能输入大于1的正整数');
78 | }else if(parseInt(value) > parseInt(_this.state.totalPage)){
79 | alert('没有这么多页');
80 | }else{
81 | _this.pageClick(value);
82 | }
83 | }
84 | render(){
85 | return(
86 |
87 |
88 |
89 |
90 | | 语文 |
91 | 数学 |
92 | 英语 |
93 |
94 |
95 |
96 | {
97 | this.state.indexList.map(function(data){
98 | return(
99 |
100 | | {data.scoreChinese} |
101 | {data.scoreMath} |
102 | {data.scoreEnglish} |
103 |
104 | )
105 | })
106 | }
107 |
108 |
109 |
117 |
118 | )
119 | }
120 | }
121 | export default Pagination
--------------------------------------------------------------------------------
/dist/js/vendors.js:
--------------------------------------------------------------------------------
1 | !function(e){function t(n){if(r[n])return r[n].exports;var o=r[n]={exports:{},id:n,loaded:!1};return e[n].call(o.exports,o,o.exports,t),o.loaded=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(u,a){for(var i,s,c=0,l=[];c2?n-2:0),o=2;o1){for(var y=Array(v),m=0;m1){for(var _=Array(g),b=0;b should not have a "'+t+'" prop')}t.__esModule=!0,t.routes=t.route=t.components=t.component=t.history=void 0,t.falsy=r;var o=n(6),u=o.PropTypes.func,a=o.PropTypes.object,i=o.PropTypes.arrayOf,s=o.PropTypes.oneOfType,c=o.PropTypes.element,l=o.PropTypes.shape,f=o.PropTypes.string,p=(t.history=l({listen:u.isRequired,push:u.isRequired,replace:u.isRequired,go:u.isRequired,goBack:u.isRequired,goForward:u.isRequired}),t.component=s([u,f])),d=(t.components=s([p,a]),t.route=s([a,c]));t.routes=s([d,i(d)])},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){var t=e.match(/^https?:\/\/[^\/]*/);return null==t?e:e.substring(t[0].length)}function u(e){var t=o(e),n="",r="",u=t.indexOf("#");u!==-1&&(r=t.substring(u),t=t.substring(0,u));var a=t.indexOf("?");return a!==-1&&(n=t.substring(a),t=t.substring(0,a)),""===t&&(t="/"),{pathname:t,search:n,hash:r}}t.__esModule=!0,t.extractPath=o,t.parsePath=u;var a=n(12);r(a)},,,,function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){return e.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}function u(e){for(var t="",n=[],r=[],u=void 0,a=0,i=/:([a-zA-Z_$][a-zA-Z0-9_$]*)|\*\*|\*|\(|\)/g;u=i.exec(e);)u.index!==a&&(r.push(e.slice(a,u.index)),t+=o(e.slice(a,u.index))),u[1]?(t+="([^/]+)",n.push(u[1])):"**"===u[0]?(t+="(.*)",n.push("splat")):"*"===u[0]?(t+="(.*?)",n.push("splat")):"("===u[0]?t+="(?:":")"===u[0]&&(t+=")?"),r.push(u[0]),a=i.lastIndex;return a!==e.length&&(r.push(e.slice(a,e.length)),t+=o(e.slice(a,e.length))),{pattern:e,regexpSource:t,paramNames:n,tokens:r}}function a(e){return d[e]||(d[e]=u(e)),d[e]}function i(e,t){"/"!==e.charAt(0)&&(e="/"+e);var n=a(e),r=n.regexpSource,o=n.paramNames,u=n.tokens;"/"!==e.charAt(e.length-1)&&(r+="/?"),"*"===u[u.length-1]&&(r+="$");var i=t.match(new RegExp("^"+r,"i"));if(null==i)return null;var s=i[0],c=t.substr(s.length);if(c){if("/"!==s.charAt(s.length-1))return null;c="/"+c}return{remainingPathname:c,paramNames:o,paramValues:i.slice(1).map(function(e){return e&&decodeURIComponent(e)})}}function s(e){return a(e).paramNames}function c(e,t){var n=i(e,t);if(!n)return null;var r=n.paramNames,o=n.paramValues,u={};return r.forEach(function(e,t){u[e]=o[t]}),u}function l(e,t){t=t||{};for(var n=a(e),r=n.tokens,o=0,u="",i=0,s=void 0,c=void 0,l=void 0,f=0,d=r.length;f0?void 0:(0,p["default"])(!1),null!=l&&(u+=encodeURI(l))):"("===s?o+=1:")"===s?o-=1:":"===s.charAt(0)?(c=s.substring(1),l=t[c],null!=l||o>0?void 0:(0,p["default"])(!1),null!=l&&(u+=encodeURIComponent(l))):u+=s;return u.replace(/\/+/g,"/")}t.__esModule=!0,t.compilePattern=a,t.matchPattern=i,t.getParamNames=s,t.getParams=c,t.formatPattern=l;var f=n(8),p=r(f),d=Object.create(null)},function(e,t){"use strict";t.__esModule=!0;var n="PUSH";t.PUSH=n;var r="REPLACE";t.REPLACE=r;var o="POP";t.POP=o,t["default"]={PUSH:n,REPLACE:r,POP:o}},,,,,,,function(e,t,n){"use strict";var r={};e.exports=r},,,,,,,,,function(e,t,n){"use strict";var r=n(1),o=function(e){var t,n={};e instanceof Object&&!Array.isArray(e)?void 0:r(!1);for(t in e)e.hasOwnProperty(t)&&(n[t]=t);return n};e.exports=o},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0;var o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol?"symbol":typeof e},u=Object.assign||function(e){for(var t=1;t1?r-1:0),u=1;u=e&&s&&(a=!0,n()))}}var u=0,a=!1,i=!1,s=!1,c=void 0;o()}function r(e,t,n){function r(e,t,r){a||(t?(a=!0,n(t)):(u[e]=r,a=++i===o,a&&n(null,u)))}var o=e.length,u=[];if(0===o)return n(null,u);var a=!1,i=0;e.forEach(function(e,n){t(e,n,function(e,t){r(n,e,t)})})}t.__esModule=!0,t.loopAsync=n,t.mapAsync=r},function(e,t,n){"use strict";function r(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)Object.prototype.hasOwnProperty.call(e,n)&&(t[n]=e[n]);return t["default"]=e,t}function o(e){return e&&e.__esModule?e:{"default":e}}t.__esModule=!0,t.router=t.routes=t.route=t.components=t.component=t.location=t.history=t.falsy=t.locationShape=t.routerShape=void 0;var u=n(6),a=n(51),i=(o(a),n(27)),s=r(i),c=n(7),l=(o(c),u.PropTypes.func),f=u.PropTypes.object,p=u.PropTypes.shape,d=u.PropTypes.string,h=t.routerShape=p({push:l.isRequired,replace:l.isRequired,go:l.isRequired,goBack:l.isRequired,goForward:l.isRequired,setRouteLeaveHook:l.isRequired,isActive:l.isRequired}),v=t.locationShape=p({pathname:d.isRequired,search:d.isRequired,state:f,action:d.isRequired,key:d}),y=t.falsy=s.falsy,m=t.history=s.history,g=t.location=v,_=t.component=s.component,b=t.components=s.components,P=t.route=s.route,x=(t.routes=s.routes,t.router=h),O={falsy:y,history:m,location:g,component:_,components:b,route:P,router:x};t["default"]=O},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!0;return!1}function u(e,t){function n(t){var n=!(arguments.length<=1||void 0===arguments[1])&&arguments[1],r=arguments.length<=2||void 0===arguments[2]?null:arguments[2],o=void 0;return n&&n!==!0||null!==r?(t={pathname:t,query:n},o=r||!1):(t=e.createLocation(t),o=n),(0,p["default"])(t,o,_.location,_.routes,_.params)}function r(e,n){b&&b.location===e?u(b,n):(0,y["default"])(t,e,function(t,r){t?n(t):r?u(a({},r,{location:e}),n):n()})}function u(e,t){function n(n,o){return n||o?r(n,o):void(0,h["default"])(e,function(n,r){n?t(n):t(null,null,_=a({},e,{components:r}))})}function r(e,n){e?t(e):t(null,n)}var o=(0,c["default"])(_,e),u=o.leaveRoutes,i=o.changeRoutes,s=o.enterRoutes;(0,l.runLeaveHooks)(u,_),u.filter(function(e){return s.indexOf(e)===-1}).forEach(v),(0,l.runChangeHooks)(i,_,e,function(t,o){return t||o?r(t,o):void(0,l.runEnterHooks)(s,e,n)})}function i(e){var t=arguments.length<=1||void 0===arguments[1]||arguments[1];return e.__id__||t&&(e.__id__=P++)}function s(e){return e.reduce(function(e,t){return e.push.apply(e,x[i(t)]),e},[])}function f(e,n){(0,y["default"])(t,e,function(t,r){if(null==r)return void n();b=a({},r,{location:e});for(var o=s((0,c["default"])(_,b).leaveRoutes),u=void 0,i=0,l=o.length;null==u&&i=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function u(e){return 0===e.button}function a(e){return!!(e.metaKey||e.altKey||e.ctrlKey||e.shiftKey)}function i(e){for(var t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function s(e,t){var n=t.query,r=t.hash,o=t.state;return n||r||o?{pathname:e,query:n,hash:r,state:o}:e}t.__esModule=!0;var c=Object.assign||function(e){for(var t=1;t=0;r--){var o=e[r],u=o.path||"";if(n=u.replace(/\/*$/,"/")+n,0===u.indexOf("/"))break}return"/"+n}},propTypes:{path:p,from:p,to:p.isRequired,query:d,state:d,onEnter:l.falsy,children:l.falsy},render:function(){(0,i["default"])(!1)}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){return a({},e,{setRouteLeaveHook:t.listenBeforeLeavingRoute,isActive:t.isActive})}function u(e,t){return e=a({},e,t)}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t=0&&0===window.sessionStorage.length)return;throw n}}function a(e){var t=void 0;try{t=window.sessionStorage.getItem(o(e))}catch(n){if(n.name===l)return null}if(t)try{return JSON.parse(t)}catch(n){}return null}t.__esModule=!0,t.saveState=u,t.readState=a;var i=n(12),s=(r(i),"@@History/"),c=["QuotaExceededError","QUOTA_EXCEEDED_ERR"],l="SecurityError"},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e){function t(e){return s.canUseDOM?void 0:i["default"](!1),n.listen(e)}var n=f["default"](u({getUserConfirmation:c.getUserConfirmation},e,{go:c.go}));return u({},n,{listen:t})}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t1?t-1:0),u=1;u>"),M={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:i(),arrayOf:s,element:c(),instanceOf:l,node:h(),objectOf:p,oneOf:f,oneOfType:d,shape:v};o.prototype=Error.prototype,e.exports=M},function(e,t){"use strict";e.exports="15.3.2"},,,function(e,t,n){"use strict";var r=!1;e.exports=r},,,function(e,t){"use strict";function n(e){var t=e&&(r&&e[r]||e[o]);if("function"==typeof t)return t}var r="function"==typeof Symbol&&Symbol.iterator,o="@@iterator";e.exports=n},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){function r(e){return null===e||void 0===e}function o(e){return!(!e||"object"!=typeof e||"number"!=typeof e.length)&&("function"==typeof e.copy&&"function"==typeof e.slice&&!(e.length>0&&"number"!=typeof e[0]))}function u(e,t,n){var u,l;if(r(e)||r(t))return!1;if(e.prototype!==t.prototype)return!1;if(s(e))return!!s(t)&&(e=a.call(e),t=a.call(t),c(e,t,n));if(o(e)){if(!o(t))return!1;if(e.length!==t.length)return!1;for(u=0;u=0;u--)if(f[u]!=p[u])return!1;for(u=f.length-1;u>=0;u--)if(l=f[u],!c(e[l],t[l],n))return!1;return typeof e==typeof t}var a=Array.prototype.slice,i=n(211),s=n(210),c=e.exports=function(e,t,n){return n||(n={}),e===t||(e instanceof Date&&t instanceof Date?e.getTime()===t.getTime():!e||!t||"object"!=typeof e&&"object"!=typeof t?n.strict?e===t:e==t:u(e,t,n))}},function(e,t){function n(e){return"[object Arguments]"==Object.prototype.toString.call(e)}function r(e){return e&&"object"==typeof e&&"number"==typeof e.length&&Object.prototype.hasOwnProperty.call(e,"callee")&&!Object.prototype.propertyIsEnumerable.call(e,"callee")||!1}var o="[object Arguments]"==function(){return Object.prototype.toString.call(arguments)}();t=e.exports=o?n:r,t.supported=n,t.unsupported=r},function(e,t){function n(e){var t=[];for(var n in e)t.push(n);return t}t=e.exports="function"==typeof Object.keys?Object.keys:n,t.shim=n},,,,,,,,,,,,,,function(e,t){"use strict";var n={childContextTypes:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,mixins:!0,propTypes:!0,type:!0},r={name:!0,length:!0,prototype:!0,caller:!0,arguments:!0,arity:!0},o="function"==typeof Object.getOwnPropertySymbols;e.exports=function(e,t,u){if("string"!=typeof t){var a=Object.getOwnPropertyNames(t);o&&(a=a.concat(Object.getOwnPropertySymbols(t)));for(var i=0;i=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function u(e){return!e||!e.__v2_compatible__}function a(e){return e&&e.getCurrentLocation}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function u(e,t){var n=e.history,r=e.routes,u=e.location,s=o(e,["history","routes","location"]);n||u?void 0:(0,c["default"])(!1),n=n?n:(0,f["default"])(s);var l=(0,d["default"])(n,(0,h.createRoutes)(r)),p=void 0;u?u=n.createLocation(u):p=n.listen(function(e){u=e});var y=(0,v.createRouterObject)(n,l);n=(0,v.createRoutingHistory)(n,l),l.match(u,function(e,r,o){t(e,r&&y.createLocation(r,i.REPLACE),o&&a({},o,{history:n,router:y,matchContext:{history:n,transitionManager:l,router:y}})),p&&p()})}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function u(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=t.routes,r=o(t,["routes"]),u=(0,s["default"])(e)(r),i=(0,l["default"])(u,n);return a({},u,i)}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t=e&&c&&(i=!0,n()))}}var a=0,i=!1,s=!1,c=!1,l=void 0;u()}t.__esModule=!0;var r=Array.prototype.slice;t.loopAsync=n},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){function e(e){try{e=e||window.history.state||{}}catch(t){e={}}var n=f.getWindowPath(),r=e,o=r.key,a=void 0;o?a=p.readState(o):(a=null,o=_.createKey(),m&&window.history.replaceState(u({},e,{key:o}),null));var i=c.parsePath(n);return _.createLocation(u({},i,{state:a}),void 0,o)}function t(t){function n(t){void 0!==t.state&&r(e(t.state))}var r=t.transitionTo;return f.addEventListener(window,"popstate",n),function(){f.removeEventListener(window,"popstate",n)}}function n(e){var t=e.basename,n=e.pathname,r=e.search,o=e.hash,u=e.state,a=e.action,i=e.key;if(a!==s.POP){p.saveState(i,u);var c=(t||"")+n+r+o,l={key:i};if(a===s.PUSH){if(g)return window.location.href=c,!1;window.history.pushState(l,null,c)}else{if(g)return window.location.replace(c),!1;window.history.replaceState(l,null,c)}}}function r(e){1===++b&&(P=t(_));var n=_.listenBefore(e);return function(){n(),0===--b&&P()}}function o(e){1===++b&&(P=t(_));var n=_.listen(e);return function(){n(),0===--b&&P()}}function a(e){1===++b&&(P=t(_)),_.registerTransitionHook(e)}function d(e){_.unregisterTransitionHook(e),0===--b&&P()}var v=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];l.canUseDOM?void 0:i["default"](!1);var y=v.forceRefresh,m=f.supportsHistory(),g=!m||y,_=h["default"](u({},v,{getCurrentLocation:e,finishTransition:n,saveState:p.saveState})),b=0,P=void 0;return u({},_,{listenBefore:r,listen:o,registerTransitionHook:a,unregisterTransitionHook:d})}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t=0&&t=0&&y0?n.join("="):void 0;return r=decodeURIComponent(r),o=void 0===o?null:decodeURIComponent(o),e.hasOwnProperty(r)?Array.isArray(e[r])?e[r].push(o):e[r]=[e[r],o]:e[r]=o,e},{}):{})},t.stringify=function(e){return e?Object.keys(e).sort().map(function(t){var n=e[t];return void 0===n?"":null===n?t:Array.isArray(n)?n.slice().sort().map(function(e){return r(t)+"="+r(e)}).join("&"):r(t)+"="+r(n)}).filter(function(e){return e.length>0}).join("&"):""}},,,,,,,,,,function(e,t,n){"use strict";var r=n(4),o=n(142),u=n(86),a=n(288),i=n(143),s=n(271),c=n(13),l=n(153),f=n(154),p=n(314),d=(n(3),c.createElement),h=c.createFactory,v=c.cloneElement,y=r,m={Children:{map:o.map,forEach:o.forEach,count:o.count,toArray:o.toArray,only:p},Component:u,PureComponent:a,createElement:d,cloneElement:v,isValidElement:c.isValidElement,PropTypes:l,createClass:i.createClass,createFactory:h,createMixin:function(e){return e},DOM:s,version:f,__spread:y};e.exports=m},,,,,,,,,function(e,t,n){"use strict";var r=n(13),o=r.createFactory,u={a:o("a"),abbr:o("abbr"),address:o("address"),area:o("area"),article:o("article"),aside:o("aside"),audio:o("audio"),b:o("b"),base:o("base"),bdi:o("bdi"),bdo:o("bdo"),big:o("big"),blockquote:o("blockquote"),body:o("body"),br:o("br"),button:o("button"),canvas:o("canvas"),caption:o("caption"),cite:o("cite"),code:o("code"),col:o("col"),colgroup:o("colgroup"),data:o("data"),datalist:o("datalist"),dd:o("dd"),del:o("del"),details:o("details"),dfn:o("dfn"),dialog:o("dialog"),div:o("div"),dl:o("dl"),dt:o("dt"),em:o("em"),embed:o("embed"),fieldset:o("fieldset"),figcaption:o("figcaption"),figure:o("figure"),footer:o("footer"),form:o("form"),h1:o("h1"),h2:o("h2"),h3:o("h3"),h4:o("h4"),h5:o("h5"),h6:o("h6"),head:o("head"),header:o("header"),hgroup:o("hgroup"),hr:o("hr"),html:o("html"),i:o("i"),iframe:o("iframe"),img:o("img"),input:o("input"),ins:o("ins"),kbd:o("kbd"),keygen:o("keygen"),label:o("label"),legend:o("legend"),li:o("li"),link:o("link"),main:o("main"),map:o("map"),mark:o("mark"),menu:o("menu"),menuitem:o("menuitem"),meta:o("meta"),meter:o("meter"),nav:o("nav"),noscript:o("noscript"),object:o("object"),ol:o("ol"),optgroup:o("optgroup"),option:o("option"),output:o("output"),p:o("p"),param:o("param"),picture:o("picture"),pre:o("pre"),progress:o("progress"),q:o("q"),rp:o("rp"),rt:o("rt"),ruby:o("ruby"),s:o("s"),samp:o("samp"),script:o("script"),section:o("section"),select:o("select"),small:o("small"),source:o("source"),span:o("span"),strong:o("strong"),style:o("style"),sub:o("sub"),summary:o("summary"),sup:o("sup"),table:o("table"),tbody:o("tbody"),td:o("td"),textarea:o("textarea"),tfoot:o("tfoot"),th:o("th"),thead:o("thead"),time:o("time"),title:o("title"),tr:o("tr"),track:o("track"),u:o("u"),ul:o("ul"),"var":o("var"),video:o("video"),wbr:o("wbr"),circle:o("circle"),clipPath:o("clipPath"),defs:o("defs"),ellipse:o("ellipse"),g:o("g"),image:o("image"),line:o("line"),linearGradient:o("linearGradient"),mask:o("mask"),path:o("path"),pattern:o("pattern"),polygon:o("polygon"),polyline:o("polyline"),radialGradient:o("radialGradient"),rect:o("rect"),stop:o("stop"),svg:o("svg"),text:o("text"),tspan:o("tspan")};e.exports=u},,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(e,t,n){this.props=e,this.context=t,this.refs=s,this.updater=n||i}function o(){}var u=n(4),a=n(86),i=n(90),s=n(40);o.prototype=a.prototype,r.prototype=new o,r.prototype.constructor=r,u(r.prototype,a.prototype),r.prototype.isPureReactComponent=!0,e.exports=r},,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t,n){"use strict";function r(e){return u.isValidElement(e)?void 0:o("143"),e}var o=n(2),u=n(13);n(1);e.exports=r},,,function(e,t){"use strict";e.exports=function(e){return encodeURIComponent(e).replace(/[!'()*]/g,function(e){return"%"+e.charCodeAt(0).toString(16).toUpperCase()})}},function(e,t,n){"use strict";var r=function(){};e.exports=r}]);
--------------------------------------------------------------------------------