From b8d4afd945b98249c94de1a24dca6c0c4067330c Mon Sep 17 00:00:00 2001 From: Haitao Yue Date: Fri, 31 Mar 2017 22:23:48 +0800 Subject: [PATCH] Refine react code structure Related to #CE-9 https://jira.hyperledger.org/browse/CE-9 Change-Id: I5ea0d2fdbb3dadc457a09e654df4d127a59479c5 Signed-off-by: Haitao Yue --- .../js/components/DataTable/AnimTableBody.js | 66 ++++++++ .../js/components/DataTable/DataTable.js | 111 +++++++++++++ .../js/components/DataTable/DataTable.less | 0 .../js/components/DataTable/package.json | 6 + .../js/components/DropOption/DropOption.js | 24 +++ .../js/components/DropOption/package.json | 6 + .../static/js/components/Editor/Editor.js | 11 ++ .../static/js/components/Editor/Editor.less | 111 +++++++++++++ .../static/js/components/Editor/package.json | 6 + .../static/js/components/Iconfont/Iconfont.js | 14 ++ .../js/components/Iconfont/iconfont.less | 8 + .../js/components/Iconfont/package.json | 6 + .../static/js/components/Search/Search.js | 66 ++++++++ .../static/js/components/Search/Search.less | 55 +++++++ .../static/js/components/Search/package.json | 6 + .../static/js/components/hosts/list.less | 11 -- .../react/static/js/components/index.js | 18 +++ .../react/static/js/components/layer/layer.js | 83 ++++++++++ .../static/js/components/layer/layer.less | 14 ++ .../static/js/components/layer/package.json | 6 + .../static/js/components/layout/Bread.less | 8 + .../static/js/components/layout/Footer.less | 12 ++ .../static/js/components/layout/Header.less | 57 +++++++ .../layout/{main.less => Layout.less} | 148 +++++++++--------- .../static/js/components/layout/Sider.less | 1 + .../static/js/components/layout/bread.js | 47 +++--- .../static/js/components/layout/common.less | 102 ------------ .../static/js/components/layout/footer.js | 2 +- .../static/js/components/layout/header.js | 54 +++++-- .../static/js/components/layout/index.js | 8 + .../react/static/js/components/layout/menu.js | 70 +++++++-- .../static/js/components/layout/sider.js | 26 ++- .../react/static/js/components/skin.less | 105 +++++++++++++ src/themes/react/static/js/dist/0.js | 36 ----- src/themes/react/static/js/dist/2.js | 1 - src/themes/react/static/js/dist/3.js | 1 - src/themes/react/static/js/dist/4.js | 1 - src/themes/react/static/js/dist/5.js | 1 - src/themes/react/static/js/dist/6.js | 1 - src/themes/react/static/js/dist/7.js | 1 - src/themes/react/static/js/dist/8.js | 39 ----- src/themes/react/static/js/dist/index.css | 1 - src/themes/react/static/js/dist/index.js | 50 ------ src/themes/react/static/js/index.js | 15 +- src/themes/react/static/js/models/app.js | 136 +++++++++++----- src/themes/react/static/js/models/host.js | 17 +- src/themes/react/static/js/router.js | 106 ++++++------- src/themes/react/static/js/routes/about.js | 9 -- src/themes/react/static/js/routes/app.js | 81 +++++++--- .../react/static/js/routes/chains/active.js | 9 -- .../react/static/js/routes/chains/inused.js | 9 -- src/themes/react/static/js/routes/error.js | 12 -- .../react/static/js/routes/error/index.js | 12 ++ .../routes/{error.less => error/index.less} | 0 .../list.jsx => routes/host/HostList.js} | 32 ++-- .../react/static/js/routes/host/HostList.less | 93 +++++++++++ .../react/static/js/routes/host/HostModal.js | 145 +++++++++++++++++ .../react/static/js/routes/host/index.js | 54 +++++++ src/themes/react/static/js/routes/hosts.js | 23 --- .../react/static/js/routes/login/index.js | 72 +++++++++ .../react/static/js/routes/login/index.less | 51 ++++++ .../overview/ChartCard.js} | 5 +- .../overview/ChartCard.less} | 4 +- .../routes/{overview.js => overview/index.js} | 2 +- src/themes/react/static/js/routes/release.js | 9 -- src/themes/react/static/js/routes/users.js | 100 ------------ src/themes/react/static/js/services/app.js | 25 +++ .../static/js/services/{hosts.js => host.js} | 6 +- .../react/static/js/services/overview.js | 9 +- src/themes/react/static/js/theme.js | 2 +- src/themes/react/static/js/utils/config.js | 7 +- src/themes/react/static/js/utils/index.js | 24 +-- src/themes/react/static/js/utils/request.js | 64 +++++--- src/themes/react/static/js/utils/theme.js | 4 +- src/themes/react/static/package.json | 8 +- src/themes/react/static/webpack.config.js | 3 +- src/themes/react/templates/index.html | 1 + 77 files changed, 1800 insertions(+), 749 deletions(-) create mode 100644 src/themes/react/static/js/components/DataTable/AnimTableBody.js create mode 100644 src/themes/react/static/js/components/DataTable/DataTable.js create mode 100644 src/themes/react/static/js/components/DataTable/DataTable.less create mode 100644 src/themes/react/static/js/components/DataTable/package.json create mode 100644 src/themes/react/static/js/components/DropOption/DropOption.js create mode 100644 src/themes/react/static/js/components/DropOption/package.json create mode 100644 src/themes/react/static/js/components/Editor/Editor.js create mode 100644 src/themes/react/static/js/components/Editor/Editor.less create mode 100644 src/themes/react/static/js/components/Editor/package.json create mode 100644 src/themes/react/static/js/components/Iconfont/Iconfont.js create mode 100644 src/themes/react/static/js/components/Iconfont/iconfont.less create mode 100644 src/themes/react/static/js/components/Iconfont/package.json create mode 100644 src/themes/react/static/js/components/Search/Search.js create mode 100644 src/themes/react/static/js/components/Search/Search.less create mode 100644 src/themes/react/static/js/components/Search/package.json delete mode 100644 src/themes/react/static/js/components/hosts/list.less create mode 100644 src/themes/react/static/js/components/index.js create mode 100644 src/themes/react/static/js/components/layer/layer.js create mode 100644 src/themes/react/static/js/components/layer/layer.less create mode 100644 src/themes/react/static/js/components/layer/package.json create mode 100644 src/themes/react/static/js/components/layout/Bread.less create mode 100644 src/themes/react/static/js/components/layout/Footer.less create mode 100644 src/themes/react/static/js/components/layout/Header.less rename src/themes/react/static/js/components/layout/{main.less => Layout.less} (73%) create mode 100644 src/themes/react/static/js/components/layout/Sider.less delete mode 100644 src/themes/react/static/js/components/layout/common.less create mode 100644 src/themes/react/static/js/components/layout/index.js delete mode 100644 src/themes/react/static/js/dist/0.js delete mode 100644 src/themes/react/static/js/dist/2.js delete mode 100644 src/themes/react/static/js/dist/3.js delete mode 100644 src/themes/react/static/js/dist/4.js delete mode 100644 src/themes/react/static/js/dist/5.js delete mode 100644 src/themes/react/static/js/dist/6.js delete mode 100644 src/themes/react/static/js/dist/7.js delete mode 100644 src/themes/react/static/js/dist/8.js delete mode 100644 src/themes/react/static/js/dist/index.css delete mode 100644 src/themes/react/static/js/dist/index.js delete mode 100644 src/themes/react/static/js/routes/about.js delete mode 100644 src/themes/react/static/js/routes/chains/active.js delete mode 100644 src/themes/react/static/js/routes/chains/inused.js delete mode 100644 src/themes/react/static/js/routes/error.js create mode 100644 src/themes/react/static/js/routes/error/index.js rename src/themes/react/static/js/routes/{error.less => error/index.less} (100%) rename src/themes/react/static/js/{components/hosts/list.jsx => routes/host/HostList.js} (66%) create mode 100644 src/themes/react/static/js/routes/host/HostList.less create mode 100644 src/themes/react/static/js/routes/host/HostModal.js create mode 100644 src/themes/react/static/js/routes/host/index.js delete mode 100644 src/themes/react/static/js/routes/hosts.js create mode 100644 src/themes/react/static/js/routes/login/index.js create mode 100644 src/themes/react/static/js/routes/login/index.less rename src/themes/react/static/js/{components/overview/pie_chart.js => routes/overview/ChartCard.js} (94%) rename src/themes/react/static/js/{components/overview/pie_chart.less => routes/overview/ChartCard.less} (91%) rename src/themes/react/static/js/routes/{overview.js => overview/index.js} (96%) delete mode 100644 src/themes/react/static/js/routes/release.js delete mode 100644 src/themes/react/static/js/routes/users.js create mode 100644 src/themes/react/static/js/services/app.js rename src/themes/react/static/js/services/{hosts.js => host.js} (56%) diff --git a/src/themes/react/static/js/components/DataTable/AnimTableBody.js b/src/themes/react/static/js/components/DataTable/AnimTableBody.js new file mode 100644 index 00000000..4160e429 --- /dev/null +++ b/src/themes/react/static/js/components/DataTable/AnimTableBody.js @@ -0,0 +1,66 @@ +import React, { PropTypes } from 'react' +import { TweenOneGroup } from 'rc-tween-one' + +const enterAnim = [ + { + opacity: 0, + x: 30, + backgroundColor: '#fffeee', + duration: 0, + }, { + height: 0, + duration: 200, + type: 'from', + delay: 250, + ease: 'easeOutQuad', + onComplete: (e) => { + e.target.style.height = 'auto' + }, + }, { + opacity: 1, + x: 0, + duration: 250, + ease: 'easeOutQuad', + }, { + delay: 1000, + backgroundColor: '#fff', + }, +] + +const leaveAnim = [ + { + duration: 250, + x: -30, + opacity: 0, + }, { + height: 0, + duration: 200, + ease: 'easeOutQuad', + }, +] + +const AnimTableBody = ({ body, page = 1, current }) => { + if (current !== +page) { + return body + } + + return ( + + {body.props.children} + + ) +} + +AnimTableBody.propTypes = { + body: PropTypes.element, + page: PropTypes.any, + current: PropTypes.number.isRequired, +} + +export default AnimTableBody diff --git a/src/themes/react/static/js/components/DataTable/DataTable.js b/src/themes/react/static/js/components/DataTable/DataTable.js new file mode 100644 index 00000000..076e1819 --- /dev/null +++ b/src/themes/react/static/js/components/DataTable/DataTable.js @@ -0,0 +1,111 @@ +import React, { PropTypes } from 'react' +import { Table } from 'antd' +import { request } from '../../utils' +import lodash from 'lodash' +import './DataTable.less' + +class DataTable extends React.Component { + constructor (props) { + super(props) + const { dataSource, pagination = { + showSizeChanger: true, + showQuickJumper: true, + showTotal: total => `共 ${total} 条`, + current: 1, + total: 100 }, + } = props + this.state = { + loading: false, + dataSource, + fetchData: {}, + pagination, + } + } + + componentDidMount () { + if (this.props.fetch) { + this.fetch() + } + } + + componentWillReceiveProps (nextProps) { + const staticNextProps = lodash.cloneDeep(nextProps) + delete staticNextProps.columns + const { columns, ...otherProps } = this.props + + if (!lodash.isEqual(staticNextProps, otherProps)) { + this.props = nextProps + this.fetch() + } + } + + handleTableChange = (pagination, filters, sorter) => { + const pager = this.state.pagination + pager.current = pagination.current + this.setState({ + pagination: pager, + fetchData: { + results: pagination.pageSize, + page: pagination.current, + sortField: sorter.field, + sortOrder: sorter.order, + ...filters, + }, + }, () => { + this.fetch() + }) + } + + fetch = () => { + const { fetch: { url, data, dataKey } } = this.props + const { fetchData } = this.state + this.setState({ loading: true }) + this.promise = request({ + url, + data: { + ...data, + ...fetchData, + }, + }).then((result) => { + if (!this.refs.DataTable) { + return + } + const { pagination } = this.state + pagination.total = result.total || pagination.total + this.setState({ + loading: false, + dataSource: dataKey ? result[dataKey] : result.data, + pagination, + }) + }) + } + + render () { + const { fetch, ...tableProps } = this.props + const { loading, dataSource, pagination } = this.state + + return () + } +} + + +DataTable.propTypes = { + fetch: PropTypes.object, + rowKey: PropTypes.string, + pagination: React.PropTypes.oneOfType([ + React.PropTypes.bool, + React.PropTypes.object, + ]), + columns: PropTypes.array, + dataSource: PropTypes.array, +} + +export default DataTable diff --git a/src/themes/react/static/js/components/DataTable/DataTable.less b/src/themes/react/static/js/components/DataTable/DataTable.less new file mode 100644 index 00000000..e69de29b diff --git a/src/themes/react/static/js/components/DataTable/package.json b/src/themes/react/static/js/components/DataTable/package.json new file mode 100644 index 00000000..9272c27f --- /dev/null +++ b/src/themes/react/static/js/components/DataTable/package.json @@ -0,0 +1,6 @@ +{ + "name": "DataTable", + "version": "0.0.0", + "private": true, + "main": "./DataTable.js" +} diff --git a/src/themes/react/static/js/components/DropOption/DropOption.js b/src/themes/react/static/js/components/DropOption/DropOption.js new file mode 100644 index 00000000..995c26b8 --- /dev/null +++ b/src/themes/react/static/js/components/DropOption/DropOption.js @@ -0,0 +1,24 @@ +import React, { PropTypes } from 'react' +import { Dropdown, Button, Icon, Menu } from 'antd' + +const DropOption = ({ onMenuClick, menuOptions = [], buttonStyle, dropdownProps }) => { + const menu = menuOptions.map(item => {item.name}) + return ({menu}} + {...dropdownProps} + > + + ) +} + +DropOption.propTypes = { + onMenuClick: PropTypes.func, + menuOptions: PropTypes.array.isRequired, + buttonStyle: PropTypes.object, + dropdownProps: PropTypes.object, +} + +export default DropOption diff --git a/src/themes/react/static/js/components/DropOption/package.json b/src/themes/react/static/js/components/DropOption/package.json new file mode 100644 index 00000000..0a1dc405 --- /dev/null +++ b/src/themes/react/static/js/components/DropOption/package.json @@ -0,0 +1,6 @@ +{ + "name": "DropOption", + "version": "0.0.0", + "private": true, + "main": "./DropOption.js" +} diff --git a/src/themes/react/static/js/components/Editor/Editor.js b/src/themes/react/static/js/components/Editor/Editor.js new file mode 100644 index 00000000..137a6983 --- /dev/null +++ b/src/themes/react/static/js/components/Editor/Editor.js @@ -0,0 +1,11 @@ +import React from 'react' +import { Editor } from 'react-draft-wysiwyg' +import styles from './Editor.less' +import 'react-draft-wysiwyg/dist/react-draft-wysiwyg.css' + + +const DraftEditor = (props) => { + return () +} + +export default DraftEditor diff --git a/src/themes/react/static/js/components/Editor/Editor.less b/src/themes/react/static/js/components/Editor/Editor.less new file mode 100644 index 00000000..dd0dc4a2 --- /dev/null +++ b/src/themes/react/static/js/components/Editor/Editor.less @@ -0,0 +1,111 @@ +.wrapper { + height: 500px; + + :global { + .rdw-dropdownoption-default { + padding: 6px; + } + + .rdw-dropdown-optionwrapper { + box-sizing: content-box; + width: 100%; + border-radius: 0 0 2px 2px; + } + + .rdw-inline-wrapper { + flex-wrap: wrap; + margin-bottom: 0; + + .rdw-option-wrapper { + margin-bottom: 6px; + } + } + + .rdw-option-active { + box-shadow: 1px 1px 0 #e8e8e8 inset; + } + + .rdw-dropdown-optionwrapper { + &:hover { + box-shadow: none; + } + } + + .rdw-colorpicker-option { + box-shadow: none; + } + + .rdw-colorpicker-modal, + .rdw-embedded-modal, + .rdw-emoji-modal, + .rdw-image-modal, + .rdw-link-modal { + box-shadow: 4px 4px 40px rgba(0, 0, 0, 0.05); + } + + .rdw-colorpicker-modal, + .rdw-embedded-modal, + .rdw-link-modal { + height: auto; + } + + .rdw-emoji-modal { + width: 214px; + } + + .rdw-colorpicker-modal { + width: auto; + } + + .rdw-embedded-modal-btn, + .rdw-image-modal-btn, + .rdw-link-modal-btn { + height: 32px; + margin-top: 12px; + } + + .rdw-embedded-modal-input, + .rdw-embedded-modal-size-input, + .rdw-link-modal-input { + padding: 2px 6px; + height: 32px; + } + + .rdw-dropdown-selectedtext { + color: #000; + } + + .rdw-dropdown-wrapper, + .rdw-option-wrapper { + min-width: 36px; + transition: all 0.2s ease; + height: 30px; + + &:active { + box-shadow: 1px 1px 0 #e8e8e8 inset; + } + + &:hover { + box-shadow: 1px 1px 0 #e8e8e8; + } + } + + .rdw-dropdown-wrapper { + min-width: 60px; + } + + .rdw-editor-main { + box-sizing: border-box; + } + } + + .editor { + border: 1px solid #F1F1F1; + padding: 5px; + border-radius: 2px; + height: auto; + min-height: 200px; + } + + .toolbar {} +} diff --git a/src/themes/react/static/js/components/Editor/package.json b/src/themes/react/static/js/components/Editor/package.json new file mode 100644 index 00000000..80696262 --- /dev/null +++ b/src/themes/react/static/js/components/Editor/package.json @@ -0,0 +1,6 @@ +{ + "name": "Editor", + "version": "0.0.0", + "private": true, + "main": "./Editor.js" +} diff --git a/src/themes/react/static/js/components/Iconfont/Iconfont.js b/src/themes/react/static/js/components/Iconfont/Iconfont.js new file mode 100644 index 00000000..66a159bd --- /dev/null +++ b/src/themes/react/static/js/components/Iconfont/Iconfont.js @@ -0,0 +1,14 @@ +import React, { PropTypes } from 'react' +import './iconfont.less' + +const Iconfont = ({ type }) =>
","
"],l=[3,"","
"],f=[1,'',""],p={"*":[1,"?
","
"],area:[1,"",""],col:[2,"","
"],legend:[1,"
","
"],param:[1,"",""],tr:[2,"","
"],optgroup:s,option:s,caption:c,colgroup:c,tbody:c,tfoot:c,thead:c,td:l,th:l},d=["circle","clipPath","defs","ellipse","g","image","line","linearGradient","mask","path","pattern","polygon","polyline","radialGradient","rect","stop","text","tspan"];d.forEach(function(e){p[e]=f,u[e]=!0}),e.exports=r},function(e,t){"use strict";function n(e){return e===window?{x:window.pageXOffset||document.documentElement.scrollLeft,y:window.pageYOffset||document.documentElement.scrollTop}:{x:e.scrollLeft,y:e.scrollTop}}e.exports=n},function(e,t){"use strict";function n(e){return e.replace(r,"-$1").toLowerCase()}var r=/([A-Z])/g;e.exports=n},function(e,t,n){"use strict";function r(e){return o(e).replace(i,"-ms-")}var o=n(722),i=/^ms-/;e.exports=r},function(e,t){"use strict";function n(e){return!(!e||!("function"==typeof Node?e instanceof Node:"object"==typeof e&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName))}e.exports=n},function(e,t,n){"use strict";function r(e){return o(e)&&3==e.nodeType}var o=n(724);e.exports=r},function(e,t){"use strict";function n(e){var t={};return function(n){return t.hasOwnProperty(n)||(t[n]=e.call(this,n)),t[n]}}e.exports=n},function(e,t){e.exports=function(e,t){function n(e,r){return e.reduce(function(e,o){return Array.isArray(o)&&r=e&&c&&(u=!0,n()))}}var a=0,u=!1,s=!1,c=!1,l=void 0;i()}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=b.createKey(),m&&window.history.replaceState(i({},e,{key:o}),null));var u=c.parsePath(n);return b.createLocation(i({},u,{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,i=e.state,a=e.action,u=e.key;if(a!==s.POP){p.saveState(u,i);var c=(t||"")+n+r+o,l={key:u};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===++_&&(C=t(b));var n=b.listenBefore(e);return function(){n(),0===--_&&C()}}function o(e){1===++_&&(C=t(b));var n=b.listen(e);return function(){n(),0===--_&&C()}}function a(e){1===++_&&(C=t(b)),b.registerTransitionHook(e)}function d(e){b.unregisterTransitionHook(e),0===--_&&C()}var v=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];l.canUseDOM?void 0:u["default"](!1);var y=v.forceRefresh,m=f.supportsHistory(),g=!m||y,b=h["default"](i({},v,{getCurrentLocation:e,finishTransition:n,saveState:p.saveState})),_=0,C=void 0;return i({},b,{listenBefore:r,listen:o,registerTransitionHook:a,unregisterTransitionHook:d})}t.__esModule=!0;var i=Object.assign||function(e){for(var t=1;t=0&&t=0&&y - * - * Copyright (c) 2014-2015, Jon Schlinkert. - * Licensed under the MIT License. - */ -"use strict";e.exports=function(e){return null!=e&&"object"==typeof e&&!Array.isArray(e)}},function(e,t){function n(e){var t=r(e)?u.call(e):"";return t==o||t==i}function r(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}var o="[object Function]",i="[object GeneratorFunction]",a=Object.prototype,u=a.toString;e.exports=n},function(e,t,n){function r(e){return null==e?void 0===e?s:u:c&&c in Object(e)?i(e):a(e)}var o=n(286),i=n(739),a=n(740),u="[object Null]",s="[object Undefined]",c=o?o.toStringTag:void 0;e.exports=r},function(e,t){(function(t){var n="object"==typeof t&&t&&t.Object===Object&&t;e.exports=n}).call(t,function(){return this}())},function(e,t,n){var r=n(741),o=r(Object.getPrototypeOf,Object);e.exports=o},function(e,t,n){function r(e){var t=a.call(e,s),n=e[s];try{e[s]=void 0;var r=!0}catch(o){}var i=u.call(e);return r&&(t?e[s]=n:delete e[s]),i}var o=n(286),i=Object.prototype,a=i.hasOwnProperty,u=i.toString,s=o?o.toStringTag:void 0;e.exports=r},function(e,t){function n(e){return o.call(e)}var r=Object.prototype,o=r.toString;e.exports=n},function(e,t){function n(e,t){return function(n){return e(t(n))}}e.exports=n},function(e,t,n){var r=n(737),o="object"==typeof self&&self&&self.Object===Object&&self,i=r||o||Function("return this")();e.exports=i},function(e,t){function n(e){return null!=e&&"object"==typeof e}e.exports=n},function(e,t,n){"use strict";var r=n(290),o=Object.prototype.hasOwnProperty,i={allowDots:!1,allowPrototypes:!1,arrayLimit:20,decoder:r.decode,delimiter:"&",depth:5,parameterLimit:1e3,plainObjects:!1,strictNullHandling:!1},a=function(e,t){for(var n={},r=e.split(t.delimiter,t.parameterLimit===1/0?void 0:t.parameterLimit),i=0;i=0&&n.parseArrays&&a<=n.arrayLimit?(r=[],r[a]=c(e,t,n)):r[i]=c(e,t,n)}return r},s=function(e,t,n){if(e){var r=n.allowDots?e.replace(/\.([^\.\[]+)/g,"[$1]"):e,i=/^([^\[\]]*)/,a=/(\[[^\[\]]*\])/g,s=i.exec(r),c=[];if(s[1]){if(!n.plainObjects&&o.call(Object.prototype,s[1])&&!n.allowPrototypes)return;c.push(s[1])}for(var l=0;null!==(s=a.exec(r))&&l children");return s["default"].createElement(f["default"],{key:t.key,ref:t.key,animation:e.animation,transitionName:e.transitionName,transitionEnter:e.transitionEnter,transitionAppear:e.transitionAppear,transitionLeave:e.transitionLeave},t)}));var r=e.component;if(r){var o=e;return"string"==typeof r&&(o={className:e.className,style:e.style}),s["default"].createElement(r,o,n)}return n[0]||null}});t["default"]=v,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!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},i=n(3),a=r(i),u=n(32),s=r(u),c=n(234),l=r(c),f=n(291),p=r(f),d={enter:"transitionEnter",appear:"transitionAppear",leave:"transitionLeave"},h=a["default"].createClass({displayName:"AnimateChild",propTypes:{children:a["default"].PropTypes.any},componentWillUnmount:function(){this.stop()},componentWillEnter:function(e){p["default"].isEnterSupported(this.props)?this.transition("enter",e):e()},componentWillAppear:function(e){p["default"].isAppearSupported(this.props)?this.transition("appear",e):e()},componentWillLeave:function(e){p["default"].isLeaveSupported(this.props)?this.transition("leave",e):e()},transition:function(e,t){var n=this,r=s["default"].findDOMNode(this),i=this.props,a=i.transitionName,u="object"===("undefined"==typeof a?"undefined":o(a));this.stop();var f=function(){n.stopper=null,t()};if((c.isCssAnimationSupported||!i.animation[e])&&a&&i[d[e]]){var p=u?a[e]:a+"-"+e,h=p+"-active";u&&a[e+"Active"]&&(h=a[e+"Active"]),this.stopper=(0,l["default"])(r,{name:p,active:h},f)}else this.stopper=i.animation[e](r,f)},stop:function(){var e=this.stopper;e&&(this.stopper=null,e.stop())},render:function(){return this.props.children}});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){var t=[];return f["default"].Children.forEach(e,function(e){t.push(e)}),t}function i(e,t){var n=null;return e&&e.forEach(function(e){n||e&&e.key===t&&(n=e)}),n}function a(e,t,n){var r=null;return e&&e.forEach(function(e){if(e&&e.key===t&&e.props[n]){if(r)throw new Error("two child with same key for children");r=e}}),r}function u(e,t,n){var r=0;return e&&e.forEach(function(e){r||(r=e&&e.key===t&&!e.props[n])}),r}function s(e,t,n){var r=e.length===t.length;return r&&e.forEach(function(e,o){var i=t[o];e&&i&&(e&&!i||!e&&i?r=!1:e.key!==i.key?r=!1:n&&e.props[n]!==i.props[n]&&(r=!1))}),r}function c(e,t){var n=[],r={},o=[];return e.forEach(function(e){e&&i(t,e.key)?o.length&&(r[e.key]=o,o=[]):o.push(e)}),t.forEach(function(e){e&&r.hasOwnProperty(e.key)&&(n=n.concat(r[e.key])),n.push(e)}),n=n.concat(o)}Object.defineProperty(t,"__esModule",{value:!0}),t.toArrayChildren=o,t.findChildInChildrenByKey=i,t.findShownChildInChildrenByKey=a,t.findHiddenChildInChildrenByKey=u,t.isSameChildren=s,t.mergeChildren=c;var l=n(3),f=r(l)},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(11),i=r(o),a=n(3),u=r(a),s=u["default"].createClass({displayName:"DOMWrap",propTypes:{tag:a.PropTypes.string,hiddenClassName:a.PropTypes.string,visible:a.PropTypes.bool},getDefaultProps:function(){return{tag:"div"}},render:function(){var e=(0,i["default"])({},this.props);e.visible||(e.className=e.className||"",e.className+=" "+e.hiddenClassName);var t=e.tag;return delete e.tag,delete e.hiddenClassName,delete e.visible,u["default"].createElement(t,e)}});t["default"]=s,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=r(o),a=i["default"].createClass({displayName:"Divider",propTypes:{disabled:o.PropTypes.bool,className:o.PropTypes.string,rootPrefixCls:o.PropTypes.string},getDefaultProps:function(){return{disabled:!0}},render:function(){var e=this.props,t=e.className,n=void 0===t?"":t,r=e.rootPrefixCls;return i["default"].createElement("li",{className:n+" "+r+"-item-divider"})}});t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(11),i=r(o),a=n(3),u=r(a),s=n(292),c=r(s),l=n(126),f=u["default"].createClass({displayName:"Menu",propTypes:{openSubMenuOnMouseEnter:a.PropTypes.bool,closeSubMenuOnMouseLeave:a.PropTypes.bool,selectedKeys:a.PropTypes.arrayOf(a.PropTypes.string),defaultSelectedKeys:a.PropTypes.arrayOf(a.PropTypes.string),defaultOpenKeys:a.PropTypes.arrayOf(a.PropTypes.string),openKeys:a.PropTypes.arrayOf(a.PropTypes.string),mode:a.PropTypes.string,onClick:a.PropTypes.func,onSelect:a.PropTypes.func,onDeselect:a.PropTypes.func,onDestroy:a.PropTypes.func,openTransitionName:a.PropTypes.string,openAnimation:a.PropTypes.oneOfType([a.PropTypes.string,a.PropTypes.object]),level:a.PropTypes.number,eventKey:a.PropTypes.string,selectable:a.PropTypes.bool,children:a.PropTypes.any},mixins:[c["default"]],getDefaultProps:function(){return{openSubMenuOnMouseEnter:!0,closeSubMenuOnMouseLeave:!0,selectable:!0,onClick:l.noop,onSelect:l.noop,onOpenChange:l.noop,onDeselect:l.noop,defaultSelectedKeys:[],defaultOpenKeys:[]}},getInitialState:function(){var e=this.props,t=e.defaultSelectedKeys,n=e.defaultOpenKeys;return"selectedKeys"in e&&(t=e.selectedKeys||[]),"openKeys"in e&&(n=e.openKeys||[]),{selectedKeys:t,openKeys:n}},componentWillReceiveProps:function(e){var t={};"selectedKeys"in e&&(t.selectedKeys=e.selectedKeys),"openKeys"in e&&(t.openKeys=e.openKeys),this.setState(t)},onDestroy:function(e){var t=this.state,n=this.props,r=t.selectedKeys,o=t.openKeys,i=r.indexOf(e);"selectedKeys"in n||i===-1||r.splice(i,1),i=o.indexOf(e),"openKeys"in n||i===-1||o.splice(i,1)},onItemHover:function(e){var t=this,n=e.item,r=this.props,o=r.mode,i=r.closeSubMenuOnMouseLeave,a=e.openChanges,u=void 0===a?[]:a;"inline"!==o&&!i&&n.isSubMenu&&!function(){var r=t.state.activeKey,o=t.getFlatInstanceArray().filter(function(e){return e&&e.props.eventKey===r})[0];o&&o.props.open&&(u=u.concat({key:n.props.eventKey,item:n,originalEvent:e,open:!0}))}(),u=u.concat(this.getOpenChangesOnItemHover(e)),u.length&&this.onOpenChange(u)},onSelect:function(e){var t=this.props;if(t.selectable){var n=this.state.selectedKeys,r=e.key;n=t.multiple?n.concat([r]):[r],"selectedKeys"in t||this.setState({selectedKeys:n}),t.onSelect((0,i["default"])({},e,{selectedKeys:n}))}},onClick:function(e){this.props.onClick(e)},onOpenChange:function(e){var t=this.props,n=this.state.openKeys.concat(),r=!1,o=function(e){var t=!1;if(e.open)t=n.indexOf(e.key)===-1,t&&n.push(e.key);else{var o=n.indexOf(e.key);t=o!==-1,t&&n.splice(o,1)}r=r||t};Array.isArray(e)?e.forEach(o):o(e),r&&("openKeys"in this.props||this.setState({openKeys:n}),t.onOpenChange(n))},onDeselect:function(e){var t=this.props;if(t.selectable){var n=this.state.selectedKeys.concat(),r=e.key,o=n.indexOf(r);o!==-1&&n.splice(o,1),"selectedKeys"in t||this.setState({selectedKeys:n}),t.onDeselect((0,i["default"])({},e,{selectedKeys:n}))}},getOpenTransitionName:function(){var e=this.props,t=e.openTransitionName,n=e.openAnimation;return t||"string"!=typeof n||(t=e.prefixCls+"-open-"+n),t},isInlineMode:function(){return"inline"===this.props.mode},lastOpenSubMenu:function(){var e=[],t=this.state.openKeys;return t.length&&(e=this.getFlatInstanceArray().filter(function(e){return e&&t.indexOf(e.props.eventKey)!==-1})),e[0]},renderMenuItem:function(e,t,n){if(!e)return null;var r=this.state,o={openKeys:r.openKeys,selectedKeys:r.selectedKeys,openSubMenuOnMouseEnter:this.props.openSubMenuOnMouseEnter};return this.renderCommonMenuItem(e,t,n,o)},render:function(){var e=(0,i["default"])({},this.props);return e.className+=" "+e.prefixCls+"-root",this.renderRoot(e)}});t["default"]=f,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(11),i=r(o),a=n(3),u=r(a),s=n(127),c=r(s),l=n(27),f=r(l),p=n(126),d=u["default"].createClass({displayName:"MenuItem",propTypes:{rootPrefixCls:a.PropTypes.string,eventKey:a.PropTypes.string,active:a.PropTypes.bool,children:a.PropTypes.any,selectedKeys:a.PropTypes.array,disabled:a.PropTypes.bool,title:a.PropTypes.string,onSelect:a.PropTypes.func,onClick:a.PropTypes.func,onDeselect:a.PropTypes.func,parentMenu:a.PropTypes.object,onItemHover:a.PropTypes.func,onDestroy:a.PropTypes.func,onMouseEnter:a.PropTypes.func,onMouseLeave:a.PropTypes.func},getDefaultProps:function(){return{onSelect:p.noop,onMouseEnter:p.noop,onMouseLeave:p.noop}},componentWillUnmount:function(){var e=this.props;e.onDestroy&&e.onDestroy(e.eventKey),e.parentMenu.menuItemInstance===this&&this.clearMenuItemMouseLeaveTimer()},onKeyDown:function(e){var t=e.keyCode;if(t===c["default"].ENTER)return this.onClick(e),!0},onMouseLeave:function(e){var t=this,n=this.props,r=n.eventKey,o=n.parentMenu;o.menuItemInstance=this,o.menuItemMouseLeaveFn=function(){t.isMounted()&&n.active&&n.onItemHover({key:r,item:t,hover:!1,domEvent:e,trigger:"mouseleave"})},o.menuItemMouseLeaveTimer=setTimeout(o.menuItemMouseLeaveFn,30),n.onMouseLeave({key:r,domEvent:e})},onMouseEnter:function(e){var t=this.props,n=t.eventKey,r=t.parentMenu;this.clearMenuItemMouseLeaveTimer(r.menuItemInstance!==this),r.subMenuInstance&&r.subMenuInstance.clearSubMenuTimers(),t.onItemHover({key:n,item:this,hover:!0,domEvent:e,trigger:"mouseenter"}),t.onMouseEnter({key:n,domEvent:e})},onClick:function(e){var t=this.props,n=this.isSelected(),r=t.eventKey,o={key:r,keyPath:[r],item:this,domEvent:e};t.onClick(o),t.multiple?n?t.onDeselect(o):t.onSelect(o):n||t.onSelect(o)},getPrefixCls:function(){return this.props.rootPrefixCls+"-item"},getActiveClassName:function(){return this.getPrefixCls()+"-active"},getSelectedClassName:function(){return this.getPrefixCls()+"-selected"},getDisabledClassName:function(){return this.getPrefixCls()+"-disabled"},clearMenuItemMouseLeaveTimer:function(){var e=this.props,t=void 0,n=e.parentMenu;n.menuItemMouseLeaveTimer&&(clearTimeout(n.menuItemMouseLeaveTimer),n.menuItemMouseLeaveTimer=null,t&&n.menuItemMouseLeaveFn&&n.menuItemMouseLeaveFn(),n.menuItemMouseLeaveFn=null)},isSelected:function(){return this.props.selectedKeys.indexOf(this.props.eventKey)!==-1},render:function(){var e=this.props,t=this.isSelected(),n={};n[this.getActiveClassName()]=!e.disabled&&e.active,n[this.getSelectedClassName()]=t,n[this.getDisabledClassName()]=e.disabled,n[this.getPrefixCls()]=!0,n[e.className]=!!e.className;var r=(0,i["default"])({},e.attribute,{title:e.title,className:(0,f["default"])(n),role:"menuitem","aria-selected":t,"aria-disabled":e.disabled}),o={};e.disabled||(o={onClick:this.onClick,onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter});var a=(0,i["default"])({},e.style);return"inline"===e.mode&&(a.paddingLeft=e.inlineIndent*e.level),u["default"].createElement("li",(0,i["default"])({style:a},r,o),e.children)}});d.isMenuItem=1,t["default"]=d,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(3),i=r(o),a=i["default"].createClass({displayName:"MenuItemGroup",propTypes:{renderMenuItem:o.PropTypes.func,index:o.PropTypes.number,className:o.PropTypes.string,rootPrefixCls:o.PropTypes.string},getDefaultProps:function(){return{disabled:!0}},renderInnerMenuItem:function(e,t){var n=this.props,r=n.renderMenuItem,o=n.index;return r(e,o,t)},render:function(){var e=this.props,t=e.className,n=void 0===t?"":t,r=e.rootPrefixCls,o=r+"-item-group-title",a=r+"-item-group-list";return i["default"].createElement("li",{className:n+" "+r+"-item-group"},i["default"].createElement("div",{className:o},e.title),i["default"].createElement("ul",{className:a},i["default"].Children.map(e.children,this.renderInnerMenuItem)))}});a.isMenuItemGroup=!0,t["default"]=a,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(34),i=r(o),a=n(11),u=r(a),s=n(760),c=r(s),l=n(3),f=r(l),p=n(127),d=r(p),h=n(27),v=r(h),y=n(126),m=0,g=f["default"].createClass({displayName:"SubMenu",propTypes:{parentMenu:l.PropTypes.object,title:l.PropTypes.node,children:l.PropTypes.any,selectedKeys:l.PropTypes.array,openKeys:l.PropTypes.array,onClick:l.PropTypes.func,onOpenChange:l.PropTypes.func,rootPrefixCls:l.PropTypes.string,eventKey:l.PropTypes.string,multiple:l.PropTypes.bool,active:l.PropTypes.bool,onSelect:l.PropTypes.func,closeSubMenuOnMouseLeave:l.PropTypes.bool,openSubMenuOnMouseEnter:l.PropTypes.bool,onDeselect:l.PropTypes.func,onDestroy:l.PropTypes.func,onItemHover:l.PropTypes.func,onMouseEnter:l.PropTypes.func,onMouseLeave:l.PropTypes.func,onTitleMouseEnter:l.PropTypes.func,onTitleMouseLeave:l.PropTypes.func,onTitleClick:l.PropTypes.func},mixins:[n(759)],getDefaultProps:function(){return{onMouseEnter:y.noop,onMouseLeave:y.noop,onTitleMouseEnter:y.noop,onTitleMouseLeave:y.noop,onTitleClick:y.noop,title:""}},getInitialState:function(){return this.isSubMenu=1,{defaultActiveFirst:!1}},componentWillUnmount:function(){var e=this.props,t=e.onDestroy,n=e.eventKey,r=e.parentMenu;t&&t(n),r.subMenuInstance===this&&this.clearSubMenuTimers()},onDestroy:function(e){this.props.onDestroy(e)},onKeyDown:function(e){var t=e.keyCode,n=this.menuInstance,r=this.isOpen();if(t===d["default"].ENTER)return this.onTitleClick(e),this.setState({defaultActiveFirst:!0}),!0;if(t===d["default"].RIGHT)return r?n.onKeyDown(e):(this.triggerOpenChange(!0),this.setState({defaultActiveFirst:!0})),!0;if(t===d["default"].LEFT){var o=void 0;if(!r)return;return o=n.onKeyDown(e),o||(this.triggerOpenChange(!1),o=!0),o}return!r||t!==d["default"].UP&&t!==d["default"].DOWN?void 0:n.onKeyDown(e)},onOpenChange:function(e){this.props.onOpenChange(e)},onMouseEnter:function(e){var t=this.props;this.clearSubMenuLeaveTimer(t.parentMenu.subMenuInstance!==this),t.onMouseEnter({key:t.eventKey,domEvent:e})},onTitleMouseEnter:function(e){var t=this.props,n=t.parentMenu,r=t.eventKey,o=this;this.clearSubMenuTitleLeaveTimer(n.subMenuInstance!==o),n.menuItemInstance&&n.menuItemInstance.clearMenuItemMouseLeaveTimer(!0);var i=[];t.openSubMenuOnMouseEnter&&i.push({key:r,item:o,trigger:"mouseenter",open:!0}),t.onItemHover({key:r,item:o,hover:!0,trigger:"mouseenter",openChanges:i}),this.setState({defaultActiveFirst:!1}),t.onTitleMouseEnter({key:r,domEvent:e})},onTitleMouseLeave:function(e){var t=this,n=this.props,r=n.parentMenu,o=n.eventKey;r.subMenuInstance=this,r.subMenuTitleLeaveFn=function(){t.isMounted()&&("inline"===n.mode&&n.active&&n.onItemHover({key:o,item:t,hover:!1,trigger:"mouseleave"}),n.onTitleMouseLeave({key:n.eventKey,domEvent:e}))},r.subMenuTitleLeaveTimer=setTimeout(r.subMenuTitleLeaveFn,100)},onMouseLeave:function(e){var t=this,n=this.props,r=n.parentMenu,o=n.eventKey;r.subMenuInstance=this,r.subMenuLeaveFn=function(){if(t.isMounted()){if("inline"!==n.mode){var r=t.isOpen();r&&n.closeSubMenuOnMouseLeave&&n.active?n.onItemHover({key:o,item:t,hover:!1,trigger:"mouseleave",openChanges:[{key:o,item:t,trigger:"mouseleave",open:!1}]}):(n.active&&n.onItemHover({key:o,item:t,hover:!1,trigger:"mouseleave"}),r&&n.closeSubMenuOnMouseLeave&&t.triggerOpenChange(!1))}n.onMouseLeave({key:o,domEvent:e})}},r.subMenuLeaveTimer=setTimeout(r.subMenuLeaveFn,100)},onTitleClick:function(e){var t=this.props;t.onTitleClick({key:t.eventKey,domEvent:e}),t.openSubMenuOnMouseEnter||(this.triggerOpenChange(!this.isOpen(),"click"),this.setState({defaultActiveFirst:!1}))},onSubMenuClick:function(e){this.props.onClick(this.addKeyPath(e))},onSelect:function(e){this.props.onSelect(e)},onDeselect:function(e){this.props.onDeselect(e)},getPrefixCls:function(){return this.props.rootPrefixCls+"-submenu"},getActiveClassName:function(){return this.getPrefixCls()+"-active"},getDisabledClassName:function(){return this.getPrefixCls()+"-disabled"},getSelectedClassName:function(){return this.getPrefixCls()+"-selected"},getOpenClassName:function(){return this.props.rootPrefixCls+"-submenu-open"},saveMenuInstance:function(e){this.menuInstance=e},addKeyPath:function(e){return(0,u["default"])({},e,{keyPath:(e.keyPath||[]).concat(this.props.eventKey)})},triggerOpenChange:function(e,t){var n=this.props.eventKey;this.onOpenChange({key:n,item:this,trigger:t,open:e})},clearSubMenuTimers:function(){var e=void 0;this.clearSubMenuLeaveTimer(e),this.clearSubMenuTitleLeaveTimer(e)},clearSubMenuTitleLeaveTimer:function(){var e=void 0,t=this.props.parentMenu;t.subMenuTitleLeaveTimer&&(clearTimeout(t.subMenuTitleLeaveTimer),t.subMenuTitleLeaveTimer=null,e&&t.subMenuTitleLeaveFn&&t.subMenuTitleLeaveFn(),t.subMenuTitleLeaveFn=null)},clearSubMenuLeaveTimer:function(){var e=void 0,t=this.props.parentMenu;t.subMenuLeaveTimer&&(clearTimeout(t.subMenuLeaveTimer),t.subMenuLeaveTimer=null,e&&t.subMenuLeaveFn&&t.subMenuLeaveFn(),t.subMenuLeaveFn=null)},isChildrenSelected:function(){var e={find:!1};return(0,y.loopMenuItemRecusively)(this.props.children,this.props.selectedKeys,e),e.find},isOpen:function(){return this.props.openKeys.indexOf(this.props.eventKey)!==-1},renderChildren:function(e){var t=this.props,n={mode:"horizontal"===t.mode?"vertical":t.mode,visible:this.isOpen(),level:t.level+1,inlineIndent:t.inlineIndent,focusable:!1,onClick:this.onSubMenuClick,onSelect:this.onSelect,onDeselect:this.onDeselect,onDestroy:this.onDestroy,selectedKeys:t.selectedKeys,eventKey:t.eventKey+"-menu-",openKeys:t.openKeys,openTransitionName:t.openTransitionName,openAnimation:t.openAnimation,onOpenChange:this.onOpenChange,closeSubMenuOnMouseLeave:t.closeSubMenuOnMouseLeave,defaultActiveFirst:this.state.defaultActiveFirst,multiple:t.multiple,prefixCls:t.rootPrefixCls,id:this._menuId,ref:this.saveMenuInstance};return f["default"].createElement(c["default"],n,e)},render:function(){var e,t=this.isOpen();this.haveOpen=this.haveOpen||t;var n=this.props,r=this.getPrefixCls(),o=(e={},(0,i["default"])(e,n.className,!!n.className),(0,i["default"])(e,r+"-"+n.mode,1),e);o[this.getOpenClassName()]=t,o[this.getActiveClassName()]=n.active,o[this.getDisabledClassName()]=n.disabled, -o[this.getSelectedClassName()]=this.isChildrenSelected(),this._menuId||(n.eventKey?this._menuId=n.eventKey+"$Menu":this._menuId="$__$"+ ++m+"$Menu"),o[r]=!0,o[r+"-"+n.mode]=1;var a={},s={},c={};n.disabled||(a={onClick:this.onTitleClick},s={onMouseLeave:this.onMouseLeave,onMouseEnter:this.onMouseEnter},c={onMouseEnter:this.onTitleMouseEnter,onMouseLeave:this.onTitleMouseLeave});var l={};return"inline"===n.mode&&(l.paddingLeft=n.inlineIndent*n.level),f["default"].createElement("li",(0,u["default"])({className:(0,v["default"])(o)},s),f["default"].createElement("div",(0,u["default"])({style:l,className:r+"-title"},c,a,{"aria-expanded":t,"aria-owns":this._menuId,"aria-haspopup":"true"}),n.title),this.renderChildren(n.children))}});g.isSubMenu=1,t["default"]=g,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(127),i=r(o),a=n(762),u=r(a),s=n(763),c=r(s),l=n(32),f=r(l);t["default"]={componentDidMount:function(){this.componentDidUpdate()},componentDidUpdate:function(){"inline"!==this.props.mode&&(this.props.open?this.bindRootCloseHandlers():this.unbindRootCloseHandlers())},handleDocumentKeyUp:function(e){e.keyCode===i["default"].ESC&&this.props.onItemHover({key:this.props.eventKey,item:this,hover:!1})},handleDocumentClick:function(e){if(!(0,c["default"])(f["default"].findDOMNode(this),e.target)){var t=this.props;t.onItemHover({hover:!1,item:this,key:this.props.eventKey}),this.triggerOpenChange(!1)}},bindRootCloseHandlers:function(){this._onDocumentClickListener||(this._onDocumentClickListener=(0,u["default"])(document,"click",this.handleDocumentClick),this._onDocumentKeyupListener=(0,u["default"])(document,"keyup",this.handleDocumentKeyUp))},unbindRootCloseHandlers:function(){this._onDocumentClickListener&&(this._onDocumentClickListener.remove(),this._onDocumentClickListener=null),this._onDocumentKeyupListener&&(this._onDocumentKeyupListener.remove(),this._onDocumentKeyupListener=null)},componentWillUnmount:function(){this.unbindRootCloseHandlers()}},e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var o=n(87),i=r(o),a=n(11),u=r(a),s=n(3),c=r(s),l=n(292),f=r(l),p=n(178),d=r(p),h=c["default"].createClass({displayName:"SubPopupMenu",propTypes:{onSelect:s.PropTypes.func,onClick:s.PropTypes.func,onDeselect:s.PropTypes.func,onOpenChange:s.PropTypes.func,onDestroy:s.PropTypes.func,openTransitionName:s.PropTypes.string,openAnimation:s.PropTypes.oneOfType([s.PropTypes.string,s.PropTypes.object]),openKeys:s.PropTypes.arrayOf(s.PropTypes.string),closeSubMenuOnMouseLeave:s.PropTypes.bool,visible:s.PropTypes.bool,children:s.PropTypes.any},mixins:[f["default"]],onDeselect:function(e){this.props.onDeselect(e)},onSelect:function(e){this.props.onSelect(e)},onClick:function(e){this.props.onClick(e)},onOpenChange:function(e){this.props.onOpenChange(e)},onDestroy:function(e){this.props.onDestroy(e)},onItemHover:function(e){var t=e.openChanges,n=void 0===t?[]:t;n=n.concat(this.getOpenChangesOnItemHover(e)),n.length&&this.onOpenChange(n)},getOpenTransitionName:function(){return this.props.openTransitionName},renderMenuItem:function(e,t,n){if(!e)return null;var r=this.props,o={openKeys:r.openKeys,selectedKeys:r.selectedKeys,openSubMenuOnMouseEnter:!0};return this.renderCommonMenuItem(e,t,n,o)},render:function(){var e=this.renderFirst;if(this.renderFirst=1,this.haveOpened=this.haveOpened||this.props.visible,!this.haveOpened)return null;var t=!0;!e&&this.props.visible&&(t=!1);var n=(0,u["default"])({},this.props);n.className+=" "+n.prefixCls+"-sub";var r={};return n.openTransitionName?r.transitionName=n.openTransitionName:"object"===(0,i["default"])(n.openAnimation)&&(r.animation=(0,u["default"])({},n.openAnimation),t||delete r.animation.appear),c["default"].createElement(d["default"],(0,u["default"])({},r,{showProp:"visible",component:"",transitionAppear:t}),this.renderRoot(n))}});t["default"]=h,e.exports=t["default"]},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0}),t.Divider=t.ItemGroup=t.MenuItemGroup=t.MenuItem=t.Item=t.SubMenu=void 0;var o=n(755),i=r(o),a=n(758),u=r(a),s=n(756),c=r(s),l=n(757),f=r(l),p=n(754),d=r(p);t.SubMenu=u["default"],t.Item=c["default"],t.MenuItem=c["default"],t.MenuItemGroup=f["default"],t.ItemGroup=f["default"],t.Divider=d["default"],t["default"]=i["default"]},295,function(e,t){"use strict";e.exports=function(e,t){for(var n=t;n;){if(n===e)return!0;n=n.parentNode}return!1}},function(e,t){"use strict";function n(){var e=arguments;return function(){for(var t=0;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function o(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function i(){}var a=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}Object.defineProperty(t,"__esModule",{value:!0});var i=Object.assign||function(e){for(var t=1;t8&&C<=11),E=32,T=String.fromCharCode(E),P={beforeInput:{phasedRegistrationNames:{bubbled:"onBeforeInput",captured:"onBeforeInputCapture"},dependencies:["topCompositionEnd","topKeyPress","topTextInput","topPaste"]},compositionEnd:{phasedRegistrationNames:{bubbled:"onCompositionEnd",captured:"onCompositionEndCapture"},dependencies:["topBlur","topCompositionEnd","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionStart:{phasedRegistrationNames:{bubbled:"onCompositionStart",captured:"onCompositionStartCapture"},dependencies:["topBlur","topCompositionStart","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]},compositionUpdate:{phasedRegistrationNames:{bubbled:"onCompositionUpdate",captured:"onCompositionUpdateCapture"},dependencies:["topBlur","topCompositionUpdate","topKeyDown","topKeyPress","topKeyUp","topMouseDown"]}},O=!1,M=null,k={eventTypes:P,extractEvents:function(e,t,n,r){return[c(e,t,n,r),p(e,t,n,r)]}};e.exports=k},function(e,t,n){"use strict";var r=n(296),o=n(26),i=(n(33),n(716),n(830)),a=n(723),u=n(726),s=(n(7),u(function(e){return a(e)})),c=!1,l="cssFloat";if(o.canUseDOM){var f=document.createElement("div").style;try{f.font=""}catch(p){c=!0}void 0===document.documentElement.style.cssFloat&&(l="styleFloat")}var d={createMarkupForStyles:function(e,t){var n="";for(var r in e)if(e.hasOwnProperty(r)){var o=e[r];null!=o&&(n+=s(r)+":",n+=i(r,o,t)+";")}return n||null},setValueForStyles:function(e,t,n){var o=e.style;for(var a in t)if(t.hasOwnProperty(a)){var u=i(a,t[a],n);if("float"!==a&&"cssFloat"!==a||(a=l),u)o[a]=u;else{var s=c&&r.shorthandPropertyExpansions[a];if(s)for(var f in s)o[f]="";else o[a]=""}}}};e.exports=d},function(e,t,n){"use strict";function r(e){var t=e.nodeName&&e.nodeName.toLowerCase();return"select"===t||"input"===t&&"file"===e.type}function o(e){var t=x.getPooled(O.change,k,e,E(e));b.accumulateTwoPhaseDispatches(t),w.batchedUpdates(i,t)}function i(e){g.enqueueEvents(e),g.processEventQueue(!1)}function a(e,t){M=e,k=t,M.attachEvent("onchange",o)}function u(){M&&(M.detachEvent("onchange",o),M=null,k=null)}function s(e,t){if("topChange"===e)return t}function c(e,t,n){"topFocus"===e?(u(),a(t,n)):"topBlur"===e&&u()}function l(e,t){M=e,k=t,S=e.value,A=Object.getOwnPropertyDescriptor(e.constructor.prototype,"value"),Object.defineProperty(M,"value",j),M.attachEvent?M.attachEvent("onpropertychange",p):M.addEventListener("propertychange",p,!1)}function f(){M&&(delete M.value,M.detachEvent?M.detachEvent("onpropertychange",p):M.removeEventListener("propertychange",p,!1),M=null,k=null,S=null,A=null)}function p(e){if("value"===e.propertyName){var t=e.srcElement.value;t!==S&&(S=t,o(e))}}function d(e,t){if("topInput"===e)return t}function h(e,t,n){"topFocus"===e?(f(),l(t,n)):"topBlur"===e&&f()}function v(e,t){if(("topSelectionChange"===e||"topKeyUp"===e||"topKeyDown"===e)&&M&&M.value!==S)return S=M.value,k}function y(e){return e.nodeName&&"input"===e.nodeName.toLowerCase()&&("checkbox"===e.type||"radio"===e.type)}function m(e,t){if("topClick"===e)return t}var g=n(104),b=n(105),_=n(26),C=n(15),w=n(41),x=n(47),E=n(191),T=n(192),P=n(313),O={change:{phasedRegistrationNames:{bubbled:"onChange",captured:"onChangeCapture"},dependencies:["topBlur","topChange","topClick","topFocus","topInput","topKeyDown","topKeyUp","topSelectionChange"]}},M=null,k=null,S=null,A=null,N=!1;_.canUseDOM&&(N=T("change")&&(!document.documentMode||document.documentMode>8));var R=!1;_.canUseDOM&&(R=T("input")&&(!document.documentMode||document.documentMode>11));var j={get:function(){return A.get.call(this)},set:function(e){S=""+e,A.set.call(this,e)}},I={eventTypes:O,extractEvents:function(e,t,n,o){var i,a,u=t?C.getNodeFromInstance(t):window;if(r(u)?N?i=s:a=c:P(u)?R?i=d:(i=v,a=h):y(u)&&(i=m),i){var l=i(e,t);if(l){var f=x.getPooled(O.change,l,n,o);return f.type="change",b.accumulateTwoPhaseDispatches(f),f}}a&&a(e,u,t)}};e.exports=I},function(e,t,n){"use strict";var r=n(8),o=n(76),i=n(26),a=n(719),u=n(31),s=(n(6),{dangerouslyReplaceNodeWithMarkup:function(e,t){if(i.canUseDOM?void 0:r("56"),t?void 0:r("57"),"HTML"===e.nodeName?r("58"):void 0,"string"==typeof t){var n=a(t,u)[0];e.parentNode.replaceChild(n,e)}else o.replaceChildWithTree(e,t)}});e.exports=s},function(e,t){"use strict";var n=["ResponderEventPlugin","SimpleEventPlugin","TapEventPlugin","EnterLeaveEventPlugin","ChangeEventPlugin","SelectEventPlugin","BeforeInputEventPlugin"];e.exports=n},function(e,t,n){"use strict";var r=n(105),o=n(15),i=n(129),a={ -mouseEnter:{registrationName:"onMouseEnter",dependencies:["topMouseOut","topMouseOver"]},mouseLeave:{registrationName:"onMouseLeave",dependencies:["topMouseOut","topMouseOver"]}},u={eventTypes:a,extractEvents:function(e,t,n,u){if("topMouseOver"===e&&(n.relatedTarget||n.fromElement))return null;if("topMouseOut"!==e&&"topMouseOver"!==e)return null;var s;if(u.window===u)s=u;else{var c=u.ownerDocument;s=c?c.defaultView||c.parentWindow:window}var l,f;if("topMouseOut"===e){l=t;var p=n.relatedTarget||n.toElement;f=p?o.getClosestInstanceFromNode(p):null}else l=null,f=t;if(l===f)return null;var d=null==l?s:o.getNodeFromInstance(l),h=null==f?s:o.getNodeFromInstance(f),v=i.getPooled(a.mouseLeave,l,n,u);v.type="mouseleave",v.target=d,v.relatedTarget=h;var y=i.getPooled(a.mouseEnter,f,n,u);return y.type="mouseenter",y.target=h,y.relatedTarget=d,r.accumulateEnterLeaveDispatches(v,y,l,f),[v,y]}};e.exports=u},function(e,t,n){"use strict";function r(e){this._root=e,this._startText=this.getText(),this._fallbackText=null}var o=n(9),i=n(64),a=n(311);o(r.prototype,{destructor:function(){this._root=null,this._startText=null,this._fallbackText=null},getText:function(){return"value"in this._root?this._root.value:this._root[a()]},getData:function(){if(this._fallbackText)return this._fallbackText;var e,t,n=this._startText,r=n.length,o=this.getText(),i=o.length;for(e=0;e1?1-t:void 0;return this._fallbackText=o.slice(e,u),this._fallbackText}}),i.addPoolingTo(r),e.exports=r},function(e,t,n){"use strict";var r=n(77),o=r.injection.MUST_USE_PROPERTY,i=r.injection.HAS_BOOLEAN_VALUE,a=r.injection.HAS_NUMERIC_VALUE,u=r.injection.HAS_POSITIVE_NUMERIC_VALUE,s=r.injection.HAS_OVERLOADED_BOOLEAN_VALUE,c={isCustomAttribute:RegExp.prototype.test.bind(new RegExp("^(data|aria)-["+r.ATTRIBUTE_NAME_CHAR+"]*$")),Properties:{accept:0,acceptCharset:0,accessKey:0,action:0,allowFullScreen:i,allowTransparency:0,alt:0,as:0,async:i,autoComplete:0,autoPlay:i,capture:i,cellPadding:0,cellSpacing:0,charSet:0,challenge:0,checked:o|i,cite:0,classID:0,className:0,cols:u,colSpan:0,content:0,contentEditable:0,contextMenu:0,controls:i,coords:0,crossOrigin:0,data:0,dateTime:0,"default":i,defer:i,dir:0,disabled:i,download:s,draggable:0,encType:0,form:0,formAction:0,formEncType:0,formMethod:0,formNoValidate:i,formTarget:0,frameBorder:0,headers:0,height:0,hidden:i,high:0,href:0,hrefLang:0,htmlFor:0,httpEquiv:0,icon:0,id:0,inputMode:0,integrity:0,is:0,keyParams:0,keyType:0,kind:0,label:0,lang:0,list:0,loop:i,low:0,manifest:0,marginHeight:0,marginWidth:0,max:0,maxLength:0,media:0,mediaGroup:0,method:0,min:0,minLength:0,multiple:o|i,muted:o|i,name:0,nonce:0,noValidate:i,open:i,optimum:0,pattern:0,placeholder:0,playsInline:i,poster:0,preload:0,profile:0,radioGroup:0,readOnly:i,referrerPolicy:0,rel:0,required:i,reversed:i,role:0,rows:u,rowSpan:a,sandbox:0,scope:0,scoped:i,scrolling:0,seamless:i,selected:o|i,shape:0,size:u,sizes:0,span:u,spellCheck:0,src:0,srcDoc:0,srcLang:0,srcSet:0,start:a,step:0,style:0,summary:0,tabIndex:0,target:0,title:0,type:0,useMap:0,value:0,width:0,wmode:0,wrap:0,about:0,datatype:0,inlist:0,prefix:0,property:0,resource:0,"typeof":0,vocab:0,autoCapitalize:0,autoCorrect:0,autoSave:0,color:0,itemProp:0,itemScope:i,itemType:0,itemID:0,itemRef:0,results:0,security:0,unselectable:0},DOMAttributeNames:{acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},DOMPropertyNames:{}};e.exports=c},function(e,t,n){(function(t){"use strict";function r(e,t,n,r){var o=void 0===e[n];null!=t&&o&&(e[n]=i(t,!0))}var o=n(78),i=n(312),a=(n(183),n(193)),u=n(315);n(7);"undefined"!=typeof t&&t.env,1;var s={instantiateChildren:function(e,t,n,o){if(null==e)return null;var i={};return u(e,r,i),i},updateChildren:function(e,t,n,r,u,s,c,l,f){if(t||e){var p,d;for(p in t)if(t.hasOwnProperty(p)){d=e&&e[p];var h=d&&d._currentElement,v=t[p];if(null!=d&&a(h,v))o.receiveComponent(d,v,u,l),t[p]=d;else{d&&(r[p]=o.getHostNode(d),o.unmountComponent(d,!1));var y=i(v,!0);t[p]=y;var m=o.mountComponent(y,u,s,c,l,f);n.push(m)}}for(p in e)!e.hasOwnProperty(p)||t&&t.hasOwnProperty(p)||(d=e[p],r[p]=o.getHostNode(d),o.unmountComponent(d,!1))}},unmountChildren:function(e,t){for(var n in e)if(e.hasOwnProperty(n)){var r=e[n];o.unmountComponent(r,t)}}};e.exports=s}).call(t,n(103))},function(e,t,n){"use strict";var r=n(179),o=n(794),i={processChildrenUpdates:o.dangerouslyProcessChildrenUpdates,replaceNodeWithMarkup:r.dangerouslyReplaceNodeWithMarkup};e.exports=i},function(e,t,n){"use strict";function r(e){}function o(e,t){}function i(e){return!(!e.prototype||!e.prototype.isReactComponent)}function a(e){return!(!e.prototype||!e.prototype.isPureReactComponent)}var u=n(8),s=n(9),c=n(80),l=n(185),f=n(48),p=n(186),d=n(106),h=(n(33),n(306)),v=n(78),y=n(102),m=(n(6),n(173)),g=n(193),b=(n(7),{ImpureClass:0,PureClass:1,StatelessFunctional:2});r.prototype.render=function(){var e=d.get(this)._currentElement.type,t=e(this.props,this.context,this.updater);return o(e,t),t};var _=1,C={construct:function(e){this._currentElement=e,this._rootNodeID=0,this._compositeType=null,this._instance=null,this._hostParent=null,this._hostContainerInfo=null,this._updateBatchNumber=null,this._pendingElement=null,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._renderedNodeType=null,this._renderedComponent=null,this._context=null,this._mountOrder=0,this._topLevelWrapper=null,this._pendingCallbacks=null,this._calledComponentWillUnmount=!1},mountComponent:function(e,t,n,s){this._context=s,this._mountOrder=_++,this._hostParent=t,this._hostContainerInfo=n;var l,f=this._currentElement.props,p=this._processContext(s),h=this._currentElement.type,v=e.getUpdateQueue(),m=i(h),g=this._constructComponent(m,f,p,v);m||null!=g&&null!=g.render?a(h)?this._compositeType=b.PureClass:this._compositeType=b.ImpureClass:(l=g,o(h,l),null===g||g===!1||c.isValidElement(g)?void 0:u("105",h.displayName||h.name||"Component"),g=new r(h),this._compositeType=b.StatelessFunctional);g.props=f,g.context=p,g.refs=y,g.updater=v,this._instance=g,d.set(g,this);var C=g.state;void 0===C&&(g.state=C=null),"object"!=typeof C||Array.isArray(C)?u("106",this.getName()||"ReactCompositeComponent"):void 0,this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1;var w;return w=g.unstable_handleError?this.performInitialMountWithErrorHandling(l,t,n,e,s):this.performInitialMount(l,t,n,e,s),g.componentDidMount&&e.getReactMountReady().enqueue(g.componentDidMount,g),w},_constructComponent:function(e,t,n,r){return this._constructComponentWithoutOwner(e,t,n,r)},_constructComponentWithoutOwner:function(e,t,n,r){var o=this._currentElement.type;return e?new o(t,n,r):o(t,n,r)},performInitialMountWithErrorHandling:function(e,t,n,r,o){var i,a=r.checkpoint();try{i=this.performInitialMount(e,t,n,r,o)}catch(u){r.rollback(a),this._instance.unstable_handleError(u),this._pendingStateQueue&&(this._instance.state=this._processPendingState(this._instance.props,this._instance.context)),a=r.checkpoint(),this._renderedComponent.unmountComponent(!0),r.rollback(a),i=this.performInitialMount(e,t,n,r,o)}return i},performInitialMount:function(e,t,n,r,o){var i=this._instance,a=0;i.componentWillMount&&(i.componentWillMount(),this._pendingStateQueue&&(i.state=this._processPendingState(i.props,i.context))),void 0===e&&(e=this._renderValidatedComponent());var u=h.getType(e);this._renderedNodeType=u;var s=this._instantiateReactComponent(e,u!==h.EMPTY);this._renderedComponent=s;var c=v.mountComponent(s,r,t,n,this._processChildContext(o),a);return c},getHostNode:function(){return v.getHostNode(this._renderedComponent)},unmountComponent:function(e){if(this._renderedComponent){var t=this._instance;if(t.componentWillUnmount&&!t._calledComponentWillUnmount)if(t._calledComponentWillUnmount=!0,e){var n=this.getName()+".componentWillUnmount()";p.invokeGuardedCallback(n,t.componentWillUnmount.bind(t))}else t.componentWillUnmount();this._renderedComponent&&(v.unmountComponent(this._renderedComponent,e),this._renderedNodeType=null,this._renderedComponent=null,this._instance=null),this._pendingStateQueue=null,this._pendingReplaceState=!1,this._pendingForceUpdate=!1,this._pendingCallbacks=null,this._pendingElement=null,this._context=null,this._rootNodeID=0,this._topLevelWrapper=null,d.remove(t)}},_maskContext:function(e){var t=this._currentElement.type,n=t.contextTypes;if(!n)return y;var r={};for(var o in n)r[o]=e[o];return r},_processContext:function(e){var t=this._maskContext(e);return t},_processChildContext:function(e){var t,n=this._currentElement.type,r=this._instance;if(r.getChildContext&&(t=r.getChildContext()),t){"object"!=typeof n.childContextTypes?u("107",this.getName()||"ReactCompositeComponent"):void 0;for(var o in t)o in n.childContextTypes?void 0:u("108",this.getName()||"ReactCompositeComponent",o);return s({},e,t)}return e},_checkContextTypes:function(e,t,n){},receiveComponent:function(e,t,n){var r=this._currentElement,o=this._context;this._pendingElement=null,this.updateComponent(t,r,e,o,n)},performUpdateIfNecessary:function(e){null!=this._pendingElement?v.receiveComponent(this,this._pendingElement,e,this._context):null!==this._pendingStateQueue||this._pendingForceUpdate?this.updateComponent(e,this._currentElement,this._currentElement,this._context,this._context):this._updateBatchNumber=null},updateComponent:function(e,t,n,r,o){var i=this._instance;null==i?u("136",this.getName()||"ReactCompositeComponent"):void 0;var a,s=!1;this._context===o?a=i.context:(a=this._processContext(o),s=!0);var c=t.props,l=n.props;t!==n&&(s=!0),s&&i.componentWillReceiveProps&&i.componentWillReceiveProps(l,a);var f=this._processPendingState(l,a),p=!0;this._pendingForceUpdate||(i.shouldComponentUpdate?p=i.shouldComponentUpdate(l,f,a):this._compositeType===b.PureClass&&(p=!m(c,l)||!m(i.state,f))),this._updateBatchNumber=null,p?(this._pendingForceUpdate=!1,this._performComponentUpdate(n,l,f,a,e,o)):(this._currentElement=n,this._context=o,i.props=l,i.state=f,i.context=a)},_processPendingState:function(e,t){var n=this._instance,r=this._pendingStateQueue,o=this._pendingReplaceState;if(this._pendingReplaceState=!1,this._pendingStateQueue=null,!r)return n.state;if(o&&1===r.length)return r[0];for(var i=s({},o?r[0]:n.state),a=o?1:0;a=0||null!=t.is}function h(e){var t=e.type;p(t),this._currentElement=e,this._tag=t.toLowerCase(),this._namespaceURI=null,this._renderedChildren=null,this._previousStyle=null,this._previousStyleCopy=null,this._hostNode=null,this._hostParent=null,this._rootNodeID=0,this._domID=0,this._hostContainerInfo=null,this._wrapperState=null,this._topLevelWrapper=null,this._flags=0}var v=n(8),y=n(9),m=n(777),g=n(779),b=n(76),_=n(180),C=n(77),w=n(298),x=n(104),E=n(181),T=n(128),P=n(299),O=n(15),M=n(795),k=n(796),S=n(300),A=n(799),N=(n(33),n(808)),R=n(813),j=(n(31),n(131)),I=(n(6),n(192),n(173),n(194),n(7),P),D=x.deleteListener,L=O.getNodeFromInstance,F=T.listenTo,U=E.registrationNameModules,H={string:!0,number:!0},K="style",W="__html",B={children:null,dangerouslySetInnerHTML:null,suppressContentEditableWarning:null},V=11,q={topAbort:"abort",topCanPlay:"canplay",topCanPlayThrough:"canplaythrough",topDurationChange:"durationchange",topEmptied:"emptied",topEncrypted:"encrypted",topEnded:"ended",topError:"error",topLoadedData:"loadeddata",topLoadedMetadata:"loadedmetadata",topLoadStart:"loadstart",topPause:"pause",topPlay:"play",topPlaying:"playing",topProgress:"progress",topRateChange:"ratechange",topSeeked:"seeked",topSeeking:"seeking",topStalled:"stalled",topSuspend:"suspend",topTimeUpdate:"timeupdate",topVolumeChange:"volumechange",topWaiting:"waiting"},z={area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0},Y={listing:!0,pre:!0,textarea:!0},G=y({menuitem:!0},z),X=/^[a-zA-Z][a-zA-Z:_\.\-\d]*$/,$={},Q={}.hasOwnProperty,Z=1;h.displayName="ReactDOMComponent",h.Mixin={mountComponent:function(e,t,n,r){this._rootNodeID=Z++,this._domID=n._idCounter++,this._hostParent=t,this._hostContainerInfo=n;var i=this._currentElement.props;switch(this._tag){case"audio":case"form":case"iframe":case"img":case"link":case"object":case"source":case"video":this._wrapperState={listeners:null},e.getReactMountReady().enqueue(l,this);break;case"input":M.mountWrapper(this,i,t),i=M.getHostProps(this,i),e.getReactMountReady().enqueue(l,this);break;case"option":k.mountWrapper(this,i,t),i=k.getHostProps(this,i);break;case"select":S.mountWrapper(this,i,t),i=S.getHostProps(this,i),e.getReactMountReady().enqueue(l,this);break;case"textarea":A.mountWrapper(this,i,t),i=A.getHostProps(this,i),e.getReactMountReady().enqueue(l,this)}o(this,i);var a,f;null!=t?(a=t._namespaceURI,f=t._tag):n._tag&&(a=n._namespaceURI,f=n._tag),(null==a||a===_.svg&&"foreignobject"===f)&&(a=_.html),a===_.html&&("svg"===this._tag?a=_.svg:"math"===this._tag&&(a=_.mathml)),this._namespaceURI=a;var p;if(e.useCreateElement){var d,h=n._ownerDocument;if(a===_.html)if("script"===this._tag){var v=h.createElement("div"),y=this._currentElement.type;v.innerHTML="<"+y+">",d=v.removeChild(v.firstChild)}else d=i.is?h.createElement(this._currentElement.type,i.is):h.createElement(this._currentElement.type);else d=h.createElementNS(a,this._currentElement.type);O.precacheNode(this,d),this._flags|=I.hasCachedChildNodes,this._hostParent||w.setAttributeForRoot(d),this._updateDOMProperties(null,i,e);var g=b(d);this._createInitialChildren(e,i,r,g),p=g}else{var C=this._createOpenTagMarkupAndPutListeners(e,i),x=this._createContentMarkup(e,i,r);p=!x&&z[this._tag]?C+"/>":C+">"+x+""}switch(this._tag){case"input":e.getReactMountReady().enqueue(u,this),i.autoFocus&&e.getReactMountReady().enqueue(m.focusDOMComponent,this);break;case"textarea":e.getReactMountReady().enqueue(s,this),i.autoFocus&&e.getReactMountReady().enqueue(m.focusDOMComponent,this);break;case"select":i.autoFocus&&e.getReactMountReady().enqueue(m.focusDOMComponent,this);break;case"button":i.autoFocus&&e.getReactMountReady().enqueue(m.focusDOMComponent,this);break;case"option":e.getReactMountReady().enqueue(c,this)}return p},_createOpenTagMarkupAndPutListeners:function(e,t){var n="<"+this._currentElement.type;for(var r in t)if(t.hasOwnProperty(r)){var o=t[r];if(null!=o)if(U.hasOwnProperty(r))o&&i(this,r,o,e);else{r===K&&(o&&(o=this._previousStyleCopy=y({},t.style)),o=g.createMarkupForStyles(o,this));var a=null;null!=this._tag&&d(this._tag,t)?B.hasOwnProperty(r)||(a=w.createMarkupForCustomAttribute(r,o)):a=w.createMarkupForProperty(r,o),a&&(n+=" "+a)}}return e.renderToStaticMarkup?n:(this._hostParent||(n+=" "+w.createMarkupForRoot()),n+=" "+w.createMarkupForID(this._domID))},_createContentMarkup:function(e,t,n){var r="",o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&(r=o.__html);else{var i=H[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)r=j(i);else if(null!=a){var u=this.mountChildren(a,e,n);r=u.join("")}}return Y[this._tag]&&"\n"===r.charAt(0)?"\n"+r:r},_createInitialChildren:function(e,t,n,r){var o=t.dangerouslySetInnerHTML;if(null!=o)null!=o.__html&&b.queueHTML(r,o.__html);else{var i=H[typeof t.children]?t.children:null,a=null!=i?null:t.children;if(null!=i)""!==i&&b.queueText(r,i);else if(null!=a)for(var u=this.mountChildren(a,e,n),s=0;s"},receiveComponent:function(){},getHostNode:function(){return i.getNodeFromInstance(this)},unmountComponent:function(){i.uncacheNode(this)}}),e.exports=a},function(e,t){"use strict";var n={useCreateElement:!0,useFiber:!1};e.exports=n},function(e,t,n){"use strict";var r=n(179),o=n(15),i={dangerouslyProcessChildrenUpdates:function(e,t){var n=o.getNodeFromInstance(e);r.processUpdates(n,t)}};e.exports=i},function(e,t,n){"use strict";function r(){this._rootNodeID&&f.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=s.executeOnChange(t,e);l.asap(r,this);var o=t.name;if("radio"===t.type&&null!=o){for(var a=c.getNodeFromInstance(this),u=a;u.parentNode;)u=u.parentNode;for(var f=u.querySelectorAll("input[name="+JSON.stringify(""+o)+'][type="radio"]'),p=0;pt.end?(n=t.end,r=t.start):(n=t.start,r=t.end),o.moveToElementText(e),o.moveStart("character",n),o.setEndPoint("EndToStart",o),o.moveEnd("character",r-n),o.select()}function u(e,t){if(window.getSelection){var n=window.getSelection(),r=e[l()].length,o=Math.min(t.start,r),i=void 0===t.end?o:Math.min(t.end,r);if(!n.extend&&o>i){var a=i;i=o,o=a}var u=c(e,o),s=c(e,i);if(u&&s){var f=document.createRange();f.setStart(u.node,u.offset),n.removeAllRanges(),o>i?(n.addRange(f),n.extend(s.node,s.offset)):(f.setEnd(s.node,s.offset),n.addRange(f))}}}var s=n(26),c=n(836),l=n(311),f=s.canUseDOM&&"selection"in document&&!("getSelection"in window),p={getOffsets:f?o:i,setOffsets:f?a:u};e.exports=p},function(e,t,n){"use strict";var r=n(8),o=n(9),i=n(179),a=n(76),u=n(15),s=n(131),c=(n(6),n(194),function(e){this._currentElement=e,this._stringText=""+e,this._hostNode=null,this._hostParent=null,this._domID=0,this._mountIndex=0,this._closingComment=null,this._commentNodes=null});o(c.prototype,{mountComponent:function(e,t,n,r){var o=n._idCounter++,i=" react-text: "+o+" ",c=" /react-text ";if(this._domID=o,this._hostParent=t,e.useCreateElement){var l=n._ownerDocument,f=l.createComment(i),p=l.createComment(c),d=a(l.createDocumentFragment());return a.queueChild(d,a(f)),this._stringText&&a.queueChild(d,a(l.createTextNode(this._stringText))),a.queueChild(d,a(p)),u.precacheNode(this,f),this._closingComment=p,d}var h=s(this._stringText);return e.renderToStaticMarkup?h:""+h+""},receiveComponent:function(e,t){if(e!==this._currentElement){this._currentElement=e;var n=""+e;if(n!==this._stringText){this._stringText=n;var r=this.getHostNode();i.replaceDelimitedText(r[0],r[1],n)}}},getHostNode:function(){var e=this._commentNodes;if(e)return e;if(!this._closingComment)for(var t=u.getNodeFromInstance(this),n=t.nextSibling;;){if(null==n?r("67",this._domID):void 0,8===n.nodeType&&" /react-text "===n.nodeValue){this._closingComment=n;break}n=n.nextSibling}return e=[this._hostNode,this._closingComment],this._commentNodes=e,e},unmountComponent:function(){this._closingComment=null,this._commentNodes=null,u.uncacheNode(this)}}),e.exports=c},function(e,t,n){"use strict";function r(){this._rootNodeID&&l.updateWrapper(this)}function o(e){var t=this._currentElement.props,n=u.executeOnChange(t,e);return c.asap(r,this),n}var i=n(8),a=n(9),u=n(184),s=n(15),c=n(41),l=(n(6),n(7),{getHostProps:function(e,t){null!=t.dangerouslySetInnerHTML?i("91"):void 0;var n=a({},t,{value:void 0,defaultValue:void 0,children:""+e._wrapperState.initialValue,onChange:e._wrapperState.onChange});return n},mountWrapper:function(e,t){var n=u.getValue(t),r=n;if(null==n){var a=t.defaultValue,s=t.children;null!=s&&(null!=a?i("92"):void 0,Array.isArray(s)&&(s.length<=1?void 0:i("93"),s=s[0]),a=""+s),null==a&&(a=""),r=a}e._wrapperState={initialValue:""+r,listeners:null,onChange:o.bind(e)}},updateWrapper:function(e){var t=e._currentElement.props,n=s.getNodeFromInstance(e),r=u.getValue(t);if(null!=r){var o=""+r;o!==n.value&&(n.value=o),null==t.defaultValue&&(n.defaultValue=o)}null!=t.defaultValue&&(n.defaultValue=t.defaultValue)},postMountWrapper:function(e){var t=s.getNodeFromInstance(e),n=t.textContent;n===e._wrapperState.initialValue&&(t.value=n)}});e.exports=l},function(e,t,n){"use strict";function r(e,t){"_hostNode"in e?void 0:s("33"),"_hostNode"in t?void 0:s("33");for(var n=0,r=e;r;r=r._hostParent)n++;for(var o=0,i=t;i;i=i._hostParent)o++;for(;n-o>0;)e=e._hostParent,n--;for(;o-n>0;)t=t._hostParent,o--;for(var a=n;a--;){if(e===t)return e;e=e._hostParent,t=t._hostParent}return null}function o(e,t){"_hostNode"in e?void 0:s("35"),"_hostNode"in t?void 0:s("35");for(;t;){if(t===e)return!0;t=t._hostParent}return!1}function i(e){return"_hostNode"in e?void 0:s("36"),e._hostParent}function a(e,t,n){for(var r=[];e;)r.push(e),e=e._hostParent;var o;for(o=r.length;o-- >0;)t(r[o],"captured",n);for(o=0;o0;)n(s[c],"captured",i)}var s=n(8);n(6);e.exports={isAncestor:o,getLowestCommonAncestor:r,getParentInstance:i,traverseTwoPhase:a,traverseEnterLeave:u}},function(e,t,n){"use strict";function r(){this.reinitializeTransaction()}var o=n(9),i=n(41),a=n(130),u=n(31),s={initialize:u,close:function(){p.isBatchingUpdates=!1}},c={initialize:u,close:i.flushBatchedUpdates.bind(i)},l=[c,s];o(r.prototype,a,{getTransactionWrappers:function(){return l}});var f=new r,p={isBatchingUpdates:!1,batchedUpdates:function(e,t,n,r,o,i){var a=p.isBatchingUpdates;return p.isBatchingUpdates=!0,a?e(t,n,r,o,i):f.perform(e,null,t,n,r,o,i)}};e.exports=p},function(e,t,n){"use strict";function r(){x||(x=!0,g.EventEmitter.injectReactEventListener(m),g.EventPluginHub.injectEventPluginOrder(u),g.EventPluginUtils.injectComponentTree(p),g.EventPluginUtils.injectTreeTraversal(h),g.EventPluginHub.injectEventPluginsByName({SimpleEventPlugin:w,EnterLeaveEventPlugin:s,ChangeEventPlugin:a,SelectEventPlugin:C,BeforeInputEventPlugin:i}),g.HostComponent.injectGenericComponentClass(f),g.HostComponent.injectTextComponentClass(v),g.DOMProperty.injectDOMPropertyConfig(o),g.DOMProperty.injectDOMPropertyConfig(c),g.DOMProperty.injectDOMPropertyConfig(_),g.EmptyComponent.injectEmptyComponentFactory(function(e){return new d(e)}),g.Updates.injectReconcileTransaction(b),g.Updates.injectBatchingStrategy(y),g.Component.injectEnvironment(l))}var o=n(776),i=n(778),a=n(780),u=n(782),s=n(783),c=n(785),l=n(787),f=n(790),p=n(15),d=n(792),h=n(800),v=n(798),y=n(801),m=n(805),g=n(806),b=n(811),_=n(816),C=n(817),w=n(818),x=!1;e.exports={inject:r}},331,function(e,t,n){"use strict";function r(e){o.enqueueEvents(e),o.processEventQueue(!1)}var o=n(104),i={handleTopLevel:function(e,t,n,i){var a=o.extractEvents(e,t,n,i);r(a)}};e.exports=i},function(e,t,n){"use strict";function r(e){for(;e._hostParent;)e=e._hostParent;var t=f.getNodeFromInstance(e),n=t.parentNode;return f.getClosestInstanceFromNode(n)}function o(e,t){this.topLevelType=e,this.nativeEvent=t,this.ancestors=[]}function i(e){var t=d(e.nativeEvent),n=f.getClosestInstanceFromNode(t),o=n;do e.ancestors.push(o),o=o&&r(o);while(o);for(var i=0;i/,i=/^<\!\-\-/,a={CHECKSUM_ATTR_NAME:"data-react-checksum",addChecksumToMarkup:function(e){var t=r(e);return i.test(e)?e:e.replace(o," "+a.CHECKSUM_ATTR_NAME+'="'+t+'"$&')},canReuseMarkup:function(e,t){var n=t.getAttribute(a.CHECKSUM_ATTR_NAME);n=n&&parseInt(n,10);var o=r(e);return o===n}};e.exports=a},function(e,t,n){"use strict";function r(e,t,n){return{type:"INSERT_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:n,afterNode:t}}function o(e,t,n){return{type:"MOVE_EXISTING",content:null,fromIndex:e._mountIndex,fromNode:p.getHostNode(e),toIndex:n,afterNode:t}}function i(e,t){return{type:"REMOVE_NODE",content:null,fromIndex:e._mountIndex,fromNode:t,toIndex:null,afterNode:null}}function a(e){return{type:"SET_MARKUP",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function u(e){return{type:"TEXT_CONTENT",content:e,fromIndex:null,fromNode:null,toIndex:null,afterNode:null}}function s(e,t){return t&&(e=e||[],e.push(t)),e}function c(e,t){f.processChildrenUpdates(e,t)}var l=n(8),f=n(185),p=(n(106),n(33),n(48),n(78)),d=n(786),h=(n(31),n(832)),v=(n(6),{Mixin:{_reconcilerInstantiateChildren:function(e,t,n){return d.instantiateChildren(e,t,n)},_reconcilerUpdateChildren:function(e,t,n,r,o,i){var a,u=0;return a=h(t,u),d.updateChildren(e,a,n,r,o,this,this._hostContainerInfo,i,u),a},mountChildren:function(e,t,n){var r=this._reconcilerInstantiateChildren(e,t,n);this._renderedChildren=r;var o=[],i=0;for(var a in r)if(r.hasOwnProperty(a)){var u=r[a],s=0,c=p.mountComponent(u,t,this,this._hostContainerInfo,n,s);u._mountIndex=i++,o.push(c)}return o},updateTextContent:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&l("118");var r=[u(e)];c(this,r)},updateMarkup:function(e){var t=this._renderedChildren;d.unmountChildren(t,!1);for(var n in t)t.hasOwnProperty(n)&&l("118");var r=[a(e)];c(this,r)},updateChildren:function(e,t,n){this._updateChildren(e,t,n)},_updateChildren:function(e,t,n){var r=this._renderedChildren,o={},i=[],a=this._reconcilerUpdateChildren(r,e,i,o,t,n);if(a||r){var u,l=null,f=0,d=0,h=0,v=null;for(u in a)if(a.hasOwnProperty(u)){var y=r&&r[u],m=a[u];y===m?(l=s(l,this.moveChild(y,v,f,d)),d=Math.max(y._mountIndex,d),y._mountIndex=f):(y&&(d=Math.max(y._mountIndex,d)),l=s(l,this._mountChildAtIndex(m,i[h],v,f,t,n)),h++),f++,v=p.getHostNode(m)}for(u in o)o.hasOwnProperty(u)&&(l=s(l,this._unmountChild(r[u],o[u])));l&&c(this,l),this._renderedChildren=a}},unmountChildren:function(e){var t=this._renderedChildren;d.unmountChildren(t,e),this._renderedChildren=null},moveChild:function(e,t,n,r){if(e._mountIndex=t)return{node:o,offset:t-i};i=a}o=n(r(o))}}e.exports=o},function(e,t,n){"use strict";function r(e,t){var n={};return n[e.toLowerCase()]=t.toLowerCase(),n["Webkit"+e]="webkit"+t,n["Moz"+e]="moz"+t,n["ms"+e]="MS"+t,n["O"+e]="o"+t.toLowerCase(),n}function o(e){if(u[e])return u[e];if(!a[e])return e;var t=a[e];for(var n in t)if(t.hasOwnProperty(n)&&n in s)return u[e]=t[n];return""}var i=n(26),a={animationend:r("Animation","AnimationEnd"),animationiteration:r("Animation","AnimationIteration"),animationstart:r("Animation","AnimationStart"),transitionend:r("Transition","TransitionEnd")},u={},s={};i.canUseDOM&&(s=document.createElement("div").style,"AnimationEvent"in window||(delete a.animationend.animation,delete a.animationiteration.animation,delete a.animationstart.animation),"TransitionEvent"in window||delete a.transitionend.transition),e.exports=o},function(e,t,n){"use strict";function r(e){return'"'+o(e)+'"'}var o=n(131);e.exports=r},function(e,t,n){"use strict";var r=n(305);e.exports=r.renderSubtreeIntoContainer},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}t.__esModule=!0,t["default"]=void 0;var u=n(3),s=n(317),c=r(s),l=n(318),f=(r(l),function(e){function t(n,r){o(this,t);var a=i(this,e.call(this,n,r));return a.store=n.store,a}return a(t,e),t.prototype.getChildContext=function(){return{store:this.store}},t.prototype.render=function(){return u.Children.only(this.props.children)},t}(u.Component));t["default"]=f,f.propTypes={store:c["default"].isRequired,children:u.PropTypes.element.isRequired},f.childContextTypes={store:c["default"].isRequired}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function i(e,t){if(!e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!t||"object"!=typeof t&&"function"!=typeof t?e:t}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}function u(e){return e.displayName||e.name||"Component"}function s(e,t){try{return e.apply(t)}catch(n){return O.value=n,O}}function c(e,t,n){var r=arguments.length>3&&void 0!==arguments[3]?arguments[3]:{},c=Boolean(e),p=e||E,h=void 0;h="function"==typeof t?t:t?(0,m["default"])(t):T;var y=n||P,g=r.pure,b=void 0===g||g,_=r.withRef,w=void 0!==_&&_,k=b&&y!==P,S=M++;return function(e){function t(e,t,n){var r=y(e,t,n);return r}var n="Connect("+u(e)+")",r=function(r){function u(e,t){o(this,u);var a=i(this,r.call(this,e,t));a.version=S,a.store=e.store||t.store,(0,x["default"])(a.store,'Could not find "store" in either the context or '+('props of "'+n+'". ')+"Either wrap the root component in a , "+('or explicitly pass "store" as a prop to "'+n+'".'));var s=a.store.getState();return a.state={storeState:s},a.clearCache(),a}return a(u,r),u.prototype.shouldComponentUpdate=function(){return!b||this.haveOwnPropsChanged||this.hasStoreStateChanged},u.prototype.computeStateProps=function(e,t){if(!this.finalMapStateToProps)return this.configureFinalMapState(e,t);var n=e.getState(),r=this.doStatePropsDependOnOwnProps?this.finalMapStateToProps(n,t):this.finalMapStateToProps(n);return r},u.prototype.configureFinalMapState=function(e,t){var n=p(e.getState(),t),r="function"==typeof n;return this.finalMapStateToProps=r?n:p,this.doStatePropsDependOnOwnProps=1!==this.finalMapStateToProps.length,r?this.computeStateProps(e,t):n},u.prototype.computeDispatchProps=function(e,t){if(!this.finalMapDispatchToProps)return this.configureFinalMapDispatch(e,t);var n=e.dispatch,r=this.doDispatchPropsDependOnOwnProps?this.finalMapDispatchToProps(n,t):this.finalMapDispatchToProps(n);return r},u.prototype.configureFinalMapDispatch=function(e,t){var n=h(e.dispatch,t),r="function"==typeof n;return this.finalMapDispatchToProps=r?n:h,this.doDispatchPropsDependOnOwnProps=1!==this.finalMapDispatchToProps.length,r?this.computeDispatchProps(e,t):n},u.prototype.updateStatePropsIfNeeded=function(){var e=this.computeStateProps(this.store,this.props);return(!this.stateProps||!(0,v["default"])(e,this.stateProps))&&(this.stateProps=e,!0)},u.prototype.updateDispatchPropsIfNeeded=function(){var e=this.computeDispatchProps(this.store,this.props);return(!this.dispatchProps||!(0,v["default"])(e,this.dispatchProps))&&(this.dispatchProps=e,!0)},u.prototype.updateMergedPropsIfNeeded=function(){var e=t(this.stateProps,this.dispatchProps,this.props);return!(this.mergedProps&&k&&(0,v["default"])(e,this.mergedProps))&&(this.mergedProps=e,!0)},u.prototype.isSubscribed=function(){return"function"==typeof this.unsubscribe},u.prototype.trySubscribe=function(){c&&!this.unsubscribe&&(this.unsubscribe=this.store.subscribe(this.handleChange.bind(this)),this.handleChange())},u.prototype.tryUnsubscribe=function(){this.unsubscribe&&(this.unsubscribe(),this.unsubscribe=null)},u.prototype.componentDidMount=function(){this.trySubscribe()},u.prototype.componentWillReceiveProps=function(e){b&&(0,v["default"])(e,this.props)||(this.haveOwnPropsChanged=!0)},u.prototype.componentWillUnmount=function(){this.tryUnsubscribe(),this.clearCache()},u.prototype.clearCache=function(){this.dispatchProps=null,this.stateProps=null,this.mergedProps=null,this.haveOwnPropsChanged=!0,this.hasStoreStateChanged=!0,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,this.renderedElement=null,this.finalMapDispatchToProps=null,this.finalMapStateToProps=null},u.prototype.handleChange=function(){if(this.unsubscribe){var e=this.store.getState(),t=this.state.storeState;if(!b||t!==e){if(b&&!this.doStatePropsDependOnOwnProps){var n=s(this.updateStatePropsIfNeeded,this);if(!n)return;n===O&&(this.statePropsPrecalculationError=O.value),this.haveStatePropsBeenPrecalculated=!0}this.hasStoreStateChanged=!0,this.setState({storeState:e})}}},u.prototype.getWrappedInstance=function(){return(0,x["default"])(w,"To access the wrapped instance, you need to specify { withRef: true } as the fourth argument of the connect() call."),this.refs.wrappedInstance},u.prototype.render=function(){var t=this.haveOwnPropsChanged,n=this.hasStoreStateChanged,r=this.haveStatePropsBeenPrecalculated,o=this.statePropsPrecalculationError,i=this.renderedElement;if(this.haveOwnPropsChanged=!1,this.hasStoreStateChanged=!1,this.haveStatePropsBeenPrecalculated=!1,this.statePropsPrecalculationError=null,o)throw o;var a=!0,u=!0;b&&i&&(a=n||t&&this.doStatePropsDependOnOwnProps,u=t&&this.doDispatchPropsDependOnOwnProps);var s=!1,c=!1;r?s=!0:a&&(s=this.updateStatePropsIfNeeded()),u&&(c=this.updateDispatchPropsIfNeeded());var p=!0;return p=!!(s||c||t)&&this.updateMergedPropsIfNeeded(),!p&&i?i:(w?this.renderedElement=(0,f.createElement)(e,l({},this.mergedProps,{ref:"wrappedInstance"})):this.renderedElement=(0,f.createElement)(e,this.mergedProps),this.renderedElement)},u}(f.Component); -return r.displayName=n,r.WrappedComponent=e,r.contextTypes={store:d["default"]},r.propTypes={store:d["default"]},(0,C["default"])(r,e)}}t.__esModule=!0;var l=Object.assign||function(e){for(var t=1;t2&&void 0!==arguments[2]?arguments[2]:{},r=n.selectLocationState,u=void 0===r?a:r,s=n.adjustUrlOnReplay,c=void 0===s||s;if("undefined"==typeof u(t.getState()))throw new Error("Expected the routing state to be available either as `state.routing` or as the custom expression you can specify as `selectLocationState` in the `syncHistoryWithStore()` options. Ensure you have added the `routerReducer` to your store's reducers via `combineReducers` or whatever method you use to isolate your reducers.");var l=void 0,f=void 0,p=void 0,d=void 0,h=void 0,v=function(e){var n=u(t.getState());return n.locationBeforeTransitions||(e?l:void 0)};if(l=v(),c){var y=function(){var t=v(!0);h!==t&&l!==t&&(f=!0,h=t,e.transitionTo(o({},t,{action:"PUSH"})),f=!1)};p=t.subscribe(y),y()}var m=function(e){f||(h=e,!l&&(l=e,v())||t.dispatch({type:i.LOCATION_CHANGE,payload:e}))};return d=e.listen(m),e.getCurrentLocation&&m(e.getCurrentLocation()),o({},e,{listen:function(e){var n=v(!0),r=!1,o=t.subscribe(function(){var t=v(!0);t!==n&&(n=t,r||e(n))});return e(n),function(){r=!0,o()}},unsubscribe:function(){c&&p(),d()}})}Object.defineProperty(t,"__esModule",{value:!0});var o=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e){return!e||!e.__v2_compatible__}function a(e){return e&&e.getCurrentLocation}t.__esModule=!0;var u=Object.assign||function(e){for(var t=1;t=0||Object.prototype.hasOwnProperty.call(e,r)&&(n[r]=e[r]);return n}function i(e,t){var n=e.history,r=e.routes,i=e.location,s=o(e,["history","routes","location"]);n||i?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;i?i=n.createLocation(i):p=n.listen(function(e){i=e});var y=(0,v.createRouterObject)(n,l);n=(0,v.createRoutingHistory)(n,l),l.match(i,function(e,r,o){t(e,r&&y.createLocation(r,u.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 i(e){return function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],n=t.routes,r=o(t,["routes"]),i=(0,s["default"])(e)(r),u=(0,l["default"])(i,n);return a({},i,u)}}t.__esModule=!0;var a=Object.assign||function(e){for(var t=1;t>"),O={array:a("array"),bool:a("boolean"),func:a("function"),number:a("number"),object:a("object"),string:a("string"),symbol:a("symbol"),any:u(),arrayOf:s,element:c(),instanceOf:l,node:h(),objectOf:p,oneOf:f,oneOfType:d,shape:v};o.prototype=Error.prototype,e.exports=O},810,function(e,t,n){"use strict";function r(e,t,n){this.props=e, -this.context=t,this.refs=s,this.updater=n||u}function o(){}var i=n(9),a=n(198),u=n(199),s=n(102);o.prototype=a.prototype,r.prototype=new o,r.prototype.constructor=r,i(r.prototype,a.prototype),r.prototype.isPureReactComponent=!0,e.exports=r},815,function(e,t,n){"use strict";function r(e){return i.isValidElement(e)?void 0:o("143"),e}var o=n(82),i=n(81);n(6);e.exports=r},function(e,t,n){"use strict";function r(e,t){return e&&"object"==typeof e&&null!=e.key?c.escape(e.key):t.toString(36)}function o(e,t,n,i){var p=typeof e;if("undefined"!==p&&"boolean"!==p||(e=null),null===e||"string"===p||"number"===p||"object"===p&&e.$$typeof===u)return n(i,e,""===t?l+r(e,0):t),1;var d,h,v=0,y=""===t?l:t+f;if(Array.isArray(e))for(var m=0;m0&&void 0!==arguments[0]?arguments[0]:{},n=void 0,r=t.sagaMonitor;if(r&&(r.effectTriggered=r.effectTriggered||a.noop,r.effectResolved=r.effectResolved||a.noop,r.effectRejected=r.effectRejected||a.noop,r.effectCancelled=r.effectCancelled||a.noop,r.actionDispatched=r.actionDispatched||a.noop),a.is.func(t))throw new Error("Saga middleware no longer accept Generator functions. Use sagaMiddleware.run instead");if(t.logger&&!a.is.func(t.logger))throw new Error("`options.logger` passed to the Saga middleware is not a function!");if(t.onerror&&(a.isDev&&(0,a.log)("warn","`options.onerror` is deprecated. Use `options.onError` instead."),t.onError=t.onerror,delete t.onerror),t.onError&&!a.is.func(t.onError))throw new Error("`options.onError` passed to the Saga middleware is not a function!");if(t.emitter&&!a.is.func(t.emitter))throw new Error("`options.emitter` passed to the Saga middleware is not a function!");return e.run=function(e){for(var t=arguments.length,o=Array(t>1?t-1:0),i=1;i2&&void 0!==arguments[2]?arguments[2]:"",o=arguments[3],i=(0,l.uid)();q&&q.effectTriggered({effectId:i,parentEffectId:t,label:r,effect:e});var a=void 0;n.cancel=l.noop,o.cancel=function(){if(!a){a=!0;try{n.cancel()}catch(e){G("error","uncaught at "+B,e.message)}n.cancel=l.noop,q&&q.effectCancelled(i)}};var u=void 0;return l.is.promise(e)?w(e,n):l.is.helper(e)?M(b(e),i,n):l.is.iterator(e)?x(e,i,B,n):l.is.array(e)?A(e,i,n):l.is.notUndef(u=p.asEffect.take(e))?E(u,n):l.is.notUndef(u=p.asEffect.put(e))?T(u,n):l.is.notUndef(u=p.asEffect.race(e))?N(u,i,n):l.is.notUndef(u=p.asEffect.call(e))?P(u,i,n):l.is.notUndef(u=p.asEffect.cps(e))?O(u,n):l.is.notUndef(u=p.asEffect.fork(e))?M(u,i,n):l.is.notUndef(u=p.asEffect.join(e))?k(u,n):l.is.notUndef(u=p.asEffect.cancel(e))?S(u,n):l.is.notUndef(u=p.asEffect.select(e))?R(u,n):l.is.notUndef(u=p.asEffect.actionChannel(e))?j(u,n):l.is.notUndef(u=p.asEffect.flush(e))?D(u,n):l.is.notUndef(u=p.asEffect.cancelled(e))?I(u,n):n(e)}function w(e,t){var n=e[l.CANCEL];"function"==typeof n&&(t.cancel=n),e.then(t,function(e){return t(e,!0)})}function x(e,t,n,r){c(e,F,U,H,K,t,n,r)}function E(e,t){var n=e.channel,r=e.pattern,o=e.maybe;n=n||X;var i=function(e){return e instanceof Error?t(e,!0):t((0,d.isEnd)(e)&&!o?y:e)};try{n.take(i,a(r))}catch(u){return t(u,!0)}t.cancel=i.cancel}function T(e,t){var n=e.channel,r=e.action,o=e.resolve;(0,f.asap)(function(){var e=void 0;try{e=(n?n.put:U)(r)}catch(i){if(n||o)return t(i,!0);G("error","uncaught at "+B,i.stack||i.message||i)}return o&&l.is.promise(e)?void w(e,t):t(e)})}function P(e,t,n){var r=e.context,o=e.fn,i=e.args,a=void 0;try{a=o.apply(r,i)}catch(u){return n(u,!0)}return l.is.promise(a)?w(a,n):l.is.iterator(a)?x(a,t,o.name,n):n(a)}function O(e,t){var n=e.context,r=e.fn,o=e.args;try{!function(){var e=function(e,n){return l.is.undef(e)?t(n):t(e,!0)};r.apply(n,o.concat(e)),e.cancel&&(t.cancel=function(){return e.cancel()})}()}catch(i){return t(i,!0)}}function M(e,t,n){var r=e.context,o=e.fn,i=e.args,a=e.detached,u=s({context:r,fn:o,args:i});try{(0,f.suspend)();var p=c(u,F,U,H,K,t,o.name,a?null:l.noop);a?n(p):u._isRunning?(Z.addTask(p),n(p)):u._error?Z.abort(u._error):n(p)}finally{(0,f.flush)()}}function k(e,t){e.isRunning()?!function(){var n={task:$,cb:t};t.cancel=function(){return(0,l.remove)(e.joiners,n)},e.joiners.push(n)}():e.isAborted()?t(e.error(),!0):t(e.result())}function S(e,t){e.isRunning()&&e.cancel(),t()}function A(e,t,n){function r(){o===a.length&&(i=!0,n(a))}if(!e.length)return n([]);var o=0,i=void 0,a=Array(e.length),u=e.map(function(e,t){var u=function(e,u){i||(u||(0,d.isEnd)(e)||e===y||e===m?(n.cancel(),n(e,u)):(a[t]=e,o++,r()))};return u.cancel=l.noop,u});n.cancel=function(){i||(i=!0,u.forEach(function(e){return e.cancel()}))},e.forEach(function(e,n){return C(e,t,n,u[n])})}function N(e,t,n){var r=void 0,o=Object.keys(e),a={};o.forEach(function(e){var t=function(t,o){r||(o?(n.cancel(),n(t,!0)):(0,d.isEnd)(t)||t===y||t===m||(n.cancel(),r=!0,n(i({},e,t))))};t.cancel=l.noop,a[e]=t}),n.cancel=function(){r||(r=!0,o.forEach(function(e){return a[e].cancel()}))},o.forEach(function(n){r||C(e[n],t,n,a[n])})}function R(e,t){var n=e.selector,r=e.args;try{var i=n.apply(void 0,[H()].concat(o(r)));t(i)}catch(a){t(a,!0)}}function j(e,t){var n=e.pattern,r=e.buffer,o=a(n);o.pattern=n,t((0,d.eventChannel)(F,r||h.buffers.fixed(),o))}function I(e,t){t(!!Q.isCancelled)}function D(e,t){e.flush(t)}function L(e,t,o,a){var u,s,c;return o._deferredEnd=null,s={},i(s,l.TASK,!0),i(s,"id",e),i(s,"name",t),u="done",c={},c[u]=c[u]||{},c[u].get=function(){if(o._deferredEnd)return o._deferredEnd.promise;var e=(0,l.deferred)();return o._deferredEnd=e,o._isRunning||(o._error?e.reject(o._error):e.resolve(o._result)),e.promise},i(s,"cont",a),i(s,"joiners",[]),i(s,"cancel",n),i(s,"isRunning",function(){return o._isRunning}),i(s,"isCancelled",function(){return o._isCancelled}),i(s,"isAborted",function(){return o._isAborted}),i(s,"result",function(){return o._result}),i(s,"error",function(){return o._error}),r(s,c),s}var F=arguments.length>1&&void 0!==arguments[1]?arguments[1]:function(){return l.noop},U=arguments.length>2&&void 0!==arguments[2]?arguments[2]:l.noop,H=arguments.length>3&&void 0!==arguments[3]?arguments[3]:l.noop,K=arguments.length>4&&void 0!==arguments[4]?arguments[4]:{},W=arguments.length>5&&void 0!==arguments[5]?arguments[5]:0,B=arguments.length>6&&void 0!==arguments[6]?arguments[6]:"anonymous",V=arguments[7];(0,l.check)(e,l.is.iterator,v);var q=K.sagaMonitor,z=K.logger,Y=K.onError,G=z||l.log,X=(0,d.stdChannel)(F);g.cancel=l.noop;var $=L(W,B,e,V),Q={name:B,cancel:t,isRunning:!0},Z=u(B,Q,_);return V&&(V.cancel=n),e._isRunning=!0,g(),$}Object.defineProperty(t,"__esModule",{value:!0}),t.TASK_CANCEL=t.CHANNEL_END=t.NOT_ITERATOR_ERROR=void 0,t["default"]=c;var l=n(83),f=n(336),p=n(202),d=n(201),h=n(200),v=t.NOT_ITERATOR_ERROR="proc first argument (Saga function result) must be an iterator",y=t.CHANNEL_END={toString:function(){return"@@redux-saga/CHANNEL_END"}},m=t.TASK_CANCEL={toString:function(){return"@@redux-saga/TASK_CANCEL"}},g={wildcard:function(){return l.kTrue},"default":function(e){return function(t){return t.type===String(e)}},array:function(e){return function(t){return e.some(function(e){return a(e)(t)})}},predicate:function(e){return function(t){return e(t)}}},b=function(e){return{fn:e}}},function(e,t,n){"use strict";function r(e){return e&&e.__esModule?e:{"default":e}}function o(){for(var e=arguments.length,t=Array(e),n=0;n=0,i=o&&r.regeneratorRuntime;if(r.regeneratorRuntime=void 0,e.exports=n(886),o)r.regeneratorRuntime=i;else try{delete r.regeneratorRuntime}catch(a){r.regeneratorRuntime=void 0}}).call(t,function(){return this}())},function(e,t,n){(function(t,n){!function(t){"use strict";function r(e,t,n,r){var o=t&&t.prototype instanceof i?t:i,a=Object.create(o.prototype),u=new d(r||[]);return a._invoke=l(e,n,u),a}function o(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(r){return{type:"throw",arg:r}}}function i(){}function a(){}function u(){}function s(e){["next","throw","return"].forEach(function(t){e[t]=function(e){return this._invoke(t,e)}})}function c(e){function t(n,r,i,a){var u=o(e[n],e,r);if("throw"!==u.type){var s=u.arg,c=s.value;return c&&"object"==typeof c&&g.call(c,"__await")?Promise.resolve(c.__await).then(function(e){t("next",e,i,a)},function(e){t("throw",e,i,a)}):Promise.resolve(c).then(function(e){s.value=e,i(s)},a)}a(u.arg)}function r(e,n){function r(){return new Promise(function(r,o){t(e,n,r,o)})}return i=i?i.then(r,r):r()}"object"==typeof n&&n.domain&&(t=n.domain.bind(t));var i;this._invoke=r}function l(e,t,n){var r=E;return function(i,a){if(r===P)throw new Error("Generator is already running");if(r===O){if("throw"===i)throw a;return v()}for(;;){var u=n.delegate;if(u){if("return"===i||"throw"===i&&u.iterator[i]===y){n.delegate=null;var s=u.iterator["return"];if(s){var c=o(s,u.iterator,a);if("throw"===c.type){i="throw",a=c.arg;continue}}if("return"===i)continue}var c=o(u.iterator[i],u.iterator,a);if("throw"===c.type){n.delegate=null,i="throw",a=c.arg;continue}i="next",a=y;var l=c.arg;if(!l.done)return r=T,l;n[u.resultName]=l.value,n.next=u.nextLoc,n.delegate=null}if("next"===i)n.sent=n._sent=a;else if("throw"===i){if(r===E)throw r=O,a;n.dispatchException(a)&&(i="next",a=y)}else"return"===i&&n.abrupt("return",a);r=P;var c=o(e,t,n);if("normal"===c.type){r=n.done?O:T;var l={value:c.arg,done:n.done};if(c.arg!==M)return l;n.delegate&&"next"===i&&(a=y)}else"throw"===c.type&&(r=O,i="throw",a=c.arg)}}}function f(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function p(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function d(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(f,this),this.reset(!0)}function h(e){if(e){var t=e[_];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var n=-1,r=function o(){for(;++n=0;--r){var o=this.tryEntries[r],i=o.completion;if("root"===o.tryLoc)return t("end");if(o.tryLoc<=this.prev){var a=g.call(o,"catchLoc"),u=g.call(o,"finallyLoc");if(a&&u){if(this.prev=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&g.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),p(n),M}},"catch":function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var r=n.completion;if("throw"===r.type){var o=r.arg;p(n)}return o}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:h(e),resultName:t,nextLoc:n},M}}}("object"==typeof t?t:"object"==typeof window?window:"object"==typeof self?self:this)}).call(t,function(){return this}(),n(103))},function(e,t,n){e.exports=n(888)},function(e,t,n){var r,o;/*! jQuery v3.0.0-pre -css,-css/addGetHookIf,-css/adjustCSS,-css/curCSS,-css/hiddenVisibleSelectors,-css/showHide,-effects,-effects/Tween,-effects/animatedSelector,-css/support,-css/var/cssExpand,-css/var/getStyles,-css/var/isHidden,-css/var/rmargin,-css/var/rnumnonpx,-css/var/swap,-dimensions,-offset,-deprecated,-event,-event/ajax,-event/alias,-event/focusin,-event/support,-event/trigger,-wrap,-core/ready,-ajax/script | (c) jQuery Foundation | jquery.org/license */ -!function(t,n){"object"==typeof e&&"object"==typeof e.exports?e.exports=t.document?n(t,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return n(e)}:n(t)}("undefined"!=typeof window?window:this,function(i,a){function u(e,t){t=t||D;var n=t.createElement("script");n.text=e,t.head.appendChild(n).parentNode.removeChild(n)}function s(e){var t=!!e&&"length"in e&&e.length,n=z.type(e);return"function"!==n&&!z.isWindow(e)&&("array"===n||0===t||"number"==typeof t&&t>0&&t-1 in e)}function c(e,t){if(e===t)return Q=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n?n:(n=(e.ownerDocument||e)===(t.ownerDocument||t)?e.compareDocumentPosition(t):1,1&n?e===D||e.ownerDocument===D&&z.contains(D,e)?-1:t===D||t.ownerDocument===D&&z.contains(D,t)?1:Z?H.call(Z,e)-H.call(Z,t):0:4&n?-1:1)}function l(e){var t,n=[],r=0,o=0;if(Q=!1,Z=!ee&&e.slice(0),e.sort(c),Q){for(;t=e[o++];)t===e[o]&&(r=n.push(o));for(;r--;)e.splice(n[r],1)}return Z=null,e}function f(e,t,n){if(z.isFunction(t))return z.grep(e,function(e,r){return!!t.call(e,r,e)!==n});if(t.nodeType)return z.grep(e,function(e){return e===t!==n});if("string"==typeof t){if(ae.test(t))return z.filter(t,e,n);t=z.filter(t,e)}return z.grep(e,function(e){return H.call(t,e)>-1!==n})}function p(e,t){for(;(e=e[t])&&1!==e.nodeType;);return e}function d(e){var t={};return z.each(e.match(pe)||[],function(e,n){t[n]=!0}),t}function h(e){return e}function v(e){throw e}function y(){this.expando=z.expando+y.uid++}function m(e,t,n){var r;if(void 0===n&&1===e.nodeType)if(r="data-"+t.replace(ge,"-$&").toLowerCase(),n=e.getAttribute(r),"string"==typeof n){try{n="true"===n||"false"!==n&&("null"===n?null:+n+""===n?+n:me.test(n)?z.parseJSON(n):n)}catch(o){}ye.set(e,t,n)}else n=void 0;return n}function g(e,t){var n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[];return void 0===t||t&&z.nodeName(e,t)?z.merge([e],n):n}function b(e,t){for(var n=0,r=e.length;r>n;n++)ve.set(e[n],"globalEval",!t||ve.get(t[n],"globalEval"))}function _(e,t,n,r,o){for(var i,a,u,s,c,l,f=t.createDocumentFragment(),p=[],d=0,h=e.length;h>d;d++)if(i=e[d],i||0===i)if("object"===z.type(i))z.merge(p,i.nodeType?[i]:i);else if(Ee.test(i)){for(a=a||f.appendChild(t.createElement("div")),u=(Ce.exec(i)||["",""])[1].toLowerCase(),s=xe[u]||xe._default,a.innerHTML=s[1]+z.htmlPrefilter(i)+s[2],l=s[0];l--;)a=a.lastChild;z.merge(p,a.childNodes),a=f.firstChild,a.textContent=""}else p.push(t.createTextNode(i));for(f.textContent="",d=0;i=p[d++];)if(r&&z.inArray(i,r)>-1)o&&o.push(i);else if(c=z.contains(i.ownerDocument,i),a=g(f.appendChild(i),"script"),c&&b(a),n)for(l=0;i=a[l++];)we.test(i.type||"")&&n.push(i);return f}function C(e,t){return z.nodeName(e,"table")&&z.nodeName(11!==t.nodeType?t:t.firstChild,"tr")?e.getElementsByTagName("tbody")[0]||e:e}function w(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function x(e){var t=Me.exec(e.type);return t?e.type=t[1]:e.removeAttribute("type"),e}function E(e,t){var n,r,o,i,a,u,s,c;if(1===t.nodeType){if(ve.hasData(e)&&(i=ve.access(e),a=ve.set(t,i),c=i.events)){delete a.handle,a.events={};for(o in c)for(n=0,r=c[o].length;r>n;n++)z.event.add(t,o,c[o][n])}ye.hasData(e)&&(u=ye.access(e),s=z.extend({},u),ye.set(t,s))}}function T(e,t){var n=t.nodeName.toLowerCase();"input"===n&&_e.test(e.type)?t.checked=e.checked:("input"===n||"textarea"===n)&&(t.defaultValue=e.defaultValue)}function P(e,t,n,r){t=F.apply([],t);var o,i,a,s,c,l,f=0,p=e.length,d=p-1,h=t[0],v=z.isFunction(h);if(v||p>1&&"string"==typeof h&&!V.checkClone&&Oe.test(h))return e.each(function(o){var i=e.eq(o);v&&(t[0]=h.call(this,o,i.html())),P(i,t,n,r)});if(p&&(o=_(t,e[0].ownerDocument,!1,e,r),i=o.firstChild,1===o.childNodes.length&&(o=i),i||r)){for(a=z.map(g(o,"script"),w),s=a.length;p>f;f++)c=o,f!==d&&(c=z.clone(c,!0,!0),s&&z.merge(a,g(c,"script"))),n.call(e[f],c,f);if(s)for(l=a[a.length-1].ownerDocument,z.map(a,x),f=0;s>f;f++)c=a[f],we.test(c.type||"")&&!ve.access(c,"globalEval")&&z.contains(l,c)&&(c.src?z._evalUrl&&z._evalUrl(c.src):u(c.textContent.replace(ke,""),l))}return e}function O(e,t,n){for(var r,o=t?z.filter(t,e):e,i=0;null!=(r=o[i]);i++)n||1!==r.nodeType||z.cleanData(g(r)),r.parentNode&&(n&&z.contains(r.ownerDocument,r)&&b(g(r,"script")),r.parentNode.removeChild(r));return e}function M(e){return e.getAttribute&&e.getAttribute("class")||""}function k(e){return function(t,n){"string"!=typeof t&&(n=t,t="*");var r,o=0,i=t.toLowerCase().match(pe)||[];if(z.isFunction(n))for(;r=i[o++];)"+"===r[0]?(r=r.slice(1)||"*",(e[r]=e[r]||[]).unshift(n)):(e[r]=e[r]||[]).push(n)}}function S(e,t,n,r){function o(u){var s;return i[u]=!0,z.each(e[u]||[],function(e,u){var c=u(t,n,r);return"string"!=typeof c||a||i[c]?a?!(s=c):void 0:(t.dataTypes.unshift(c),o(c),!1)}),s}var i={},a=e===Xe;return o(t.dataTypes[0])||!i["*"]&&o("*")}function A(e,t){var n,r,o=z.ajaxSettings.flatOptions||{};for(n in t)void 0!==t[n]&&((o[n]?e:r||(r={}))[n]=t[n]);return r&&z.extend(!0,e,r),e}function N(e,t,n){for(var r,o,i,a,u=e.contents,s=e.dataTypes;"*"===s[0];)s.shift(),void 0===r&&(r=e.mimeType||t.getResponseHeader("Content-Type"));if(r)for(o in u)if(u[o]&&u[o].test(r)){s.unshift(o);break}if(s[0]in n)i=s[0];else{for(o in n){if(!s[0]||e.converters[o+" "+s[0]]){i=o;break}a||(a=o)}i=i||a}return i?(i!==s[0]&&s.unshift(i),n[i]):void 0}function R(e,t,n,r){var o,i,a,u,s,c={},l=e.dataTypes.slice();if(l[1])for(a in e.converters)c[a.toLowerCase()]=e.converters[a];for(i=l.shift();i;)if(e.responseFields[i]&&(n[e.responseFields[i]]=t),!s&&r&&e.dataFilter&&(t=e.dataFilter(t,e.dataType)),s=i,i=l.shift())if("*"===i)i=s;else if("*"!==s&&s!==i){if(a=c[s+" "+i]||c["* "+i],!a)for(o in c)if(u=o.split(" "),u[1]===i&&(a=c[s+" "+u[0]]||c["* "+u[0]])){a===!0?a=c[o]:c[o]!==!0&&(i=u[0],l.unshift(u[1]));break}if(a!==!0)if(a&&e["throws"])t=a(t);else try{t=a(t)}catch(f){return{state:"parsererror",error:a?f:"No conversion from "+s+" to "+i}}}return{state:"success",data:t}}function j(e,t,n,r){var o;if(z.isArray(t))z.each(t,function(t,o){n||Ze.test(e)?r(e,o):j(e+"["+("object"==typeof o&&null!=o?t:"")+"]",o,n,r)});else if(n||"object"!==z.type(t))r(e,t);else for(o in t)j(e+"["+o+"]",t[o],n,r)}var I=[],D=i.document,L=I.slice,F=I.concat,U=I.push,H=I.indexOf,K={},W=K.toString,B=K.hasOwnProperty,V={},q="3.0.0-pre -css,-css/addGetHookIf,-css/adjustCSS,-css/curCSS,-css/hiddenVisibleSelectors,-css/showHide,-effects,-effects/Tween,-effects/animatedSelector,-css/support,-css/var/cssExpand,-css/var/getStyles,-css/var/isHidden,-css/var/rmargin,-css/var/rnumnonpx,-css/var/swap,-dimensions,-offset,-deprecated,-event,-event/ajax,-event/alias,-event/focusin,-event/support,-event/trigger,-wrap,-core/ready,-ajax/script",z=function(e,t){return new z.fn.init(e,t)},Y=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,G=/^-ms-/,X=/-([a-z])/g,$=function(e,t){return t.toUpperCase()};z.fn=z.prototype={jquery:q,constructor:z,length:0,toArray:function(){return L.call(this)},get:function(e){return null!=e?0>e?this[e+this.length]:this[e]:L.call(this)},pushStack:function(e){var t=z.merge(this.constructor(),e);return t.prevObject=this,t},each:function(e){return z.each(this,e)},map:function(e){return this.pushStack(z.map(this,function(t,n){return e.call(t,n,t)}))},slice:function(){return this.pushStack(L.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(e){var t=this.length,n=+e+(0>e?t:0);return this.pushStack(n>=0&&t>n?[this[n]]:[])},end:function(){return this.prevObject||this.constructor()},push:U,sort:I.sort,splice:I.splice},z.extend=z.fn.extend=function(){var e,t,n,r,o,i,a=arguments[0]||{},u=1,s=arguments.length,c=!1;for("boolean"==typeof a&&(c=a,a=arguments[u]||{},u++),"object"==typeof a||z.isFunction(a)||(a={}),u===s&&(a=this,u--);s>u;u++)if(null!=(e=arguments[u]))for(t in e)n=a[t],r=e[t],a!==r&&(c&&r&&(z.isPlainObject(r)||(o=z.isArray(r)))?(o?(o=!1,i=n&&z.isArray(n)?n:[]):i=n&&z.isPlainObject(n)?n:{},a[t]=z.extend(c,i,r)):void 0!==r&&(a[t]=r));return a},z.extend({expando:"jQuery"+(q+Math.random()).replace(/\D/g,""),isReady:!0,error:function(e){throw new Error(e)},noop:function(){},isFunction:function(e){return"function"===z.type(e)},isArray:Array.isArray,isWindow:function(e){return null!=e&&e===e.window},isNumeric:function(e){var t=z.type(e);return("number"===t||"string"===t)&&e-parseFloat(e)+1>=0},isPlainObject:function(e){return"object"===z.type(e)&&!e.nodeType&&!z.isWindow(e)&&!(e.constructor&&!B.call(e.constructor.prototype,"isPrototypeOf"))},isEmptyObject:function(e){var t;for(t in e)return!1;return!0},type:function(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?K[W.call(e)]||"object":typeof e},globalEval:function(e){u(e)},camelCase:function(e){return e.replace(G,"ms-").replace(X,$)},nodeName:function(e,t){return e.nodeName&&e.nodeName.toLowerCase()===t.toLowerCase()},each:function(e,t){var n,r=0;if(s(e))for(n=e.length;n>r&&t.call(e[r],r,e[r])!==!1;r++);else for(r in e)if(t.call(e[r],r,e[r])===!1)break;return e},trim:function(e){return null==e?"":(e+"").replace(Y,"")},makeArray:function(e,t){var n=t||[];return null!=e&&(s(Object(e))?z.merge(n,"string"==typeof e?[e]:e):U.call(n,e)),n},inArray:function(e,t,n){return null==t?-1:H.call(t,e,n)},merge:function(e,t){for(var n=+t.length,r=0,o=e.length;n>r;r++)e[o++]=t[r];return e.length=o,e},grep:function(e,t,n){for(var r,o=[],i=0,a=e.length,u=!n;a>i;i++)r=!t(e[i],i),r!==u&&o.push(e[i]);return o},map:function(e,t,n){var r,o,i=0,a=[];if(s(e))for(r=e.length;r>i;i++)o=t(e[i],i,n),null!=o&&a.push(o);else for(i in e)o=t(e[i],i,n),null!=o&&a.push(o);return F.apply([],a)},guid:1,proxy:function(e,t){var n,r,o;return"string"==typeof t&&(n=e[t],t=e,e=n),z.isFunction(e)?(r=L.call(arguments,2),o=function(){return e.apply(t||this,r.concat(L.call(arguments)))},o.guid=e.guid=e.guid||z.guid++,o):void 0},now:Date.now,support:V}),"function"==typeof Symbol&&(z.fn[Symbol.iterator]=I[Symbol.iterator]),z.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(e,t){K["[object "+t+"]"]=t.toLowerCase()});var Q,Z,J=D.documentElement,ee=z.expando.split("").sort(c).join("")===z.expando,te=J.matches||J.webkitMatchesSelector||J.mozMatchesSelector||J.oMatchesSelector||J.msMatchesSelector;z.extend({find:function(e,t,n,r){var o,i,a=0;if(n=n||[],t=t||D,!e||"string"!=typeof e)return n;if(1!==(i=t.nodeType)&&9!==i)return[];if(r)for(;o=r[a++];)z.find.matchesSelector(o,e)&&n.push(o);else z.merge(n,t.querySelectorAll(e));return n},uniqueSort:l,unique:l,text:function(e){var t,n="",r=0,o=e.nodeType;if(o){if(1===o||9===o||11===o)return e.textContent;if(3===o||4===o)return e.nodeValue}else for(;t=e[r++];)n+=z.text(t);return n},contains:function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!n.contains(r))},isXMLDoc:function(e){var t=e&&(e.ownerDocument||e).documentElement;return!!t&&"HTML"!==t.nodeName},expr:{attrHandle:{},match:{bool:new RegExp("^(?:checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped)$","i"),needsContext:/^[\x20\t\r\n\f]*[>+~]/}}}),z.extend(z.find,{matches:function(e,t){return z.find(e,null,null,t)},matchesSelector:function(e,t){return te.call(e,t)},attr:function(e,t){var n=z.expr.attrHandle[t.toLowerCase()],r=n&&B.call(z.expr.attrHandle,t.toLowerCase())?n(e,t,z.isXMLDoc(e)):void 0;return void 0!==r?r:e.getAttribute(t)}});var ne=function(e,t,n){for(var r=[],o=void 0!==n;(e=e[t])&&9!==e.nodeType;)if(1===e.nodeType){if(o&&z(e).is(n))break;r.push(e)}return r},re=function(e,t){for(var n=[];e;e=e.nextSibling)1===e.nodeType&&e!==t&&n.push(e);return n},oe=z.expr.match.needsContext,ie=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/,ae=/^.[^:#\[\.,]*$/;z.filter=function(e,t,n){var r=t[0];return n&&(e=":not("+e+")"),1===t.length&&1===r.nodeType?z.find.matchesSelector(r,e)?[r]:[]:z.find.matches(e,z.grep(t,function(e){return 1===e.nodeType}))},z.fn.extend({find:function(e){var t,n=this.length,r=[],o=this;if("string"!=typeof e)return this.pushStack(z(e).filter(function(){for(t=0;n>t;t++)if(z.contains(o[t],this))return!0}));for(t=0;n>t;t++)z.find(e,o[t],r);return this.pushStack(n>1?z.uniqueSort(r):r)},filter:function(e){return this.pushStack(f(this,e||[],!1))},not:function(e){return this.pushStack(f(this,e||[],!0))},is:function(e){return!!f(this,"string"==typeof e&&oe.test(e)?z(e):e||[],!1).length}});var ue,se=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]+))$/,ce=z.fn.init=function(e,t,n){var r,o;if(!e)return this;if(n=n||ue,"string"==typeof e){if(r="<"===e[0]&&">"===e[e.length-1]&&e.length>=3?[null,e,null]:se.exec(e),!r||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof z?t[0]:t,z.merge(this,z.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:D,!0)),ie.test(r[1])&&z.isPlainObject(t))for(r in t)z.isFunction(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return o=D.getElementById(r[2]),o&&(this[0]=o,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):z.isFunction(e)?void 0!==n.ready?n.ready(e):e(z):z.makeArray(e,this)};ce.prototype=z.fn,ue=z(D);var le=/^(?:parents|prev(?:Until|All))/,fe={children:!0,contents:!0,next:!0,prev:!0};z.fn.extend({has:function(e){var t=z(e,this),n=t.length;return this.filter(function(){for(var e=0;n>e;e++)if(z.contains(this,t[e]))return!0})},closest:function(e,t){for(var n,r=0,o=this.length,i=[],a=oe.test(e)||"string"!=typeof e?z(e,t||this.context):0;o>r;r++)for(n=this[r];n&&n!==t;n=n.parentNode)if(n.nodeType<11&&(a?a.index(n)>-1:1===n.nodeType&&z.find.matchesSelector(n,e))){i.push(n);break}return this.pushStack(i.length>1?z.uniqueSort(i):i)},index:function(e){return e?"string"==typeof e?H.call(z(e),this[0]):H.call(this,e.jquery?e[0]:e):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(e,t){return this.pushStack(z.uniqueSort(z.merge(this.get(),z(e,t))))},addBack:function(e){return this.add(null==e?this.prevObject:this.prevObject.filter(e))}}),z.each({parent:function(e){var t=e.parentNode;return t&&11!==t.nodeType?t:null},parents:function(e){return ne(e,"parentNode")},parentsUntil:function(e,t,n){return ne(e,"parentNode",n)},next:function(e){return p(e,"nextSibling")},prev:function(e){return p(e,"previousSibling")},nextAll:function(e){return ne(e,"nextSibling")},prevAll:function(e){return ne(e,"previousSibling")},nextUntil:function(e,t,n){return ne(e,"nextSibling",n)},prevUntil:function(e,t,n){return ne(e,"previousSibling",n)},siblings:function(e){return re((e.parentNode||{}).firstChild,e)},children:function(e){return re(e.firstChild)},contents:function(e){return e.contentDocument||z.merge([],e.childNodes)}},function(e,t){z.fn[e]=function(n,r){var o=z.map(this,t,n);return"Until"!==e.slice(-5)&&(r=n),r&&"string"==typeof r&&(o=z.filter(r,o)),this.length>1&&(fe[e]||z.uniqueSort(o),le.test(e)&&o.reverse()),this.pushStack(o)}});var pe=/\S+/g;z.Callbacks=function(e){e="string"==typeof e?d(e):z.extend({},e);var t,n,r,o,i=[],a=[],u=-1,s=function(){for(o=e.once,r=t=!0;a.length;u=-1)for(n=a.shift();++u-1;)i.splice(n,1),u>=n&&u--}),this},has:function(e){return e?z.inArray(e,i)>-1:i.length>0},empty:function(){return i&&(i=[]),this},disable:function(){return o=a=[],i=n="",this},disabled:function(){return!i},lock:function(){return o=a=[],n||t||(i=n=""),this},locked:function(){return!!o},fireWith:function(e,n){return o||(n=n||[],n=[e,n.slice?n.slice():n],a.push(n),t||s()),this},fire:function(){return c.fireWith(this,arguments),this},fired:function(){return!!r}};return c},z.extend({Deferred:function(e){var t=[["notify","progress",z.Callbacks("memory"),z.Callbacks("memory"),2],["resolve","done",z.Callbacks("once memory"),z.Callbacks("once memory"),0,"resolved"],["reject","fail",z.Callbacks("once memory"),z.Callbacks("once memory"),1,"rejected"]],n="pending",r={state:function(){return n},always:function(){return o.done(arguments).fail(arguments),this},"catch":function(e){return r.then(null,e)},pipe:function(){var e=arguments;return z.Deferred(function(n){z.each(t,function(t,i){var a=z.isFunction(e[i[4]])&&e[i[4]];o[i[1]](function(){var e=a&&a.apply(this,arguments);e&&z.isFunction(e.promise)?e.promise().progress(n.notify).done(n.resolve).fail(n.reject):n[i[0]+"With"](this===r?n.promise():this,a?[e]:arguments)})}),e=null}).promise()},then:function(e,n,o){function a(e,t,n,o){return function(){var s=this===r?void 0:this,c=arguments,l=function(){var r,i;if(!(u>e)){if(r=n.apply(s,c),r===t.promise())throw new TypeError("Thenable self-resolution");i=r&&("object"==typeof r||"function"==typeof r)&&r.then,z.isFunction(i)?o?i.call(r,a(u,t,h,o),a(u,t,v,o)):(u++,i.call(r,a(u,t,h,o),a(u,t,v,o),a(u,t,h,t.notify))):(n!==h&&(s=void 0,c=[r]),(o||t.resolveWith)(s||t.promise(),c))}},f=o?l:function(){try{l()}catch(r){e+1>=u&&(n!==v&&(s=void 0,c=[r]),t.rejectWith(s||t.promise(),c))}};e?f():i.setTimeout(f)}}var u=0;return z.Deferred(function(r){t[0][3].add(a(0,r,z.isFunction(o)?o:h,r.notifyWith)),t[1][3].add(a(0,r,z.isFunction(e)?e:h)),t[2][3].add(a(0,r,z.isFunction(n)?n:v))}).promise()},promise:function(e){return null!=e?z.extend(e,r):r}},o={};return z.each(t,function(e,i){var a=i[2],u=i[5];r[i[1]]=a.add,u&&a.add(function(){n=u},t[3-e][2].disable,t[0][2].lock),a.add(i[3].fire),o[i[0]]=function(){return o[i[0]+"With"](this===o?r:this,arguments),this},o[i[0]+"With"]=a.fireWith}),r.promise(o),e&&e.call(o,o),o},when:function(){var e,t,n,r,o=0,i=L.call(arguments),a=i.length,u=a,s=z.Deferred(),c=function(e,n,r){return function(o){n[e]=this,r[e]=arguments.length>1?L.call(arguments):o,r===t?s.notifyWith(n,r):--u||s.resolveWith(1===n.length?n[0]:n,r)}};if(a>0)for(t=new Array(a),n=new Array(a),r=new Array(a);a>o;o++)i[o]&&z.isFunction(e=i[o].promise)?e.call(i[o]).progress(c(o,n,t)).done(c(o,r,i)).fail(s.reject):i[o]&&z.isFunction(e=i[o].then)?e.call(i[o],c(o,r,i),s.reject,c(o,n,t)):c(o,r,i)(i[o]);else s.resolveWith();return s.promise()}});var de=function(e,t,n,r,o,i,a){var u=0,s=e.length,c=null==n;if("object"===z.type(n)){o=!0;for(u in n)de(e,t,u,n[u],!0,i,a)}else if(void 0!==r&&(o=!0,z.isFunction(r)||(a=!0),c&&(a?(t.call(e,r),t=null):(c=t,t=function(e,t,n){return c.call(z(e),n)})),t))for(;s>u;u++)t(e[u],n,a?r:r.call(e[u],u,t(e[u],n)));return o?e:c?t.call(e):s?t(e[0],n):i},he=function(e){return 1===e.nodeType||9===e.nodeType||!+e.nodeType};y.uid=1,y.prototype={cache:function(e){var t=e[this.expando];return t||(t={},he(e)&&(e.nodeType?e[this.expando]=t:Object.defineProperty(e,this.expando,{value:t,configurable:!0}))),t},set:function(e,t,n){var r,o=this.cache(e);if("string"==typeof t)o[z.camelCase(t)]=n;else for(r in t)o[z.camelCase(r)]=t[r];return o},get:function(e,t){return void 0===t?this.cache(e):e[this.expando]&&e[this.expando][z.camelCase(t)]},access:function(e,t,n){return void 0===t||t&&"string"==typeof t&&void 0===n?this.get(e,t):(this.set(e,t,n),void 0!==n?n:t)},remove:function(e,t){var n,r=e[this.expando];if(void 0!==r){if(void 0!==t){z.isArray(t)?t=t.map(z.camelCase):(t=z.camelCase(t),t=t in r?[t]:t.match(pe)||[]),n=t.length;for(;n--;)delete r[t[n]]}(void 0===t||z.isEmptyObject(r))&&(e.nodeType?e[this.expando]=void 0:delete e[this.expando])}},hasData:function(e){var t=e[this.expando];return void 0!==t&&!z.isEmptyObject(t)}};var ve=new y,ye=new y,me=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,ge=/[A-Z]/g;z.extend({hasData:function(e){return ye.hasData(e)||ve.hasData(e)},data:function(e,t,n){return ye.access(e,t,n)},removeData:function(e,t){ye.remove(e,t)},_data:function(e,t,n){return ve.access(e,t,n)},_removeData:function(e,t){ve.remove(e,t)}}),z.fn.extend({data:function(e,t){var n,r,o,i=this[0],a=i&&i.attributes;if(void 0===e){if(this.length&&(o=ye.get(i),1===i.nodeType&&!ve.get(i,"hasDataAttrs"))){for(n=a.length;n--;)a[n]&&(r=a[n].name,0===r.indexOf("data-")&&(r=z.camelCase(r.slice(5)),m(i,r,o[r])));ve.set(i,"hasDataAttrs",!0)}return o}return"object"==typeof e?this.each(function(){ye.set(this,e)}):de(this,function(t){var n;if(i&&void 0===t){if(n=ye.get(i,e),void 0!==n)return n;if(n=m(i,e),void 0!==n)return n}else this.each(function(){ye.set(this,e,t)})},null,t,arguments.length>1,null,!0)},removeData:function(e){return this.each(function(){ye.remove(this,e)})}}),z.extend({queue:function(e,t,n){var r;return e?(t=(t||"fx")+"queue",r=ve.get(e,t),n&&(!r||z.isArray(n)?r=ve.access(e,t,z.makeArray(n)):r.push(n)),r||[]):void 0},dequeue:function(e,t){t=t||"fx";var n=z.queue(e,t),r=n.length,o=n.shift(),i=z._queueHooks(e,t),a=function(){z.dequeue(e,t)};"inprogress"===o&&(o=n.shift(),r--),o&&("fx"===t&&n.unshift("inprogress"),delete i.stop,o.call(e,a,i)),!r&&i&&i.empty.fire()},_queueHooks:function(e,t){var n=t+"queueHooks";return ve.get(e,n)||ve.access(e,n,{empty:z.Callbacks("once memory").add(function(){ve.remove(e,[t+"queue",n])})})}}),z.fn.extend({queue:function(e,t){var n=2;return"string"!=typeof e&&(t=e,e="fx",n--),arguments.length",""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};xe.optgroup=xe.option,xe.tbody=xe.tfoot=xe.colgroup=xe.caption=xe.thead,xe.th=xe.td;var Ee=/<|&#?\w+;/;!function(){var e=D.createDocumentFragment(),t=e.appendChild(D.createElement("div")),n=D.createElement("input");n.setAttribute("type","radio"),n.setAttribute("checked","checked"),n.setAttribute("name","t"),t.appendChild(n),V.checkClone=t.cloneNode(!0).cloneNode(!0).lastChild.checked,t.innerHTML="",V.noCloneChecked=!!t.cloneNode(!0).lastChild.defaultValue}();var Te=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,Pe=/\s*$/g;z.extend({htmlPrefilter:function(e){return e.replace(Te,"<$1>")},clone:function(e,t,n){var r,o,i,a,u=e.cloneNode(!0),s=z.contains(e.ownerDocument,e);if(!(V.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||z.isXMLDoc(e)))for(a=g(u),i=g(e),r=0,o=i.length;o>r;r++)T(i[r],a[r]);if(t)if(n)for(i=i||g(e),a=a||g(u),r=0,o=i.length;o>r;r++)E(i[r],a[r]);else E(e,u);return a=g(u,"script"),a.length>0&&b(a,!s&&g(e,"script")),u},cleanData:function(e){for(var t,n,r,o=z.event.special,i=0;void 0!==(n=e[i]);i++)if(he(n)){if(t=n[ve.expando]){if(t.events)for(r in t.events)o[r]?z.event.remove(n,r):z.removeEvent(n,r,t.handle);n[ve.expando]=void 0}n[ye.expando]&&(n[ye.expando]=void 0)}}}),z.fn.extend({detach:function(e){return O(this,e,!0)},remove:function(e){return O(this,e)},text:function(e){return de(this,function(e){return void 0===e?z.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=e)})},null,e,arguments.length)},append:function(){return P(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.appendChild(e)}})},prepend:function(){return P(this,arguments,function(e){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var t=C(this,e);t.insertBefore(e,t.firstChild)}})},before:function(){return P(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this)})},after:function(){return P(this,arguments,function(e){this.parentNode&&this.parentNode.insertBefore(e,this.nextSibling)})},empty:function(){for(var e,t=0;null!=(e=this[t]);t++)1===e.nodeType&&(z.cleanData(g(e,!1)),e.textContent="");return this},clone:function(e,t){return e=null!=e&&e,t=null==t?e:t,this.map(function(){return z.clone(this,e,t)})},html:function(e){return de(this,function(e){var t=this[0]||{},n=0,r=this.length;if(void 0===e&&1===t.nodeType)return t.innerHTML;if("string"==typeof e&&!Pe.test(e)&&!xe[(Ce.exec(e)||["",""])[1].toLowerCase()]){e=z.htmlPrefilter(e);try{for(;r>n;n++)t=this[n]||{},1===t.nodeType&&(z.cleanData(g(t,!1)),t.innerHTML=e);t=0}catch(o){}}t&&this.empty().append(e)},null,e,arguments.length)},replaceWith:function(){var e=[];return P(this,arguments,function(t){var n=this.parentNode;z.inArray(this,e)<0&&(z.cleanData(g(this)),n&&n.replaceChild(t,this))},e)}}),z.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(e,t){z.fn[e]=function(e){for(var n,r=[],o=z(e),i=o.length-1,a=0;i>=a;a++)n=a===i?this:this.clone(!0),z(o[a])[t](n),U.apply(r,n.get());return this.pushStack(r)}}),z.fn.delay=function(e,t){return e=z.fx?z.fx.speeds[e]||e:e,t=t||"fx",this.queue(t,function(t,n){var r=i.setTimeout(t,e);n.stop=function(){i.clearTimeout(r)}})},function(){var e=D.createElement("input"),t=D.createElement("select"),n=t.appendChild(D.createElement("option"));e.type="checkbox",V.checkOn=""!==e.value,V.optSelected=n.selected,e=D.createElement("input"),e.value="t",e.type="radio",V.radioValue="t"===e.value}();var Se,Ae=z.expr.attrHandle,Ne=/[A-Z]+/g,Re=function(e){return e.toLowerCase()};z.fn.extend({attr:function(e,t){return de(this,z.attr,e,t,arguments.length>1)},removeAttr:function(e){return this.each(function(){z.removeAttr(this,e)})}}),z.extend({attr:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return"undefined"==typeof e.getAttribute?z.prop(e,t,n):(1===i&&z.isXMLDoc(e)||(t=t.replace(Ne,Re),o=z.attrHooks[t]||(z.expr.match.bool.test(t)?Se:void 0)),void 0!==n?null===n?void z.removeAttr(e,t):o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:(e.setAttribute(t,n+""),n):o&&"get"in o&&null!==(r=o.get(e,t))?r:(r=z.find.attr(e,t),null==r?void 0:r))},attrHooks:{type:{set:function(e,t){if(!V.radioValue&&"radio"===t&&z.nodeName(e,"input")){var n=e.value;return e.setAttribute("type",t),n&&(e.value=n),t}}}},removeAttr:function(e,t){var n,r=0,o=t&&t.match(pe);if(o&&1===e.nodeType)for(;n=o[r++];)e.removeAttribute(n)}}),Se={set:function(e,t,n){return t===!1?z.removeAttr(e,n):e.setAttribute(n,n),n}},z.each(z.expr.match.bool.source.match(/\w+/g),function(e,t){var n=Ae[t]||z.find.attr;Ae[t]=function(e,t,r){var o,i;return r||(i=Ae[t],Ae[t]=o,o=null!=n(e,t,r)?t.toLowerCase():null,Ae[t]=i),o}});var je=/^(?:input|select|textarea|button)$/i,Ie=/^(?:a|area)$/i;z.fn.extend({prop:function(e,t){return de(this,z.prop,e,t,arguments.length>1)},removeProp:function(e){return this.each(function(){delete this[z.propFix[e]||e]})}}),z.extend({prop:function(e,t,n){var r,o,i=e.nodeType;if(3!==i&&8!==i&&2!==i)return 1===i&&z.isXMLDoc(e)||(t=z.propFix[t]||t,o=z.propHooks[t]),void 0!==n?o&&"set"in o&&void 0!==(r=o.set(e,n,t))?r:e[t]=n:o&&"get"in o&&null!==(r=o.get(e,t))?r:e[t]},propHooks:{tabIndex:{get:function(e){var t=z.find.attr(e,"tabindex");return t?parseInt(t,10):je.test(e.nodeName)||Ie.test(e.nodeName)&&e.href?0:-1}}},propFix:{"for":"htmlFor","class":"className"}}),V.optSelected||(z.propHooks.selected={get:function(e){var t=e.parentNode;return t&&t.parentNode&&t.parentNode.selectedIndex,null}}),z.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){z.propFix[this.toLowerCase()]=this});var De=/[\t\r\n\f]/g;z.fn.extend({addClass:function(e){var t,n,r,o,i,a,u,s=0;if(z.isFunction(e))return this.each(function(t){z(this).addClass(e.call(this,t,M(this)))});if("string"==typeof e&&e)for(t=e.match(pe)||[];n=this[s++];)if(o=M(n),r=1===n.nodeType&&(" "+o+" ").replace(De," ")){for(a=0;i=t[a++];)r.indexOf(" "+i+" ")<0&&(r+=i+" ");u=z.trim(r),o!==u&&n.setAttribute("class",u)}return this},removeClass:function(e){var t,n,r,o,i,a,u,s=0;if(z.isFunction(e))return this.each(function(t){z(this).removeClass(e.call(this,t,M(this)))});if(!arguments.length)return this.attr("class","");if("string"==typeof e&&e)for(t=e.match(pe)||[];n=this[s++];)if(o=M(n),r=1===n.nodeType&&(" "+o+" ").replace(De," ")){for(a=0;i=t[a++];)for(;r.indexOf(" "+i+" ")>-1;)r=r.replace(" "+i+" "," ");u=z.trim(r),o!==u&&n.setAttribute("class",u)}return this},toggleClass:function(e,t){var n=typeof e,r="string"===n?e.match(pe):[];return this.each(function(o){var i,a=z(this),u=0;for("function"===n&&(r=e.call(this,o,M(this),t).match(pe)||[]);i=r[u++];)t===!1||t!==!0&&a.hasClass(i)?a.removeClass(i):a.addClass(i)})},hasClass:function(e){var t,n,r=0;for(t=" "+e+" ";n=this[r++];)if(1===n.nodeType&&(" "+M(n)+" ").replace(De," ").indexOf(t)>-1)return!0;return!1}});var Le=/\r/g;z.fn.extend({val:function(e){var t,n,r,o=this[0];return arguments.length?(r=z.isFunction(e),this.each(function(n){var o;1===this.nodeType&&(o=r?e.call(this,n,z(this).val()):e,null==o?o="":"number"==typeof o?o+="":z.isArray(o)&&(o=z.map(o,function(e){return null==e?"":e+""})),t=z.valHooks[this.type]||z.valHooks[this.nodeName.toLowerCase()],t&&"set"in t&&void 0!==t.set(this,o,"value")||(this.value=o))})):o?(t=z.valHooks[o.type]||z.valHooks[o.nodeName.toLowerCase()],t&&"get"in t&&void 0!==(n=t.get(o,"value"))?n:(n=o.value,"string"==typeof n?n.replace(Le,""):null==n?"":n)):void 0}}),z.extend({valHooks:{option:{get:function(e){return z.trim(e.value)}},select:{get:function(e){for(var t,n,r=e.options,o=e.selectedIndex,i="select-one"===e.type,a=i?null:[],u=i?o+1:r.length,s=0>o?u:i?o:0;u>s;s++)if(n=r[s],(n.selected||s===o)&&!n.disabled&&(!n.parentNode.disabled||!z.nodeName(n.parentNode,"optgroup"))){if(t=z(n).val(),i)return t;a.push(t)}return a},set:function(e,t){for(var n,r,o=e.options,i=z.makeArray(t),a=o.length;a--;)r=o[a],(r.selected=z.inArray(z.valHooks.option.get(r),i)>-1)&&(n=!0);return n||(e.selectedIndex=-1),i}}}}),z.each(["radio","checkbox"],function(){z.valHooks[this]={set:function(e,t){return z.isArray(t)?e.checked=z.inArray(z(e).val(),t)>-1:void 0}},V.checkOn||(z.valHooks[this].get=function(e){return null===e.getAttribute("value")?"on":e.value})});var Fe=i.location,Ue=z.now(),He=/\?/;z.parseJSON=JSON.parse,z.parseXML=function(e){var t;if(!e||"string"!=typeof e)return null;try{t=(new i.DOMParser).parseFromString(e,"text/xml")}catch(n){t=void 0}return(!t||t.getElementsByTagName("parsererror").length)&&z.error("Invalid XML: "+e),t};var Ke=/%20/g,We=/#.*$/,Be=/([?&])_=[^&]*/,Ve=/^(.*?):[ \t]*([^\r\n]*)$/gm,qe=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,ze=/^(?:GET|HEAD)$/,Ye=/^\/\//,Ge={},Xe={},$e="*/".concat("*"),Qe=D.createElement("a");Qe.href=Fe.href,z.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:Fe.href,type:"GET",isLocal:qe.test(Fe.protocol),global:!0,processData:!0,async:!0,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":$e,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":!0,"text json":z.parseJSON,"text xml":z.parseXML},flatOptions:{url:!0,context:!0}},ajaxSetup:function(e,t){return t?A(A(e,z.ajaxSettings),t):A(z.ajaxSettings,e); -},ajaxPrefilter:k(Ge),ajaxTransport:k(Xe),ajax:function(e,t){function n(e,t,n,u){var c,p,d,_,C,w=t;l||(l=!0,s&&i.clearTimeout(s),r=void 0,a=u||"",x.readyState=e>0?4:0,c=e>=200&&300>e||304===e,n&&(_=N(h,x,n)),_=R(h,_,x,c),c?(h.ifModified&&(C=x.getResponseHeader("Last-Modified"),C&&(z.lastModified[o]=C),C=x.getResponseHeader("etag"),C&&(z.etag[o]=C)),204===e||"HEAD"===h.type?w="nocontent":304===e?w="notmodified":(w=_.state,p=_.data,d=_.error,c=!d)):(d=w,(e||!w)&&(w="error",0>e&&(e=0))),x.status=e,x.statusText=(t||w)+"",c?m.resolveWith(v,[p,w,x]):m.rejectWith(v,[x,w,d]),x.statusCode(b),b=void 0,f&&y.trigger(c?"ajaxSuccess":"ajaxError",[x,h,c?p:d]),g.fireWith(v,[x,w]),f&&(y.trigger("ajaxComplete",[x,h]),--z.active||z.event.trigger("ajaxStop")))}"object"==typeof e&&(t=e,e=void 0),t=t||{};var r,o,a,u,s,c,l,f,p,d,h=z.ajaxSetup({},t),v=h.context||h,y=h.context&&(v.nodeType||v.jquery)?z(v):z.event,m=z.Deferred(),g=z.Callbacks("once memory"),b=h.statusCode||{},_={},C={},w="canceled",x={readyState:0,getResponseHeader:function(e){var t;if(l){if(!u)for(u={};t=Ve.exec(a);)u[t[1].toLowerCase()]=t[2];t=u[e.toLowerCase()]}return null==t?null:t},getAllResponseHeaders:function(){return l?a:null},setRequestHeader:function(e,t){return null==l&&(e=C[e.toLowerCase()]=C[e.toLowerCase()]||e,_[e]=t),this},overrideMimeType:function(e){return null==l&&(h.mimeType=e),this},statusCode:function(e){var t;if(e)if(l)x.always(e[x.status]);else for(t in e)b[t]=[b[t],e[t]];return this},abort:function(e){var t=e||w;return r&&r.abort(t),n(0,t),this}};if(m.promise(x),h.url=((e||h.url||Fe.href)+"").replace(Ye,Fe.protocol+"//"),h.type=t.method||t.type||h.method||h.type,h.dataTypes=z.trim(h.dataType||"*").toLowerCase().match(pe)||[""],null==h.crossDomain){c=D.createElement("a");try{c.href=h.url,c.href=c.href,h.crossDomain=Qe.protocol+"//"+Qe.host!=c.protocol+"//"+c.host}catch(E){h.crossDomain=!0}}if(h.data&&h.processData&&"string"!=typeof h.data&&(h.data=z.param(h.data,h.traditional)),S(Ge,h,t,x),l)return x;f=z.event&&h.global,f&&0===z.active++&&z.event.trigger("ajaxStart"),h.type=h.type.toUpperCase(),h.hasContent=!ze.test(h.type),o=h.url.replace(We,""),h.hasContent?h.data&&h.processData&&0===(h.contentType||"").indexOf("application/x-www-form-urlencoded")&&(h.data=h.data.replace(Ke,"+")):(d=h.url.slice(o.length),h.data&&(o+=(He.test(o)?"&":"?")+h.data,delete h.data),h.cache===!1&&(o=o.replace(Be,""),d=(He.test(o)?"&":"?")+"_="+Ue++ +d),h.url=o+d),h.ifModified&&(z.lastModified[o]&&x.setRequestHeader("If-Modified-Since",z.lastModified[o]),z.etag[o]&&x.setRequestHeader("If-None-Match",z.etag[o])),(h.data&&h.hasContent&&h.contentType!==!1||t.contentType)&&x.setRequestHeader("Content-Type",h.contentType),x.setRequestHeader("Accept",h.dataTypes[0]&&h.accepts[h.dataTypes[0]]?h.accepts[h.dataTypes[0]]+("*"!==h.dataTypes[0]?", "+$e+"; q=0.01":""):h.accepts["*"]);for(p in h.headers)x.setRequestHeader(p,h.headers[p]);if(h.beforeSend&&(h.beforeSend.call(v,x,h)===!1||l))return x.abort();if(w="abort",g.add(h.complete),x.done(h.success),x.fail(h.error),r=S(Xe,h,t,x)){if(x.readyState=1,f&&y.trigger("ajaxSend",[x,h]),l)return x;h.async&&h.timeout>0&&(s=i.setTimeout(function(){x.abort("timeout")},h.timeout));try{l=!1,r.send(_,n)}catch(E){if(l)throw E;n(-1,E)}}else n(-1,"No Transport");return x},getJSON:function(e,t,n){return z.get(e,t,n,"json")},getScript:function(e,t){return z.get(e,void 0,t,"script")}}),z.each(["get","post"],function(e,t){z[t]=function(e,n,r,o){return z.isFunction(n)&&(o=o||r,r=n,n=void 0),z.ajax(z.extend({url:e,type:t,dataType:o,data:n,success:r},z.isPlainObject(e)&&e))}}),z._evalUrl=function(e){return z.ajax({url:e,type:"GET",dataType:"script",cache:!0,async:!1,global:!1,"throws":!0})};var Ze=/\[\]$/,Je=/\r?\n/g,et=/^(?:submit|button|image|reset|file)$/i,tt=/^(?:input|select|textarea|keygen)/i;z.param=function(e,t){var n,r=[],o=function(e,t){t=z.isFunction(t)?t():null==t?"":t,r[r.length]=encodeURIComponent(e)+"="+encodeURIComponent(t)};if(void 0===t&&(t=z.ajaxSettings&&z.ajaxSettings.traditional),z.isArray(e)||e.jquery&&!z.isPlainObject(e))z.each(e,function(){o(this.name,this.value)});else for(n in e)j(n,e[n],t,o);return r.join("&")},z.fn.extend({serialize:function(){return z.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var e=z.prop(this,"elements");return e?z.makeArray(e):this}).filter(function(){var e=this.type;return this.name&&!z(this).is(":disabled")&&tt.test(this.nodeName)&&!et.test(e)&&(this.checked||!_e.test(e))}).map(function(e,t){var n=z(this).val();return null==n?null:z.isArray(n)?z.map(n,function(e){return{name:t.name,value:e.replace(Je,"\r\n")}}):{name:t.name,value:n.replace(Je,"\r\n")}}).get()}}),z.ajaxSettings.xhr=function(){try{return new i.XMLHttpRequest}catch(e){}};var nt={0:200,1223:204},rt=z.ajaxSettings.xhr();V.cors=!!rt&&"withCredentials"in rt,V.ajax=rt=!!rt,z.ajaxTransport(function(e){var t,n;return V.cors||rt&&!e.crossDomain?{send:function(r,o){var a,u=e.xhr();if(u.open(e.type,e.url,e.async,e.username,e.password),e.xhrFields)for(a in e.xhrFields)u[a]=e.xhrFields[a];e.mimeType&&u.overrideMimeType&&u.overrideMimeType(e.mimeType),e.crossDomain||r["X-Requested-With"]||(r["X-Requested-With"]="XMLHttpRequest");for(a in r)u.setRequestHeader(a,r[a]);t=function(e){return function(){t&&(t=n=u.onload=u.onerror=u.onabort=u.onreadystatechange=null,"abort"===e?u.abort():"error"===e?"number"!=typeof u.status?o(0,"error"):o(u.status,u.statusText):o(nt[u.status]||u.status,u.statusText,"text"!==(u.responseType||"text")||"string"!=typeof u.responseText?{binary:u.response}:{text:u.responseText},u.getAllResponseHeaders()))}},u.onload=t(),n=u.onerror=t("error"),void 0!==u.onabort?u.onabort=n:u.onreadystatechange=function(){4===u.readyState&&i.setTimeout(function(){t&&n()})},t=t("abort");try{u.send(e.hasContent&&e.data||null)}catch(s){if(t)throw s}},abort:function(){t&&t()}}:void 0});var ot=[],it=/(=)\?(?=&|$)|\?\?/;z.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=ot.pop()||z.expando+"_"+Ue++;return this[e]=!0,e}}),z.ajaxPrefilter("json jsonp",function(e,t,n){var r,o,a,u=e.jsonp!==!1&&(it.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&it.test(e.data)&&"data");return u||"jsonp"===e.dataTypes[0]?(r=e.jsonpCallback=z.isFunction(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,u?e[u]=e[u].replace(it,"$1"+r):e.jsonp!==!1&&(e.url+=(He.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return a||z.error(r+" was not called"),a[0]},e.dataTypes[0]="json",o=i[r],i[r]=function(){a=arguments},n.always(function(){void 0===o?z(i).removeProp(r):i[r]=o,e[r]&&(e.jsonpCallback=t.jsonpCallback,ot.push(r)),a&&z.isFunction(o)&&o(a[0]),a=o=void 0}),"script"):void 0}),V.createHTMLDocument=function(){var e=D.implementation.createHTMLDocument("").body;return e.innerHTML="
",2===e.childNodes.length}(),z.parseHTML=function(e,t,n){if("string"!=typeof e)return[];"boolean"==typeof t&&(n=t,t=!1),t=t||(V.createHTMLDocument?D.implementation.createHTMLDocument(""):D);var r=ie.exec(e),o=!n&&[];return r?[t.createElement(r[1])]:(r=_([e],t,o),o&&o.length&&z(o).remove(),z.merge([],r.childNodes))},z.fn.load=function(e,t,n){var r,o,i,a=this,u=e.indexOf(" ");return u>-1&&(r=z.trim(e.slice(u)),e=e.slice(0,u)),z.isFunction(t)?(n=t,t=void 0):t&&"object"==typeof t&&(o="POST"),a.length>0&&z.ajax({url:e,type:o||"GET",dataType:"html",data:t}).done(function(e){i=arguments,a.html(r?z("
").append(z.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(a,i||[e.responseText,t,e])})}),this},n(893)&&(r=[],o=function(){return z}.apply(t,r),!(void 0!==o&&(e.exports=o)));var at=i.jQuery,ut=i.$;return z.noConflict=function(e){return i.$===z&&(i.$=ut),e&&i.jQuery===z&&(i.jQuery=at),z},a||(i.jQuery=i.$=z),z})},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){e.exports=n(891)},function(e,t,n){(function(e,r){"use strict";function o(e){return e&&e.__esModule?e:{"default":e}}Object.defineProperty(t,"__esModule",{value:!0});var i,a=n(892),u=o(a);i="undefined"!=typeof self?self:"undefined"!=typeof window?window:"undefined"!=typeof e?e:r;var s=(0,u["default"])(i);t["default"]=s}).call(t,function(){return this}(),n(894)(e))},function(e,t){"use strict";function n(e){var t,n=e.Symbol;return"function"==typeof n?n.observable?t=n.observable:(t=n("observable"),n.observable=t):t="@@observable",t}Object.defineProperty(t,"__esModule",{value:!0}),t["default"]=n},function(e,t){(function(t){e.exports=t}).call(t,{})},function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children=[],e.webpackPolyfill=1),e}},,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,function(e,t){},function(e,t,n,r){"use strict";n(46),n(r)},function(e,t,n,r){"use strict";var o=n(r),i=(n(6),function(e){var t=this;if(t.instancePool.length){var n=t.instancePool.pop();return t.call(n,e),n}return new t(e)}),a=function(e,t){var n=this;if(n.instancePool.length){var r=n.instancePool.pop();return n.call(r,e,t),r}return new n(e,t)},u=function(e,t,n){var r=this;if(r.instancePool.length){var o=r.instancePool.pop();return r.call(o,e,t,n),o}return new r(e,t,n)},s=function(e,t,n,r){var o=this;if(o.instancePool.length){var i=o.instancePool.pop();return o.call(i,e,t,n,r),i}return new o(e,t,n,r)},c=function(e){var t=this;e instanceof t?void 0:o("25"),e.destructor(),t.instancePool.length { + dispatch({ type: 'changeNavbar' }) } - } + }, }, effects: { - *switchSider ({ - payload - }, {put}) { + *login ({ + payload, + }, { call, put }) { + yield put({ type: 'showLoginButtonLoading' }) + const data = yield call(login, parse(payload)) + if (data.success) { + yield put({ + type: 'loginSuccess', + payload: { + user: { + name: payload.username, + }, + } }) + } else { + yield put({ + type: 'loginFail', + }) + } + }, + *queryUser ({ + payload, + }, { call, put }) { + const data = yield call(userInfo, parse(payload)) + if (data.success) { yield put({ - type: 'handleSwitchSider' + type: 'loginSuccess', + payload: { + user: { + name: data.username, + }, + }, }) + } + }, + *logout ({ + payload, + }, { call, put }) { + const data = yield call(logout, parse(payload)) + if (data.success) { + yield put({ + type: 'logoutSuccess', + }) + } + }, + *switchSider ({ + payload, + }, { put }) { + yield put({ + type: 'handleSwitchSider', + }) }, *changeTheme ({ - payload - }, {put}) { + payload, + }, { put }) { yield put({ - type: 'handleChangeTheme' + type: 'handleChangeTheme', }) }, *changeNavbar ({ - payload - }, {put}) { + payload, + }, { put }) { if (document.body.clientWidth < 769) { - yield put({type: 'showNavbar'}) + yield put({ type: 'showNavbar' }) } else { - yield put({type: 'hideNavbar'}) + yield put({ type: 'hideNavbar' }) } }, *switchMenuPopver ({ - payload - }, {put}) { + payload, + }, { put }) { yield put({ - type: 'handleSwitchMenuPopver' + type: 'handleSwitchMenuPopver', }) - } + }, }, reducers: { - showLoading (state) { + loginSuccess (state, action) { + return { + ...state, + ...action.payload, + login: true, + loginButtonLoading: false, + } + }, + logoutSuccess (state) { + return { + ...state, + login: false, + } + }, + loginFail (state) { return { ...state, - loading: true + login: false, + loginButtonLoading: false, } }, - hideLoading (state) { + showLoginButtonLoading (state) { return { ...state, - loading: false + loginButtonLoading: true, } }, handleSwitchSider (state) { localStorage.setItem('antdAdminSiderFold', !state.siderFold) return { ...state, - siderFold: !state.siderFold + siderFold: !state.siderFold, } }, handleChangeTheme (state) { localStorage.setItem('antdAdminDarkTheme', !state.darkTheme) return { ...state, - darkTheme: !state.darkTheme + darkTheme: !state.darkTheme, } }, showNavbar (state) { return { ...state, - isNavbar: true + isNavbar: true, } }, hideNavbar (state) { return { ...state, - isNavbar: false + isNavbar: false, } }, handleSwitchMenuPopver (state) { return { ...state, - menuPopoverVisible: !state.menuPopoverVisible + menuPopoverVisible: !state.menuPopoverVisible, + } + }, + handleNavOpenKeys (state, action) { + return { + ...state, + ...action.payload, } - } - } + }, + }, } diff --git a/src/themes/react/static/js/models/host.js b/src/themes/react/static/js/models/host.js index 3a3cc3bf..36d87618 100644 --- a/src/themes/react/static/js/models/host.js +++ b/src/themes/react/static/js/models/host.js @@ -1,19 +1,22 @@ /** * Created by yuehaitao on 2017/1/18. */ -import {getHosts} from '../services/hosts' +import {getHosts} from '../services/host' import {message} from 'antd' export default { namespace: 'host', state: { loadingHosts: false, - hosts: [] + hosts: [], + modalVisible: false, + modalType: 'create', + currentHost: {} }, subscriptions: { setup({dispatch, history}) { history.listen(location => { - if (location.pathname == '/hosts') { + if (location.pathname === '/hosts') { dispatch({type: 'getHosts'}) } }) @@ -24,7 +27,7 @@ export default { yield put({type: 'showLoadingHosts'}) try { const data = yield call(getHosts) - if (data && data.status == "OK") { + if (data && data.status === "OK") { yield put({type: 'getHostsSuccess', payload: { hosts: data.data }}) @@ -47,6 +50,12 @@ export default { }, getHostsSuccess(state, action) { return {...state, ...action.payload, loadingHosts: false} + }, + showModal(state, action) { + return {...state, ...action.payload, modalVisible: true} + }, + hideModal(state) { + return {...state, modalVisible: false} } } } diff --git a/src/themes/react/static/js/router.js b/src/themes/react/static/js/router.js index 7cc7f35a..46756ed6 100644 --- a/src/themes/react/static/js/router.js +++ b/src/themes/react/static/js/router.js @@ -1,78 +1,66 @@ -import React from 'react' -import {Router} from 'dva/router' +import React, { PropTypes } from 'react' +import { Router } from 'dva/router' import App from './routes/app' -export default function ({history, app}) { +const cached = {} +const registerModel = (app, model) => { + if (!cached[model.namespace]) { + app.model(model) + cached[model.namespace] = 1 + } +} + +const Routers = function ({ history, app }) { const routes = [ { path: '/', component: App, getIndexRoute (nextState, cb) { require.ensure([], require => { - cb(null, {component: require('./routes/overview')}) - }) + registerModel(app, require('./models/overview')) + cb(null, { component: require('./routes/overview') }) + }, 'overview') }, childRoutes: [ + { + path: 'overview', + name: 'overview', + getComponent (nextState, cb) { + require.ensure([], require => { + registerModel(app, require('./models/overview')) + cb(null, require('./routes/overview')) + }, 'overview') + } + }, + { + path: 'hosts', + name: 'hosts', + getComponent (nextState, cb) { + require.ensure([], require => { + registerModel(app, require('./models/host')) + cb(null, require('./routes/host')) + }, 'hosts') + } + }, { - path: 'overview', - name: 'overview', - getComponent (nextState, cb) { - require.ensure([], require => { - cb(null, require('./routes/overview')) - }) - } - }, { - path: 'hosts', - name: 'hosts', - getComponent (nextState, cb) { - require.ensure([], require => { - cb(null, require('./routes/hosts')) - }) - } - }, { - path: 'chains/active', - name: 'chains/active', - getComponent (nextState, cb) { - require.ensure([], require => { - cb(null, require('./routes/chains/active')) - }) - } - }, { - path: 'chains/inused', - name: 'chains/inused', - getComponent (nextState, cb) { - require.ensure([], require => { - cb(null, require('./routes/chains/inused')) - }) - } - }, { - path: 'release', - name: 'release', - getComponent (nextState, cb) { - require.ensure([], require => { - cb(null, require("./routes/release")) - }) - } - }, { - path: 'about', - name: 'about', - getComponent (nextState, cb) { - require.ensure([], require => { - cb(null, require("./routes/about")) - }) - } - }, { path: '*', name: 'error', getComponent (nextState, cb) { require.ensure([], require => { - cb(null, require('./routes/error')) - }) - } - } - ] - } + cb(null, require('./routes/error/')) + }, 'error') + }, + }, + ], + }, ] return } + +Routers.propTypes = { + history: PropTypes.object, + app: PropTypes.object, +} + +export default Routers diff --git a/src/themes/react/static/js/routes/about.js b/src/themes/react/static/js/routes/about.js deleted file mode 100644 index fba66f05..00000000 --- a/src/themes/react/static/js/routes/about.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react' - -const About = () =>
-
-

About

-
-
- -export default About diff --git a/src/themes/react/static/js/routes/app.js b/src/themes/react/static/js/routes/app.js index 7fe79500..2c650f0c 100644 --- a/src/themes/react/static/js/routes/app.js +++ b/src/themes/react/static/js/routes/app.js @@ -1,16 +1,23 @@ import React, { PropTypes } from 'react' import { connect } from 'dva' -import Header from '../components/layout/header' -import Bread from '../components/layout/bread' -import Footer from '../components/layout/footer' -import Sider from '../components/layout/sider' -import styles from '../components/layout/main.less' +import Login from './login' +import { Layout } from '../components' import { Spin } from 'antd' -import { classnames } from '../utils' -import '../components/layout/common.less' +import { classnames, config } from '../utils' +import { Helmet } from 'react-helmet' +import '../components/skin.less' -function App ({children, location, dispatch, app}) { - const {user, siderFold, darkTheme, isNavbar, menuPopoverVisible} = app +const { Header, Bread, Footer, Sider, styles } = Layout + +const App = ({ children, location, dispatch, app, loading }) => { + const { login, loginButtonLoading, user, siderFold, darkTheme, isNavbar, menuPopoverVisible, navOpenKeys } = app + const loginProps = { + loading, + loginButtonLoading, + onOk (data) { + dispatch({ type: 'app/login', payload: data }) + }, + } const headerProps = { user, @@ -18,41 +25,64 @@ function App ({children, location, dispatch, app}) { location, isNavbar, menuPopoverVisible, + navOpenKeys, switchMenuPopover () { - dispatch({type: 'app/switchMenuPopver'}) + dispatch({ type: 'app/switchMenuPopver' }) + }, + logout () { + dispatch({ type: 'app/logout' }) }, switchSider () { - dispatch({type: 'app/switchSider'}) - } + dispatch({ type: 'app/switchSider' }) + }, + changeOpenKeys (openKeys) { + dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } }) + }, } const siderProps = { siderFold, darkTheme, location, + navOpenKeys, changeTheme () { - dispatch({type: 'app/changeTheme'}) - } + dispatch({ type: 'app/changeTheme' }) + }, + changeOpenKeys (openKeys) { + localStorage.setItem('navOpenKeys', JSON.stringify(openKeys)) + dispatch({ type: 'app/handleNavOpenKeys', payload: { navOpenKeys: openKeys } }) + }, } return ( -
-
- {!isNavbar ? : ''} +
+ + Cello Dashboard + + {config.iconFontUrl ? : ''} + + {login + ?
+ {!isNavbar ? : ''}
- {children} + {children}
-
-
+
: +
+ + + +
} +
) } @@ -60,9 +90,8 @@ App.propTypes = { children: PropTypes.element.isRequired, location: PropTypes.object, dispatch: PropTypes.func, - user: PropTypes.object, - siderFold: PropTypes.bool, - darkTheme: PropTypes.bool + app: PropTypes.object, + loading: PropTypes.bool, } -export default connect(({app}) => ({app}))(App) +export default connect(({ app, loading }) => ({ app, loading: loading.models.app }))(App) diff --git a/src/themes/react/static/js/routes/chains/active.js b/src/themes/react/static/js/routes/chains/active.js deleted file mode 100644 index 5ec9220b..00000000 --- a/src/themes/react/static/js/routes/chains/active.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react' - -const Active = () =>
-
-

Active chains

-
-
- -export default Active diff --git a/src/themes/react/static/js/routes/chains/inused.js b/src/themes/react/static/js/routes/chains/inused.js deleted file mode 100644 index 9e24bc6a..00000000 --- a/src/themes/react/static/js/routes/chains/inused.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react' - -const Inused = () =>
-
-

Inused Chains

-
-
- -export default Inused diff --git a/src/themes/react/static/js/routes/error.js b/src/themes/react/static/js/routes/error.js deleted file mode 100644 index 52854786..00000000 --- a/src/themes/react/static/js/routes/error.js +++ /dev/null @@ -1,12 +0,0 @@ -import React from 'react' -import {Icon} from 'antd' -import styles from './error.less' - -const Error = () =>
-
- -

404 Not Found

-
-
- -export default Error diff --git a/src/themes/react/static/js/routes/error/index.js b/src/themes/react/static/js/routes/error/index.js new file mode 100644 index 00000000..70f341a1 --- /dev/null +++ b/src/themes/react/static/js/routes/error/index.js @@ -0,0 +1,12 @@ +import React from 'react' +import { Icon } from 'antd' +import styles from './index.less' + +const Error = () =>
+
+ +

404 Not Found

+
+
+ +export default Error diff --git a/src/themes/react/static/js/routes/error.less b/src/themes/react/static/js/routes/error/index.less similarity index 100% rename from src/themes/react/static/js/routes/error.less rename to src/themes/react/static/js/routes/error/index.less diff --git a/src/themes/react/static/js/components/hosts/list.jsx b/src/themes/react/static/js/routes/host/HostList.js similarity index 66% rename from src/themes/react/static/js/components/hosts/list.jsx rename to src/themes/react/static/js/routes/host/HostList.js index f2af5d9f..b953283b 100644 --- a/src/themes/react/static/js/components/hosts/list.jsx +++ b/src/themes/react/static/js/routes/host/HostList.js @@ -2,10 +2,23 @@ * Created by yuehaitao on 2017/2/7. */ import React, { PropTypes } from 'react' -import { Badge, Tag, Button, Table, Popconfirm, Pagination } from 'antd' -import styles from './list.less' +import { Badge, Tag, Button, Modal, Table, Popconfirm, Pagination } from 'antd' +import styles from './HostList.less' +import { DropOption } from '../../components' + +const confirm = Modal.confirm function list({loadingList, dataSource, onDeleteItem, onSelectItem, onSelectTagItem}) { + const handleMenuClick = (record, e) => { + if (e.key === 'delete') { + confirm({ + title: 'Confirm to delete?', + onOk () { + onDeleteItem(record.id) + }, + }) + } + } const columns = [ { title: 'Name', @@ -20,7 +33,7 @@ function list({loadingList, dataSource, onDeleteItem, onSelectItem, onSelectTagI dataIndex: 'status', key: 'status', render: (text) => ( - {text == "active" ? : } + {text === "active" ? : } ) }, { @@ -47,13 +60,12 @@ function list({loadingList, dataSource, onDeleteItem, onSelectItem, onSelectTagI title: 'Operation', key: 'operation', width: 100, - render: (text, record) => ( -

- onDeleteItem(record.id, record.name)}> - Delete - -

- ) + render: (text, record) => { + const menuOptions = [ + {key: 'delete', name: 'Delete'} + ] + return handleMenuClick(record, e)} menuOptions={menuOptions} /> + } } ] diff --git a/src/themes/react/static/js/routes/host/HostList.less b/src/themes/react/static/js/routes/host/HostList.less new file mode 100644 index 00000000..5c4d4d42 --- /dev/null +++ b/src/themes/react/static/js/routes/host/HostList.less @@ -0,0 +1,93 @@ +.table { + td.avatar { + img { + border-radius: 50%; + } + } + + :global { + .ant-table-tbody > tr > td, + .ant-table-thead > tr > th { + height: 62px; + } + } + + &.motion { + :global { + .ant-table-tbody > tr > td, + .ant-table-thead > tr > th { + &:nth-child(1) { + width: 6%; + } + + &:nth-child(2) { + width: 8%; + } + + &:nth-child(3) { + width: 8%; + } + + &:nth-child(4) { + width: 6%; + } + + &:nth-child(5) { + width: 6%; + } + + &:nth-child(6) { + width: 8%; + } + + &:nth-child(7) { + width: 16%; + } + + &:nth-child(8) { + width: 20%; + } + + &:nth-child(9) { + width: 14%; + } + + &:nth-child(10) { + width: 8%; + } + } + + .ant-table-thead { + & > tr { + transition: none; + display: block; + + & > th { + display: inline-flex; + align-items: center; + justify-content: center; + } + } + } + + .ant-table-tbody { + & > tr { + transition: none; + display: block; + border-bottom: 1px solid #f5f5f5; + + & > td { + border-bottom: none; + display: inline-flex; + align-items: center; + justify-content: center; + } + + &.ant-table-expanded-row-level-1 > td { + height: auto; + } + } + } + } + } +} diff --git a/src/themes/react/static/js/routes/host/HostModal.js b/src/themes/react/static/js/routes/host/HostModal.js new file mode 100644 index 00000000..a731d2bc --- /dev/null +++ b/src/themes/react/static/js/routes/host/HostModal.js @@ -0,0 +1,145 @@ +/** + * Created by yuehaitao on 2017/2/9. + */ +import React, { PropTypes } from 'react' +import { Form, Input, InputNumber, Radio, Modal, Tooltip, Icon } from 'antd' +import validator from 'validator' +const FormItem = Form.Item + +const modal = ({ + visible, + item = {}, + onOk, + onCancel, + type, + form: { + getFieldDecorator, + validateFields, + getFieldsValue, + setFields + }, +}) => { + function handleOk() { + validateFields((errors) => { + if (errors) { + return + } + const data = getFieldsValue() + const url = data.url + if (url.split(":").length !== 2) { + setFields({ + url: { + value: url, + errors: [new Error('Must input ip:port')] + } + }) + return + } + const ip = url.split(":")[0] + const port = parseInt(url.split(":")[1]) + if (!validator.isIP(ip)) { + setFields({ + url: { + value: url, + errors: [new Error('Must input valid ip address')] + } + }) + return + } + if (port<0 || port>65535) { + setFields({ + url: { + value: url, + errors: [new Error('Must input valid port')] + } + }) + return + } + onOk(data) + }) + } + + let title = "Add Host" + if (type === 'update') { + title = "Update Host" + } + const modalOpts = { + title: title, + visible, + onOk: handleOk, + onCancel, + wrapClassName: 'vertical-center-modal', + } + const formItemLayout = { + labelCol: { + span: 6, + }, + wrapperCol: { + span: 14, + }, + } + const portAfter = getFieldDecorator('port', { + initialValue: type == "create" ? 1 : item.port, + rules: [ + { + required: true, + message: 'Must select port' + } + ] + })() + + return ( + +
+ + {getFieldDecorator('name', { + initialValue: item.name, + rules: [ + { + required: true, + message: 'Must input Host name', + }, + ], + })()} + + URL  + + + + } hasFeedback {...formItemLayout}> + {getFieldDecorator('url', { + initialValue: item.daemon_url, + rules: [ + { + required: true, + message: 'Must input Host url', + }, + ], + })()} + + + {getFieldDecorator('capacity', { + initialValue: type == "create" ? 1 : item.capacity, + rules: [ + { + required: true, + message: 'Must input capacity', + }, + ], + })()} + +
+
+ ) +} + +modal.propTypes = { + visible: PropTypes.any, + form: PropTypes.object, + item: PropTypes.object, + onOk: PropTypes.func, + onCancel: PropTypes.func, + type: PropTypes.any +} + +export default Form.create()(modal) diff --git a/src/themes/react/static/js/routes/host/index.js b/src/themes/react/static/js/routes/host/index.js new file mode 100644 index 00000000..cb02b96d --- /dev/null +++ b/src/themes/react/static/js/routes/host/index.js @@ -0,0 +1,54 @@ +import React from 'react' +import HostsList from './HostList' +import HostModal from './HostModal' +import {Row, Col, Button} from 'antd' +import { connect } from 'dva' + +class Hosts extends React.Component { + constructor(props) { + super(props) + } + addHost() { + const {dispatch} = this.props + dispatch({ + type: 'host/showModal', + payload: { + modalType: 'create' + } + }) + } + render() { + const {host: {loadingHosts, hosts, modalVisible, modalType, currentItem}, dispatch} = this.props; + const hostsListProps = { + dataSource: hosts, + loadingList: loadingHosts + } + const modalProps = { + item: modalType === 'create' ? {} : currentItem, + type: modalType, + visible: modalVisible, + onOk(data) { + console.log(data) + }, + onCancel() { + dispatch({ + type: 'host/hideModal' + }) + } + } + const ModalGen = () => + return ( +
+ + + + + + + +
+ ) + } +} + +export default connect(({host}) => ({host}))(Hosts) diff --git a/src/themes/react/static/js/routes/hosts.js b/src/themes/react/static/js/routes/hosts.js deleted file mode 100644 index 2baca99d..00000000 --- a/src/themes/react/static/js/routes/hosts.js +++ /dev/null @@ -1,23 +0,0 @@ -import React from 'react' -import HostsList from '../components/hosts/list' -import { connect } from 'dva' - -class Hosts extends React.Component { - constructor(props) { - super(props) - } - render() { - const {host: {loadingHosts, hosts}} = this.props; - const hostsListProps = { - dataSource: hosts, - loadingList: loadingHosts - } - return ( -
- -
- ) - } -} - -export default connect(({host}) => ({host}))(Hosts) diff --git a/src/themes/react/static/js/routes/login/index.js b/src/themes/react/static/js/routes/login/index.js new file mode 100644 index 00000000..4875ebc3 --- /dev/null +++ b/src/themes/react/static/js/routes/login/index.js @@ -0,0 +1,72 @@ +import React, { PropTypes } from 'react' +import { Button, Row, Form, Input } from 'antd' +import { config } from '../../utils' +import styles from './index.less' + +const FormItem = Form.Item + +const login = ({ + loginButtonLoading, + onOk, + form: { + getFieldDecorator, + validateFieldsAndScroll, + }, +}) => { + function handleOk () { + validateFieldsAndScroll((errors, values) => { + if (errors) { + return + } + onOk(values) + }) + } + + return ( +
+
+ {'logo'} + Ant Design +
+
+ + {getFieldDecorator('username', { + rules: [ + { + required: true, + message: '请填写用户名', + }, + ], + })()} + + + {getFieldDecorator('password', { + rules: [ + { + required: true, + message: '请填写密码', + }, + ], + })()} + + + + +

+ 账号:guest + 密码:guest +

+
+
+ ) +} + +login.propTypes = { + form: PropTypes.object, + loginButtonLoading: PropTypes.bool, + onOk: PropTypes.func, +} + +export default Form.create()(login) diff --git a/src/themes/react/static/js/routes/login/index.less b/src/themes/react/static/js/routes/login/index.less new file mode 100644 index 00000000..1ebd563f --- /dev/null +++ b/src/themes/react/static/js/routes/login/index.less @@ -0,0 +1,51 @@ +.form { + position: absolute; + top: 50%; + left: 50%; + margin: -160px 0 0 -160px; + width: 320px; + height: 320px; + padding: 36px; + box-shadow: 0 0 100px rgba(0,0,0,.08); + + button { + width: 100%; + } + + p { + color: rgb(204, 204, 204); + text-align: center; + margin-top: 16px; + + span { + &:first-child { + margin-right: 16px; + } + } + } +} + +.logo { + text-align: center; + height: 40px; + line-height: 40px; + cursor: pointer; + margin-bottom: 24px; + + img { + width: 40px; + margin-right: 8px; + } + + span { + vertical-align: text-bottom; + font-size: 16px; + text-transform: uppercase; + display: inline-block; + } +} + +.ant-spin-container, +.ant-spin-nested-loading { + height: 100%; +} diff --git a/src/themes/react/static/js/components/overview/pie_chart.js b/src/themes/react/static/js/routes/overview/ChartCard.js similarity index 94% rename from src/themes/react/static/js/components/overview/pie_chart.js rename to src/themes/react/static/js/routes/overview/ChartCard.js index cfafcdbd..957307dc 100644 --- a/src/themes/react/static/js/components/overview/pie_chart.js +++ b/src/themes/react/static/js/routes/overview/ChartCard.js @@ -3,10 +3,10 @@ */ import React, { PropTypes } from 'react' import { Card, Spin } from 'antd' -import styles from './pie_chart.less' +import styles from './ChartCard.less' import echarts from 'echarts' import ReactEcharts from 'echarts-for-react' -import westeros from '../echarts/theme/westeros.json' +import westeros from '../../components/echarts/theme/westeros.json' class ChartCard extends React.Component { constructor(props) { @@ -60,7 +60,6 @@ class ChartCard extends React.Component { render() { const { chartId, loading } = this.props this.registerTheme() - console.log(chartId) return ( diff --git a/src/themes/react/static/js/components/overview/pie_chart.less b/src/themes/react/static/js/routes/overview/ChartCard.less similarity index 91% rename from src/themes/react/static/js/components/overview/pie_chart.less rename to src/themes/react/static/js/routes/overview/ChartCard.less index 4d70be76..dae71d3c 100644 --- a/src/themes/react/static/js/components/overview/pie_chart.less +++ b/src/themes/react/static/js/routes/overview/ChartCard.less @@ -1,4 +1,4 @@ -@import "../vars.less"; +@import "../../components/vars.less"; .chartCard{ padding: 32px; font-family: monospace; @@ -25,4 +25,4 @@ .text-overflow(); } } -} \ No newline at end of file +} diff --git a/src/themes/react/static/js/routes/overview.js b/src/themes/react/static/js/routes/overview/index.js similarity index 96% rename from src/themes/react/static/js/routes/overview.js rename to src/themes/react/static/js/routes/overview/index.js index 1b69d316..746bc3d5 100644 --- a/src/themes/react/static/js/routes/overview.js +++ b/src/themes/react/static/js/routes/overview/index.js @@ -1,7 +1,7 @@ import React, { PropTypes } from 'react' import { connect } from 'dva' import { Row, Col, Spin } from 'antd' -import ChartCard from '../components/overview/pie_chart' +import ChartCard from './ChartCard' function Overview({dispatch, overview}) { const {loading, host, name, cluster} = overview diff --git a/src/themes/react/static/js/routes/release.js b/src/themes/react/static/js/routes/release.js deleted file mode 100644 index 3a98f35b..00000000 --- a/src/themes/react/static/js/routes/release.js +++ /dev/null @@ -1,9 +0,0 @@ -import React from 'react' - -const Release = () =>
-
-

Release History

-
-
- -export default Release diff --git a/src/themes/react/static/js/routes/users.js b/src/themes/react/static/js/routes/users.js deleted file mode 100644 index b4be09b4..00000000 --- a/src/themes/react/static/js/routes/users.js +++ /dev/null @@ -1,100 +0,0 @@ -import React, { PropTypes } from 'react' -import { routerRedux } from 'dva/router' -import { connect } from 'dva' -import UserList from '../components/users/list' -import UserSearch from '../components/users/search' -import UserModal from '../components/users/modal' - -function Users ({ location, dispatch, users }) { - const { loading, list, pagination, currentItem, modalVisible, modalType } = users - const { field, keyword } = location.query - - const userModalProps = { - item: modalType === 'create' ? {} : currentItem, - type: modalType, - visible: modalVisible, - onOk (data) { - dispatch({ - type: `users/${modalType}`, - payload: data - }) - }, - onCancel () { - dispatch({ - type: 'users/hideModal' - }) - } - } - - const userListProps = { - dataSource: list, - loading, - pagination: pagination, - onPageChange (page) { - dispatch(routerRedux.push({ - pathname: '/users', - query: { - page: page.current, - pageSize: page.pageSize - } - })) - }, - onDeleteItem (id) { - dispatch({ - type: 'users/delete', - payload: id - }) - }, - onEditItem (item) { - dispatch({ - type: 'users/showModal', - payload: { - modalType: 'update', - currentItem: item - } - }) - } - } - - const userSearchProps = { - field, - keyword, - onSearch (fieldsValue) { - dispatch({ - type: 'users/query', - payload: fieldsValue - }) - }, - onAdd () { - dispatch({ - type: 'users/showModal', - payload: { - modalType: 'create' - } - }) - } - } - - const UserModalGen = () => - - - return ( -
- - - -
- ) -} - -Users.propTypes = { - users: PropTypes.object, - location: PropTypes.object, - dispatch: PropTypes.func -} - -function mapStateToProps ({ users }) { - return { users } -} - -export default connect(mapStateToProps)(Users) diff --git a/src/themes/react/static/js/services/app.js b/src/themes/react/static/js/services/app.js new file mode 100644 index 00000000..20f0eeb3 --- /dev/null +++ b/src/themes/react/static/js/services/app.js @@ -0,0 +1,25 @@ +import { request } from '../utils' + +export async function login (params) { + return request({ + url: '/api/login', + method: 'post', + data: params, + }) +} + +export async function logout (params) { + return request({ + url: '/api/logout', + method: 'post', + data: params, + }) +} + +export async function userInfo (params) { + return request({ + url: '/api/userInfo', + method: 'get', + data: params, + }) +} diff --git a/src/themes/react/static/js/services/hosts.js b/src/themes/react/static/js/services/host.js similarity index 56% rename from src/themes/react/static/js/services/hosts.js rename to src/themes/react/static/js/services/host.js index ab9f39ec..5f1a0ba2 100644 --- a/src/themes/react/static/js/services/hosts.js +++ b/src/themes/react/static/js/services/host.js @@ -1,11 +1,11 @@ /** * Created by yuehaitao on 2017/1/18. */ -import { request } from '../utils' -import { config } from '../utils' +import { request, config } from '../utils' export async function getHosts(params) { - return request(config.urls.hosts, { + return request({ + url: config.urls.hosts, method: 'get', data: params }) diff --git a/src/themes/react/static/js/services/overview.js b/src/themes/react/static/js/services/overview.js index 6086d060..ecb016af 100644 --- a/src/themes/react/static/js/services/overview.js +++ b/src/themes/react/static/js/services/overview.js @@ -1,13 +1,14 @@ /** * Created by yuehaitao on 2017/1/18. */ -import { request } from '../utils' +import { request, config } from '../utils' import qs from 'qs' -import { config } from '../utils' export async function queryStat(params) { - return request(config.urls.queryStat, { + console.log(config.urls.overview.stat) + return request({ + url: config.urls.overview.stat, method: 'get', - data: params + data: params, }) } diff --git a/src/themes/react/static/js/theme.js b/src/themes/react/static/js/theme.js index 82ec4559..4f0bf19a 100644 --- a/src/themes/react/static/js/theme.js +++ b/src/themes/react/static/js/theme.js @@ -8,6 +8,6 @@ module.exports = () => { '@border-color-base': '#e5e5e5', '@menu-dark-bg': '#3e3e3e', '@text-color': '#666', - '@font-family': 'monospace,-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Helvetica, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", SimSun, sans-serif' + '@font-family': '"AvenirNext-Regular", "Helvetica Neue", "lucida grande", "PingFangHK-Light", "STHeiti", "Heiti SC", "Hiragino Sans GB", "Microsoft JhengHei", "Microsoft Yahei", SimHei, "WenQuanYi Micro Hei", "Droid Sans", "Roboto", Helvetica, Tahoma, Arial, "sans-serif"', } } diff --git a/src/themes/react/static/js/utils/config.js b/src/themes/react/static/js/utils/config.js index 153617ce..d759e001 100644 --- a/src/themes/react/static/js/utils/config.js +++ b/src/themes/react/static/js/utils/config.js @@ -5,7 +5,10 @@ module.exports = { footerText: 'Cello Dashboard', logoText: 'Cello', urls: { - queryStat: apiBase + '/stat', - hosts: apiBase + '/hosts' + overview: { + stat: apiBase + '/stat', + }, + hosts: apiBase + '/hosts', + host: apiBase + '/host' } } diff --git a/src/themes/react/static/js/utils/index.js b/src/themes/react/static/js/utils/index.js index 02406440..3ba04f1c 100644 --- a/src/themes/react/static/js/utils/index.js +++ b/src/themes/react/static/js/utils/index.js @@ -2,12 +2,12 @@ import config from './config' import menu from './menu' import request from './request' import classnames from 'classnames' -import {color} from './theme' +import { color } from './theme' // 连字符转驼峰 String.prototype.hyphenToHump = function () { - return this.replace(/-(\w)/g, function () { - return arguments[1].toUpperCase() + return this.replace(/-(\w)/g, (...args) => { + return args[1].toUpperCase() }) } @@ -18,7 +18,7 @@ String.prototype.humpToHyphen = function () { // 日期格式化 Date.prototype.format = function (format) { - var o = { + const o = { 'M+': this.getMonth() + 1, 'd+': this.getDate(), 'h+': this.getHours(), @@ -26,14 +26,14 @@ Date.prototype.format = function (format) { 'm+': this.getMinutes(), 's+': this.getSeconds(), 'q+': Math.floor((this.getMonth() + 3) / 3), - 'S': this.getMilliseconds() + S: this.getMilliseconds(), } - if (/(y+)/.test(format)) { format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length)) } - for (var k in o) { - if (new RegExp('(' + k + ')').test(format)) { - format = format.replace(RegExp.$1, RegExp.$1.length === 1 - ? o[k] - : ('00' + o[k]).substr(('' + o[k]).length)) + if (/(y+)/.test(format)) { + format = format.replace(RegExp.$1, `${this.getFullYear()}`.substr(4 - RegExp.$1.length)) + } + for (let k in o) { + if (new RegExp(`(${k})`).test(format)) { + format = format.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : (`00${o[k]}`).substr(`${o[k]}`.length)) } } return format @@ -44,5 +44,5 @@ module.exports = { menu, request, color, - classnames + classnames, } diff --git a/src/themes/react/static/js/utils/request.js b/src/themes/react/static/js/utils/request.js index 279b9f75..d4a54c40 100644 --- a/src/themes/react/static/js/utils/request.js +++ b/src/themes/react/static/js/utils/request.js @@ -1,27 +1,43 @@ -const Ajax = require('robe-ajax') +import axios from 'axios' +import qs from 'qs' +import config from './config' -/** - * Requests a URL, returning a promise. - * - * @param {string} url The URL we want to request - * @param {object} [options] The options we want to pass to "fetch" - * @return {object} An object containing either "data" or "err" - */ -export default function request (url, options) { - if (options.cross) { - return Ajax.getJSON('http://query.yahooapis.com/v1/public/yql', { - q: "select * from json where url='" + url + '?' + Ajax.param(options.data) + "'", - format: 'json' - }) - } else { - return Ajax.ajax({ - url: url, - method: options.method || 'get', - data: options.data || {}, - processData: options.method === 'get', - dataType: 'JSON' - }).done((data) => { - return data - }) +const fetch = (options) => { + const { + method = 'get', + data, + url, + } = options + switch (method.toLowerCase()) { + case 'get': + return axios.get(`${url}${options.data ? `?${qs.stringify(options.data)}` : ''}`) + case 'delete': + return axios.delete(url, { data }) + case 'head': + return axios.head(url, data) + case 'post': + return axios.post(url, data) + case 'put': + return axios.put(url, data) + case 'patch': + return axios.patch(url, data) + default: + return axios(options) } } + +export default function request (options) { + return fetch(options).then((response) => { + const { statusText, status } = response + let data = options.isCross ? response.data.query.results.json : response.data + return { + code: 0, + status, + message: statusText, + ...data, + } + }).catch((error) => { + const { response = { statusText: 'Network Error' } } = error + return { code: 1, message: response.statusText } + }) +} diff --git a/src/themes/react/static/js/utils/theme.js b/src/themes/react/static/js/utils/theme.js index 85ed8b4f..c25585c4 100644 --- a/src/themes/react/static/js/utils/theme.js +++ b/src/themes/react/static/js/utils/theme.js @@ -9,6 +9,6 @@ module.exports = { borderBase: '#e5e5e5', borderSplit: '#f4f4f4', grass: '#d6fbb5', - sky: '#c1e0fc' - } + sky: '#c1e0fc', + }, } diff --git a/src/themes/react/static/package.json b/src/themes/react/static/package.json index 8c67e665..002a3c00 100644 --- a/src/themes/react/static/package.json +++ b/src/themes/react/static/package.json @@ -15,6 +15,8 @@ "react-dom": "^15.4.1", "recharts": "^0.19.0", "echarts-for-react": "^1.1.6", + "react-draft-wysiwyg": "^1.8.1", + "react-helmet": "^5.0.0", "echarts": "^3.4.0" }, "devDependencies": { @@ -38,14 +40,16 @@ "mockjs": "^1.0.1-beta3", "redbox-react": "^1.2.10", "robe-ajax": "^1.0.0", - "watchjs": "^0.0.0" + "watchjs": "^0.0.0", + "axios": "^0.15.3", + "validator": "^7.0.0" }, "scripts": { "start": "dora --plugins \"proxy,webpack,webpack-hmr\"", "dev": "dora --plugins \"webpack,webpack-hmr\"", "lint": "eslint --fix --ext .js,.jsx src/components/layout", "build": "atool-build -o /app/js/dist --publicPath /static/js/dist/", - "watch-mode": "atool-build -w --no-compress -o /app/js/dist --publicPath /static/js/dist/" + "watch-mode": "atool-build --no-compress -o /app/js/dist --publicPath /static/js/dist/" }, "theme": "./js/theme.js", "standard": { diff --git a/src/themes/react/static/webpack.config.js b/src/themes/react/static/webpack.config.js index bb1f452f..eb4b81df 100644 --- a/src/themes/react/static/webpack.config.js +++ b/src/themes/react/static/webpack.config.js @@ -47,7 +47,8 @@ module.exports = function (webpackConfig, env) { webpackConfig.externals = { 'react': 'React', 'react-dom': 'ReactDOM', - 'echarts': true + 'echarts': true, + 'validator': true } return webpackConfig diff --git a/src/themes/react/templates/index.html b/src/themes/react/templates/index.html index 1625b763..07be2255 100644 --- a/src/themes/react/templates/index.html +++ b/src/themes/react/templates/index.html @@ -23,6 +23,7 @@ +