├── src
├── components
│ └── .gitkeep
├── store
│ └── index.js
├── App.vue
├── stylus
│ └── main.styl
├── app.js
├── client-entry.js
├── router
│ └── index.js
├── views
│ ├── View1.vue
│ ├── Main.vue
│ └── View2.vue
├── index.html
├── server-entry.js
└── css
│ └── main.css
├── .gitignore
├── public
├── logo.png
└── favicon.ico
├── dist
├── styles.b8f9d.css.map
├── index.html
├── manifest.00114.js
├── styles.b8f9d.css
├── server-bundle.js
└── app.cf660.js
├── LICENSE
├── README.md
├── package.json
└── app.js
/src/components/.gitkeep:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | node_modules/
2 | npm-debug.log
3 | *.log
4 | *.DS_Store
5 | log
--------------------------------------------------------------------------------
/public/logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ccforward/vue-ssr/HEAD/public/logo.png
--------------------------------------------------------------------------------
/public/favicon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/ccforward/vue-ssr/HEAD/public/favicon.ico
--------------------------------------------------------------------------------
/dist/styles.b8f9d.css.map:
--------------------------------------------------------------------------------
1 | {"version":3,"sources":[],"names":[],"mappings":"","file":"styles.b8f9d.css","sourceRoot":""}
--------------------------------------------------------------------------------
/src/store/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Vuex from 'vuex'
3 |
4 | Vue.use(Vuex)
5 |
6 | export default new Vuex.Store({
7 | state: {},
8 |
9 | actions: {},
10 |
11 | mutations: {}
12 | })
--------------------------------------------------------------------------------
/src/App.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
Vue.js SSR Template
4 |
5 |
Fork me on GitHub
6 |
7 |
--------------------------------------------------------------------------------
/src/stylus/main.styl:
--------------------------------------------------------------------------------
1 | /** Stylus Styles */
2 |
3 | .main-content {
4 | text-align center
5 | img {
6 | width 200px
7 | }
8 | .main-title {
9 | color #42b983
10 | }
11 | .view1-title {
12 | color #f06
13 | }
14 | .view2-title {
15 | color #333
16 | }
17 | main a {
18 | margin 0 10px
19 | }
20 | }
--------------------------------------------------------------------------------
/src/app.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import App from './App.vue'
3 | import store from './store/index'
4 | import router from './router/index'
5 | import { sync } from 'vuex-router-sync'
6 |
7 | sync(store, router)
8 |
9 | const app = new Vue(Vue.util.extend({
10 | router,
11 | store
12 | }, App))
13 |
14 | export { app, router, store }
15 |
--------------------------------------------------------------------------------
/src/client-entry.js:
--------------------------------------------------------------------------------
1 | require('./css/main.css')
2 | require('./stylus/main.styl')
3 | require('es6-promise').polyfill()
4 | import { app, store } from './app'
5 |
6 | // prime the store with server-initialized state.
7 | // the state is determined during SSR and inlined in the page markup.
8 | store.replaceState(window.__INITIAL_STATE__)
9 |
10 | // actually mount to DOM
11 | app.$mount('div')
12 |
--------------------------------------------------------------------------------
/src/router/index.js:
--------------------------------------------------------------------------------
1 | import Vue from 'vue'
2 | import Router from 'vue-router'
3 |
4 | import Main from '../views/Main.vue'
5 | import View1 from '../views/View1.vue'
6 | import View2 from '../views/View2.vue'
7 |
8 | Vue.use(Router)
9 |
10 | export default new Router({
11 | mode: 'history',
12 | routes: [
13 | { path: '/', component: Main },
14 | { path: '/view1', component: View1 },
15 | { path: '/view2', component: View2 }
16 | ]
17 | })
--------------------------------------------------------------------------------
/src/views/View1.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This is View1
5 | Main
6 | view1
7 | view2
8 |
9 |
10 |
--------------------------------------------------------------------------------
/src/views/Main.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This is Main View
5 | Main
6 | view1
7 | view2
8 |
9 |
10 |
11 |
--------------------------------------------------------------------------------
/src/views/View2.vue:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | This is View2
5 | Main
6 | view1
7 | view2
8 |
9 |
10 |
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2016 cc
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
22 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Vue.js SSR Template
2 |
3 | > A Dead Simple Vue.js Server Side Render Template
4 |
5 | ## Demo
6 |
7 | [Vue.js SSR Template Demo](http://ssr.ccforward.net/)
8 |
9 | ## Build Setup
10 |
11 | ``` bash
12 | # npm
13 | npm install
14 |
15 | # yarn
16 | yarn
17 |
18 | # develop
19 | npm run dev
20 |
21 | # deploy
22 | npm run deploy
23 |
24 | # build
25 | npm run build
26 | ```
27 |
28 | ## Project Structure
29 |
30 | ```
31 |
32 | project /
33 | build /
34 | dev-server.js
35 | vue-loader.conf.js
36 | webpack.base.conf.js
37 | webpack.client.conf.js
38 | webpack.server.conf.js
39 | dist /
40 | node_modules /
41 | public /
42 | src /
43 | css /
44 | main.css
45 | components /
46 | router /
47 | index.js
48 | store /
49 | index.js
50 | stylus /
51 | main.styl
52 | views /
53 | app.js
54 | App.vue
55 | client-entry.js
56 | index.html
57 | server-entry.js
58 | .gitignore
59 | app.js
60 | package.json
61 | ```
62 |
63 | ## About Vue.js SSR
64 | [vue-server-renderer](https://github.com/vuejs/vue/tree/dev/packages/vue-server-renderer)
65 |
66 |
--------------------------------------------------------------------------------
/dist/index.html:
--------------------------------------------------------------------------------
1 |
Vue.js SSR Template Fork me on GitHub {{ APP }}
--------------------------------------------------------------------------------
/dist/manifest.00114.js:
--------------------------------------------------------------------------------
1 | !function(e){function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}var n=window.webpackJsonp;window.webpackJsonp=function(t,c,i){for(var u,a,f,s=0,l=[];s
2 |
3 |
4 |
5 | Vue.js SSR Template
6 |
7 |
8 |
9 |
10 |
11 | <% if(htmlWebpackPlugin.options.environment === 'production') { %>
12 | <% for(key in htmlWebpackPlugin.files.css){ %>
13 |
14 | <% } %>
15 | <% } %>
16 |
17 |
18 | Fork me on GitHub
19 |
20 |
21 | {{ APP }}
22 |
26 | <% if(htmlWebpackPlugin.options.environment === 'production') { %>
27 | <% for(key in htmlWebpackPlugin.files.js){ %>
28 |
29 | <% } %>
30 | <% } %>
31 |
32 |
33 |
--------------------------------------------------------------------------------
/src/server-entry.js:
--------------------------------------------------------------------------------
1 | import { app, router, store } from './app'
2 |
3 | const isDev = process.env.NODE_ENV !== 'production'
4 |
5 | // This exported function will be called by `bundleRenderer`.
6 | // This is where we perform data-prefetching to determine the
7 | // state of our application before actually rendering it.
8 | // Since data fetching is async, this function is expected to
9 | // return a Promise that resolves to the app instance.
10 | export default context => {
11 |
12 | // set router's location
13 | router.push(context.url)
14 | const matchedComponents = router.getMatchedComponents()
15 |
16 | // no matched routes
17 | if (!matchedComponents.length) {
18 | return Promise.reject({ code: '404' })
19 | }
20 |
21 | // Call preFetch hooks on components matched by the route.
22 | // A preFetch hook dispatches a store action and returns a Promise,
23 | // which is resolved when the action is complete and store state has been
24 | // updated.
25 | return Promise.all(matchedComponents.map(component => {
26 | if (component.preFetch) {
27 | return component.preFetch(store)
28 | }
29 | })).then(res => {
30 | // After all preFetch hooks are resolved, our store is now
31 | // filled with the state needed to render the app.
32 | // Expose the state on the render context, and let the request handler
33 | // inline the state in the HTML response. This allows the client-side
34 | // store to pick-up the server-side state without having to duplicate
35 | // the initial data fetching on the client.
36 | context.initialState = store.state
37 |
38 | const page = res.shift()
39 |
40 | if (page && page.h1) {
41 | app.title = page.h1
42 | }
43 | if (page) {
44 | context.title = page.title
45 | context.description = page.description
46 | context.keywords = page.keywords
47 | }
48 |
49 | return app
50 | })
51 | }
52 |
--------------------------------------------------------------------------------
/dist/styles.b8f9d.css:
--------------------------------------------------------------------------------
1 | .github-fork-ribbon{width:12.1em;height:12.1em;position:absolute;overflow:hidden;top:0;right:0;z-index:9999;pointer-events:none;font-size:13px;text-decoration:none;text-indent:-999999px}.github-fork-ribbon.fixed{position:fixed}.github-fork-ribbon:after,.github-fork-ribbon:before{position:absolute;display:block;width:15.38em;height:1.54em;top:3.23em;right:-3.23em;-webkit-box-sizing:content-box;box-sizing:content-box;-webkit-transform:rotate(45deg);transform:rotate(45deg)}.github-fork-ribbon:before{content:"";padding:.38em 0;background-color:#f06;background-image:-webkit-gradient(linear,left top,left bottom,from(transparent),to(rgba(0,0,0,.15)));background-image:-webkit-linear-gradient(top,transparent,rgba(0,0,0,.15));background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.15));-webkit-box-shadow:0 .15em .23em 0 rgba(0,0,0,.5);box-shadow:0 .15em .23em 0 rgba(0,0,0,.5);pointer-events:auto}.github-fork-ribbon:after{content:attr(title);color:#fff;font:700 1em Helvetica Neue,Helvetica,Arial,sans-serif;line-height:1.54em;text-decoration:none;text-shadow:0 -.08em rgba(0,0,0,.5);text-align:center;text-indent:0;padding:.15em 0;margin:.15em 0;border-width:.08em 0;border-style:dotted;border-color:#fff;border-color:hsla(0,0%,100%,.7)}.github-fork-ribbon.left-top:after,.github-fork-ribbon.left-top:before{right:auto;left:-3.23em;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}.fork-link{margin-top:15px;display:inline-block;font-size:17px;background-color:#42b983;background-image:linear-gradient(180deg,transparent,rgba(0,0,0,.15));-webkit-box-shadow:0 .15em .23em 0 rgba(0,0,0,.5);box-shadow:0 .15em .23em 0 rgba(0,0,0,.5);color:#fff;text-decoration:none;padding:4px 15px;border-radius:5px}a{color:inherit}.list{margin:0 2rem!important}h2,main{text-align:center}.main-content{text-align:center}.main-content img{width:200px}.main-content .main-title{color:#42b983}.main-content .view1-title{color:#f06}.main-content .view2-title{color:#333}.main-content main a{margin:0 10px}
2 | /*# sourceMappingURL=styles.b8f9d.css.map*/
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "vue-ssr",
3 | "version": "1.0.0",
4 | "description": "Vue.js Server Side Render Template with Webpack & Express",
5 | "main": "index.js",
6 | "scripts": {
7 | "dev": "node app",
8 | "deploy": "cross-env NODE_ENV=production node app",
9 | "build": "rimraf dist && npm run build:client && npm run build:server",
10 | "build:client": "cross-env NODE_ENV=production webpack --config build/webpack.client.conf.js --progress --hide-modules",
11 | "build:server": "cross-env NODE_ENV=production webpack --config build/webpack.server.conf.js --progress --hide-modules"
12 | },
13 | "repository": {
14 | "type": "git",
15 | "url": "git+https://github.com/ccforward/vue-ssr.git"
16 | },
17 | "dependencies": {
18 | "compression": "^1.6.2",
19 | "es6-promise": "^4.0.5",
20 | "express": "^4.14.0",
21 | "lru-cache": "^4.0.2",
22 | "serialize-javascript": "^1.3.0",
23 | "serve-favicon": "^2.3.2"
24 | },
25 | "devDependencies": {
26 | "autoprefixer": "^6.6.0",
27 | "buble": "^0.15.1",
28 | "buble-loader": "^0.4.0",
29 | "cross-env": "^3.1.3",
30 | "css-loader": "^0.26.1",
31 | "extract-text-webpack-plugin": "^2.0.0-beta.3",
32 | "file-loader": "^0.9.0",
33 | "html-webpack-plugin": "^2.24.1",
34 | "memory-fs": "^0.4.1",
35 | "node-sass": "^4.1.1",
36 | "rimraf": "^2.5.4",
37 | "sass-loader": "^4.1.1",
38 | "style-loader": "^0.13.1",
39 | "stylus": "^0.54.5",
40 | "stylus-loader": "^2.4.0",
41 | "url-loader": "^0.5.7",
42 | "vue-loader": "^10.0.2",
43 | "vue-template-compiler": "^2.1.7",
44 | "webpack": "^2.1.0-beta.26",
45 | "webpack-dev-middleware": "^1.9.0",
46 | "webpack-hot-middleware": "^2.14.0",
47 | "vue": "^2.1.7",
48 | "vue-router": "^2.1.1",
49 | "vue-server-renderer": "^2.1.7",
50 | "vuex": "^2.1.1",
51 | "vuex-router-sync": "^4.0.2"
52 | },
53 | "keywords": [
54 | "Vue",
55 | "SSR",
56 | "Server Side Render"
57 | ],
58 | "author": "cc ",
59 | "license": "MIT",
60 | "bugs": {
61 | "url": "https://github.com/ccforward/vue-ssr/issues"
62 | },
63 | "homepage": "https://github.com/ccforward/vue-ssr#readme"
64 | }
65 |
--------------------------------------------------------------------------------
/src/css/main.css:
--------------------------------------------------------------------------------
1 | /** CSS Styles */
2 | .github-fork-ribbon {
3 | width: 12.1em;
4 | height: 12.1em;
5 | position: absolute;
6 | overflow: hidden;
7 | top: 0;
8 | right: 0;
9 | z-index: 9999;
10 | pointer-events: none;
11 | font-size: 13px;
12 | text-decoration: none;
13 | text-indent: -999999px;
14 | }
15 |
16 | .github-fork-ribbon.fixed {
17 | position: fixed;
18 | }
19 |
20 | .github-fork-ribbon:before,
21 | .github-fork-ribbon:after {
22 | position: absolute;
23 | display: block;
24 | width: 15.38em;
25 | height: 1.54em;
26 | top: 3.23em;
27 | right: -3.23em;
28 | -webkit-box-sizing: content-box;
29 | box-sizing: content-box;
30 | -webkit-transform: rotate(45deg);
31 | transform: rotate(45deg);
32 | }
33 |
34 | .github-fork-ribbon:before {
35 | content: "";
36 | padding: .38em 0;
37 | background-color: #f06;
38 | background-image: -webkit-gradient(linear, left top, left bottom, from(rgba(0, 0, 0, 0)), to(rgba(0, 0, 0, 0.15)));
39 | background-image: -webkit-linear-gradient(top, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15));
40 | background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15));
41 | /* Add a drop shadow */
42 |
43 | -webkit-box-shadow: 0 .15em .23em 0 rgba(0, 0, 0, 0.5);
44 | box-shadow: 0 .15em .23em 0 rgba(0, 0, 0, 0.5);
45 | pointer-events: auto;
46 | }
47 |
48 | .github-fork-ribbon:after {
49 | /* Set the text from the title attribute */
50 |
51 | content: attr(title);
52 | /* Set the text properties */
53 |
54 | color: #fff;
55 | font: 700 1em "Helvetica Neue", Helvetica, Arial, sans-serif;
56 | line-height: 1.54em;
57 | text-decoration: none;
58 | text-shadow: 0 -.08em rgba(0, 0, 0, 0.5);
59 | text-align: center;
60 | text-indent: 0;
61 | /* Set the layout properties */
62 |
63 | padding: .15em 0;
64 | margin: .15em 0;
65 | /* Add "stitching" effect */
66 |
67 | border-width: .08em 0;
68 | border-style: dotted;
69 | border-color: #fff;
70 | border-color: rgba(255, 255, 255, 0.7);
71 | }
72 |
73 | .github-fork-ribbon.left-top:before,
74 | .github-fork-ribbon.left-top:after {
75 | right: auto;
76 | left: -3.23em;
77 | }
78 |
79 | .github-fork-ribbon.left-top:before,
80 | .github-fork-ribbon.left-top:after {
81 | -webkit-transform: rotate(-45deg);
82 | transform: rotate(-45deg);
83 | }
84 |
85 | .fork-link {
86 | margin-top: 15px;
87 | display: inline-block;
88 | font-size: 17px;
89 | background-color: #42b983;
90 | background-image: linear-gradient(to bottom, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.15));
91 | -webkit-box-shadow: 0 0.15em 0.23em 0 rgba(0, 0, 0, 0.5);
92 | box-shadow: 0 0.15em 0.23em 0 rgba(0, 0, 0, 0.5);
93 | color: #fff;
94 | text-decoration: none;
95 | padding: 4px 15px;
96 | border-radius: 5px;
97 | }
98 |
99 | a {
100 | color: inherit;
101 | }
102 |
103 | .list {
104 | margin: 0 2rem !important;
105 | }
106 |
107 | main {
108 | text-align: center;
109 | }
110 |
111 | h2 {
112 | text-align: center;
113 | }
--------------------------------------------------------------------------------
/app.js:
--------------------------------------------------------------------------------
1 | process.env.VUE_ENV = 'server'
2 | const isProd = process.env.NODE_ENV === 'production'
3 |
4 | const fs = require('fs')
5 | const path = require('path')
6 | const express = require('express')
7 | const compression = require('compression')
8 | const serialize = require('serialize-javascript')
9 | const favicon = require('serve-favicon')
10 | const lru = require('lru-cache')
11 | const vueRenderer = require('vue-server-renderer')
12 | const devServer = require('./build/dev-server')
13 | const resolve = file => path.resolve(__dirname, file)
14 |
15 | const app = express()
16 |
17 | const createRenderer = bundle => {
18 | // https://github.com/isaacs/node-lru-cache#options
19 | return vueRenderer.createBundleRenderer(bundle, {
20 | cache: lru({
21 | max: 1000,
22 | maxAge: 1000 * 60 * 15
23 | })
24 | })
25 | }
26 |
27 | const parseHTML = tmpl => {
28 | const placeholder = '{{ APP }}'
29 | const i = tmpl.indexOf(placeholder)
30 | return {
31 | head: tmpl.slice(0, i),
32 | tail: tmpl.slice(i + placeholder.length)
33 | }
34 | }
35 |
36 | const parseMeta = (head, context) => {
37 | const title = context.title || ''
38 | const description = context.description || ''
39 | const keywords = context.keywords || ''
40 | head = head.replace(/()(.*?)(<\/title>)/, `$1${title}$3`)
41 | head = head.replace(/( )/, `$1${description}$3`)
42 | head = head.replace(/( )/, `$1${keywords}$3`)
43 | return head
44 | }
45 |
46 | const serve = (path, cache) => express.static(resolve(path), {
47 | maxAge: cache && isProd ? 60 * 60 * 24 * 30 : 0
48 | })
49 |
50 | let indexHTML
51 | let renderer
52 |
53 | if(isProd) {
54 | renderer = createRenderer(fs.readFileSync(resolve('./dist/server-bundle.js'), 'utf-8'))
55 | indexHTML = parseHTML(fs.readFileSync(resolve('./dist/index.html'), 'utf-8'))
56 | } else {
57 | devServer(app, {
58 | indexUpdated: index => {
59 | indexHTML = parseHTML(index)
60 | },
61 | bundleUpdated: bundle => {
62 | renderer = createRenderer(bundle)
63 | }
64 | })
65 | }
66 |
67 | app.use(compression({ threshold: 0 }))
68 | app.use(favicon('./public/favicon.ico'))
69 | app.use('/dist', serve('./dist'))
70 | app.use('/public', serve('./public'))
71 |
72 | app.get('*', (req, res) => {
73 | if(!renderer) {
74 | return res.end('the renderer is not ready, just wait a minute')
75 | }
76 |
77 | res.setHeader('Content-Type', 'text-html')
78 |
79 | const context = {url: req.url}
80 | const renderStream = renderer.renderToStream(context)
81 |
82 | renderStream.once('data', () => {
83 | res.write(parseMeta(indexHTML.head, context))
84 | })
85 |
86 | renderStream.on('data', chunk => {
87 | res.write(chunk)
88 | })
89 |
90 | renderStream.on('end', () => {
91 | if(context.initialState){
92 | res.write(
93 | ``
96 | )
97 | }
98 |
99 | res.end(indexHTML.tail)
100 | })
101 |
102 | renderStream.on('error', err => {
103 | if(err && err.code == '404'){
104 | res.status(404).end('404, Page Not Found')
105 | return
106 | }
107 | res.status(500).end('500 Internal Error')
108 | console.log(err)
109 | })
110 | })
111 |
112 |
113 | const PORT = process.env.PORT || 8088
114 | const HOST = process.env.HOST || 'localhost'
115 |
116 |
117 | app.listen(PORT, HOST, () => {
118 | console.log(`server started at ${HOST}:${PORT} `)
119 | })
120 |
121 |
122 |
--------------------------------------------------------------------------------
/dist/server-bundle.js:
--------------------------------------------------------------------------------
1 | module.exports=function(t){function e(r){if(n[r])return n[r].exports;var i=n[r]={i:r,l:!1,exports:{}};return t[r].call(i.exports,i,i.exports,e),i.l=!0,i.exports}var n={};return e.m=t,e.c=n,e.i=function(t){return t},e.d=function(t,n,r){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:r})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist",e(e.s=18)}([function(t,e,n){"use strict";function r(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function i(t){var e=parseFloat(t,10);return e||0===e?e:t}function o(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}function s(t,e){return wn.call(t,e)}function c(t){return"string"==typeof t||"number"==typeof t}function u(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}function l(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function f(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function p(t,e){for(var n in e)t[n]=e[n];return t}function d(t){return null!==t&&"object"==typeof t}function h(t){return An.call(t)===En}function v(t){for(var e={},n=0;n=0&&rr[n].id>t.id;)n--;rr.splice(Math.max(n,sr)+1,0,t)}else rr.push(t);or||(or=!0,qn(z))}}function K(t){fr.clear(),J(t,fr)}function J(t,e){var n,r,i=Array.isArray(t);if((i||d(t))&&Object.isExtensible(t)){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(i)for(n=t.length;n--;)J(t[n],e);else for(r=Object.keys(t),n=r.length;n--;)J(t[r[n]],e)}}function W(t){t._watchers=[];var e=t.$options;e.props&&X(t,e.props),e.methods&&tt(t,e.methods),e.data?Y(t):E(t._data={},!0),e.computed&&Z(t,e.computed),e.watch&&et(t,e.watch)}function X(t,e){var n=t.$options.propsData||{},r=t.$options._propKeys=Object.keys(e),i=!t.$parent;Zn.shouldConvert=i;for(var o=function(i){var o=r[i];j(t,o,V(o,e,n,t))},a=0;a1?f(n):n;for(var r=f(arguments,1),i=0,o=n.length;i-1:t.test(e)}function Yt(t){var e={};e.get=function(){return Tn},Object.defineProperty(t,"config",e),t.util=nr,t.set=S,t.delete=T,t.nextTick=qn,t.options=Object.create(null),Tn._assetTypes.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,p(t.options.components,kr),Gt(t),Kt(t),Jt(t),Wt(t)}function Zt(t){for(var e=t.data,n=t,r=t;r.child;)r=r.child._vnode,r.data&&(e=Qt(r.data,e));for(;n=n.parent;)n.data&&(e=Qt(e,n.data));return te(e)}function Qt(t,e){return{staticClass:ee(t.staticClass,e.staticClass),class:t.class?[t.class,e.class]:e.class}}function te(t){var e=t.class,n=t.staticClass;return n||e?ee(n,ne(e)):""}function ee(t,e){return t?e?t+" "+e:t:e||""}function ne(t){var e="";if(!t)return e;if("string"==typeof t)return t;if(Array.isArray(t)){for(var n,r=0,i=t.length;r-1?Ur[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Ur[t]=/HTMLUnknownElement/.test(e.toString())}function oe(t){if("string"==typeof t){if(t=document.querySelector(t),!t)return document.createElement("div")}return t}function ae(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&"multiple"in e.data.attrs&&n.setAttribute("multiple","multiple"),n)}function se(t,e){return document.createElementNS(Rr[t],e)}function ce(t){return document.createTextNode(t)}function ue(t){return document.createComment(t)}function le(t,e,n){t.insertBefore(e,n)}function fe(t,e){t.removeChild(e)}function pe(t,e){t.appendChild(e)}function de(t){return t.parentNode}function he(t){return t.nextSibling}function ve(t){return t.tagName}function me(t,e){t.textContent=e}function ye(t,e,n){t.setAttribute(e,n)}function ge(t,e){var n=t.data.ref;if(n){var r=t.context,i=t.child||t.elm,o=r.$refs;e?Array.isArray(o[n])?a(o[n],i):o[n]===i&&(o[n]=void 0):t.data.refInFor?Array.isArray(o[n])&&o[n].indexOf(i)<0?o[n].push(i):o[n]=[i]:o[n]=i}}function _e(t){return null==t}function be(t){return null!=t}function we(t,e){return t.key===e.key&&t.tag===e.tag&&t.isComment===e.isComment&&!t.data==!e.data}function xe(t,e,n){var r,i,o={};for(r=e;r<=n;++r)i=t[r].key,be(i)&&(o[i]=r);return o}function ke(t){function e(t){return new dr(A.tagName(t).toLowerCase(),{},[],void 0,t)}function n(t,e){function n(){0===--n.listeners&&r(t)}return n.listeners=e,n}function r(t){var e=A.parentNode(t);e&&A.removeChild(e,t)}function i(t,e,n,r,i){if(t.isRootInsert=!i,!a(t,e,n,r)){var o=t.data,s=t.children,c=t.tag;be(c)?(t.elm=t.ns?A.createElementNS(t.ns,c):A.createElement(c,t),h(t),l(t,s,e),be(o)&&p(t,e),u(n,t.elm,r)):t.isComment?(t.elm=A.createComment(t.text),u(n,t.elm,r)):(t.elm=A.createTextNode(t.text),u(n,t.elm,r))}}function a(t,e,n,r){var i=t.data;if(be(i)){var o=be(t.child)&&i.keepAlive;if(be(i=i.hook)&&be(i=i.init)&&i(t,!1,n,r),be(t.child))return d(t,e),o&&s(t,e,n,r),!0}}function s(t,e,n,r){for(var i,o=t;o.child;)if(o=o.child._vnode,be(i=o.data)&&be(i=i.transition)){for(i=0;ip?(u=_e(n[m+1])?null:n[m+1].elm,v(t,u,n,f,m,r)):f>m&&y(t,e,l,p)}function b(t,e,n,r){if(t!==e){if(e.isStatic&&t.isStatic&&e.key===t.key&&(e.isCloned||e.isOnce))return e.elm=t.elm,void(e.child=t.child);var i,o=e.data,a=be(o);a&&be(i=o.hook)&&be(i=i.prepatch)&&i(t,e);var s=e.elm=t.elm,c=t.children,u=e.children;if(a&&f(e)){for(i=0;i-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+t.getAttribute("class")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Be(t,e){if(e&&e.trim())if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e);else{for(var n=" "+t.getAttribute("class")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");t.setAttribute("class",n.trim())}}function ze(t){li(function(){li(t)})}function Ge(t,e){(t._transitionClasses||(t._transitionClasses=[])).push(e),qe(t,e)}function Ke(t,e){t._transitionClasses&&a(t._transitionClasses,e),Be(t,e)}function Je(t,e,n){var r=We(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===ii?si:ui,c=0,u=function(){t.removeEventListener(s,l),n()},l=function(e){e.target===t&&++c>=a&&u()};setTimeout(function(){c0&&(n=ii,l=a,f=o.length):e===oi?u>0&&(n=oi,l=u,f=c.length):(l=Math.max(a,u),n=l>0?a>u?ii:oi:null,f=n?n===ii?o.length:c.length:0);var p=n===ii&&fi.test(r[ai+"Property"]);return{type:n,timeout:l,propCount:f,hasTransform:p}}function Xe(t,e){for(;t.length1,j=n._enterCb=en(function(){A&&Ke(n,x),j.cancelled?(A&&Ke(n,w),$&&$(n)):O&&O(n),n._enterCb=null});t.data.show||ct(t.data.hook||(t.data.hook={}),"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.context===t.context&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),C&&C(n,j)},"transition-insert"),k&&k(n),A&&(Ge(n,w),ze(function(){Ke(n,w),Ge(n,x),j.cancelled||E||Je(n,o,j)})),t.data.show&&(e&&e(),C&&C(n,j)),A||E||j()}}}function Qe(t,e){function n(){m.cancelled||(t.data.show||((r.parentNode._pending||(r.parentNode._pending={}))[t.key]=t),u&&u(r),h&&(Ge(r,s),ze(function(){Ke(r,s),Ge(r,c),m.cancelled||v||Je(r,a,m)})),l&&l(r,m),h||v||m())}var r=t.elm;r._enterCb&&(r._enterCb.cancelled=!0,r._enterCb());var i=tn(t.data.transition);if(!i)return e();if(!r._leaveCb&&1===r.nodeType){var o=i.css,a=i.type,s=i.leaveClass,c=i.leaveActiveClass,u=i.beforeLeave,l=i.leave,f=i.afterLeave,p=i.leaveCancelled,d=i.delayLeave,h=o!==!1&&!Nn,v=l&&(l._length||l.length)>1,m=r._leaveCb=en(function(){r.parentNode&&r.parentNode._pending&&(r.parentNode._pending[t.key]=null),h&&Ke(r,c),m.cancelled?(h&&Ke(r,s),p&&p(r)):(e(),f&&f(r)),r._leaveCb=null});d?d(n):n()}}function tn(t){if(t){if("object"==typeof t){var e={};return t.css!==!1&&p(e,pi(t.name||"v")),p(e,t),e}return"string"==typeof t?pi(t):void 0}}function en(t){var e=!1;return function(){e||(e=!0,t())}}function nn(t,e){e.data.show||Ze(e)}function rn(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,c=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(g(an(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function on(t,e){for(var n=0,r=e.length;n0,Un=Dn&&Dn.indexOf("edge/")>0,Fn=Dn&&Dn.indexOf("android")>0,Vn=Dn&&/iphone|ipad|ipod|ios/.test(Dn),In=function(){return void 0===gn&&(gn=!Rn&&"undefined"!=typeof global&&"server"===global.process.env.VUE_ENV),gn},Hn=Rn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,qn=function(){function t(){r=!1;var t=n.slice(0);n.length=0;for(var e=0;e1&&(e[n[0].trim()]=n[1].trim())}}),e}),Yr=/^--/,Zr=/\s*!important$/,Qr=function(t,e,n){Yr.test(e)?t.style.setProperty(e,n):Zr.test(n)?t.style.setProperty(e,n.replace(Zr,""),"important"):t.style[ei(e)]=n},ti=["Webkit","Moz","ms"],ei=u(function(t){if(Or=Or||document.createElement("div"),t=kn(t),"filter"!==t&&t in Or.style)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n0?_t(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]}),e):e}function a(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return gt(e);if(Array.isArray(n)){var r=[];return n.slice().forEach(function(t){void 0!==t&&(null===t?r.push(gt(e)):r.push(gt(e)+"="+gt(t)))}),r.join("&")}return gt(e)+"="+gt(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}function s(t,e,n){var r={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:e.query||{},params:e.params||{},fullPath:u(e),matched:t?c(t):[]};return n&&(r.redirectedFrom=u(n)),Object.freeze(r)}function c(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function u(t){var e=t.path,n=t.query;void 0===n&&(n={});var r=t.hash;return void 0===r&&(r=""),(e||"/")+a(n)+r}function l(t,e){return e===bt?t===e:!!e&&(t.path&&e.path?t.path.replace(wt,"")===e.path.replace(wt,"")&&t.hash===e.hash&&f(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&f(t.query,e.query)&&f(t.params,e.params)))}function f(t,e){void 0===t&&(t={}),void 0===e&&(e={});var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){return String(t[n])===String(e[n])})}function p(t,e){return 0===t.path.indexOf(e.path.replace(/\/$/,""))&&(!e.hash||t.hash===e.hash)&&d(t.query,e.query)}function d(t,e){for(var n in e)if(!(n in t))return!1;return!0}function h(t){if(!(t.metaKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||0!==t.button)){var e=t.target.getAttribute("target");if(!/\b_blank\b/i.test(e))return t.preventDefault(),!0}}function v(t){if(t)for(var e,n=0;n=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}function _(t){return t.replace(/\/\//g,"/")}function b(t){var e=Object.create(null),n=Object.create(null);return t.forEach(function(t){w(e,n,t)}),{pathMap:e,nameMap:n}}function w(t,e,n,r,i){var o=n.path,a=n.name,s={path:x(o,r),components:n.components||{default:n.component},instances:{},name:a,parent:r,matchAs:i,redirect:n.redirect,beforeEnter:n.beforeEnter,meta:n.meta||{}};n.children&&n.children.forEach(function(n){w(t,e,n,s)}),void 0!==n.alias&&(Array.isArray(n.alias)?n.alias.forEach(function(n){w(t,e,{path:n},r,s.path)}):w(t,e,{path:n.alias},r,s.path)),t[s.path]||(t[s.path]=s),a&&(e[a]||(e[a]=s))}function x(t,e){return t=t.replace(/\/$/,""),"/"===t[0]?t:null==e?t:_(e.path+"/"+t)}function k(t,e){for(var n,r=[],i=0,o=0,a="",s=e&&e.delimiter||"/";null!=(n=Tt.exec(t));){var c=n[0],u=n[1],l=n.index;if(a+=t.slice(o,l),o=l+c.length,u)a+=u[1];else{var f=t[o],p=n[2],d=n[3],h=n[4],v=n[5],m=n[6],y=n[7];a&&(r.push(a),a="");var g=null!=p&&null!=f&&f!==p,_="+"===m||"*"===m,b="?"===m||"*"===m,w=n[2]||s,x=h||v;r.push({name:d||i++,prefix:p||"",delimiter:w,optional:b,repeat:_,partial:g,asterisk:!!y,pattern:x?j(x):y?".*":"[^"+E(w)+"]+?"})}}return o-1&&(r.params[l]=e.params[l]);if(a)return r.path=U(a.path,r.params,'named route "'+i+'"'),o(a,r,n)}else if(r.path){r.params={};for(var f in c)if(H(f,r.params,r.path))return o(c[f],r,n)}return o(null,r)}function n(t,n){var i=t.redirect,a="function"==typeof i?i(s(t,n)):i;if("string"==typeof a&&(a={path:a}),!a||"object"!=typeof a)return o(null,n);var c=a,l=c.name,f=c.path,p=n.query,d=n.hash,h=n.params;if(p=c.hasOwnProperty("query")?c.query:p,d=c.hasOwnProperty("hash")?c.hash:d,h=c.hasOwnProperty("params")?c.params:h,l){u[l];return e({_normalized:!0,name:l,query:p,hash:d,params:h},void 0,n)}if(f){var v=q(f,t),m=U(v,h,'redirect route with path "'+v+'"');return e({_normalized:!0,path:m,query:p,hash:d},void 0,n)}return r(!1,"invalid redirect option: "+JSON.stringify(a)),o(null,n)}function i(t,n,r){var i=U(r,n.params,'aliased route with path "'+r+'"'),a=e({_normalized:!0,path:i});if(a){var s=a.matched,c=s[s.length-1];
3 | return n.params=a.params,o(c,n)}return o(null,n)}function o(t,e,r){return t&&t.redirect?n(t,r||e):t&&t.matchAs?i(t,e,t.matchAs):s(t,e,r)}var a=b(t),c=a.pathMap,u=a.nameMap;return e}function H(t,e,n){var r=N(t),i=r.regexp,o=r.keys,a=n.match(i);if(!a)return!1;if(!e)return!0;for(var s=1,c=a.length;s=t.length?n():t[i]?e(t[i],function(){r(i+1)}):r(i+1)};r(0)}function z(t){if(!t)if(Rt){var e=document.querySelector("base");t=e?e.getAttribute("href"):"/"}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function G(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n=0?e:0)+"#"+t)}function vt(t,e,n){var r="hash"===n?"#"+e:e;return t?_(t+"/"+r):r}var mt,yt={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,i=e.parent,o=e.data;o.routerView=!0;for(var a=i.$route,s=i._routerViewCache||(i._routerViewCache={}),c=0,u=!1;i;)i.$vnode&&i.$vnode.data.routerView&&c++,i._inactive&&(u=!0),i=i.$parent;o.routerViewDepth=c;var l=a.matched[c];if(!l)return t();var f=n.name,p=u?s[f]:s[f]=l.components[f];if(!u){var d=o.hook||(o.hook={});d.init=function(t){l.instances[f]=t.child},d.prepatch=function(t,e){l.instances[f]=e.child},d.destroy=function(t){l.instances[f]===t.child&&(l.instances[f]=void 0)}}return t(p,o,r)}},gt=encodeURIComponent,_t=decodeURIComponent,bt=s(null,{path:"/"}),wt=/\/$/,xt=[String,Object],kt={name:"router-link",props:{to:{type:xt,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,i=n.resolve(this.to,r,this.append),o=i.normalizedTo,a=i.resolved,c=i.href,u={},f=this.activeClass||n.options.linkActiveClass||"router-link-active",d=o.path?s(null,o):a;u[f]=this.exact?l(r,d):p(r,d);var m=function(t){h(t)&&(e.replace?n.replace(o):n.push(o))},y={click:h};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var g={class:u};if("a"===this.tag)g.on=y,g.attrs={href:c};else{var _=v(this.$slots.default);if(_){_.isStatic=!1;var b=mt.util.extend,w=_.data=b({},_.data);w.on=y;var x=_.data.attrs=b({},_.data.attrs);x.href=c}else g.on=y}return t(this.tag,g,this.$slots.default)}},Ct=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},Ot=Ct,$t=L,At=k,Et=C,jt=A,St=D,Tt=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");$t.parse=At,$t.compile=Et,$t.tokensToFunction=jt,$t.tokensToRegExp=St;var Pt=Object.create(null),Mt=Object.create(null),Rt="undefined"!=typeof window,Dt=Rt&&function(){var t=window.navigator.userAgent;return(t.indexOf("Android 2.")===-1&&t.indexOf("Android 4.0")===-1||t.indexOf("Mobile Safari")===-1||t.indexOf("Chrome")!==-1||t.indexOf("Windows Phone")!==-1)&&(window.history&&"pushState"in window.history)}(),Lt=function(t,e){this.router=t,this.base=z(e),this.current=bt,this.pending=null};Lt.prototype.listen=function(t){this.cb=t},Lt.prototype.transitionTo=function(t,e,n){var r=this,i=this.router.match(t,this.current);this.confirmTransition(i,function(){r.updateRoute(i),e&&e(i),r.ensureURL()},n)},Lt.prototype.confirmTransition=function(t,e,n){var r=this,i=this.current,o=function(){n&&n()};if(l(t,i))return this.ensureURL(),o();var a=G(this.current.matched,t.matched),s=a.deactivated,c=a.activated,u=[].concat(J(s),this.router.beforeHooks,c.map(function(t){return t.beforeEnter}),Q(c));this.pending=t;var f=function(e,n){return r.pending!==t?o():void e(t,i,function(t){t===!1?(r.ensureURL(!0),o()):"string"==typeof t||"object"==typeof t?("object"==typeof t&&t.replace?r.replace(t):r.push(t),o()):n(t)})};B(u,f,function(){var n=[],i=X(c,n,function(){return r.current===t});B(i,f,function(){return r.pending!==t?o():(r.pending=null,e(t),void(r.router.app&&r.router.app.$nextTick(function(){n.forEach(function(t){return t()})})))})})},Lt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var Nt=Object.create(null),Ut=function(){return String(Date.now())},Ft=Ut(),Vt=function(t){function e(e,n){var r=this;t.call(this,e,n);var i=e.options.scrollBehavior;window.addEventListener("popstate",function(t){Ft=t.state&&t.state.key;var e=r.current;r.transitionTo(ct(r.base),function(t){i&&r.handleScroll(t,e,!0)})}),i&&window.addEventListener("scroll",function(){nt(Ft)})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t){var e=this,n=this.current;this.transitionTo(t,function(t){ut(_(e.base+t.fullPath)),e.handleScroll(t,n,!1)})},e.prototype.replace=function(t){var e=this,n=this.current;this.transitionTo(t,function(t){lt(_(e.base+t.fullPath)),e.handleScroll(t,n,!1)})},e.prototype.ensureURL=function(t){if(ct(this.base)!==this.current.fullPath){var e=_(this.base+this.current.fullPath);t?ut(e):lt(e)}},e.prototype.handleScroll=function(t,e,n){var r=this.router;if(r.app){var i=r.options.scrollBehavior;i&&r.app.$nextTick(function(){var r=rt(Ft),o=i(t,e,n?r:null);if(o){var a="object"==typeof o;if(a&&"string"==typeof o.selector){var s=document.querySelector(o.selector);s?r=it(s):ot(o)&&(r=at(o))}else a&&ot(o)&&(r=at(o));r&&window.scrollTo(r.x,r.y)}})}},e}(Lt),It=function(t){function e(e,n,r){t.call(this,e,n),r&&this.checkFallback()||ft()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.checkFallback=function(){var t=ct(this.base);if(!/^\/#/.test(t))return window.location.replace(_(this.base+"/#"+t)),!0},e.prototype.onHashChange=function(){ft()&&this.transitionTo(pt(),function(t){ht(t.fullPath)})},e.prototype.push=function(t){this.transitionTo(t,function(t){dt(t.fullPath)})},e.prototype.replace=function(t){this.transitionTo(t,function(t){ht(t.fullPath)})},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;pt()!==e&&(t?dt(e):ht(e))},e}(Lt),Ht=function(t){function e(e){t.call(this,e),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t){var e=this;this.transitionTo(t,function(t){e.stack=e.stack.slice(0,e.index+1).concat(t),e.index++})},e.prototype.replace=function(t){var e=this;this.transitionTo(t,function(t){e.stack=e.stack.slice(0,e.index).concat(t)})},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.ensureURL=function(){},e}(Lt),qt=function(t){void 0===t&&(t={}),this.app=null,this.options=t,this.beforeHooks=[],this.afterHooks=[],this.match=I(t.routes||[]);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Dt,this.fallback&&(e="hash"),Rt||(e="abstract"),this.mode=e,e){case"history":this.history=new Vt(this,t.base);break;case"hash":this.history=new It(this,t.base,this.fallback);break;case"abstract":this.history=new Ht(this)}},Bt={currentRoute:{}};Bt.currentRoute.get=function(){return this.history&&this.history.current},qt.prototype.init=function(t){var e=this;this.app=t;var n=this.history;if(n instanceof Vt)n.transitionTo(ct(n.base));else if(n instanceof It){var r=function(){window.addEventListener("hashchange",function(){n.onHashChange()})};n.transitionTo(pt(),r,r)}n.listen(function(t){e.app._route=t})},qt.prototype.beforeEach=function(t){this.beforeHooks.push(t)},qt.prototype.afterEach=function(t){this.afterHooks.push(t)},qt.prototype.push=function(t){this.history.push(t)},qt.prototype.replace=function(t){this.history.replace(t)},qt.prototype.go=function(t){this.history.go(t)},qt.prototype.back=function(){this.go(-1)},qt.prototype.forward=function(){this.go(1)},qt.prototype.getMatchedComponents=function(t){var e=t?this.resolve(t).resolved:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},qt.prototype.resolve=function(t,e,n){var r=F(t,e||this.history.current,n),i=this.match(r,e),o=i.redirectedFrom||i.fullPath,a=this.history.base,s=vt(a,o,this.mode);return{normalizedTo:r,resolved:i,href:s}},Object.defineProperties(qt.prototype,Bt),qt.install=m,Rt&&window.Vue&&window.Vue.use(qt),t.exports=qt},function(t,e){function n(t,e){var r={name:t.name,path:t.path,hash:t.hash,query:t.query,params:t.params,fullPath:t.fullPath,meta:t.meta};return e&&(r.from=n(e)),Object.freeze(r)}e.sync=function(t,e,r){var i=(r||{}).moduleName||"route";t.registerModule(i,{state:{},mutations:{"router/ROUTE_CHANGED":function(e,r){t.state[i]=n(r.to,r.from)}}});var o,a=!1;t.watch(function(t){return t[i]},function(t){t.fullPath!==o&&(a=!0,o=t.fullPath,e.push(t))},{sync:!0}),e.afterEach(function(e,n){return a?void(a=!1):(o=e.fullPath,void t.commit("router/ROUTE_CHANGED",{to:e,from:n}))})}},function(t,e,n){/**
4 | * vuex v2.1.1
5 | * (c) 2016 Evan You
6 | * @license MIT
7 | */
8 | !function(e,n){t.exports=n()}(this,function(){"use strict";function t(t){x&&(t._devtoolHook=x,x.emit("vuex:init",t),x.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){x.emit("vuex:mutation",t,e)}))}function e(t){function e(){var t=this.$options;t.store?this.$store=t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}var n=Number(t.version.split(".")[0]);if(n>=2){var r=t.config._lifecycleHooks.indexOf("init")>-1;t.mixin(r?{init:e}:{beforeCreate:e})}else{var i=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[e].concat(t.init):e,i.call(this,t)}}}function n(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function r(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function i(t,e){console.error("[vuex] module namespace not found in "+t+"(): "+e)}function o(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function a(t){return null!==t&&"object"==typeof t}function s(t){return t&&"function"==typeof t.then}function c(t,e){if(!t)throw new Error("[vuex] "+e)}function u(t,e){if(t.update(e),e.modules)for(var n in e.modules){if(!t.getChild(n))return void console.warn("[vuex] trying to add a new module '"+n+"' on hot reloading, manual reload is needed");u(t.getChild(n),e.modules[n])}}function l(t){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var e=t.state;p(t,e,[],t._modules.root,!0),f(t,e)}function f(t,e){var n=t._vm;t.getters={};var r=t._wrappedGetters,i={};o(r,function(e,n){i[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=S.config.silent;S.config.silent=!0,t._vm=new S({data:{state:e},computed:i}),S.config.silent=a,t.strict&&g(t),n&&(t._withCommit(function(){n.state=null}),S.nextTick(function(){return n.$destroy()}))}function p(t,e,n,r,i){var o=!n.length,a=t._modules.getNamespace(n);if(a&&(t._modulesNamespaceMap[a]=r),!o&&!i){var s=_(e,n.slice(0,-1)),c=n[n.length-1];t._withCommit(function(){S.set(s,c,r.state)})}var u=r.context=d(t,a);r.forEachMutation(function(e,r){var i=a+r;v(t,i,e,n)}),r.forEachAction(function(e,r){var i=a+r;m(t,i,e,u,n)}),r.forEachGetter(function(e,r){var i=a+r;y(t,i,e,u,n)}),r.forEachChild(function(r,o){p(t,e,n.concat(o),r,i)})}function d(t,e){var n=""===e,r={dispatch:n?t.dispatch:function(n,r,i){var o=b(n,r,i),a=o.payload,s=o.options,c=o.type;return s&&s.root||(c=e+c,t._actions[c])?t.dispatch(c,a):void console.error("[vuex] unknown local action type: "+o.type+", global type: "+c)},commit:n?t.commit:function(n,r,i){var o=b(n,r,i),a=o.payload,s=o.options,c=o.type;return s&&s.root||(c=e+c,t._mutations[c])?void t.commit(c,a,s):void console.error("[vuex] unknown local mutation type: "+o.type+", global type: "+c)}};return Object.defineProperty(r,"getters",{get:n?function(){return t.getters}:function(){return h(t,e)}}),r}function h(t,e){var n={},r=e.length;return Object.keys(t.getters).forEach(function(i){if(i.slice(0,r)===e){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return t.getters[i]},enumerable:!0})}}),n}function v(t,e,n,r){var i=t._mutations[e]||(t._mutations[e]=[]);i.push(function(e){n(_(t.state,r),e)})}function m(t,e,n,r,i){var o=t._actions[e]||(t._actions[e]=[]);o.push(function(e,o){var a=n({dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:_(t.state,i),rootGetters:t.getters,rootState:t.state},e,o);return s(a)||(a=Promise.resolve(a)),t._devtoolHook?a.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):a})}function y(t,e,n,r,i){return t._wrappedGetters[e]?void console.error("[vuex] duplicate getter key: "+e):void(t._wrappedGetters[e]=function(t){return n(_(t.state,i),r.getters,t.state,t.getters)})}function g(t){t._vm.$watch("state",function(){c(t._committing,"Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}function _(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function b(t,e,n){return a(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function w(t){return S?void console.error("[vuex] already installed. Vue.use(Vuex) should be called only once."):(S=t,void e(S))}var x="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,k=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,o=e.val;r[n]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=this.$store._modulesNamespaceMap[t];if(!r)return void i("mapState",t);e=r.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]}}),r}),C=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,i=e.val;i=t+i,r[n]=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return this.$store.commit.apply(this.$store,[i].concat(t))}}),r}),O=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,i=e.val;i=t+i,r[n]=function(){return i in this.$store.getters||console.error("[vuex] unknown getter: "+i),this.$store.getters[i]}}),r}),$=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,i=e.val;i=t+i,r[n]=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return this.$store.dispatch.apply(this.$store,[i].concat(t))}}),r}),A=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t},E={state:{},namespaced:{}};E.state.get=function(){return this._rawModule.state||{}},E.namespaced.get=function(){return!!this._rawModule.namespaced},A.prototype.addChild=function(t,e){this._children[t]=e},A.prototype.removeChild=function(t){delete this._children[t]},A.prototype.getChild=function(t){return this._children[t]},A.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},A.prototype.forEachChild=function(t){o(this._children,t)},A.prototype.forEachGetter=function(t){this._rawModule.getters&&o(this._rawModule.getters,t)},A.prototype.forEachAction=function(t){this._rawModule.actions&&o(this._rawModule.actions,t)},A.prototype.forEachMutation=function(t){this._rawModule.mutations&&o(this._rawModule.mutations,t)},Object.defineProperties(A.prototype,E);var j=function(t){var e=this;this.root=new A(t,!1),t.modules&&o(t.modules,function(t,n){e.register([n],t,!1)})};j.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},j.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")},"")},j.prototype.update=function(t){u(this.root,t)},j.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var i=this.get(t.slice(0,-1)),a=new A(e,n);i.addChild(t[t.length-1],a),e.modules&&o(e.modules,function(e,i){r.register(t.concat(i),e,n)})},j.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var S,T=function(e){var n=this;void 0===e&&(e={}),c(S,"must call Vue.use(Vuex) before creating a store instance."),c("undefined"!=typeof Promise,"vuex requires a Promise polyfill in this browser.");var r=e.state;void 0===r&&(r={});var i=e.plugins;void 0===i&&(i=[]);var o=e.strict;void 0===o&&(o=!1),this._committing=!1,this._actions=Object.create(null),this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new j(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new S;var a=this,s=this,u=s.dispatch,l=s.commit;this.dispatch=function(t,e){return u.call(a,t,e)},this.commit=function(t,e,n){return l.call(a,t,e,n)},this.strict=o,p(this,r,[],this._modules.root),f(this,r),i.concat(t).forEach(function(t){return t(n)})},P={state:{}};P.state.get=function(){return this._vm.$data.state},P.state.set=function(t){c(!1,"Use store.replaceState() to explicit replace store state.")},T.prototype.commit=function(t,e,n){var r=this,i=b(t,e,n),o=i.type,a=i.payload,s=i.options,c={type:o,payload:a},u=this._mutations[o];return u?(this._withCommit(function(){u.forEach(function(t){t(a)})}),this._subscribers.forEach(function(t){return t(c,r.state)}),void(s&&s.silent&&console.warn("[vuex] mutation type: "+o+". Silent option has been removed. Use the filter functionality in the vue-devtools"))):void console.error("[vuex] unknown mutation type: "+o)},T.prototype.dispatch=function(t,e){var n=b(t,e),r=n.type,i=n.payload,o=this._actions[r];return o?o.length>1?Promise.all(o.map(function(t){return t(i)})):o[0](i):void console.error("[vuex] unknown action type: "+r)},T.prototype.subscribe=function(t){var e=this._subscribers;return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}},T.prototype.watch=function(t,e,n){var r=this;return c("function"==typeof t,"store.watch only accepts a function."),this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},T.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm.state=t})},T.prototype.registerModule=function(t,e){"string"==typeof t&&(t=[t]),c(Array.isArray(t),"module path must be a string or an Array."),this._modules.register(t,e),p(this,this.state,t,this._modules.get(t)),f(this,this.state)},T.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),c(Array.isArray(t),"module path must be a string or an Array."),this._modules.unregister(t),this._withCommit(function(){var n=_(e.state,t.slice(0,-1));S.delete(n,t[t.length-1])}),l(this)},T.prototype.hotUpdate=function(t){this._modules.update(t),l(this)},T.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(T.prototype,P),"undefined"!=typeof window&&window.Vue&&w(window.Vue);var M={Store:T,install:w,version:"2.1.1",mapState:k,mapMutations:C,mapGetters:O,mapActions:$};return M})},function(t,e,n){"use strict";var r=n(1);Object.defineProperty(e,"__esModule",{value:!0});e.default=function(t){r.a.push(t.url);var e=r.a.getMatchedComponents();return e.length?Promise.all(e.map(function(t){if(t.preFetch)return t.preFetch(r.b)})).then(function(e){t.initialState=r.b.state;var n=e.shift();return n&&n.h1&&(r.c.title=n.h1),n&&(t.title=n.title,t.description=n.description,t.keywords=n.keywords),r.c}):Promise.reject({code:"404"})}}]);
--------------------------------------------------------------------------------
/dist/app.cf660.js:
--------------------------------------------------------------------------------
1 | webpackJsonp([0,1],[function(t,e,n){"use strict";(function(e){function n(t){return null==t?"":"object"==typeof t?JSON.stringify(t,null,2):String(t)}function r(t){var e=parseFloat(t,10);return e||0===e?e:t}function i(t,e){for(var n=Object.create(null),r=t.split(","),i=0;i-1)return t.splice(n,1)}}function a(t,e){return bn.call(t,e)}function s(t){return"string"==typeof t||"number"==typeof t}function u(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}function c(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function f(t,e){e=e||0;for(var n=t.length-e,r=new Array(n);n--;)r[n]=t[n+e];return r}function l(t,e){for(var n in e)t[n]=e[n];return t}function p(t){return null!==t&&"object"==typeof t}function d(t){return On.call(t)===$n}function h(t){for(var e={},n=0;n=0&&nr[n].id>t.id;)n--;nr.splice(Math.max(n,ar)+1,0,t)}else nr.push(t);ir||(ir=!0,qn(B))}}function G(t){fr.clear(),K(t,fr)}function K(t,e){var n,r,i=Array.isArray(t);if((i||p(t))&&Object.isExtensible(t)){if(t.__ob__){var o=t.__ob__.dep.id;if(e.has(o))return;e.add(o)}if(i)for(n=t.length;n--;)K(t[n],e);else for(r=Object.keys(t),n=r.length;n--;)K(t[r[n]],e)}}function J(t){t._watchers=[];var e=t.$options;e.props&&W(t,e.props),e.methods&&Q(t,e.methods),e.data?Y(t):$(t._data={},!0),e.computed&&X(t,e.computed),e.watch&&tt(t,e.watch)}function W(t,e){var n=t.$options.propsData||{},r=t.$options._propKeys=Object.keys(e),i=!t.$parent;Xn.shouldConvert=i;for(var o=function(i){var o=r[i];E(t,o,F(o,e,n,t))},a=0;a1?f(n):n;for(var r=f(arguments,1),i=0,o=n.length;i-1:t.test(e)}function Yt(t){var e={};e.get=function(){return Sn},Object.defineProperty(t,"config",e),t.util=er,t.set=j,t.delete=S,t.nextTick=qn,t.options=Object.create(null),Sn._assetTypes.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,l(t.options.components,xr),zt(t),Gt(t),Kt(t),Jt(t)}function Xt(t){for(var e=t.data,n=t,r=t;r.child;)r=r.child._vnode,r.data&&(e=Zt(r.data,e));for(;n=n.parent;)n.data&&(e=Zt(e,n.data));return Qt(e)}function Zt(t,e){return{staticClass:te(t.staticClass,e.staticClass),class:t.class?[t.class,e.class]:e.class}}function Qt(t){var e=t.class,n=t.staticClass;return n||e?te(n,ee(e)):""}function te(t,e){return t?e?t+" "+e:t:e||""}function ee(t){var e="";if(!t)return e;if("string"==typeof t)return t;if(Array.isArray(t)){for(var n,r=0,i=t.length;r-1?Nr[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:Nr[t]=/HTMLUnknownElement/.test(e.toString())}function ie(t){if("string"==typeof t){if(t=document.querySelector(t),!t)return document.createElement("div")}return t}function oe(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&"multiple"in e.data.attrs&&n.setAttribute("multiple","multiple"),n)}function ae(t,e){return document.createElementNS(Mr[t],e)}function se(t){return document.createTextNode(t)}function ue(t){return document.createComment(t)}function ce(t,e,n){t.insertBefore(e,n)}function fe(t,e){t.removeChild(e)}function le(t,e){t.appendChild(e)}function pe(t){return t.parentNode}function de(t){return t.nextSibling}function he(t){return t.tagName}function ve(t,e){t.textContent=e}function me(t,e,n){t.setAttribute(e,n)}function ye(t,e){var n=t.data.ref;if(n){var r=t.context,i=t.child||t.elm,a=r.$refs;e?Array.isArray(a[n])?o(a[n],i):a[n]===i&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])&&a[n].indexOf(i)<0?a[n].push(i):a[n]=[i]:a[n]=i}}function _e(t){return null==t}function ge(t){return null!=t}function be(t,e){return t.key===e.key&&t.tag===e.tag&&t.isComment===e.isComment&&!t.data==!e.data}function we(t,e,n){var r,i,o={};for(r=e;r<=n;++r)i=t[r].key,ge(i)&&(o[i]=r);return o}function xe(t){function e(t){return new pr($.tagName(t).toLowerCase(),{},[],void 0,t)}function n(t,e){function n(){0===--n.listeners&&r(t)}return n.listeners=e,n}function r(t){var e=$.parentNode(t);e&&$.removeChild(e,t)}function o(t,e,n,r,i){if(t.isRootInsert=!i,!a(t,e,n,r)){var o=t.data,s=t.children,u=t.tag;ge(u)?(t.elm=t.ns?$.createElementNS(t.ns,u):$.createElement(u,t),h(t),f(t,s,e),ge(o)&&p(t,e),c(n,t.elm,r)):t.isComment?(t.elm=$.createComment(t.text),c(n,t.elm,r)):(t.elm=$.createTextNode(t.text),c(n,t.elm,r))}}function a(t,e,n,r){var i=t.data;if(ge(i)){var o=ge(t.child)&&i.keepAlive;if(ge(i=i.hook)&&ge(i=i.init)&&i(t,!1,n,r),ge(t.child))return d(t,e),o&&u(t,e,n,r),!0}}function u(t,e,n,r){for(var i,o=t;o.child;)if(o=o.child._vnode,ge(i=o.data)&&ge(i=i.transition)){for(i=0;ip?(c=_e(n[m+1])?null:n[m+1].elm,v(t,c,n,l,m,r)):l>m&&y(t,e,f,p)}function b(t,e,n,r){if(t!==e){if(e.isStatic&&t.isStatic&&e.key===t.key&&(e.isCloned||e.isOnce))return e.elm=t.elm,void(e.child=t.child);var i,o=e.data,a=ge(o);a&&ge(i=o.hook)&&ge(i=i.prepatch)&&i(t,e);var s=e.elm=t.elm,u=t.children,c=e.children;if(a&&l(e)){for(i=0;i-1?e.split(/\s+/).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+t.getAttribute("class")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function He(t,e){if(e&&e.trim())if(t.classList)e.indexOf(" ")>-1?e.split(/\s+/).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e);else{for(var n=" "+t.getAttribute("class")+" ",r=" "+e+" ";n.indexOf(r)>=0;)n=n.replace(r," ");t.setAttribute("class",n.trim())}}function Be(t){ci(function(){ci(t)})}function ze(t,e){(t._transitionClasses||(t._transitionClasses=[])).push(e),qe(t,e)}function Ge(t,e){t._transitionClasses&&o(t._transitionClasses,e),He(t,e)}function Ke(t,e,n){var r=Je(t,e),i=r.type,o=r.timeout,a=r.propCount;if(!i)return n();var s=i===ri?ai:ui,u=0,c=function(){t.removeEventListener(s,f),n()},f=function(e){e.target===t&&++u>=a&&c()};setTimeout(function(){u0&&(n=ri,f=a,l=o.length):e===ii?c>0&&(n=ii,f=c,l=u.length):(f=Math.max(a,c),n=f>0?a>c?ri:ii:null,l=n?n===ri?o.length:u.length:0);var p=n===ri&&fi.test(r[oi+"Property"]);return{type:n,timeout:f,propCount:l,hasTransform:p}}function We(t,e){for(;t.length1,j=n._enterCb=tn(function(){$&&Ge(n,x),j.cancelled?($&&Ge(n,w),O&&O(n)):C&&C(n),n._enterCb=null});t.data.show||st(t.data.hook||(t.data.hook={}),"insert",function(){var e=n.parentNode,r=e&&e._pending&&e._pending[t.key];r&&r.context===t.context&&r.tag===t.tag&&r.elm._leaveCb&&r.elm._leaveCb(),A&&A(n,j)},"transition-insert"),k&&k(n),$&&(ze(n,w),Be(function(){Ge(n,w),ze(n,x),j.cancelled||E||Ke(n,o,j)})),t.data.show&&(e&&e(),A&&A(n,j)),$||E||j()}}}function Ze(t,e){function n(){m.cancelled||(t.data.show||((r.parentNode._pending||(r.parentNode._pending={}))[t.key]=t),c&&c(r),h&&(ze(r,s),Be(function(){Ge(r,s),ze(r,u),m.cancelled||v||Ke(r,a,m)})),f&&f(r,m),h||v||m())}var r=t.elm;r._enterCb&&(r._enterCb.cancelled=!0,r._enterCb());var i=Qe(t.data.transition);if(!i)return e();if(!r._leaveCb&&1===r.nodeType){var o=i.css,a=i.type,s=i.leaveClass,u=i.leaveActiveClass,c=i.beforeLeave,f=i.leave,l=i.afterLeave,p=i.leaveCancelled,d=i.delayLeave,h=o!==!1&&!Ln,v=f&&(f._length||f.length)>1,m=r._leaveCb=tn(function(){r.parentNode&&r.parentNode._pending&&(r.parentNode._pending[t.key]=null),h&&Ge(r,u),m.cancelled?(h&&Ge(r,s),p&&p(r)):(e(),l&&l(r)),r._leaveCb=null});d?d(n):n()}}function Qe(t){if(t){if("object"==typeof t){var e={};return t.css!==!1&&l(e,li(t.name||"v")),l(e,t),e}return"string"==typeof t?li(t):void 0}}function tn(t){var e=!1;return function(){e||(e=!0,t())}}function en(t,e){e.data.show||Xe(e)}function nn(t,e,n){var r=e.value,i=t.multiple;if(!i||Array.isArray(r)){for(var o,a,s=0,u=t.options.length;s-1,a.selected!==o&&(a.selected=o);else if(y(on(a),r))return void(t.selectedIndex!==s&&(t.selectedIndex=s));i||(t.selectedIndex=-1)}}function rn(t,e){for(var n=0,r=e.length;n0,Nn=Rn&&Rn.indexOf("edge/")>0,Un=Rn&&Rn.indexOf("android")>0,Fn=Rn&&/iphone|ipad|ipod|ios/.test(Rn),In=function(){return void 0===yn&&(yn=!Mn&&"undefined"!=typeof e&&"server"===e.process.env.VUE_ENV),yn},Vn=Mn&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,qn=function(){function t(){r=!1;var t=n.slice(0);n.length=0;for(var e=0;e1&&(e[n[0].trim()]=n[1].trim())}}),e}),Yr=/^--/,Xr=/\s*!important$/,Zr=function(t,e,n){Yr.test(e)?t.style.setProperty(e,n):Xr.test(n)?t.style.setProperty(e,n.replace(Xr,""),"important"):t.style[ti(e)]=n},Qr=["Webkit","Moz","ms"],ti=u(function(t){if(Ar=Ar||document.createElement("div"),t=xn(t),"filter"!==t&&t in Ar.style)return t;for(var e=t.charAt(0).toUpperCase()+t.slice(1),n=0;n0?gt(n.join("=")):null;void 0===e[r]?e[r]=i:Array.isArray(e[r])?e[r].push(i):e[r]=[e[r],i]}),e):e}function a(t){var e=t?Object.keys(t).map(function(e){var n=t[e];if(void 0===n)return"";if(null===n)return _t(e);if(Array.isArray(n)){var r=[];return n.slice().forEach(function(t){void 0!==t&&(null===t?r.push(_t(e)):r.push(_t(e)+"="+_t(t)))}),r.join("&")}return _t(e)+"="+_t(n)}).filter(function(t){return t.length>0}).join("&"):null;return e?"?"+e:""}function s(t,e,n){var r={name:e.name||t&&t.name,meta:t&&t.meta||{},path:e.path||"/",hash:e.hash||"",query:e.query||{},params:e.params||{},fullPath:c(e),matched:t?u(t):[]};return n&&(r.redirectedFrom=c(n)),Object.freeze(r)}function u(t){for(var e=[];t;)e.unshift(t),t=t.parent;return e}function c(t){var e=t.path,n=t.query;void 0===n&&(n={});var r=t.hash;return void 0===r&&(r=""),(e||"/")+a(n)+r}function f(t,e){return e===bt?t===e:!!e&&(t.path&&e.path?t.path.replace(wt,"")===e.path.replace(wt,"")&&t.hash===e.hash&&l(t.query,e.query):!(!t.name||!e.name)&&(t.name===e.name&&t.hash===e.hash&&l(t.query,e.query)&&l(t.params,e.params)))}function l(t,e){void 0===t&&(t={}),void 0===e&&(e={});var n=Object.keys(t),r=Object.keys(e);return n.length===r.length&&n.every(function(n){return String(t[n])===String(e[n])})}function p(t,e){return 0===t.path.indexOf(e.path.replace(/\/$/,""))&&(!e.hash||t.hash===e.hash)&&d(t.query,e.query)}function d(t,e){for(var n in e)if(!(n in t))return!1;return!0}function h(t){if(!(t.metaKey||t.ctrlKey||t.shiftKey||t.defaultPrevented||0!==t.button)){var e=t.target.getAttribute("target");if(!/\b_blank\b/i.test(e))return t.preventDefault(),!0}}function v(t){if(t)for(var e,n=0;n=0&&(e=t.slice(r),t=t.slice(0,r));var i=t.indexOf("?");return i>=0&&(n=t.slice(i+1),t=t.slice(0,i)),{path:t,query:n,hash:e}}function g(t){return t.replace(/\/\//g,"/")}function b(t){var e=Object.create(null),n=Object.create(null);return t.forEach(function(t){w(e,n,t)}),{pathMap:e,nameMap:n}}function w(t,e,n,r,i){var o=n.path,a=n.name,s={path:x(o,r),components:n.components||{default:n.component},instances:{},name:a,parent:r,matchAs:i,redirect:n.redirect,beforeEnter:n.beforeEnter,meta:n.meta||{}};n.children&&n.children.forEach(function(n){w(t,e,n,s)}),void 0!==n.alias&&(Array.isArray(n.alias)?n.alias.forEach(function(n){w(t,e,{path:n},r,s.path)}):w(t,e,{path:n.alias},r,s.path)),t[s.path]||(t[s.path]=s),a&&(e[a]||(e[a]=s))}function x(t,e){return t=t.replace(/\/$/,""),"/"===t[0]?t:null==e?t:g(e.path+"/"+t)}function k(t,e){for(var n,r=[],i=0,o=0,a="",s=e&&e.delimiter||"/";null!=(n=Tt.exec(t));){var u=n[0],c=n[1],f=n.index;if(a+=t.slice(o,f),o=f+u.length,c)a+=c[1];else{var l=t[o],p=n[2],d=n[3],h=n[4],v=n[5],m=n[6],y=n[7];a&&(r.push(a),a="");var _=null!=p&&null!=l&&l!==p,g="+"===m||"*"===m,b="?"===m||"*"===m,w=n[2]||s,x=h||v;r.push({name:d||i++,prefix:p||"",delimiter:w,optional:b,repeat:g,partial:_,asterisk:!!y,pattern:x?j(x):y?".*":"[^"+E(w)+"]+?"})}}return o-1&&(r.params[f]=e.params[f]);if(a)return r.path=U(a.path,r.params,'named route "'+i+'"'),o(a,r,n)}else if(r.path){r.params={};for(var l in u)if(q(l,r.params,r.path))return o(u[l],r,n)}return o(null,r)}function n(t,n){var i=t.redirect,a="function"==typeof i?i(s(t,n)):i;if("string"==typeof a&&(a={path:a}),!a||"object"!=typeof a)return o(null,n);var u=a,f=u.name,l=u.path,p=n.query,d=n.hash,h=n.params;if(p=u.hasOwnProperty("query")?u.query:p,d=u.hasOwnProperty("hash")?u.hash:d,h=u.hasOwnProperty("params")?u.params:h,f){c[f];return e({_normalized:!0,name:f,query:p,hash:d,params:h},void 0,n)}if(l){var v=H(l,t),m=U(v,h,'redirect route with path "'+v+'"');return e({_normalized:!0,path:m,query:p,hash:d},void 0,n)}return r(!1,"invalid redirect option: "+JSON.stringify(a)),o(null,n)}function i(t,n,r){var i=U(r,n.params,'aliased route with path "'+r+'"'),a=e({_normalized:!0,path:i});if(a){var s=a.matched,u=s[s.length-1];return n.params=a.params,o(u,n)}return o(null,n)}function o(t,e,r){return t&&t.redirect?n(t,r||e):t&&t.matchAs?i(t,e,t.matchAs):s(t,e,r)}var a=b(t),u=a.pathMap,c=a.nameMap;return e}function q(t,e,n){var r=N(t),i=r.regexp,o=r.keys,a=n.match(i);if(!a)return!1;if(!e)return!0;for(var s=1,u=a.length;s=t.length?n():t[i]?e(t[i],function(){r(i+1)}):r(i+1)};r(0)}function z(t){if(!t)if(Rt){var e=document.querySelector("base");t=e?e.getAttribute("href"):"/"}else t="/";return"/"!==t.charAt(0)&&(t="/"+t),t.replace(/\/$/,"")}function G(t,e){var n,r=Math.max(t.length,e.length);for(n=0;n=0?e:0)+"#"+t)}function vt(t,e,n){var r="hash"===n?"#"+e:e;return t?g(t+"/"+r):r}var mt,yt={name:"router-view",functional:!0,props:{name:{type:String,default:"default"}},render:function(t,e){var n=e.props,r=e.children,i=e.parent,o=e.data;o.routerView=!0;for(var a=i.$route,s=i._routerViewCache||(i._routerViewCache={}),u=0,c=!1;i;)i.$vnode&&i.$vnode.data.routerView&&u++,i._inactive&&(c=!0),i=i.$parent;o.routerViewDepth=u;var f=a.matched[u];if(!f)return t();var l=n.name,p=c?s[l]:s[l]=f.components[l];if(!c){var d=o.hook||(o.hook={});d.init=function(t){f.instances[l]=t.child},d.prepatch=function(t,e){f.instances[l]=e.child},d.destroy=function(t){f.instances[l]===t.child&&(f.instances[l]=void 0)}}return t(p,o,r)}},_t=encodeURIComponent,gt=decodeURIComponent,bt=s(null,{path:"/"}),wt=/\/$/,xt=[String,Object],kt={name:"router-link",props:{to:{type:xt,required:!0},tag:{type:String,default:"a"},exact:Boolean,append:Boolean,replace:Boolean,activeClass:String,event:{type:[String,Array],default:"click"}},render:function(t){var e=this,n=this.$router,r=this.$route,i=n.resolve(this.to,r,this.append),o=i.normalizedTo,a=i.resolved,u=i.href,c={},l=this.activeClass||n.options.linkActiveClass||"router-link-active",d=o.path?s(null,o):a;c[l]=this.exact?f(r,d):p(r,d);var m=function(t){h(t)&&(e.replace?n.replace(o):n.push(o))},y={click:h};Array.isArray(this.event)?this.event.forEach(function(t){y[t]=m}):y[this.event]=m;var _={class:c};if("a"===this.tag)_.on=y,_.attrs={href:u};else{var g=v(this.$slots.default);if(g){g.isStatic=!1;var b=mt.util.extend,w=g.data=b({},g.data);w.on=y;var x=g.data.attrs=b({},g.data.attrs);x.href=u}else _.on=y}return t(this.tag,_,this.$slots.default)}},At=Array.isArray||function(t){return"[object Array]"==Object.prototype.toString.call(t)},Ct=At,Ot=L,$t=k,Et=A,jt=$,St=D,Tt=new RegExp(["(\\\\.)","([\\/.])?(?:(?:\\:(\\w+)(?:\\(((?:\\\\.|[^\\\\()])+)\\))?|\\(((?:\\\\.|[^\\\\()])+)\\))([+*?])?|(\\*))"].join("|"),"g");Ot.parse=$t,Ot.compile=Et,Ot.tokensToFunction=jt,Ot.tokensToRegExp=St;var Pt=Object.create(null),Mt=Object.create(null),Rt="undefined"!=typeof window,Dt=Rt&&function(){var t=window.navigator.userAgent;return(t.indexOf("Android 2.")===-1&&t.indexOf("Android 4.0")===-1||t.indexOf("Mobile Safari")===-1||t.indexOf("Chrome")!==-1||t.indexOf("Windows Phone")!==-1)&&(window.history&&"pushState"in window.history)}(),Lt=function(t,e){this.router=t,this.base=z(e),this.current=bt,this.pending=null};Lt.prototype.listen=function(t){this.cb=t},Lt.prototype.transitionTo=function(t,e,n){var r=this,i=this.router.match(t,this.current);this.confirmTransition(i,function(){r.updateRoute(i),e&&e(i),r.ensureURL()},n)},Lt.prototype.confirmTransition=function(t,e,n){var r=this,i=this.current,o=function(){n&&n()};if(f(t,i))return this.ensureURL(),o();var a=G(this.current.matched,t.matched),s=a.deactivated,u=a.activated,c=[].concat(J(s),this.router.beforeHooks,u.map(function(t){return t.beforeEnter}),Q(u));this.pending=t;var l=function(e,n){return r.pending!==t?o():void e(t,i,function(t){t===!1?(r.ensureURL(!0),o()):"string"==typeof t||"object"==typeof t?("object"==typeof t&&t.replace?r.replace(t):r.push(t),o()):n(t)})};B(c,l,function(){var n=[],i=Y(u,n,function(){return r.current===t});B(i,l,function(){return r.pending!==t?o():(r.pending=null,e(t),void(r.router.app&&r.router.app.$nextTick(function(){n.forEach(function(t){return t()})})))})})},Lt.prototype.updateRoute=function(t){var e=this.current;this.current=t,this.cb&&this.cb(t),this.router.afterHooks.forEach(function(n){n&&n(t,e)})};var Nt=Object.create(null),Ut=function(){return String(Date.now())},Ft=Ut(),It=function(t){function e(e,n){var r=this;t.call(this,e,n);var i=e.options.scrollBehavior;window.addEventListener("popstate",function(t){Ft=t.state&&t.state.key;var e=r.current;r.transitionTo(ut(r.base),function(t){i&&r.handleScroll(t,e,!0)})}),i&&window.addEventListener("scroll",function(){nt(Ft)})}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.go=function(t){window.history.go(t)},e.prototype.push=function(t){var e=this,n=this.current;this.transitionTo(t,function(t){ct(g(e.base+t.fullPath)),e.handleScroll(t,n,!1)})},e.prototype.replace=function(t){var e=this,n=this.current;this.transitionTo(t,function(t){ft(g(e.base+t.fullPath)),e.handleScroll(t,n,!1)})},e.prototype.ensureURL=function(t){if(ut(this.base)!==this.current.fullPath){var e=g(this.base+this.current.fullPath);t?ct(e):ft(e)}},e.prototype.handleScroll=function(t,e,n){var r=this.router;if(r.app){var i=r.options.scrollBehavior;i&&r.app.$nextTick(function(){var r=rt(Ft),o=i(t,e,n?r:null);if(o){var a="object"==typeof o;if(a&&"string"==typeof o.selector){var s=document.querySelector(o.selector);s?r=it(s):ot(o)&&(r=at(o))}else a&&ot(o)&&(r=at(o));r&&window.scrollTo(r.x,r.y)}})}},e}(Lt),Vt=function(t){function e(e,n,r){t.call(this,e,n),r&&this.checkFallback()||lt()}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.checkFallback=function(){var t=ut(this.base);if(!/^\/#/.test(t))return window.location.replace(g(this.base+"/#"+t)),!0},e.prototype.onHashChange=function(){lt()&&this.transitionTo(pt(),function(t){ht(t.fullPath)})},e.prototype.push=function(t){this.transitionTo(t,function(t){dt(t.fullPath)})},e.prototype.replace=function(t){this.transitionTo(t,function(t){ht(t.fullPath)})},e.prototype.go=function(t){window.history.go(t)},e.prototype.ensureURL=function(t){var e=this.current.fullPath;pt()!==e&&(t?dt(e):ht(e))},e}(Lt),qt=function(t){function e(e){t.call(this,e),this.stack=[],this.index=-1}return t&&(e.__proto__=t),e.prototype=Object.create(t&&t.prototype),e.prototype.constructor=e,e.prototype.push=function(t){var e=this;this.transitionTo(t,function(t){e.stack=e.stack.slice(0,e.index+1).concat(t),e.index++})},e.prototype.replace=function(t){var e=this;this.transitionTo(t,function(t){e.stack=e.stack.slice(0,e.index).concat(t)})},e.prototype.go=function(t){var e=this,n=this.index+t;if(!(n<0||n>=this.stack.length)){var r=this.stack[n];this.confirmTransition(r,function(){e.index=n,e.updateRoute(r)})}},e.prototype.ensureURL=function(){},e}(Lt),Ht=function(t){void 0===t&&(t={}),this.app=null,this.options=t,this.beforeHooks=[],this.afterHooks=[],this.match=V(t.routes||[]);var e=t.mode||"hash";switch(this.fallback="history"===e&&!Dt,this.fallback&&(e="hash"),Rt||(e="abstract"),this.mode=e,e){case"history":this.history=new It(this,t.base);break;case"hash":this.history=new Vt(this,t.base,this.fallback);break;case"abstract":this.history=new qt(this)}},Bt={currentRoute:{}};Bt.currentRoute.get=function(){return this.history&&this.history.current},Ht.prototype.init=function(t){var e=this;this.app=t;var n=this.history;if(n instanceof It)n.transitionTo(ut(n.base));else if(n instanceof Vt){var r=function(){window.addEventListener("hashchange",function(){n.onHashChange()})};n.transitionTo(pt(),r,r)}n.listen(function(t){e.app._route=t})},Ht.prototype.beforeEach=function(t){this.beforeHooks.push(t)},Ht.prototype.afterEach=function(t){this.afterHooks.push(t)},Ht.prototype.push=function(t){this.history.push(t)},Ht.prototype.replace=function(t){this.history.replace(t)},Ht.prototype.go=function(t){this.history.go(t)},Ht.prototype.back=function(){this.go(-1)},Ht.prototype.forward=function(){this.go(1)},Ht.prototype.getMatchedComponents=function(t){var e=t?this.resolve(t).resolved:this.currentRoute;return e?[].concat.apply([],e.matched.map(function(t){return Object.keys(t.components).map(function(e){return t.components[e]})})):[]},Ht.prototype.resolve=function(t,e,n){var r=F(t,e||this.history.current,n),i=this.match(r,e),o=i.redirectedFrom||i.fullPath,a=this.history.base,s=vt(a,o,this.mode);return{normalizedTo:r,resolved:i,href:s}},Object.defineProperties(Ht.prototype,Bt),Ht.install=m,Rt&&window.Vue&&window.Vue.use(Ht),t.exports=Ht},function(t,e){function n(t,e){var r={name:t.name,path:t.path,hash:t.hash,query:t.query,params:t.params,fullPath:t.fullPath,meta:t.meta};return e&&(r.from=n(e)),Object.freeze(r)}e.sync=function(t,e,r){var i=(r||{}).moduleName||"route";t.registerModule(i,{state:{},mutations:{"router/ROUTE_CHANGED":function(e,r){t.state[i]=n(r.to,r.from)}}});var o,a=!1;t.watch(function(t){return t[i]},function(t){t.fullPath!==o&&(a=!0,o=t.fullPath,e.push(t))},{sync:!0}),e.afterEach(function(e,n){return a?void(a=!1):(o=e.fullPath,void t.commit("router/ROUTE_CHANGED",{to:e,from:n}))})}},function(t,e,n){/**
10 | * vuex v2.1.1
11 | * (c) 2016 Evan You
12 | * @license MIT
13 | */
14 | !function(e,n){t.exports=n()}(this,function(){"use strict";function t(t){x&&(t._devtoolHook=x,x.emit("vuex:init",t),x.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){x.emit("vuex:mutation",t,e)}))}function e(t){function e(){var t=this.$options;t.store?this.$store=t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}var n=Number(t.version.split(".")[0]);if(n>=2){var r=t.config._lifecycleHooks.indexOf("init")>-1;t.mixin(r?{init:e}:{beforeCreate:e})}else{var i=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[e].concat(t.init):e,i.call(this,t)}}}function n(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function r(t){return function(e,n){return"string"!=typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function i(t,e){console.error("[vuex] module namespace not found in "+t+"(): "+e)}function o(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function a(t){return null!==t&&"object"==typeof t}function s(t){return t&&"function"==typeof t.then}function u(t,e){if(!t)throw new Error("[vuex] "+e)}function c(t,e){if(t.update(e),e.modules)for(var n in e.modules){if(!t.getChild(n))return void console.warn("[vuex] trying to add a new module '"+n+"' on hot reloading, manual reload is needed");c(t.getChild(n),e.modules[n])}}function f(t){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var e=t.state;p(t,e,[],t._modules.root,!0),l(t,e)}function l(t,e){var n=t._vm;t.getters={};var r=t._wrappedGetters,i={};o(r,function(e,n){i[n]=function(){return e(t)},Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=S.config.silent;S.config.silent=!0,t._vm=new S({data:{state:e},computed:i}),S.config.silent=a,t.strict&&_(t),n&&(t._withCommit(function(){n.state=null}),S.nextTick(function(){return n.$destroy()}))}function p(t,e,n,r,i){var o=!n.length,a=t._modules.getNamespace(n);if(a&&(t._modulesNamespaceMap[a]=r),!o&&!i){var s=g(e,n.slice(0,-1)),u=n[n.length-1];t._withCommit(function(){S.set(s,u,r.state)})}var c=r.context=d(t,a);r.forEachMutation(function(e,r){var i=a+r;v(t,i,e,n)}),r.forEachAction(function(e,r){var i=a+r;m(t,i,e,c,n)}),r.forEachGetter(function(e,r){var i=a+r;y(t,i,e,c,n)}),r.forEachChild(function(r,o){p(t,e,n.concat(o),r,i)})}function d(t,e){var n=""===e,r={dispatch:n?t.dispatch:function(n,r,i){var o=b(n,r,i),a=o.payload,s=o.options,u=o.type;return s&&s.root||(u=e+u,t._actions[u])?t.dispatch(u,a):void console.error("[vuex] unknown local action type: "+o.type+", global type: "+u)},commit:n?t.commit:function(n,r,i){var o=b(n,r,i),a=o.payload,s=o.options,u=o.type;return s&&s.root||(u=e+u,t._mutations[u])?void t.commit(u,a,s):void console.error("[vuex] unknown local mutation type: "+o.type+", global type: "+u)}};return Object.defineProperty(r,"getters",{get:n?function(){return t.getters}:function(){return h(t,e)}}),r}function h(t,e){var n={},r=e.length;return Object.keys(t.getters).forEach(function(i){if(i.slice(0,r)===e){var o=i.slice(r);Object.defineProperty(n,o,{get:function(){return t.getters[i]},enumerable:!0})}}),n}function v(t,e,n,r){var i=t._mutations[e]||(t._mutations[e]=[]);i.push(function(e){n(g(t.state,r),e)})}function m(t,e,n,r,i){var o=t._actions[e]||(t._actions[e]=[]);o.push(function(e,o){var a=n({dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:g(t.state,i),rootGetters:t.getters,rootState:t.state},e,o);return s(a)||(a=Promise.resolve(a)),t._devtoolHook?a.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):a})}function y(t,e,n,r,i){return t._wrappedGetters[e]?void console.error("[vuex] duplicate getter key: "+e):void(t._wrappedGetters[e]=function(t){return n(g(t.state,i),r.getters,t.state,t.getters)})}function _(t){t._vm.$watch("state",function(){u(t._committing,"Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}function g(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function b(t,e,n){return a(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function w(t){return S?void console.error("[vuex] already installed. Vue.use(Vuex) should be called only once."):(S=t,void e(S))}var x="undefined"!=typeof window&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__,k=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,o=e.val;r[n]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=this.$store._modulesNamespaceMap[t];if(!r)return void i("mapState",t);e=r.state,n=r.context.getters}return"function"==typeof o?o.call(this,e,n):e[o]}}),r}),A=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,i=e.val;i=t+i,r[n]=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return this.$store.commit.apply(this.$store,[i].concat(t))}}),r}),C=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,i=e.val;i=t+i,r[n]=function(){return i in this.$store.getters||console.error("[vuex] unknown getter: "+i),this.$store.getters[i]}}),r}),O=r(function(t,e){var r={};return n(e).forEach(function(e){var n=e.key,i=e.val;i=t+i,r[n]=function(){for(var t=[],e=arguments.length;e--;)t[e]=arguments[e];return this.$store.dispatch.apply(this.$store,[i].concat(t))}}),r}),$=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t},E={state:{},namespaced:{}};E.state.get=function(){return this._rawModule.state||{}},E.namespaced.get=function(){return!!this._rawModule.namespaced},$.prototype.addChild=function(t,e){this._children[t]=e},$.prototype.removeChild=function(t){delete this._children[t]},$.prototype.getChild=function(t){return this._children[t]},$.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},$.prototype.forEachChild=function(t){o(this._children,t)},$.prototype.forEachGetter=function(t){this._rawModule.getters&&o(this._rawModule.getters,t)},$.prototype.forEachAction=function(t){this._rawModule.actions&&o(this._rawModule.actions,t)},$.prototype.forEachMutation=function(t){this._rawModule.mutations&&o(this._rawModule.mutations,t)},Object.defineProperties($.prototype,E);var j=function(t){var e=this;this.root=new $(t,!1),t.modules&&o(t.modules,function(t,n){e.register([n],t,!1)})};j.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},j.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")},"")},j.prototype.update=function(t){c(this.root,t)},j.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var i=this.get(t.slice(0,-1)),a=new $(e,n);i.addChild(t[t.length-1],a),e.modules&&o(e.modules,function(e,i){r.register(t.concat(i),e,n)})},j.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var S,T=function(e){var n=this;void 0===e&&(e={}),u(S,"must call Vue.use(Vuex) before creating a store instance."),u("undefined"!=typeof Promise,"vuex requires a Promise polyfill in this browser.");var r=e.state;void 0===r&&(r={});var i=e.plugins;void 0===i&&(i=[]);var o=e.strict;void 0===o&&(o=!1),this._committing=!1,this._actions=Object.create(null),this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new j(e),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new S;var a=this,s=this,c=s.dispatch,f=s.commit;this.dispatch=function(t,e){return c.call(a,t,e)},this.commit=function(t,e,n){return f.call(a,t,e,n)},this.strict=o,p(this,r,[],this._modules.root),l(this,r),i.concat(t).forEach(function(t){return t(n)})},P={state:{}};P.state.get=function(){return this._vm.$data.state},P.state.set=function(t){u(!1,"Use store.replaceState() to explicit replace store state.")},T.prototype.commit=function(t,e,n){var r=this,i=b(t,e,n),o=i.type,a=i.payload,s=i.options,u={type:o,payload:a},c=this._mutations[o];return c?(this._withCommit(function(){c.forEach(function(t){t(a)})}),this._subscribers.forEach(function(t){return t(u,r.state)}),void(s&&s.silent&&console.warn("[vuex] mutation type: "+o+". Silent option has been removed. Use the filter functionality in the vue-devtools"))):void console.error("[vuex] unknown mutation type: "+o)},T.prototype.dispatch=function(t,e){var n=b(t,e),r=n.type,i=n.payload,o=this._actions[r];return o?o.length>1?Promise.all(o.map(function(t){return t(i)})):o[0](i):void console.error("[vuex] unknown action type: "+r)},T.prototype.subscribe=function(t){var e=this._subscribers;return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}},T.prototype.watch=function(t,e,n){var r=this;return u("function"==typeof t,"store.watch only accepts a function."),this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},T.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm.state=t})},T.prototype.registerModule=function(t,e){"string"==typeof t&&(t=[t]),u(Array.isArray(t),"module path must be a string or an Array."),this._modules.register(t,e),p(this,this.state,t,this._modules.get(t)),l(this,this.state)},T.prototype.unregisterModule=function(t){var e=this;"string"==typeof t&&(t=[t]),u(Array.isArray(t),"module path must be a string or an Array."),this._modules.unregister(t),this._withCommit(function(){var n=g(e.state,t.slice(0,-1));S.delete(n,t[t.length-1])}),f(this)},T.prototype.hotUpdate=function(t){this._modules.update(t),f(this)},T.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(T.prototype,P),"undefined"!=typeof window&&window.Vue&&w(window.Vue);var M={Store:T,install:w,version:"2.1.1",mapState:k,mapMutations:A,mapGetters:C,mapActions:O};return M})},function(t,e){var n;n=function(){return this}();try{n=n||Function("return this")()||(0,eval)("this")}catch(t){"object"==typeof window&&(n=window)}t.exports=n},function(t,e,n){"use strict";var r=n(1);n(4),n(3),n(2).polyfill(),r.a.replaceState(window.__INITIAL_STATE__),r.b.$mount("div")}],[22]);
--------------------------------------------------------------------------------