├── .eslintrc ├── config ├── config.local.js └── config.default.js ├── test ├── fixtures │ └── apps │ │ └── view-vue-test │ │ ├── package.json │ │ ├── config │ │ ├── config.default.js │ │ ├── config.test.js │ │ └── config.prod.js │ │ ├── public │ │ ├── static │ │ │ └── img │ │ │ │ └── loading.gif │ │ └── vue-ssr-client-manifest.json │ │ └── app │ │ ├── view │ │ ├── layout.html │ │ ├── renderString.js │ │ └── test.js │ │ ├── router.js │ │ ├── controller │ │ └── view.js │ │ └── mocks │ │ └── article │ │ └── list.js ├── view-vue.test.js └── view-vue.cache.test.js ├── app.js ├── .gitignore ├── .eslintignore ├── History.md ├── .travis.yml ├── app └── extend │ └── application.js ├── lib ├── view.js └── engine.js ├── .autod.conf.js ├── .github └── PULL_REQUEST_TEMPLATE.md ├── LICENSE ├── package.json └── README.md /.eslintrc: -------------------------------------------------------------------------------- 1 | { 2 | "extends": "eslint-config-egg" 3 | } 4 | -------------------------------------------------------------------------------- /config/config.local.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.vue = { 4 | cache: false, 5 | }; 6 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "view-vue-test", 3 | "version": "1.0.0" 4 | } -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/config/config.default.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.keys = '123456'; 4 | -------------------------------------------------------------------------------- /app.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = app => { 4 | app.view.use('vue', require('./lib/view')); 5 | }; 6 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | logs/ 2 | npm-debug.log 3 | node_modules/ 4 | coverage/ 5 | .idea/ 6 | .DS_Store 7 | *.swp 8 | logs 9 | run 10 | *.iml 11 | .github 12 | .vscode -------------------------------------------------------------------------------- /.eslintignore: -------------------------------------------------------------------------------- 1 | test/fixtures/apps/view-vue-test/public 2 | test/fixtures/apps/view-vue-test/app/public 3 | test/fixtures/apps/view-vue-test/app/view 4 | coverage 5 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/public/static/img/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/eggjs/egg-view-vue/HEAD/test/fixtures/apps/view-vue-test/public/static/img/loading.gif -------------------------------------------------------------------------------- /History.md: -------------------------------------------------------------------------------- 1 | 2 | 1.0.0 / 2017-06-44 3 | ================== 4 | 5 | * feat: disable cache on local & improve cov (#5) 6 | * feat: first version (#4) 7 | * feat: init project 8 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/config/config.test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | exports.vue = { 4 | cache: { 5 | max: 1000, 6 | maxAge: 1000 * 3600 * 24 * 7, 7 | }, 8 | }; 9 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | sudo: false 2 | language: node_js 3 | node_js: 4 | - '6' 5 | - '7' 6 | - '8' 7 | install: 8 | - npm i npminstall && npminstall 9 | script: 10 | - npm run ci 11 | after_script: 12 | - npminstall codecov && codecov -------------------------------------------------------------------------------- /app/extend/application.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Engine = require('../../lib/engine'); 4 | const VUE_ENGINE = Symbol('Application#vue'); 5 | 6 | module.exports = { 7 | 8 | get vue() { 9 | if (!this[VUE_ENGINE]) { 10 | this[VUE_ENGINE] = new Engine(this); 11 | } 12 | return this[VUE_ENGINE]; 13 | }, 14 | }; 15 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/config/config.prod.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = () => { 4 | const config = {}; 5 | const cacheObject = {}; 6 | config.vue = { 7 | cache: { 8 | set(name, value) { 9 | cacheObject[name] = value; 10 | }, 11 | get(name) { 12 | return cacheObject[name]; 13 | }, 14 | }, 15 | }; 16 | 17 | return config; 18 | }; 19 | -------------------------------------------------------------------------------- /lib/view.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | class View { 4 | constructor(ctx) { 5 | this.app = ctx.app; 6 | } 7 | 8 | render(name, locals, options) { 9 | return this.app.vue.renderBundle(name, { state: locals }, options || /* istanbul ignore next */ {}); 10 | } 11 | 12 | renderString(tpl, locals) { 13 | return this.app.vue.renderString(tpl, locals); 14 | } 15 | } 16 | 17 | module.exports = View; 18 | -------------------------------------------------------------------------------- /.autod.conf.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = { 4 | write: true, 5 | plugin: 'autod-egg', 6 | prefix: '^', 7 | exclude: [ 8 | './test/fixtures', 9 | './docs', 10 | './coverage', 11 | ], 12 | devdep: [ 13 | 'autod', 14 | 'autod-egg', 15 | 'egg-bin', 16 | 'egg-mock', 17 | 'eslint', 18 | 'eslint-config-egg' 19 | ], 20 | keep: [ 21 | ], 22 | semver: [ 23 | ] 24 | }; 25 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/app/view/layout.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | vue server render error, client template 6 | 7 | 8 | 9 |
vue server render error, client template
10 |
11 | 12 | 13 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/app/view/renderString.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const Vue = require('vue'); 3 | module.exports = new Vue({ 4 | template: [ 5 | '', 8 | ].join(''), 9 | data: { 10 | model: [ 11 | { 12 | id: 1, 13 | first: true, 14 | name: 'sky', 15 | }, 16 | { 17 | id: 2, 18 | first: false, 19 | name: 'carl', 20 | }, 21 | ], 22 | }, 23 | }); 24 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/app/router.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = app => { 4 | app.get('/', function* () { 5 | this.body = 'hi, ' + app.plugins.view.name; 6 | }); 7 | app.get('/renderString', 'view.renderString'); 8 | app.get('/renderStringError', 'view.renderStringError'); 9 | app.get('/render', 'view.render'); 10 | app.get('/renderError', 'view.renderError'); 11 | app.get('/app/api/article/list', 'view.list'); 12 | app.get('/app/api/article/:id', 'view.detail'); 13 | app.get('/app(/.+)?', 'view.renderJSONBundle'); 14 | }; 15 | -------------------------------------------------------------------------------- /.github/PULL_REQUEST_TEMPLATE.md: -------------------------------------------------------------------------------- 1 | 10 | 11 | ##### Checklist 12 | 13 | 14 | - [ ] `npm test` passes 15 | - [ ] tests and/or benchmarks are included 16 | - [ ] documentation is changed or added 17 | - [ ] commit message follows commit guidelines 18 | 19 | ##### Affected core subsystem(s) 20 | 21 | 22 | 23 | ##### Description of change 24 | 25 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) Alibaba Group Holding Limited and other contributors. 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 | -------------------------------------------------------------------------------- /config/config.default.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | module.exports = () => { 4 | const config = {}; 5 | 6 | config.view = { 7 | defaultViewEngine: 'vue', 8 | mapping: { 9 | '.js': 'vue', 10 | }, 11 | }; 12 | 13 | /** 14 | * vue view options 15 | * @property {Object|Boolean} [cache] support LRU cache or custom cache(implement set and get method) 16 | * - Boolean: default true, use LRU cache 17 | * - Object: support set LRU or custom cache(implement set and get method) 18 | * @property {Object} [renderOptions] @see https://ssr.vuejs.org/en/api.html#renderer-options 19 | * @example property [cache] 20 | * use default LRU cache: 21 | * cache: true 22 | * disable default LRU cache: 23 | * cache: false 24 | * use LRU cache and set LRU: 25 | * cache:{ 26 | * max: 1000, 27 | * maxAge: 1000 * 3600 * 24 * 7, 28 | * } 29 | * custom cache(implement set and get method): 30 | * cache: { 31 | * get: (key, cb) => { 32 | * return ...; 33 | * }, 34 | * set: (key, val) => { 35 | * ... 36 | * } 37 | * } 38 | * 39 | */ 40 | config.vue = { 41 | cache: true, 42 | // renderOptions: { 43 | // template: ``, 44 | // ...... 45 | // }, 46 | }; 47 | 48 | return config; 49 | }; 50 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "egg-view-vue", 3 | "version": "1.0.0", 4 | "description": "egg view plugin for vue", 5 | "eggPlugin": { 6 | "name": "vue", 7 | "dependencies": [ 8 | "view" 9 | ] 10 | }, 11 | "keywords": [ 12 | "egg", 13 | "eggPlugin", 14 | "egg-plugin", 15 | "egg-view", 16 | "vue", 17 | "ssr" 18 | ], 19 | "dependencies": { 20 | "lru-cache": "^4.1.1", 21 | "vue": "^2.3.4", 22 | "vue-server-renderer": "^2.3.4" 23 | }, 24 | "devDependencies": { 25 | "autod": "^2.8.0", 26 | "autod-egg": "^1.0.0", 27 | "axios": "^0.16.2", 28 | "egg": "^1.4.0", 29 | "egg-bin": "^3.6.0", 30 | "egg-mock": "^3.7.2", 31 | "eslint": "^4.0.0", 32 | "eslint-config-egg": "^4.2.1", 33 | "vue-router": "^2.5.3", 34 | "vuex": "^2.3.1", 35 | "vuex-router-sync": "^4.2.0", 36 | "webstorm-disable-index": "^1.0.11" 37 | }, 38 | "engines": { 39 | "node": ">=6.0.0" 40 | }, 41 | "ci": { 42 | "version": "6, 7, 8" 43 | }, 44 | "scripts": { 45 | "test": "npm run lint -- --fix && npm run test-local", 46 | "test-local": "egg-bin test", 47 | "cov": "egg-bin cov", 48 | "lint": "eslint .", 49 | "ci": "npm run lint && npm run cov", 50 | "autod": "autod" 51 | }, 52 | "files": [ 53 | "index.js", 54 | "app.js", 55 | "agent.js", 56 | "config", 57 | "app", 58 | "lib" 59 | ], 60 | "repository": { 61 | "type": "git", 62 | "url": "git+https://github.com/eggjs/egg-view-vue.git" 63 | }, 64 | "bugs": { 65 | "url": "https://github.com/eggjs/egg/issues" 66 | }, 67 | "homepage": "https://github.com/eggjs/egg-view-vue#readme", 68 | "author": "hubcarl@126.com", 69 | "license": "MIT" 70 | } 71 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/app/controller/view.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const path = require('path'); 3 | const Model = require('../mocks/article/list'); 4 | 5 | exports.renderString = function* (ctx) { 6 | ctx.body = yield ctx.renderString('
name:{{name}},desc:{{desc}}
', { 7 | name: 'egg-vue-view', 8 | desc: 'egg view plugin for vue', 9 | }); 10 | }; 11 | 12 | exports.renderStringError = function* (ctx) { 13 | try { 14 | ctx.body = yield ctx.renderString('
name:{{user.name}},desc:{{user.desc}}
', { 15 | name: 'egg-vue-view', 16 | desc: 'egg view plugin for vue', 17 | }); 18 | } catch (e) { 19 | ctx.status = 500; 20 | ctx.body = e.toString(); 21 | } 22 | }; 23 | 24 | exports.render = function* (ctx) { 25 | yield ctx.render('test.js', { message: 'egg-view-vue#vue server side render!' }); 26 | }; 27 | 28 | exports.renderJSONBundle = function* (ctx) { 29 | const manifest = path.join(ctx.app.baseDir, 'public/vue-ssr-client-manifest.json'); 30 | const url = ctx.url.replace(/\/app/, '') || '/'; 31 | yield ctx.render('vue-ssr-server-bundle.json', { url }, { 32 | renderOptions: { 33 | template: '', 34 | clientManifest: require(manifest), 35 | }, 36 | }); 37 | }; 38 | 39 | exports.list = function* (ctx) { 40 | const pageIndex = ctx.query.pageIndex; 41 | const pageSize = ctx.query.pageSize; 42 | ctx.body = Model.getPage(pageIndex, pageSize); 43 | }; 44 | 45 | exports.detail = function* (ctx) { 46 | const id = ctx.query.id; 47 | ctx.body = Model.getDetail(id); 48 | }; 49 | 50 | exports.renderError = function* (ctx) { 51 | try { 52 | yield ctx.render('error.js', { 53 | data: { 54 | name: 'vue render', 55 | description: 'egg view plugin for swig', 56 | }, 57 | }); 58 | } catch (e) { 59 | ctx.status = 500; 60 | ctx.body = e.toString(); 61 | } 62 | }; 63 | -------------------------------------------------------------------------------- /test/view-vue.test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const assert = require('assert'); 3 | const mm = require('egg-mock'); 4 | 5 | describe('test/view-vue.test.js', () => { 6 | 7 | describe('default view engine', () => { 8 | let app; 9 | before(() => { 10 | app = mm.app({ 11 | baseDir: 'apps/view-vue-test', 12 | }); 13 | return app.ready(); 14 | }); 15 | 16 | after(() => app.close()); 17 | afterEach(mm.restore); 18 | 19 | it('should GET /', () => { 20 | return app.httpRequest() 21 | .get('/') 22 | .expect('hi, view') 23 | .expect(200); 24 | }); 25 | 26 | it('should GET /renderString', () => { 27 | return app.httpRequest() 28 | .get('/renderString') 29 | .expect('
name:egg-vue-view,desc:egg view plugin for vue
') 30 | .expect(200); 31 | }); 32 | 33 | it('should GET /renderString error', () => { 34 | return app.httpRequest() 35 | .get('/renderStringError') 36 | .expect(500); 37 | }); 38 | 39 | it('should GET /render error', () => { 40 | return app.httpRequest() 41 | .get('/renderError') 42 | .expect(500); 43 | }); 44 | 45 | it('should GET /render', () => { 46 | return app.httpRequest() 47 | .get('/render') 48 | .expect(200) 49 | .expect(res => { 50 | assert(res.text.includes('data-server-rendered="true"')); 51 | assert(res.text.includes('')); 52 | assert(res.text.includes('egg-view-vue#vue server side render!')); 53 | }); 54 | }); 55 | 56 | it('should GET /renderJSON', () => { 57 | return app.httpRequest() 58 | .get('/app') 59 | .expect(200) 60 | .expect(res => { 61 | assert(res.text.includes('data-server-rendered="true"')); 62 | assert(res.text.includes('')); 63 | assert(res.text.includes('.page-container')); 64 | assert(res.text.includes('window.__INITIAL_STATE__')); 65 | assert(res.text.includes('/public/static/js/vendor.js"')); 66 | assert(res.text.includes('/public/static/js/app/app.js"')); 67 | }); 68 | }); 69 | }); 70 | }); 71 | -------------------------------------------------------------------------------- /lib/engine.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | 3 | const Vue = require('vue'); 4 | const LRU = require('lru-cache'); 5 | const vueServerRenderer = require('vue-server-renderer'); 6 | 7 | class Engine { 8 | constructor(app) { 9 | this.app = app; 10 | this.config = app.config.vue; 11 | this.vueServerRenderer = vueServerRenderer; 12 | this.renderer = this.vueServerRenderer.createRenderer(); 13 | this.renderOptions = this.config.renderOptions; 14 | 15 | if (this.config.cache === true) { 16 | this.bundleCache = LRU({ 17 | max: 1000, 18 | maxAge: 1000 * 3600 * 24 * 7, 19 | }); 20 | } else if (typeof this.config.cache === 'object') { 21 | if (this.config.cache.set && this.config.cache.get) { 22 | this.bundleCache = this.config.cache; 23 | } else { 24 | this.bundleCache = LRU(this.config.cache); 25 | } 26 | } 27 | } 28 | 29 | createBundleRenderer(name, renderOptions) { 30 | if (this.bundleCache) { 31 | const bundleRenderer = this.bundleCache.get(name); 32 | if (bundleRenderer) { 33 | return bundleRenderer; 34 | } 35 | } 36 | const bundleRenderer = this.vueServerRenderer.createBundleRenderer(name, Object.assign({}, this.renderOptions, renderOptions)); 37 | if (this.bundleCache) { 38 | this.bundleCache.set(name, bundleRenderer); 39 | } 40 | return bundleRenderer; 41 | } 42 | 43 | renderBundle(name, context, options) { 44 | context = context || /* istanbul ignore next */ {}; 45 | options = options || /* istanbul ignore next */ {}; 46 | 47 | return new Promise((resolve, reject) => { 48 | this.createBundleRenderer(name, options.renderOptions).renderToString(context, (err, html) => { 49 | if (err) { 50 | reject(err); 51 | } else { 52 | resolve(html); 53 | } 54 | }); 55 | }); 56 | } 57 | 58 | renderString(tpl, locals, options) { 59 | const vConfig = Object.assign({ template: tpl, data: locals }, options); 60 | const vm = new Vue(vConfig); 61 | return new Promise((resolve, reject) => { 62 | this.renderer.renderToString(vm, (err, html) => { 63 | if (err) { 64 | reject(err); 65 | } else { 66 | resolve(html); 67 | } 68 | }); 69 | }); 70 | } 71 | } 72 | 73 | module.exports = Engine; 74 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/app/mocks/article/list.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const data = { 3 | list: [{ 4 | title: 'vue', 5 | hits: 200, 6 | url: 'https://cn.vuejs.org', 7 | }, { 8 | title: 'webpack configuration', 9 | hits: 550, 10 | url: 'https://webpack.js.org/configuration/', 11 | }, { 12 | title: 'egg', 13 | hits: 278, 14 | url: 'https://eggjs.org/', 15 | }, { 16 | title: 'axios', 17 | hits: 998, 18 | url: 'https://www.awesomes.cn/repo/mzabriskie/axios', 19 | }, { 20 | title: 'Centralized State Management for Vue.js', 21 | hits: 232, 22 | url: 'https://github.com/vuejs/vuex', 23 | }, { 24 | title: 'webpack server build', 25 | hits: 988, 26 | url: 'http://jlongster.com/Backend-Apps-with-Webpack--Part-I', 27 | }, { 28 | title: 'vue component loader for Webpack', 29 | hits: 322, 30 | url: 'https://github.com/vuejs/vue-loader', 31 | }, { 32 | title: 'vue-router--The official router for Vue.js', 33 | hits: 566, 34 | url: 'https://github.com/vuejs/vue-router', 35 | }, { 36 | title: 'vue life cycle', 37 | hits: 434, 38 | url: 'http://www.jianshu.com/p/e9f884b6ba6c', 39 | }, { 40 | title: 'babel', 41 | hits: 432, 42 | url: 'https://github.com/lcxfs1991/blog/issues/9', 43 | }, { 44 | title: 'HTTP2', 45 | hits: 565, 46 | url: 'https://segmentfault.com/a/1190000007219256?utm_source=weekly&utm_medium=email&utm_campaign=email_weekly', 47 | }, { 48 | title: 'HTTP,HTTP2.0,SPDY,HTTPS', 49 | hits: 787, 50 | url: 'http://www.alloyteam.com/2016/07/httphttp2-0spdyhttps-reading-this-is-enough/', 51 | }, { 52 | title: 'git - help', 53 | hits: 121, 54 | url: 'http://rogerdudler.github.io/git-guide/index.zh.html', 55 | }, { 56 | title: 'Migrating from v1 to v2', 57 | hits: 555, 58 | url: 'https://webpack.js.org/guides/migrating/', 59 | }], 60 | }; 61 | 62 | let id = 1; 63 | 64 | data.list = data.list.concat(data.list); 65 | 66 | data.list.forEach(item => { 67 | item.id = id++; 68 | }); 69 | 70 | 71 | const total = data.list.length; 72 | exports.getPage = (pageIndex = 1, pageSize = 10) => { 73 | const start = (pageIndex - 1) * pageSize; 74 | const end = start + Number(pageSize); 75 | return { list: data.list.slice(start, end), total }; 76 | }; 77 | 78 | exports.getDetail = id => { 79 | return data.list.filter(item => { 80 | return item.id === id; 81 | }).slice(0, 1); 82 | }; 83 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # egg-view-vue 2 | 3 | [![NPM version][npm-image]][npm-url] 4 | [![build status][travis-image]][travis-url] 5 | [![Test coverage][codecov-image]][codecov-url] 6 | [![David deps][david-image]][david-url] 7 | [![Known Vulnerabilities][snyk-image]][snyk-url] 8 | [![npm download][download-image]][download-url] 9 | 10 | [npm-image]: https://img.shields.io/npm/v/egg-view-vue.svg?style=flat-square 11 | [npm-url]: https://npmjs.org/package/egg-view-vue 12 | [travis-image]: https://img.shields.io/travis/eggjs/egg-view-vue.svg?style=flat-square 13 | [travis-url]: https://travis-ci.org/eggjs/egg-view-vue 14 | [codecov-image]: https://img.shields.io/codecov/c/github/eggjs/egg-view-vue.svg?style=flat-square 15 | [codecov-url]: https://codecov.io/github/eggjs/egg-view-vue?branch=master 16 | [david-image]: https://img.shields.io/david/eggjs/egg-view-vue.svg?style=flat-square 17 | [david-url]: https://david-dm.org/eggjs/egg-view-vue 18 | [snyk-image]: https://snyk.io/test/npm/egg-view-vue/badge.svg?style=flat-square 19 | [snyk-url]: https://snyk.io/test/npm/egg-view-vue 20 | [download-image]: https://img.shields.io/npm/dm/egg-view-vue.svg?style=flat-square 21 | [download-url]: https://npmjs.org/package/egg-view-vue 22 | 23 | egg view plugin for [vue]. 24 | 25 | ## Install 26 | 27 | ```bash 28 | $ npm i egg-view-vue --save 29 | ``` 30 | 31 | ## Usage 32 | 33 | ```js 34 | // {app_root}/config/plugin.js 35 | exports.vue = { 36 | enable: true, 37 | package: 'egg-view-vue', 38 | }; 39 | ``` 40 | 41 | Render in controller, support js bundle render and json bundle render (vue 2.3+) 42 | 43 | ### js bundle render 44 | 45 | ```js 46 | // {app_root}/app/controller/test.js 47 | exports.home = function* (ctx) { 48 | // {app_root}/app/view/vue-ssr-server-bundle.js 49 | yield ctx.render('vue-ssr-server-bundle.js', { name: 'vue js bundle render' }); 50 | }; 51 | ``` 52 | 53 | ### json bundle render (vue 2.3+), need to config renderOptions [createBundleRenderer](https://ssr.vuejs.org/en/api.html#createbundlerendererbundle-options) 54 | 55 | ```js 56 | // {app_root}/config/config.default.js 57 | exports.vue = { 58 | // renderOptions config, please @see https://ssr.vuejs.org/en/api.html#renderer-options 59 | renderOptions: { 60 | // template: '', 61 | 62 | // webpack vue ssr plugin build manifest file 63 | // clientManifest: require(path.join(app.baseDir,'public/vue-ssr-client-manifest.json')), 64 | } 65 | }; 66 | ``` 67 | 68 | ```js 69 | // {app_root}/app/controller/test.js 70 | exports.home = function* (ctx) { 71 | // {app_root}/app/view/vue-ssr-server-bundle.json 72 | yield ctx.render('vue-ssr-server-bundle.json', { name: 'vue json render' }); 73 | }; 74 | ``` 75 | 76 | vue server side render example, please see [egg-vue-webpack-boilerplate](https://github.com/hubcarl/egg-vue-webpack-boilerplate) 77 | 78 | ## Configuration 79 | 80 | see [config/config.default.js](config/config.default.js) for more detail. 81 | 82 | ## Questions & Suggestions 83 | 84 | Please open an issue [here](https://github.com/eggjs/egg-view-vue/issues). 85 | 86 | ## License 87 | 88 | [MIT](LICENSE) -------------------------------------------------------------------------------- /test/view-vue.cache.test.js: -------------------------------------------------------------------------------- 1 | 'use strict'; 2 | const assert = require('assert'); 3 | const mm = require('egg-mock'); 4 | const fs = require('fs'); 5 | const path = require('path'); 6 | 7 | describe('test/view-vue.cache.test.js', () => { 8 | const tag = 'data-server-rendered="true"'; 9 | const title = 'egg-view-vue#unittest'; 10 | const newTitle = 'egg-view-vue#render-cache#unittest'; 11 | const filepath = path.join(__dirname, 'fixtures/apps/view-vue-test/app/view/test.js'); 12 | const content = fs.readFileSync(filepath, 'utf8'); 13 | const saveContent = () => { 14 | fs.writeFileSync(filepath, content); 15 | }; 16 | describe('default view engine', () => { 17 | let app; 18 | before(() => { 19 | app = mm.app({ 20 | baseDir: 'apps/view-vue-test', 21 | }); 22 | return app.ready(); 23 | }); 24 | 25 | after(() => app.close()); 26 | afterEach(() => { 27 | saveContent(); 28 | mm.restore(); 29 | }); 30 | 31 | it('should GET /render cache', function* () { 32 | yield app.httpRequest() 33 | .get('/render') 34 | .expect(200) 35 | .expect(res => { 36 | assert(res.text.includes(tag)); 37 | assert(res.text.includes(title)); 38 | }); 39 | 40 | fs.writeFileSync(filepath, content.replace(title, newTitle)); 41 | 42 | assert(fs.readFileSync(filepath, 'utf8').includes(newTitle)); 43 | 44 | yield app.httpRequest() 45 | .get('/render') 46 | .expect(200) 47 | .expect(res => { 48 | assert(res.text.includes(tag)); 49 | assert(!res.text.includes(newTitle)); 50 | }); 51 | }); 52 | }); 53 | 54 | describe('vue view no cache', () => { 55 | let app; 56 | before(() => { 57 | mm.env('local'); 58 | app = mm.app({ 59 | baseDir: 'apps/view-vue-test', 60 | }); 61 | return app.ready(); 62 | }); 63 | 64 | after(() => app.close()); 65 | afterEach(() => { 66 | saveContent(); 67 | mm.restore(); 68 | }); 69 | 70 | it('should GET /render no cache', function* () { 71 | yield app.httpRequest() 72 | .get('/render') 73 | .expect(200) 74 | .expect(res => { 75 | assert(res.text.includes(tag)); 76 | assert(res.text.includes(title)); 77 | }); 78 | 79 | fs.writeFileSync(filepath, content.replace(title, newTitle)); 80 | 81 | assert(fs.readFileSync(filepath, 'utf8').indexOf(newTitle) > -1); 82 | 83 | yield app.httpRequest() 84 | .get('/render') 85 | .expect(200) 86 | .expect(res => { 87 | assert(res.text.includes(tag)); 88 | assert(res.text.includes(newTitle)); 89 | }); 90 | }); 91 | }); 92 | 93 | describe('view lru object cache', () => { 94 | let app; 95 | before(() => { 96 | mm.env('test'); 97 | app = mm.app({ 98 | baseDir: 'apps/view-vue-test', 99 | }); 100 | return app.ready(); 101 | }); 102 | 103 | after(() => app.close()); 104 | afterEach(() => { 105 | saveContent(); 106 | mm.restore(); 107 | }); 108 | 109 | it('should GET /render lru object cache', function* () { 110 | 111 | yield app.httpRequest() 112 | .get('/render') 113 | .expect(200) 114 | .expect(res => { 115 | assert(res.text.includes(tag)); 116 | assert(res.text.includes(title)); 117 | }); 118 | 119 | fs.writeFileSync(filepath, content.replace(title, newTitle)); 120 | 121 | assert(fs.readFileSync(filepath, 'utf8').includes(newTitle)); 122 | 123 | yield app.httpRequest() 124 | .get('/render') 125 | .expect(200) 126 | .expect(res => { 127 | assert(res.text.includes(tag)); 128 | assert(!res.text.includes(newTitle)); 129 | }); 130 | }); 131 | }); 132 | 133 | describe('view custom cache', () => { 134 | let app; 135 | before(() => { 136 | mm.env('prod'); 137 | app = mm.app({ 138 | baseDir: 'apps/view-vue-test', 139 | }); 140 | return app.ready(); 141 | }); 142 | 143 | after(() => app.close()); 144 | afterEach(() => { 145 | saveContent(); 146 | mm.restore(); 147 | }); 148 | 149 | it('should GET /render custom object cache', function* () { 150 | 151 | yield app.httpRequest() 152 | .get('/render') 153 | .expect(200) 154 | .expect(res => { 155 | assert(res.text.includes(tag)); 156 | assert(res.text.includes(title)); 157 | }); 158 | 159 | fs.writeFileSync(filepath, content.replace(title, newTitle)); 160 | 161 | assert(fs.readFileSync(filepath, 'utf8').includes(newTitle)); 162 | 163 | yield app.httpRequest() 164 | .get('/render') 165 | .expect(200) 166 | .expect(res => { 167 | assert(res.text.includes(tag)); 168 | assert(!res.text.includes(newTitle)); 169 | }); 170 | }); 171 | }); 172 | }); 173 | -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/public/vue-ssr-client-manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "publicPath": "/public/", 3 | "all": [ 4 | "static/img/loading.gif", 5 | "static/js/app/app.js", 6 | "static/js/vendor.js", 7 | "../config/manifest.json" 8 | ], 9 | "initial": [ 10 | "static/js/vendor.js", 11 | "static/js/app/app.js" 12 | ], 13 | "async": [], 14 | "modules": { 15 | "11429732": [ 16 | 1, 17 | 0 18 | ], 19 | "13691194": [ 20 | 1, 21 | 0 22 | ], 23 | "27546011": [ 24 | 1, 25 | 0 26 | ], 27 | "38402662": [ 28 | 1, 29 | 0 30 | ], 31 | "48636851": [ 32 | 1, 33 | 0 34 | ], 35 | "65549040": [ 36 | 1, 37 | 0 38 | ], 39 | "bfa442d2": [ 40 | 1, 41 | 0 42 | ], 43 | "1ab1f3b0": [ 44 | 1, 45 | 0 46 | ], 47 | "3c22821b": [ 48 | 2 49 | ], 50 | "3f1e1228": [ 51 | 1, 52 | 0 53 | ], 54 | "70b35380": [ 55 | 1, 56 | 0 57 | ], 58 | "220a9980": [ 59 | 1, 60 | 0 61 | ], 62 | "f0c825d6": [ 63 | 1, 64 | 0 65 | ], 66 | "128eaf04": [ 67 | 1, 68 | 0 69 | ], 70 | "e799b80c": [ 71 | 1, 72 | 0 73 | ], 74 | "615d4207": [ 75 | 1, 76 | 0 77 | ], 78 | "5334bf2c": [ 79 | 1, 80 | 0 81 | ], 82 | "73694ade": [ 83 | 1, 84 | 0 85 | ], 86 | "100b7a81": [ 87 | 1, 88 | 0 89 | ], 90 | "689e16ad": [ 91 | 1, 92 | 0 93 | ], 94 | "82fb009e": [ 95 | 1, 96 | 0 97 | ], 98 | "241843cf": [ 99 | 1, 100 | 0 101 | ], 102 | "f90e0594": [ 103 | 1, 104 | 0 105 | ], 106 | "793967e9": [ 107 | 1, 108 | 0 109 | ], 110 | "1406a6f4": [ 111 | 1, 112 | 0 113 | ], 114 | "20d4ec69": [ 115 | 1, 116 | 0 117 | ], 118 | "238e6a45": [ 119 | 1, 120 | 0 121 | ], 122 | "825db838": [ 123 | 1, 124 | 0 125 | ], 126 | "3054aed0": [ 127 | 1, 128 | 0 129 | ], 130 | "4f8d7976": [ 131 | 1, 132 | 0 133 | ], 134 | "05003242": [ 135 | 1, 136 | 0 137 | ], 138 | "369043f4": [ 139 | 1, 140 | 0 141 | ], 142 | "463775ca": [ 143 | 1, 144 | 0 145 | ], 146 | "3a044cea": [ 147 | 1, 148 | 0 149 | ], 150 | "3f89e3bf": [ 151 | 1, 152 | 0 153 | ], 154 | "15d24ac2": [ 155 | 1, 156 | 0 157 | ], 158 | "1650ae88": [ 159 | 1, 160 | 0 161 | ], 162 | "68f162d2": [ 163 | 1, 164 | 0 165 | ], 166 | "5dcda212": [ 167 | 1, 168 | 0 169 | ], 170 | "e4437ca8": [ 171 | 1, 172 | 0 173 | ], 174 | "a6b3bd04": [ 175 | 1, 176 | 0 177 | ], 178 | "1d349e97": [ 179 | 1, 180 | 0 181 | ], 182 | "2cc8d6ce": [ 183 | 1, 184 | 0 185 | ], 186 | "d1974b8c": [ 187 | 1, 188 | 0 189 | ], 190 | "f9ddd5d0": [ 191 | 1, 192 | 0 193 | ], 194 | "26cba664": [ 195 | 1, 196 | 0 197 | ], 198 | "f49a4738": [ 199 | 1, 200 | 0 201 | ], 202 | "6b36d37e": [ 203 | 1, 204 | 0 205 | ], 206 | "3fa808ba": [ 207 | 1, 208 | 0 209 | ], 210 | "3c1e2a28": [ 211 | 1, 212 | 0 213 | ], 214 | "6675c39b": [ 215 | 1, 216 | 0 217 | ], 218 | "04832a1e": [ 219 | 1, 220 | 0 221 | ], 222 | "5408c298": [ 223 | 1, 224 | 0 225 | ], 226 | "0d2ce8b6": [ 227 | 1, 228 | 0 229 | ], 230 | "49b3c5b4": [ 231 | 1, 232 | 0 233 | ], 234 | "2bd9bb96": [ 235 | 1, 236 | 0 237 | ], 238 | "5b24ce74": [ 239 | 1, 240 | 0 241 | ], 242 | "c1d3ff3c": [ 243 | 1, 244 | 0 245 | ], 246 | "dd933590": [ 247 | 1, 248 | 0 249 | ], 250 | "28884cbe": [ 251 | 1, 252 | 0 253 | ], 254 | "f76eb194": [ 255 | 1, 256 | 0 257 | ], 258 | "b9b961dc": [ 259 | 1, 260 | 0 261 | ], 262 | "51f3cc2b": [ 263 | 1, 264 | 0 265 | ], 266 | "421661bc": [ 267 | 1, 268 | 0 269 | ], 270 | "2352cb78": [ 271 | 1, 272 | 0 273 | ], 274 | "5040a42c": [ 275 | 1, 276 | 0 277 | ], 278 | "2bded783": [ 279 | 1, 280 | 0 281 | ], 282 | "21a5414a": [ 283 | 1, 284 | 0 285 | ], 286 | "b28aca3e": [ 287 | 1, 288 | 0 289 | ], 290 | "5dcb5c37": [ 291 | 1, 292 | 0 293 | ], 294 | "e6a8c4ca": [ 295 | 1, 296 | 0 297 | ], 298 | "6131d495": [ 299 | 1, 300 | 0 301 | ], 302 | "7e05975e": [ 303 | 1, 304 | 0 305 | ], 306 | "65e8aa1a": [ 307 | 1, 308 | 0 309 | ], 310 | "7a48b7fa": [ 311 | 1, 312 | 0 313 | ], 314 | "529b3272": [ 315 | 1, 316 | 0 317 | ], 318 | "848ebc46": [ 319 | 1, 320 | 0 321 | ], 322 | "8b5e6058": [ 323 | 1, 324 | 0 325 | ], 326 | "dab26c42": [ 327 | 1, 328 | 0 329 | ], 330 | "cf782628": [ 331 | 1, 332 | 0 333 | ], 334 | "7931160b": [ 335 | 1, 336 | 0 337 | ], 338 | "02dfd774": [ 339 | 1, 340 | 0 341 | ], 342 | "7d4302f1": [ 343 | 1, 344 | 0 345 | ], 346 | "b3bc2d3c": [ 347 | 1, 348 | 0 349 | ], 350 | "b5891bd4": [ 351 | 1, 352 | 0 353 | ], 354 | "99a57c00": [ 355 | 1, 356 | 0 357 | ], 358 | "7dd2085b": [ 359 | 1, 360 | 0 361 | ], 362 | "71ebf9f3": [ 363 | 1, 364 | 0 365 | ], 366 | "0dcfe3f7": [ 367 | 1, 368 | 0 369 | ], 370 | "1e4e468e": [ 371 | 1, 372 | 0 373 | ], 374 | "4d5863b8": [ 375 | 1, 376 | 0 377 | ], 378 | "68a450e7": [ 379 | 1, 380 | 0 381 | ], 382 | "39f63576": [ 383 | 1, 384 | 0 385 | ], 386 | "1a0ca517": [ 387 | 1, 388 | 0 389 | ], 390 | "d1ca9f22": [ 391 | 1, 392 | 0 393 | ], 394 | "24c79ed2": [ 395 | 1, 396 | 0 397 | ], 398 | "7f398b90": [ 399 | 1, 400 | 0 401 | ], 402 | "a198e628": [ 403 | 1, 404 | 0 405 | ], 406 | "1e8819a6": [ 407 | 1, 408 | 0 409 | ], 410 | "3eac696c": [ 411 | 1, 412 | 0 413 | ], 414 | "06792fd4": [ 415 | 1, 416 | 0 417 | ], 418 | "4f3e7b40": [ 419 | 1, 420 | 0 421 | ], 422 | "1c880f40": [ 423 | 1, 424 | 0 425 | ], 426 | "86fe8aee": [ 427 | 1, 428 | 0 429 | ], 430 | "736a3241": [ 431 | 1, 432 | 0 433 | ], 434 | "0bc58326": [ 435 | 1, 436 | 0 437 | ], 438 | "72fc3c6e": [ 439 | 1, 440 | 0 441 | ], 442 | "5549ed5c": [ 443 | 1, 444 | 0 445 | ], 446 | "3a70d445": [ 447 | 1, 448 | 0 449 | ], 450 | "08dedc53": [ 451 | 1, 452 | 0 453 | ], 454 | "202cd4a8": [ 455 | 1, 456 | 0 457 | ], 458 | "64e63a9e": [ 459 | 1, 460 | 0 461 | ], 462 | "7a7a4506": [ 463 | 1, 464 | 0 465 | ], 466 | "f93149e6": [ 467 | 1, 468 | 0 469 | ], 470 | "62b8ddda": [ 471 | 1, 472 | 0 473 | ], 474 | "f72df5c4": [ 475 | 1, 476 | 0 477 | ], 478 | "7307174a": [ 479 | 1, 480 | 0 481 | ], 482 | "165aec8e": [ 483 | 1, 484 | 0 485 | ], 486 | "153f5e38": [ 487 | 1, 488 | 0 489 | ], 490 | "f0162238": [ 491 | 1, 492 | 0 493 | ], 494 | "26c13fb4": [ 495 | 1, 496 | 0 497 | ], 498 | "d0a9e922": [ 499 | 1, 500 | 0 501 | ], 502 | "7878273e": [ 503 | 1, 504 | 0 505 | ], 506 | "2bbb0d57": [ 507 | 1, 508 | 0 509 | ], 510 | "52a86cf6": [ 511 | 1, 512 | 0 513 | ], 514 | "370169ca": [ 515 | 1, 516 | 0 517 | ], 518 | "94ae16a8": [ 519 | 1, 520 | 0 521 | ], 522 | "b4745e0e": [ 523 | 1, 524 | 0 525 | ], 526 | "7b9b9ac8": [ 527 | 1, 528 | 0 529 | ], 530 | "2a2ecd08": [ 531 | 1, 532 | 0 533 | ], 534 | "ea5e8e80": [ 535 | 1, 536 | 0 537 | ], 538 | "3d162738": [ 539 | 1, 540 | 0 541 | ], 542 | "0074ee96": [ 543 | 1, 544 | 0 545 | ], 546 | "633f74ba": [ 547 | 1, 548 | 0 549 | ], 550 | "2a8e6116": [ 551 | 1, 552 | 0 553 | ], 554 | "178365e4": [ 555 | 1, 556 | 0 557 | ], 558 | "9ad06daa": [ 559 | 1, 560 | 0 561 | ], 562 | "0a6e18c8": [ 563 | 1, 564 | 0 565 | ], 566 | "b94ba6ea": [ 567 | 1, 568 | 0 569 | ], 570 | "62ee917c": [ 571 | 1, 572 | 0 573 | ], 574 | "df290d66": [ 575 | 1, 576 | 0 577 | ], 578 | "40ba0b98": [ 579 | 1, 580 | 0 581 | ], 582 | "5f1fc47a": [ 583 | 1, 584 | 0 585 | ], 586 | "6745ed1a": [ 587 | 1, 588 | 0 589 | ], 590 | "a1adff2c": [ 591 | 1, 592 | 0 593 | ], 594 | "79e9b235": [ 595 | 1, 596 | 0 597 | ], 598 | "1296e6de": [ 599 | 1, 600 | 0 601 | ], 602 | "5cd3c182": [ 603 | 1, 604 | 0 605 | ], 606 | "50c45be4": [ 607 | 1, 608 | 0 609 | ], 610 | "77afc4ec": [ 611 | 1, 612 | 0 613 | ], 614 | "5dc6d081": [ 615 | 1, 616 | 0 617 | ], 618 | "56d1dce3": [ 619 | 1, 620 | 0 621 | ], 622 | "6d76542a": [ 623 | 1, 624 | 0 625 | ], 626 | "602e527e": [ 627 | 1, 628 | 0 629 | ], 630 | "3a0d5afa": [ 631 | 1, 632 | 0 633 | ], 634 | "00887de2": [ 635 | 1, 636 | 0 637 | ], 638 | "cd216ac8": [ 639 | 1, 640 | 0 641 | ], 642 | "78ddee03": [ 643 | 1, 644 | 0 645 | ], 646 | "c28a449c": [ 647 | 1, 648 | 0 649 | ], 650 | "08e379ba": [ 651 | 1, 652 | 0 653 | ], 654 | "7fdfb72c": [ 655 | 1, 656 | 0 657 | ], 658 | "277a6124": [ 659 | 1, 660 | 0 661 | ], 662 | "0977dd26": [ 663 | 1, 664 | 0 665 | ], 666 | "178d40ce": [ 667 | 1, 668 | 0 669 | ], 670 | "47661c1c": [ 671 | 1, 672 | 0 673 | ], 674 | "6d0ea864": [ 675 | 1, 676 | 0 677 | ], 678 | "8a04e922": [ 679 | 1, 680 | 0 681 | ], 682 | "236eb8a3": [ 683 | 1, 684 | 0 685 | ], 686 | "6f64c0ad": [ 687 | 1, 688 | 0 689 | ], 690 | "40ec6f59": [ 691 | 1, 692 | 0 693 | ], 694 | "e0e212b0": [ 695 | 1, 696 | 0 697 | ], 698 | "100d0dc5": [ 699 | 1, 700 | 0 701 | ], 702 | "72af43b3": [ 703 | 1, 704 | 0 705 | ], 706 | "041362c6": [ 707 | 1, 708 | 0 709 | ], 710 | "61f57bd4": [ 711 | 1, 712 | 0 713 | ], 714 | "c5b702a8": [ 715 | 1, 716 | 0 717 | ], 718 | "0f49700c": [ 719 | 1, 720 | 0 721 | ], 722 | "679298c5": [ 723 | 1, 724 | 0 725 | ], 726 | "3800a85e": [ 727 | 1, 728 | 0 729 | ], 730 | "5fbf0ad8": [ 731 | 1, 732 | 0 733 | ], 734 | "f77ff736": [ 735 | 1, 736 | 0 737 | ], 738 | "2f94822e": [ 739 | 1, 740 | 0 741 | ], 742 | "ac847056": [ 743 | 1, 744 | 0 745 | ], 746 | "52e063a3": [ 747 | 1, 748 | 0 749 | ], 750 | "3be60b4d": [ 751 | 1, 752 | 0 753 | ], 754 | "551ddd39": [ 755 | 1, 756 | 0 757 | ], 758 | "29e3edbf": [ 759 | 1, 760 | 0 761 | ], 762 | "1d08b63a": [ 763 | 1, 764 | 0 765 | ], 766 | "78e239bc": [ 767 | 1, 768 | 0 769 | ], 770 | "3cc5525f": [ 771 | 1, 772 | 0 773 | ], 774 | "6de01bcd": [ 775 | 1, 776 | 0 777 | ], 778 | "de0e4854": [ 779 | 1, 780 | 0 781 | ], 782 | "41aeaa19": [ 783 | 1, 784 | 0 785 | ], 786 | "7626dcfa": [ 787 | 1, 788 | 0 789 | ], 790 | "2ed97fda": [ 791 | 1, 792 | 0 793 | ], 794 | "792e5340": [ 795 | 1, 796 | 0 797 | ], 798 | "3b1015ea": [ 799 | 1, 800 | 0 801 | ], 802 | "ba732916": [ 803 | 1, 804 | 0 805 | ], 806 | "282eaf30": [ 807 | 1, 808 | 0 809 | ], 810 | "0edb8976": [ 811 | 1, 812 | 0 813 | ], 814 | "5c6d20a4": [ 815 | 1, 816 | 0 817 | ], 818 | "806390c2": [ 819 | 1, 820 | 0 821 | ], 822 | "112371bc": [ 823 | 1, 824 | 0 825 | ], 826 | "5819fcc8": [ 827 | 1, 828 | 0 829 | ], 830 | "43fd10ae": [ 831 | 1, 832 | 0 833 | ], 834 | "f30efabc": [ 835 | 1, 836 | 0 837 | ], 838 | "6e123930": [ 839 | 1, 840 | 0 841 | ], 842 | "717dc759": [ 843 | 1, 844 | 0 845 | ], 846 | "f82fc4ba": [ 847 | 1, 848 | 0 849 | ], 850 | "7ab7f16a": [ 851 | 1, 852 | 0 853 | ], 854 | "71e51dc2": [ 855 | 2 856 | ], 857 | "536aedb6": [ 858 | 1, 859 | 0 860 | ], 861 | "2afbfa51": [ 862 | 1, 863 | 0 864 | ], 865 | "56106ee9": [ 866 | 2 867 | ] 868 | } 869 | } -------------------------------------------------------------------------------- /test/fixtures/apps/view-vue-test/app/view/test.js: -------------------------------------------------------------------------------- 1 | module.exports = 2 | /******/ (function(modules) { // webpackBootstrap 3 | /******/ // The module cache 4 | /******/ var installedModules = {}; 5 | /******/ 6 | /******/ // The require function 7 | /******/ function __webpack_require__(moduleId) { 8 | /******/ 9 | /******/ // Check if module is in cache 10 | /******/ if(installedModules[moduleId]) { 11 | /******/ return installedModules[moduleId].exports; 12 | /******/ } 13 | /******/ // Create a new module (and put it into the cache) 14 | /******/ var module = installedModules[moduleId] = { 15 | /******/ i: moduleId, 16 | /******/ l: false, 17 | /******/ exports: {} 18 | /******/ }; 19 | /******/ 20 | /******/ // Execute the module function 21 | /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); 22 | /******/ 23 | /******/ // Flag the module as loaded 24 | /******/ module.l = true; 25 | /******/ 26 | /******/ // Return the exports of the module 27 | /******/ return module.exports; 28 | /******/ } 29 | /******/ 30 | /******/ 31 | /******/ // expose the modules object (__webpack_modules__) 32 | /******/ __webpack_require__.m = modules; 33 | /******/ 34 | /******/ // expose the module cache 35 | /******/ __webpack_require__.c = installedModules; 36 | /******/ 37 | /******/ // identity function for calling harmony imports with the correct context 38 | /******/ __webpack_require__.i = function(value) { return value; }; 39 | /******/ 40 | /******/ // define getter function for harmony exports 41 | /******/ __webpack_require__.d = function(exports, name, getter) { 42 | /******/ if(!__webpack_require__.o(exports, name)) { 43 | /******/ Object.defineProperty(exports, name, { 44 | /******/ configurable: false, 45 | /******/ enumerable: true, 46 | /******/ get: getter 47 | /******/ }); 48 | /******/ } 49 | /******/ }; 50 | /******/ 51 | /******/ // getDefaultExport function for compatibility with non-harmony modules 52 | /******/ __webpack_require__.n = function(module) { 53 | /******/ var getter = module && module.__esModule ? 54 | /******/ function getDefault() { return module['default']; } : 55 | /******/ function getModuleExports() { return module; }; 56 | /******/ __webpack_require__.d(getter, 'a', getter); 57 | /******/ return getter; 58 | /******/ }; 59 | /******/ 60 | /******/ // Object.prototype.hasOwnProperty.call 61 | /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; 62 | /******/ 63 | /******/ // __webpack_public_path__ 64 | /******/ __webpack_require__.p = "http://100.84.249.170:8090/public/"; 65 | /******/ 66 | /******/ // Load entry module and return exports 67 | /******/ return __webpack_require__(__webpack_require__.s = 172); 68 | /******/ }) 69 | /************************************************************************/ 70 | /******/ ([ 71 | /* 0 */ 72 | /***/ (function(module, exports, __webpack_require__) { 73 | 74 | var store = __webpack_require__(32)('wks') 75 | , uid = __webpack_require__(24) 76 | , Symbol = __webpack_require__(1).Symbol 77 | , USE_SYMBOL = typeof Symbol == 'function'; 78 | 79 | var $exports = module.exports = function(name){ 80 | return store[name] || (store[name] = 81 | USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); 82 | }; 83 | 84 | $exports.store = store; 85 | 86 | /***/ }), 87 | /* 1 */ 88 | /***/ (function(module, exports) { 89 | 90 | // https://github.com/zloirock/core-js/issues/86#issuecomment-115759028 91 | var global = module.exports = typeof window != 'undefined' && window.Math == Math 92 | ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')(); 93 | if(typeof __g == 'number')__g = global; // eslint-disable-line no-undef 94 | 95 | /***/ }), 96 | /* 2 */ 97 | /***/ (function(module, exports) { 98 | 99 | var core = module.exports = {version: '2.4.0'}; 100 | if(typeof __e == 'number')__e = core; // eslint-disable-line no-undef 101 | 102 | /***/ }), 103 | /* 3 */ 104 | /***/ (function(module, exports, __webpack_require__) { 105 | 106 | // Thank's IE8 for his funny defineProperty 107 | module.exports = !__webpack_require__(10)(function(){ 108 | return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7; 109 | }); 110 | 111 | /***/ }), 112 | /* 4 */ 113 | /***/ (function(module, exports, __webpack_require__) { 114 | 115 | var anObject = __webpack_require__(5) 116 | , IE8_DOM_DEFINE = __webpack_require__(40) 117 | , toPrimitive = __webpack_require__(34) 118 | , dP = Object.defineProperty; 119 | 120 | exports.f = __webpack_require__(3) ? Object.defineProperty : function defineProperty(O, P, Attributes){ 121 | anObject(O); 122 | P = toPrimitive(P, true); 123 | anObject(Attributes); 124 | if(IE8_DOM_DEFINE)try { 125 | return dP(O, P, Attributes); 126 | } catch(e){ /* empty */ } 127 | if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!'); 128 | if('value' in Attributes)O[P] = Attributes.value; 129 | return O; 130 | }; 131 | 132 | /***/ }), 133 | /* 5 */ 134 | /***/ (function(module, exports, __webpack_require__) { 135 | 136 | var isObject = __webpack_require__(11); 137 | module.exports = function(it){ 138 | if(!isObject(it))throw TypeError(it + ' is not an object!'); 139 | return it; 140 | }; 141 | 142 | /***/ }), 143 | /* 6 */ 144 | /***/ (function(module, exports) { 145 | 146 | var hasOwnProperty = {}.hasOwnProperty; 147 | module.exports = function(it, key){ 148 | return hasOwnProperty.call(it, key); 149 | }; 150 | 151 | /***/ }), 152 | /* 7 */ 153 | /***/ (function(module, exports, __webpack_require__) { 154 | 155 | var dP = __webpack_require__(4) 156 | , createDesc = __webpack_require__(22); 157 | module.exports = __webpack_require__(3) ? function(object, key, value){ 158 | return dP.f(object, key, createDesc(1, value)); 159 | } : function(object, key, value){ 160 | object[key] = value; 161 | return object; 162 | }; 163 | 164 | /***/ }), 165 | /* 8 */ 166 | /***/ (function(module, exports, __webpack_require__) { 167 | 168 | // to indexed object, toObject with fallback for non-array-like ES3 strings 169 | var IObject = __webpack_require__(41) 170 | , defined = __webpack_require__(27); 171 | module.exports = function(it){ 172 | return IObject(defined(it)); 173 | }; 174 | 175 | /***/ }), 176 | /* 9 */ 177 | /***/ (function(module, exports) { 178 | 179 | var toString = {}.toString; 180 | 181 | module.exports = function(it){ 182 | return toString.call(it).slice(8, -1); 183 | }; 184 | 185 | /***/ }), 186 | /* 10 */ 187 | /***/ (function(module, exports) { 188 | 189 | module.exports = function(exec){ 190 | try { 191 | return !!exec(); 192 | } catch(e){ 193 | return true; 194 | } 195 | }; 196 | 197 | /***/ }), 198 | /* 11 */ 199 | /***/ (function(module, exports) { 200 | 201 | module.exports = function(it){ 202 | return typeof it === 'object' ? it !== null : typeof it === 'function'; 203 | }; 204 | 205 | /***/ }), 206 | /* 12 */ 207 | /***/ (function(module, exports) { 208 | 209 | module.exports = {}; 210 | 211 | /***/ }), 212 | /* 13 */ 213 | /***/ (function(module, exports, __webpack_require__) { 214 | 215 | // 19.1.2.14 / 15.2.3.14 Object.keys(O) 216 | var $keys = __webpack_require__(45) 217 | , enumBugKeys = __webpack_require__(29); 218 | 219 | module.exports = Object.keys || function keys(O){ 220 | return $keys(O, enumBugKeys); 221 | }; 222 | 223 | /***/ }), 224 | /* 14 */ 225 | /***/ (function(module, exports) { 226 | 227 | /* 228 | MIT License http://www.opensource.org/licenses/mit-license.php 229 | Author Tobias Koppers @sokra 230 | */ 231 | // css base code, injected by the css-loader 232 | module.exports = function(useSourceMap) { 233 | var list = []; 234 | 235 | // return the list of modules as css string 236 | list.toString = function toString() { 237 | return this.map(function (item) { 238 | var content = cssWithMappingToString(item, useSourceMap); 239 | if(item[2]) { 240 | return "@media " + item[2] + "{" + content + "}"; 241 | } else { 242 | return content; 243 | } 244 | }).join(""); 245 | }; 246 | 247 | // import a list of modules into the list 248 | list.i = function(modules, mediaQuery) { 249 | if(typeof modules === "string") 250 | modules = [[null, modules, ""]]; 251 | var alreadyImportedModules = {}; 252 | for(var i = 0; i < this.length; i++) { 253 | var id = this[i][0]; 254 | if(typeof id === "number") 255 | alreadyImportedModules[id] = true; 256 | } 257 | for(i = 0; i < modules.length; i++) { 258 | var item = modules[i]; 259 | // skip already imported module 260 | // this implementation is not 100% perfect for weird media query combinations 261 | // when a module is imported multiple times with different media queries. 262 | // I hope this will never occur (Hey this way we have smaller bundles) 263 | if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { 264 | if(mediaQuery && !item[2]) { 265 | item[2] = mediaQuery; 266 | } else if(mediaQuery) { 267 | item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; 268 | } 269 | list.push(item); 270 | } 271 | } 272 | }; 273 | return list; 274 | }; 275 | 276 | function cssWithMappingToString(item, useSourceMap) { 277 | var content = item[1] || ''; 278 | var cssMapping = item[3]; 279 | if (!cssMapping) { 280 | return content; 281 | } 282 | 283 | if (useSourceMap) { 284 | var sourceMapping = toComment(cssMapping); 285 | var sourceURLs = cssMapping.sources.map(function (source) { 286 | return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' 287 | }); 288 | 289 | return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); 290 | } 291 | 292 | return [content].join('\n'); 293 | } 294 | 295 | // Adapted from convert-source-map (MIT) 296 | function toComment(sourceMap) { 297 | var base64 = new Buffer(JSON.stringify(sourceMap)).toString('base64'); 298 | var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; 299 | 300 | return '/*# ' + data + ' */'; 301 | } 302 | 303 | 304 | /***/ }), 305 | /* 15 */ 306 | /***/ (function(module, exports, __webpack_require__) { 307 | 308 | var listToStyles = __webpack_require__(105) 309 | 310 | module.exports = function (parentId, list, isProduction) { 311 | if (typeof __VUE_SSR_CONTEXT__ !== 'undefined') { 312 | var context = __VUE_SSR_CONTEXT__ 313 | var styles = context._styles 314 | 315 | if (!styles) { 316 | styles = context._styles = {} 317 | Object.defineProperty(context, 'styles', { 318 | enumberable: true, 319 | get : function() { 320 | return ( 321 | context._renderedStyles || 322 | (context._renderedStyles = renderStyles(styles)) 323 | ) 324 | } 325 | }) 326 | } 327 | 328 | list = listToStyles(parentId, list) 329 | if (isProduction) { 330 | addStyleProd(styles, list) 331 | } else { 332 | addStyleDev(styles, list) 333 | } 334 | } 335 | } 336 | 337 | // In production, render as few style tags as possible. 338 | // (mostly because IE9 has a limit on number of style tags) 339 | function addStyleProd (styles, list) { 340 | for (var i = 0; i < list.length; i++) { 341 | var parts = list[i].parts 342 | for (var j = 0; j < parts.length; j++) { 343 | var part = parts[j] 344 | // group style tags by media types. 345 | var id = part.media || 'default' 346 | var style = styles[id] 347 | if (style) { 348 | style.ids.push(part.id) 349 | style.css += '\n' + part.css 350 | } else { 351 | styles[id] = { 352 | ids: [part.id], 353 | css: part.css, 354 | media: part.media 355 | } 356 | } 357 | } 358 | } 359 | } 360 | 361 | // In dev we use individual style tag for each module for hot-reload 362 | // and source maps. 363 | function addStyleDev (styles, list) { 364 | for (var i = 0; i < list.length; i++) { 365 | var parts = list[i].parts 366 | for (var j = 0; j < parts.length; j++) { 367 | var part = parts[j] 368 | styles[part.id] = { 369 | ids: [part.id], 370 | css: part.css, 371 | media: part.media 372 | } 373 | } 374 | } 375 | } 376 | 377 | function renderStyles (styles) { 378 | var css = '' 379 | for (var key in styles) { 380 | var style = styles[key] 381 | css += '' 384 | } 385 | return css 386 | } 387 | 388 | 389 | /***/ }), 390 | /* 16 */ 391 | /***/ (function(module, exports) { 392 | 393 | // this module is a runtime utility for cleaner component module output and will 394 | // be included in the final webpack user bundle 395 | 396 | module.exports = function normalizeComponent ( 397 | rawScriptExports, 398 | compiledTemplate, 399 | scopeId, 400 | cssModules 401 | ) { 402 | var esModule 403 | var scriptExports = rawScriptExports = rawScriptExports || {} 404 | 405 | // ES6 modules interop 406 | var type = typeof rawScriptExports.default 407 | if (type === 'object' || type === 'function') { 408 | esModule = rawScriptExports 409 | scriptExports = rawScriptExports.default 410 | } 411 | 412 | // Vue.extend constructor export interop 413 | var options = typeof scriptExports === 'function' 414 | ? scriptExports.options 415 | : scriptExports 416 | 417 | // render functions 418 | if (compiledTemplate) { 419 | options.render = compiledTemplate.render 420 | options.staticRenderFns = compiledTemplate.staticRenderFns 421 | } 422 | 423 | // scopedId 424 | if (scopeId) { 425 | options._scopeId = scopeId 426 | } 427 | 428 | // inject cssModules 429 | if (cssModules) { 430 | var computed = Object.create(options.computed || null) 431 | Object.keys(cssModules).forEach(function (key) { 432 | var module = cssModules[key] 433 | computed[key] = function () { return module } 434 | }) 435 | options.computed = computed 436 | } 437 | 438 | return { 439 | esModule: esModule, 440 | exports: scriptExports, 441 | options: options 442 | } 443 | } 444 | 445 | 446 | /***/ }), 447 | /* 17 */ 448 | /***/ (function(module, exports, __webpack_require__) { 449 | 450 | var global = __webpack_require__(1) 451 | , core = __webpack_require__(2) 452 | , ctx = __webpack_require__(19) 453 | , hide = __webpack_require__(7) 454 | , PROTOTYPE = 'prototype'; 455 | 456 | var $export = function(type, name, source){ 457 | var IS_FORCED = type & $export.F 458 | , IS_GLOBAL = type & $export.G 459 | , IS_STATIC = type & $export.S 460 | , IS_PROTO = type & $export.P 461 | , IS_BIND = type & $export.B 462 | , IS_WRAP = type & $export.W 463 | , exports = IS_GLOBAL ? core : core[name] || (core[name] = {}) 464 | , expProto = exports[PROTOTYPE] 465 | , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE] 466 | , key, own, out; 467 | if(IS_GLOBAL)source = name; 468 | for(key in source){ 469 | // contains in native 470 | own = !IS_FORCED && target && target[key] !== undefined; 471 | if(own && key in exports)continue; 472 | // export native or passed 473 | out = own ? target[key] : source[key]; 474 | // prevent global pollution for namespaces 475 | exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key] 476 | // bind timers to global for call from export context 477 | : IS_BIND && own ? ctx(out, global) 478 | // wrap global constructors for prevent change them in library 479 | : IS_WRAP && target[key] == out ? (function(C){ 480 | var F = function(a, b, c){ 481 | if(this instanceof C){ 482 | switch(arguments.length){ 483 | case 0: return new C; 484 | case 1: return new C(a); 485 | case 2: return new C(a, b); 486 | } return new C(a, b, c); 487 | } return C.apply(this, arguments); 488 | }; 489 | F[PROTOTYPE] = C[PROTOTYPE]; 490 | return F; 491 | // make static versions for prototype methods 492 | })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out; 493 | // export proto methods to core.%CONSTRUCTOR%.methods.%NAME% 494 | if(IS_PROTO){ 495 | (exports.virtual || (exports.virtual = {}))[key] = out; 496 | // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME% 497 | if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out); 498 | } 499 | } 500 | }; 501 | // type bitmap 502 | $export.F = 1; // forced 503 | $export.G = 2; // global 504 | $export.S = 4; // static 505 | $export.P = 8; // proto 506 | $export.B = 16; // bind 507 | $export.W = 32; // wrap 508 | $export.U = 64; // safe 509 | $export.R = 128; // real proto method for `library` 510 | module.exports = $export; 511 | 512 | /***/ }), 513 | /* 18 */ 514 | /***/ (function(module, exports) { 515 | 516 | (function(exports) { 517 | exports.noop = function(){}; 518 | })(typeof module === 'object' && typeof module.exports === 'object' ? module.exports : window); 519 | 520 | 521 | /***/ }), 522 | /* 19 */ 523 | /***/ (function(module, exports, __webpack_require__) { 524 | 525 | // optional / simple context binding 526 | var aFunction = __webpack_require__(26); 527 | module.exports = function(fn, that, length){ 528 | aFunction(fn); 529 | if(that === undefined)return fn; 530 | switch(length){ 531 | case 1: return function(a){ 532 | return fn.call(that, a); 533 | }; 534 | case 2: return function(a, b){ 535 | return fn.call(that, a, b); 536 | }; 537 | case 3: return function(a, b, c){ 538 | return fn.call(that, a, b, c); 539 | }; 540 | } 541 | return function(/* ...args */){ 542 | return fn.apply(that, arguments); 543 | }; 544 | }; 545 | 546 | /***/ }), 547 | /* 20 */ 548 | /***/ (function(module, exports) { 549 | 550 | module.exports = true; 551 | 552 | /***/ }), 553 | /* 21 */ 554 | /***/ (function(module, exports) { 555 | 556 | exports.f = {}.propertyIsEnumerable; 557 | 558 | /***/ }), 559 | /* 22 */ 560 | /***/ (function(module, exports) { 561 | 562 | module.exports = function(bitmap, value){ 563 | return { 564 | enumerable : !(bitmap & 1), 565 | configurable: !(bitmap & 2), 566 | writable : !(bitmap & 4), 567 | value : value 568 | }; 569 | }; 570 | 571 | /***/ }), 572 | /* 23 */ 573 | /***/ (function(module, exports, __webpack_require__) { 574 | 575 | var def = __webpack_require__(4).f 576 | , has = __webpack_require__(6) 577 | , TAG = __webpack_require__(0)('toStringTag'); 578 | 579 | module.exports = function(it, tag, stat){ 580 | if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag}); 581 | }; 582 | 583 | /***/ }), 584 | /* 24 */ 585 | /***/ (function(module, exports) { 586 | 587 | var id = 0 588 | , px = Math.random(); 589 | module.exports = function(key){ 590 | return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36)); 591 | }; 592 | 593 | /***/ }), 594 | /* 25 */ 595 | /***/ (function(module, exports) { 596 | 597 | module.exports = require("vue"); 598 | 599 | /***/ }), 600 | /* 26 */ 601 | /***/ (function(module, exports) { 602 | 603 | module.exports = function(it){ 604 | if(typeof it != 'function')throw TypeError(it + ' is not a function!'); 605 | return it; 606 | }; 607 | 608 | /***/ }), 609 | /* 27 */ 610 | /***/ (function(module, exports) { 611 | 612 | // 7.2.1 RequireObjectCoercible(argument) 613 | module.exports = function(it){ 614 | if(it == undefined)throw TypeError("Can't call method on " + it); 615 | return it; 616 | }; 617 | 618 | /***/ }), 619 | /* 28 */ 620 | /***/ (function(module, exports, __webpack_require__) { 621 | 622 | var isObject = __webpack_require__(11) 623 | , document = __webpack_require__(1).document 624 | // in old IE typeof document.createElement is 'object' 625 | , is = isObject(document) && isObject(document.createElement); 626 | module.exports = function(it){ 627 | return is ? document.createElement(it) : {}; 628 | }; 629 | 630 | /***/ }), 631 | /* 29 */ 632 | /***/ (function(module, exports) { 633 | 634 | // IE 8- don't enum bug keys 635 | module.exports = ( 636 | 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf' 637 | ).split(','); 638 | 639 | /***/ }), 640 | /* 30 */ 641 | /***/ (function(module, exports) { 642 | 643 | exports.f = Object.getOwnPropertySymbols; 644 | 645 | /***/ }), 646 | /* 31 */ 647 | /***/ (function(module, exports, __webpack_require__) { 648 | 649 | var shared = __webpack_require__(32)('keys') 650 | , uid = __webpack_require__(24); 651 | module.exports = function(key){ 652 | return shared[key] || (shared[key] = uid(key)); 653 | }; 654 | 655 | /***/ }), 656 | /* 32 */ 657 | /***/ (function(module, exports, __webpack_require__) { 658 | 659 | var global = __webpack_require__(1) 660 | , SHARED = '__core-js_shared__' 661 | , store = global[SHARED] || (global[SHARED] = {}); 662 | module.exports = function(key){ 663 | return store[key] || (store[key] = {}); 664 | }; 665 | 666 | /***/ }), 667 | /* 33 */ 668 | /***/ (function(module, exports) { 669 | 670 | // 7.1.4 ToInteger 671 | var ceil = Math.ceil 672 | , floor = Math.floor; 673 | module.exports = function(it){ 674 | return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it); 675 | }; 676 | 677 | /***/ }), 678 | /* 34 */ 679 | /***/ (function(module, exports, __webpack_require__) { 680 | 681 | // 7.1.1 ToPrimitive(input [, PreferredType]) 682 | var isObject = __webpack_require__(11); 683 | // instead of the ES6 spec version, we didn't implement @@toPrimitive case 684 | // and the second argument - flag - preferred type is a string 685 | module.exports = function(it, S){ 686 | if(!isObject(it))return it; 687 | var fn, val; 688 | if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; 689 | if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val; 690 | if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val; 691 | throw TypeError("Can't convert object to primitive value"); 692 | }; 693 | 694 | /***/ }), 695 | /* 35 */ 696 | /***/ (function(module, exports, __webpack_require__) { 697 | 698 | var global = __webpack_require__(1) 699 | , core = __webpack_require__(2) 700 | , LIBRARY = __webpack_require__(20) 701 | , wksExt = __webpack_require__(36) 702 | , defineProperty = __webpack_require__(4).f; 703 | module.exports = function(name){ 704 | var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {}); 705 | if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)}); 706 | }; 707 | 708 | /***/ }), 709 | /* 36 */ 710 | /***/ (function(module, exports, __webpack_require__) { 711 | 712 | exports.f = __webpack_require__(0); 713 | 714 | /***/ }), 715 | /* 37 */ 716 | /***/ (function(module, exports, __webpack_require__) { 717 | 718 | "use strict"; 719 | 720 | 721 | exports.__esModule = true; 722 | 723 | var _iterator = __webpack_require__(62); 724 | 725 | var _iterator2 = _interopRequireDefault(_iterator); 726 | 727 | var _symbol = __webpack_require__(61); 728 | 729 | var _symbol2 = _interopRequireDefault(_symbol); 730 | 731 | var _typeof = typeof _symbol2.default === "function" && typeof _iterator2.default === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj; }; 732 | 733 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 734 | 735 | exports.default = typeof _symbol2.default === "function" && _typeof(_iterator2.default) === "symbol" ? function (obj) { 736 | return typeof obj === "undefined" ? "undefined" : _typeof(obj); 737 | } : function (obj) { 738 | return obj && typeof _symbol2.default === "function" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? "symbol" : typeof obj === "undefined" ? "undefined" : _typeof(obj); 739 | }; 740 | 741 | /***/ }), 742 | /* 38 */ 743 | /***/ (function(module, exports, __webpack_require__) { 744 | 745 | // getting tag from 19.1.3.6 Object.prototype.toString() 746 | var cof = __webpack_require__(9) 747 | , TAG = __webpack_require__(0)('toStringTag') 748 | // ES3 wrong here 749 | , ARG = cof(function(){ return arguments; }()) == 'Arguments'; 750 | 751 | // fallback for IE11 Script Access Denied error 752 | var tryGet = function(it, key){ 753 | try { 754 | return it[key]; 755 | } catch(e){ /* empty */ } 756 | }; 757 | 758 | module.exports = function(it){ 759 | var O, T, B; 760 | return it === undefined ? 'Undefined' : it === null ? 'Null' 761 | // @@toStringTag case 762 | : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T 763 | // builtinTag case 764 | : ARG ? cof(O) 765 | // ES3 arguments fallback 766 | : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; 767 | }; 768 | 769 | /***/ }), 770 | /* 39 */ 771 | /***/ (function(module, exports, __webpack_require__) { 772 | 773 | module.exports = __webpack_require__(1).document && document.documentElement; 774 | 775 | /***/ }), 776 | /* 40 */ 777 | /***/ (function(module, exports, __webpack_require__) { 778 | 779 | module.exports = !__webpack_require__(3) && !__webpack_require__(10)(function(){ 780 | return Object.defineProperty(__webpack_require__(28)('div'), 'a', {get: function(){ return 7; }}).a != 7; 781 | }); 782 | 783 | /***/ }), 784 | /* 41 */ 785 | /***/ (function(module, exports, __webpack_require__) { 786 | 787 | // fallback for non-array-like ES3 and non-enumerable old V8 strings 788 | var cof = __webpack_require__(9); 789 | module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ 790 | return cof(it) == 'String' ? it.split('') : Object(it); 791 | }; 792 | 793 | /***/ }), 794 | /* 42 */ 795 | /***/ (function(module, exports, __webpack_require__) { 796 | 797 | "use strict"; 798 | 799 | var LIBRARY = __webpack_require__(20) 800 | , $export = __webpack_require__(17) 801 | , redefine = __webpack_require__(46) 802 | , hide = __webpack_require__(7) 803 | , has = __webpack_require__(6) 804 | , Iterators = __webpack_require__(12) 805 | , $iterCreate = __webpack_require__(76) 806 | , setToStringTag = __webpack_require__(23) 807 | , getPrototypeOf = __webpack_require__(86) 808 | , ITERATOR = __webpack_require__(0)('iterator') 809 | , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next` 810 | , FF_ITERATOR = '@@iterator' 811 | , KEYS = 'keys' 812 | , VALUES = 'values'; 813 | 814 | var returnThis = function(){ return this; }; 815 | 816 | module.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){ 817 | $iterCreate(Constructor, NAME, next); 818 | var getMethod = function(kind){ 819 | if(!BUGGY && kind in proto)return proto[kind]; 820 | switch(kind){ 821 | case KEYS: return function keys(){ return new Constructor(this, kind); }; 822 | case VALUES: return function values(){ return new Constructor(this, kind); }; 823 | } return function entries(){ return new Constructor(this, kind); }; 824 | }; 825 | var TAG = NAME + ' Iterator' 826 | , DEF_VALUES = DEFAULT == VALUES 827 | , VALUES_BUG = false 828 | , proto = Base.prototype 829 | , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT] 830 | , $default = $native || getMethod(DEFAULT) 831 | , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined 832 | , $anyNative = NAME == 'Array' ? proto.entries || $native : $native 833 | , methods, key, IteratorPrototype; 834 | // Fix native 835 | if($anyNative){ 836 | IteratorPrototype = getPrototypeOf($anyNative.call(new Base)); 837 | if(IteratorPrototype !== Object.prototype){ 838 | // Set @@toStringTag to native iterators 839 | setToStringTag(IteratorPrototype, TAG, true); 840 | // fix for some old engines 841 | if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis); 842 | } 843 | } 844 | // fix Array#{values, @@iterator}.name in V8 / FF 845 | if(DEF_VALUES && $native && $native.name !== VALUES){ 846 | VALUES_BUG = true; 847 | $default = function values(){ return $native.call(this); }; 848 | } 849 | // Define iterator 850 | if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){ 851 | hide(proto, ITERATOR, $default); 852 | } 853 | // Plug for library 854 | Iterators[NAME] = $default; 855 | Iterators[TAG] = returnThis; 856 | if(DEFAULT){ 857 | methods = { 858 | values: DEF_VALUES ? $default : getMethod(VALUES), 859 | keys: IS_SET ? $default : getMethod(KEYS), 860 | entries: $entries 861 | }; 862 | if(FORCED)for(key in methods){ 863 | if(!(key in proto))redefine(proto, key, methods[key]); 864 | } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); 865 | } 866 | return methods; 867 | }; 868 | 869 | /***/ }), 870 | /* 43 */ 871 | /***/ (function(module, exports, __webpack_require__) { 872 | 873 | // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) 874 | var anObject = __webpack_require__(5) 875 | , dPs = __webpack_require__(83) 876 | , enumBugKeys = __webpack_require__(29) 877 | , IE_PROTO = __webpack_require__(31)('IE_PROTO') 878 | , Empty = function(){ /* empty */ } 879 | , PROTOTYPE = 'prototype'; 880 | 881 | // Create object with fake `null` prototype: use iframe Object with cleared prototype 882 | var createDict = function(){ 883 | // Thrash, waste and sodomy: IE GC bug 884 | var iframe = __webpack_require__(28)('iframe') 885 | , i = enumBugKeys.length 886 | , lt = '<' 887 | , gt = '>' 888 | , iframeDocument; 889 | iframe.style.display = 'none'; 890 | __webpack_require__(39).appendChild(iframe); 891 | iframe.src = 'javascript:'; // eslint-disable-line no-script-url 892 | // createDict = iframe.contentWindow.Object; 893 | // html.removeChild(iframe); 894 | iframeDocument = iframe.contentWindow.document; 895 | iframeDocument.open(); 896 | iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); 897 | iframeDocument.close(); 898 | createDict = iframeDocument.F; 899 | while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]]; 900 | return createDict(); 901 | }; 902 | 903 | module.exports = Object.create || function create(O, Properties){ 904 | var result; 905 | if(O !== null){ 906 | Empty[PROTOTYPE] = anObject(O); 907 | result = new Empty; 908 | Empty[PROTOTYPE] = null; 909 | // add "__proto__" for Object.getPrototypeOf polyfill 910 | result[IE_PROTO] = O; 911 | } else result = createDict(); 912 | return Properties === undefined ? result : dPs(result, Properties); 913 | }; 914 | 915 | 916 | /***/ }), 917 | /* 44 */ 918 | /***/ (function(module, exports, __webpack_require__) { 919 | 920 | // 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O) 921 | var $keys = __webpack_require__(45) 922 | , hiddenKeys = __webpack_require__(29).concat('length', 'prototype'); 923 | 924 | exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){ 925 | return $keys(O, hiddenKeys); 926 | }; 927 | 928 | /***/ }), 929 | /* 45 */ 930 | /***/ (function(module, exports, __webpack_require__) { 931 | 932 | var has = __webpack_require__(6) 933 | , toIObject = __webpack_require__(8) 934 | , arrayIndexOf = __webpack_require__(69)(false) 935 | , IE_PROTO = __webpack_require__(31)('IE_PROTO'); 936 | 937 | module.exports = function(object, names){ 938 | var O = toIObject(object) 939 | , i = 0 940 | , result = [] 941 | , key; 942 | for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key); 943 | // Don't enum bug & hidden keys 944 | while(names.length > i)if(has(O, key = names[i++])){ 945 | ~arrayIndexOf(result, key) || result.push(key); 946 | } 947 | return result; 948 | }; 949 | 950 | /***/ }), 951 | /* 46 */ 952 | /***/ (function(module, exports, __webpack_require__) { 953 | 954 | module.exports = __webpack_require__(7); 955 | 956 | /***/ }), 957 | /* 47 */ 958 | /***/ (function(module, exports, __webpack_require__) { 959 | 960 | var ctx = __webpack_require__(19) 961 | , invoke = __webpack_require__(72) 962 | , html = __webpack_require__(39) 963 | , cel = __webpack_require__(28) 964 | , global = __webpack_require__(1) 965 | , process = global.process 966 | , setTask = global.setImmediate 967 | , clearTask = global.clearImmediate 968 | , MessageChannel = global.MessageChannel 969 | , counter = 0 970 | , queue = {} 971 | , ONREADYSTATECHANGE = 'onreadystatechange' 972 | , defer, channel, port; 973 | var run = function(){ 974 | var id = +this; 975 | if(queue.hasOwnProperty(id)){ 976 | var fn = queue[id]; 977 | delete queue[id]; 978 | fn(); 979 | } 980 | }; 981 | var listener = function(event){ 982 | run.call(event.data); 983 | }; 984 | // Node.js 0.9+ & IE10+ has setImmediate, otherwise: 985 | if(!setTask || !clearTask){ 986 | setTask = function setImmediate(fn){ 987 | var args = [], i = 1; 988 | while(arguments.length > i)args.push(arguments[i++]); 989 | queue[++counter] = function(){ 990 | invoke(typeof fn == 'function' ? fn : Function(fn), args); 991 | }; 992 | defer(counter); 993 | return counter; 994 | }; 995 | clearTask = function clearImmediate(id){ 996 | delete queue[id]; 997 | }; 998 | // Node.js 0.8- 999 | if(__webpack_require__(9)(process) == 'process'){ 1000 | defer = function(id){ 1001 | process.nextTick(ctx(run, id, 1)); 1002 | }; 1003 | // Browsers with MessageChannel, includes WebWorkers 1004 | } else if(MessageChannel){ 1005 | channel = new MessageChannel; 1006 | port = channel.port2; 1007 | channel.port1.onmessage = listener; 1008 | defer = ctx(port.postMessage, port, 1); 1009 | // Browsers with postMessage, skip WebWorkers 1010 | // IE8 has postMessage, but it's sync & typeof its postMessage is 'object' 1011 | } else if(global.addEventListener && typeof postMessage == 'function' && !global.importScripts){ 1012 | defer = function(id){ 1013 | global.postMessage(id + '', '*'); 1014 | }; 1015 | global.addEventListener('message', listener, false); 1016 | // IE8- 1017 | } else if(ONREADYSTATECHANGE in cel('script')){ 1018 | defer = function(id){ 1019 | html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function(){ 1020 | html.removeChild(this); 1021 | run.call(id); 1022 | }; 1023 | }; 1024 | // Rest old browsers 1025 | } else { 1026 | defer = function(id){ 1027 | setTimeout(ctx(run, id, 1), 0); 1028 | }; 1029 | } 1030 | } 1031 | module.exports = { 1032 | set: setTask, 1033 | clear: clearTask 1034 | }; 1035 | 1036 | /***/ }), 1037 | /* 48 */ 1038 | /***/ (function(module, exports, __webpack_require__) { 1039 | 1040 | // 7.1.15 ToLength 1041 | var toInteger = __webpack_require__(33) 1042 | , min = Math.min; 1043 | module.exports = function(it){ 1044 | return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991 1045 | }; 1046 | 1047 | /***/ }), 1048 | /* 49 */ 1049 | /***/ (function(module, exports, __webpack_require__) { 1050 | 1051 | // 7.1.13 ToObject(argument) 1052 | var defined = __webpack_require__(27); 1053 | module.exports = function(it){ 1054 | return Object(defined(it)); 1055 | }; 1056 | 1057 | /***/ }), 1058 | /* 50 */ 1059 | /***/ (function(module, exports) { 1060 | 1061 | 1062 | 1063 | /***/ }), 1064 | /* 51 */ 1065 | /***/ (function(module, exports, __webpack_require__) { 1066 | 1067 | "use strict"; 1068 | 1069 | var $at = __webpack_require__(90)(true); 1070 | 1071 | // 21.1.3.27 String.prototype[@@iterator]() 1072 | __webpack_require__(42)(String, 'String', function(iterated){ 1073 | this._t = String(iterated); // target 1074 | this._i = 0; // next index 1075 | // 21.1.5.2.1 %StringIteratorPrototype%.next() 1076 | }, function(){ 1077 | var O = this._t 1078 | , index = this._i 1079 | , point; 1080 | if(index >= O.length)return {value: undefined, done: true}; 1081 | point = $at(O, index); 1082 | this._i += point.length; 1083 | return {value: point, done: false}; 1084 | }); 1085 | 1086 | /***/ }), 1087 | /* 52 */ 1088 | /***/ (function(module, exports, __webpack_require__) { 1089 | 1090 | __webpack_require__(93); 1091 | var global = __webpack_require__(1) 1092 | , hide = __webpack_require__(7) 1093 | , Iterators = __webpack_require__(12) 1094 | , TO_STRING_TAG = __webpack_require__(0)('toStringTag'); 1095 | 1096 | for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ 1097 | var NAME = collections[i] 1098 | , Collection = global[NAME] 1099 | , proto = Collection && Collection.prototype; 1100 | if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); 1101 | Iterators[NAME] = Iterators.Array; 1102 | } 1103 | 1104 | /***/ }), 1105 | /* 53 */ 1106 | /***/ (function(module, exports, __webpack_require__) { 1107 | 1108 | "use strict"; 1109 | 1110 | 1111 | exports.__esModule = true; 1112 | 1113 | var _assign = __webpack_require__(60); 1114 | 1115 | var _assign2 = _interopRequireDefault(_assign); 1116 | 1117 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 1118 | 1119 | exports.default = _assign2.default || function (target) { 1120 | for (var i = 1; i < arguments.length; i++) { 1121 | var source = arguments[i]; 1122 | 1123 | for (var key in source) { 1124 | if (Object.prototype.hasOwnProperty.call(source, key)) { 1125 | target[key] = source[key]; 1126 | } 1127 | } 1128 | } 1129 | 1130 | return target; 1131 | }; 1132 | 1133 | /***/ }), 1134 | /* 54 */ 1135 | /***/ (function(module, exports, __webpack_require__) { 1136 | 1137 | "use strict"; 1138 | 1139 | 1140 | Object.defineProperty(exports, "__esModule", { 1141 | value: true 1142 | }); 1143 | 1144 | var _promise = __webpack_require__(55); 1145 | 1146 | var _promise2 = _interopRequireDefault(_promise); 1147 | 1148 | var _typeof2 = __webpack_require__(37); 1149 | 1150 | var _typeof3 = _interopRequireDefault(_typeof2); 1151 | 1152 | var _vue = __webpack_require__(25); 1153 | 1154 | var _vue2 = _interopRequireDefault(_vue); 1155 | 1156 | __webpack_require__(109); 1157 | 1158 | __webpack_require__(108); 1159 | 1160 | __webpack_require__(107); 1161 | 1162 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 1163 | 1164 | var App = {}; 1165 | 1166 | App.data = function () { 1167 | return window.__INITIAL_STATE__ ? window.__INITIAL_STATE__.data || {} : {}; 1168 | }; 1169 | 1170 | App.init = function (options) { 1171 | if ((typeof window === 'undefined' ? 'undefined' : (0, _typeof3.default)(window)) === 'object') { 1172 | _vue2.default.prototype.$http = __webpack_require__(56); 1173 | return App.client(options); 1174 | } 1175 | return App.server(options); 1176 | }; 1177 | 1178 | App.client = function (options) { 1179 | options.el = '#app'; 1180 | if (options.store) { 1181 | options.store.replaceState(App.data()); 1182 | } else { 1183 | options.data = App.data(); 1184 | } 1185 | return new _vue2.default(options); 1186 | }; 1187 | 1188 | App.server = function (options) { 1189 | if (options.store && options.router) { 1190 | return function (context) { 1191 | options.router.push(context.state.url); 1192 | var matchedComponents = options.router.getMatchedComponents(); 1193 | if (!matchedComponents) { 1194 | return _promise2.default.reject({ code: '404' }); 1195 | } 1196 | return _promise2.default.all(matchedComponents.map(function (component) { 1197 | if (component.preFetch) { 1198 | return component.preFetch(options.store); 1199 | } 1200 | })).then(function () { 1201 | context.state = options.store.state; 1202 | return new _vue2.default(options); 1203 | }); 1204 | }; 1205 | } 1206 | return function (context) { 1207 | var VueApp = _vue2.default.extend(options); 1208 | var app = new VueApp({ data: context.state }); 1209 | return new _promise2.default(function (resolve) { 1210 | resolve(app); 1211 | }); 1212 | }; 1213 | }; 1214 | 1215 | App.use = function (component) { 1216 | _vue2.default.use(component); 1217 | }; 1218 | 1219 | App.component = function (name, component) { 1220 | _vue2.default.component(name, component); 1221 | }; 1222 | 1223 | exports.default = App; 1224 | module.exports = exports['default']; 1225 | 1226 | /***/ }), 1227 | /* 55 */ 1228 | /***/ (function(module, exports, __webpack_require__) { 1229 | 1230 | module.exports = { "default": __webpack_require__(64), __esModule: true }; 1231 | 1232 | /***/ }), 1233 | /* 56 */ 1234 | /***/ (function(module, exports) { 1235 | 1236 | module.exports = require("axios"); 1237 | 1238 | /***/ }), 1239 | /* 57 */ 1240 | /***/ (function(module, exports, __webpack_require__) { 1241 | 1242 | "use strict"; 1243 | 1244 | 1245 | Object.defineProperty(exports, "__esModule", { 1246 | value: true 1247 | }); 1248 | exports.default = { 1249 | name: 'v-content', 1250 | data: function data() { 1251 | return {}; 1252 | }, 1253 | 1254 | components: {}, 1255 | mounted: function mounted() {} 1256 | }; 1257 | module.exports = exports['default']; 1258 | 1259 | /***/ }), 1260 | /* 58 */ 1261 | /***/ (function(module, exports, __webpack_require__) { 1262 | 1263 | "use strict"; 1264 | 1265 | 1266 | Object.defineProperty(exports, "__esModule", { 1267 | value: true 1268 | }); 1269 | exports.default = { 1270 | data: function data() { 1271 | return { 1272 | selectedMenu: '/' 1273 | }; 1274 | }, 1275 | 1276 | computed: {}, 1277 | mounted: function mounted() { 1278 | this.selectedMenu = window.location.pathname.toLowerCase(); 1279 | } 1280 | }; 1281 | module.exports = exports['default']; 1282 | 1283 | /***/ }), 1284 | /* 59 */ 1285 | /***/ (function(module, exports, __webpack_require__) { 1286 | 1287 | "use strict"; 1288 | 1289 | 1290 | Object.defineProperty(exports, "__esModule", { 1291 | value: true 1292 | }); 1293 | 1294 | __webpack_require__(18); 1295 | 1296 | var _header = __webpack_require__(111); 1297 | 1298 | var _header2 = _interopRequireDefault(_header); 1299 | 1300 | var _content = __webpack_require__(110); 1301 | 1302 | var _content2 = _interopRequireDefault(_content); 1303 | 1304 | function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } 1305 | 1306 | exports.default = { 1307 | components: { 1308 | LayoutHeader: _header2.default, 1309 | LayoutContent: _content2.default 1310 | } 1311 | }; 1312 | module.exports = exports['default']; 1313 | 1314 | /***/ }), 1315 | /* 60 */ 1316 | /***/ (function(module, exports, __webpack_require__) { 1317 | 1318 | module.exports = { "default": __webpack_require__(63), __esModule: true }; 1319 | 1320 | /***/ }), 1321 | /* 61 */ 1322 | /***/ (function(module, exports, __webpack_require__) { 1323 | 1324 | module.exports = { "default": __webpack_require__(65), __esModule: true }; 1325 | 1326 | /***/ }), 1327 | /* 62 */ 1328 | /***/ (function(module, exports, __webpack_require__) { 1329 | 1330 | module.exports = { "default": __webpack_require__(66), __esModule: true }; 1331 | 1332 | /***/ }), 1333 | /* 63 */ 1334 | /***/ (function(module, exports, __webpack_require__) { 1335 | 1336 | __webpack_require__(94); 1337 | module.exports = __webpack_require__(2).Object.assign; 1338 | 1339 | /***/ }), 1340 | /* 64 */ 1341 | /***/ (function(module, exports, __webpack_require__) { 1342 | 1343 | __webpack_require__(50); 1344 | __webpack_require__(51); 1345 | __webpack_require__(52); 1346 | __webpack_require__(95); 1347 | module.exports = __webpack_require__(2).Promise; 1348 | 1349 | /***/ }), 1350 | /* 65 */ 1351 | /***/ (function(module, exports, __webpack_require__) { 1352 | 1353 | __webpack_require__(96); 1354 | __webpack_require__(50); 1355 | __webpack_require__(97); 1356 | __webpack_require__(98); 1357 | module.exports = __webpack_require__(2).Symbol; 1358 | 1359 | /***/ }), 1360 | /* 66 */ 1361 | /***/ (function(module, exports, __webpack_require__) { 1362 | 1363 | __webpack_require__(51); 1364 | __webpack_require__(52); 1365 | module.exports = __webpack_require__(36).f('iterator'); 1366 | 1367 | /***/ }), 1368 | /* 67 */ 1369 | /***/ (function(module, exports) { 1370 | 1371 | module.exports = function(){ /* empty */ }; 1372 | 1373 | /***/ }), 1374 | /* 68 */ 1375 | /***/ (function(module, exports) { 1376 | 1377 | module.exports = function(it, Constructor, name, forbiddenField){ 1378 | if(!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)){ 1379 | throw TypeError(name + ': incorrect invocation!'); 1380 | } return it; 1381 | }; 1382 | 1383 | /***/ }), 1384 | /* 69 */ 1385 | /***/ (function(module, exports, __webpack_require__) { 1386 | 1387 | // false -> Array#indexOf 1388 | // true -> Array#includes 1389 | var toIObject = __webpack_require__(8) 1390 | , toLength = __webpack_require__(48) 1391 | , toIndex = __webpack_require__(91); 1392 | module.exports = function(IS_INCLUDES){ 1393 | return function($this, el, fromIndex){ 1394 | var O = toIObject($this) 1395 | , length = toLength(O.length) 1396 | , index = toIndex(fromIndex, length) 1397 | , value; 1398 | // Array#includes uses SameValueZero equality algorithm 1399 | if(IS_INCLUDES && el != el)while(length > index){ 1400 | value = O[index++]; 1401 | if(value != value)return true; 1402 | // Array#toIndex ignores holes, Array#includes - not 1403 | } else for(;length > index; index++)if(IS_INCLUDES || index in O){ 1404 | if(O[index] === el)return IS_INCLUDES || index || 0; 1405 | } return !IS_INCLUDES && -1; 1406 | }; 1407 | }; 1408 | 1409 | /***/ }), 1410 | /* 70 */ 1411 | /***/ (function(module, exports, __webpack_require__) { 1412 | 1413 | // all enumerable object keys, includes symbols 1414 | var getKeys = __webpack_require__(13) 1415 | , gOPS = __webpack_require__(30) 1416 | , pIE = __webpack_require__(21); 1417 | module.exports = function(it){ 1418 | var result = getKeys(it) 1419 | , getSymbols = gOPS.f; 1420 | if(getSymbols){ 1421 | var symbols = getSymbols(it) 1422 | , isEnum = pIE.f 1423 | , i = 0 1424 | , key; 1425 | while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); 1426 | } return result; 1427 | }; 1428 | 1429 | /***/ }), 1430 | /* 71 */ 1431 | /***/ (function(module, exports, __webpack_require__) { 1432 | 1433 | var ctx = __webpack_require__(19) 1434 | , call = __webpack_require__(75) 1435 | , isArrayIter = __webpack_require__(73) 1436 | , anObject = __webpack_require__(5) 1437 | , toLength = __webpack_require__(48) 1438 | , getIterFn = __webpack_require__(92) 1439 | , BREAK = {} 1440 | , RETURN = {}; 1441 | var exports = module.exports = function(iterable, entries, fn, that, ITERATOR){ 1442 | var iterFn = ITERATOR ? function(){ return iterable; } : getIterFn(iterable) 1443 | , f = ctx(fn, that, entries ? 2 : 1) 1444 | , index = 0 1445 | , length, step, iterator, result; 1446 | if(typeof iterFn != 'function')throw TypeError(iterable + ' is not iterable!'); 1447 | // fast case for arrays with default iterator 1448 | if(isArrayIter(iterFn))for(length = toLength(iterable.length); length > index; index++){ 1449 | result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]); 1450 | if(result === BREAK || result === RETURN)return result; 1451 | } else for(iterator = iterFn.call(iterable); !(step = iterator.next()).done; ){ 1452 | result = call(iterator, f, step.value, entries); 1453 | if(result === BREAK || result === RETURN)return result; 1454 | } 1455 | }; 1456 | exports.BREAK = BREAK; 1457 | exports.RETURN = RETURN; 1458 | 1459 | /***/ }), 1460 | /* 72 */ 1461 | /***/ (function(module, exports) { 1462 | 1463 | // fast apply, http://jsperf.lnkit.com/fast-apply/5 1464 | module.exports = function(fn, args, that){ 1465 | var un = that === undefined; 1466 | switch(args.length){ 1467 | case 0: return un ? fn() 1468 | : fn.call(that); 1469 | case 1: return un ? fn(args[0]) 1470 | : fn.call(that, args[0]); 1471 | case 2: return un ? fn(args[0], args[1]) 1472 | : fn.call(that, args[0], args[1]); 1473 | case 3: return un ? fn(args[0], args[1], args[2]) 1474 | : fn.call(that, args[0], args[1], args[2]); 1475 | case 4: return un ? fn(args[0], args[1], args[2], args[3]) 1476 | : fn.call(that, args[0], args[1], args[2], args[3]); 1477 | } return fn.apply(that, args); 1478 | }; 1479 | 1480 | /***/ }), 1481 | /* 73 */ 1482 | /***/ (function(module, exports, __webpack_require__) { 1483 | 1484 | // check on default Array iterator 1485 | var Iterators = __webpack_require__(12) 1486 | , ITERATOR = __webpack_require__(0)('iterator') 1487 | , ArrayProto = Array.prototype; 1488 | 1489 | module.exports = function(it){ 1490 | return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it); 1491 | }; 1492 | 1493 | /***/ }), 1494 | /* 74 */ 1495 | /***/ (function(module, exports, __webpack_require__) { 1496 | 1497 | // 7.2.2 IsArray(argument) 1498 | var cof = __webpack_require__(9); 1499 | module.exports = Array.isArray || function isArray(arg){ 1500 | return cof(arg) == 'Array'; 1501 | }; 1502 | 1503 | /***/ }), 1504 | /* 75 */ 1505 | /***/ (function(module, exports, __webpack_require__) { 1506 | 1507 | // call something on iterator step with safe closing on error 1508 | var anObject = __webpack_require__(5); 1509 | module.exports = function(iterator, fn, value, entries){ 1510 | try { 1511 | return entries ? fn(anObject(value)[0], value[1]) : fn(value); 1512 | // 7.4.6 IteratorClose(iterator, completion) 1513 | } catch(e){ 1514 | var ret = iterator['return']; 1515 | if(ret !== undefined)anObject(ret.call(iterator)); 1516 | throw e; 1517 | } 1518 | }; 1519 | 1520 | /***/ }), 1521 | /* 76 */ 1522 | /***/ (function(module, exports, __webpack_require__) { 1523 | 1524 | "use strict"; 1525 | 1526 | var create = __webpack_require__(43) 1527 | , descriptor = __webpack_require__(22) 1528 | , setToStringTag = __webpack_require__(23) 1529 | , IteratorPrototype = {}; 1530 | 1531 | // 25.1.2.1.1 %IteratorPrototype%[@@iterator]() 1532 | __webpack_require__(7)(IteratorPrototype, __webpack_require__(0)('iterator'), function(){ return this; }); 1533 | 1534 | module.exports = function(Constructor, NAME, next){ 1535 | Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); 1536 | setToStringTag(Constructor, NAME + ' Iterator'); 1537 | }; 1538 | 1539 | /***/ }), 1540 | /* 77 */ 1541 | /***/ (function(module, exports, __webpack_require__) { 1542 | 1543 | var ITERATOR = __webpack_require__(0)('iterator') 1544 | , SAFE_CLOSING = false; 1545 | 1546 | try { 1547 | var riter = [7][ITERATOR](); 1548 | riter['return'] = function(){ SAFE_CLOSING = true; }; 1549 | Array.from(riter, function(){ throw 2; }); 1550 | } catch(e){ /* empty */ } 1551 | 1552 | module.exports = function(exec, skipClosing){ 1553 | if(!skipClosing && !SAFE_CLOSING)return false; 1554 | var safe = false; 1555 | try { 1556 | var arr = [7] 1557 | , iter = arr[ITERATOR](); 1558 | iter.next = function(){ return {done: safe = true}; }; 1559 | arr[ITERATOR] = function(){ return iter; }; 1560 | exec(arr); 1561 | } catch(e){ /* empty */ } 1562 | return safe; 1563 | }; 1564 | 1565 | /***/ }), 1566 | /* 78 */ 1567 | /***/ (function(module, exports) { 1568 | 1569 | module.exports = function(done, value){ 1570 | return {value: value, done: !!done}; 1571 | }; 1572 | 1573 | /***/ }), 1574 | /* 79 */ 1575 | /***/ (function(module, exports, __webpack_require__) { 1576 | 1577 | var getKeys = __webpack_require__(13) 1578 | , toIObject = __webpack_require__(8); 1579 | module.exports = function(object, el){ 1580 | var O = toIObject(object) 1581 | , keys = getKeys(O) 1582 | , length = keys.length 1583 | , index = 0 1584 | , key; 1585 | while(length > index)if(O[key = keys[index++]] === el)return key; 1586 | }; 1587 | 1588 | /***/ }), 1589 | /* 80 */ 1590 | /***/ (function(module, exports, __webpack_require__) { 1591 | 1592 | var META = __webpack_require__(24)('meta') 1593 | , isObject = __webpack_require__(11) 1594 | , has = __webpack_require__(6) 1595 | , setDesc = __webpack_require__(4).f 1596 | , id = 0; 1597 | var isExtensible = Object.isExtensible || function(){ 1598 | return true; 1599 | }; 1600 | var FREEZE = !__webpack_require__(10)(function(){ 1601 | return isExtensible(Object.preventExtensions({})); 1602 | }); 1603 | var setMeta = function(it){ 1604 | setDesc(it, META, {value: { 1605 | i: 'O' + ++id, // object ID 1606 | w: {} // weak collections IDs 1607 | }}); 1608 | }; 1609 | var fastKey = function(it, create){ 1610 | // return primitive with prefix 1611 | if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; 1612 | if(!has(it, META)){ 1613 | // can't set metadata to uncaught frozen object 1614 | if(!isExtensible(it))return 'F'; 1615 | // not necessary to add metadata 1616 | if(!create)return 'E'; 1617 | // add missing metadata 1618 | setMeta(it); 1619 | // return object ID 1620 | } return it[META].i; 1621 | }; 1622 | var getWeak = function(it, create){ 1623 | if(!has(it, META)){ 1624 | // can't set metadata to uncaught frozen object 1625 | if(!isExtensible(it))return true; 1626 | // not necessary to add metadata 1627 | if(!create)return false; 1628 | // add missing metadata 1629 | setMeta(it); 1630 | // return hash weak collections IDs 1631 | } return it[META].w; 1632 | }; 1633 | // add metadata on freeze-family methods calling 1634 | var onFreeze = function(it){ 1635 | if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); 1636 | return it; 1637 | }; 1638 | var meta = module.exports = { 1639 | KEY: META, 1640 | NEED: false, 1641 | fastKey: fastKey, 1642 | getWeak: getWeak, 1643 | onFreeze: onFreeze 1644 | }; 1645 | 1646 | /***/ }), 1647 | /* 81 */ 1648 | /***/ (function(module, exports, __webpack_require__) { 1649 | 1650 | var global = __webpack_require__(1) 1651 | , macrotask = __webpack_require__(47).set 1652 | , Observer = global.MutationObserver || global.WebKitMutationObserver 1653 | , process = global.process 1654 | , Promise = global.Promise 1655 | , isNode = __webpack_require__(9)(process) == 'process'; 1656 | 1657 | module.exports = function(){ 1658 | var head, last, notify; 1659 | 1660 | var flush = function(){ 1661 | var parent, fn; 1662 | if(isNode && (parent = process.domain))parent.exit(); 1663 | while(head){ 1664 | fn = head.fn; 1665 | head = head.next; 1666 | try { 1667 | fn(); 1668 | } catch(e){ 1669 | if(head)notify(); 1670 | else last = undefined; 1671 | throw e; 1672 | } 1673 | } last = undefined; 1674 | if(parent)parent.enter(); 1675 | }; 1676 | 1677 | // Node.js 1678 | if(isNode){ 1679 | notify = function(){ 1680 | process.nextTick(flush); 1681 | }; 1682 | // browsers with MutationObserver 1683 | } else if(Observer){ 1684 | var toggle = true 1685 | , node = document.createTextNode(''); 1686 | new Observer(flush).observe(node, {characterData: true}); // eslint-disable-line no-new 1687 | notify = function(){ 1688 | node.data = toggle = !toggle; 1689 | }; 1690 | // environments with maybe non-completely correct, but existent Promise 1691 | } else if(Promise && Promise.resolve){ 1692 | var promise = Promise.resolve(); 1693 | notify = function(){ 1694 | promise.then(flush); 1695 | }; 1696 | // for other environments - macrotask based on: 1697 | // - setImmediate 1698 | // - MessageChannel 1699 | // - window.postMessag 1700 | // - onreadystatechange 1701 | // - setTimeout 1702 | } else { 1703 | notify = function(){ 1704 | // strange IE + webpack dev server bug - use .call(global) 1705 | macrotask.call(global, flush); 1706 | }; 1707 | } 1708 | 1709 | return function(fn){ 1710 | var task = {fn: fn, next: undefined}; 1711 | if(last)last.next = task; 1712 | if(!head){ 1713 | head = task; 1714 | notify(); 1715 | } last = task; 1716 | }; 1717 | }; 1718 | 1719 | /***/ }), 1720 | /* 82 */ 1721 | /***/ (function(module, exports, __webpack_require__) { 1722 | 1723 | "use strict"; 1724 | 1725 | // 19.1.2.1 Object.assign(target, source, ...) 1726 | var getKeys = __webpack_require__(13) 1727 | , gOPS = __webpack_require__(30) 1728 | , pIE = __webpack_require__(21) 1729 | , toObject = __webpack_require__(49) 1730 | , IObject = __webpack_require__(41) 1731 | , $assign = Object.assign; 1732 | 1733 | // should work with symbols and should have deterministic property order (V8 bug) 1734 | module.exports = !$assign || __webpack_require__(10)(function(){ 1735 | var A = {} 1736 | , B = {} 1737 | , S = Symbol() 1738 | , K = 'abcdefghijklmnopqrst'; 1739 | A[S] = 7; 1740 | K.split('').forEach(function(k){ B[k] = k; }); 1741 | return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K; 1742 | }) ? function assign(target, source){ // eslint-disable-line no-unused-vars 1743 | var T = toObject(target) 1744 | , aLen = arguments.length 1745 | , index = 1 1746 | , getSymbols = gOPS.f 1747 | , isEnum = pIE.f; 1748 | while(aLen > index){ 1749 | var S = IObject(arguments[index++]) 1750 | , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S) 1751 | , length = keys.length 1752 | , j = 0 1753 | , key; 1754 | while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key]; 1755 | } return T; 1756 | } : $assign; 1757 | 1758 | /***/ }), 1759 | /* 83 */ 1760 | /***/ (function(module, exports, __webpack_require__) { 1761 | 1762 | var dP = __webpack_require__(4) 1763 | , anObject = __webpack_require__(5) 1764 | , getKeys = __webpack_require__(13); 1765 | 1766 | module.exports = __webpack_require__(3) ? Object.defineProperties : function defineProperties(O, Properties){ 1767 | anObject(O); 1768 | var keys = getKeys(Properties) 1769 | , length = keys.length 1770 | , i = 0 1771 | , P; 1772 | while(length > i)dP.f(O, P = keys[i++], Properties[P]); 1773 | return O; 1774 | }; 1775 | 1776 | /***/ }), 1777 | /* 84 */ 1778 | /***/ (function(module, exports, __webpack_require__) { 1779 | 1780 | var pIE = __webpack_require__(21) 1781 | , createDesc = __webpack_require__(22) 1782 | , toIObject = __webpack_require__(8) 1783 | , toPrimitive = __webpack_require__(34) 1784 | , has = __webpack_require__(6) 1785 | , IE8_DOM_DEFINE = __webpack_require__(40) 1786 | , gOPD = Object.getOwnPropertyDescriptor; 1787 | 1788 | exports.f = __webpack_require__(3) ? gOPD : function getOwnPropertyDescriptor(O, P){ 1789 | O = toIObject(O); 1790 | P = toPrimitive(P, true); 1791 | if(IE8_DOM_DEFINE)try { 1792 | return gOPD(O, P); 1793 | } catch(e){ /* empty */ } 1794 | if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]); 1795 | }; 1796 | 1797 | /***/ }), 1798 | /* 85 */ 1799 | /***/ (function(module, exports, __webpack_require__) { 1800 | 1801 | // fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window 1802 | var toIObject = __webpack_require__(8) 1803 | , gOPN = __webpack_require__(44).f 1804 | , toString = {}.toString; 1805 | 1806 | var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames 1807 | ? Object.getOwnPropertyNames(window) : []; 1808 | 1809 | var getWindowNames = function(it){ 1810 | try { 1811 | return gOPN(it); 1812 | } catch(e){ 1813 | return windowNames.slice(); 1814 | } 1815 | }; 1816 | 1817 | module.exports.f = function getOwnPropertyNames(it){ 1818 | return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); 1819 | }; 1820 | 1821 | 1822 | /***/ }), 1823 | /* 86 */ 1824 | /***/ (function(module, exports, __webpack_require__) { 1825 | 1826 | // 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) 1827 | var has = __webpack_require__(6) 1828 | , toObject = __webpack_require__(49) 1829 | , IE_PROTO = __webpack_require__(31)('IE_PROTO') 1830 | , ObjectProto = Object.prototype; 1831 | 1832 | module.exports = Object.getPrototypeOf || function(O){ 1833 | O = toObject(O); 1834 | if(has(O, IE_PROTO))return O[IE_PROTO]; 1835 | if(typeof O.constructor == 'function' && O instanceof O.constructor){ 1836 | return O.constructor.prototype; 1837 | } return O instanceof Object ? ObjectProto : null; 1838 | }; 1839 | 1840 | /***/ }), 1841 | /* 87 */ 1842 | /***/ (function(module, exports, __webpack_require__) { 1843 | 1844 | var hide = __webpack_require__(7); 1845 | module.exports = function(target, src, safe){ 1846 | for(var key in src){ 1847 | if(safe && target[key])target[key] = src[key]; 1848 | else hide(target, key, src[key]); 1849 | } return target; 1850 | }; 1851 | 1852 | /***/ }), 1853 | /* 88 */ 1854 | /***/ (function(module, exports, __webpack_require__) { 1855 | 1856 | "use strict"; 1857 | 1858 | var global = __webpack_require__(1) 1859 | , core = __webpack_require__(2) 1860 | , dP = __webpack_require__(4) 1861 | , DESCRIPTORS = __webpack_require__(3) 1862 | , SPECIES = __webpack_require__(0)('species'); 1863 | 1864 | module.exports = function(KEY){ 1865 | var C = typeof core[KEY] == 'function' ? core[KEY] : global[KEY]; 1866 | if(DESCRIPTORS && C && !C[SPECIES])dP.f(C, SPECIES, { 1867 | configurable: true, 1868 | get: function(){ return this; } 1869 | }); 1870 | }; 1871 | 1872 | /***/ }), 1873 | /* 89 */ 1874 | /***/ (function(module, exports, __webpack_require__) { 1875 | 1876 | // 7.3.20 SpeciesConstructor(O, defaultConstructor) 1877 | var anObject = __webpack_require__(5) 1878 | , aFunction = __webpack_require__(26) 1879 | , SPECIES = __webpack_require__(0)('species'); 1880 | module.exports = function(O, D){ 1881 | var C = anObject(O).constructor, S; 1882 | return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S); 1883 | }; 1884 | 1885 | /***/ }), 1886 | /* 90 */ 1887 | /***/ (function(module, exports, __webpack_require__) { 1888 | 1889 | var toInteger = __webpack_require__(33) 1890 | , defined = __webpack_require__(27); 1891 | // true -> String#at 1892 | // false -> String#codePointAt 1893 | module.exports = function(TO_STRING){ 1894 | return function(that, pos){ 1895 | var s = String(defined(that)) 1896 | , i = toInteger(pos) 1897 | , l = s.length 1898 | , a, b; 1899 | if(i < 0 || i >= l)return TO_STRING ? '' : undefined; 1900 | a = s.charCodeAt(i); 1901 | return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff 1902 | ? TO_STRING ? s.charAt(i) : a 1903 | : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; 1904 | }; 1905 | }; 1906 | 1907 | /***/ }), 1908 | /* 91 */ 1909 | /***/ (function(module, exports, __webpack_require__) { 1910 | 1911 | var toInteger = __webpack_require__(33) 1912 | , max = Math.max 1913 | , min = Math.min; 1914 | module.exports = function(index, length){ 1915 | index = toInteger(index); 1916 | return index < 0 ? max(index + length, 0) : min(index, length); 1917 | }; 1918 | 1919 | /***/ }), 1920 | /* 92 */ 1921 | /***/ (function(module, exports, __webpack_require__) { 1922 | 1923 | var classof = __webpack_require__(38) 1924 | , ITERATOR = __webpack_require__(0)('iterator') 1925 | , Iterators = __webpack_require__(12); 1926 | module.exports = __webpack_require__(2).getIteratorMethod = function(it){ 1927 | if(it != undefined)return it[ITERATOR] 1928 | || it['@@iterator'] 1929 | || Iterators[classof(it)]; 1930 | }; 1931 | 1932 | /***/ }), 1933 | /* 93 */ 1934 | /***/ (function(module, exports, __webpack_require__) { 1935 | 1936 | "use strict"; 1937 | 1938 | var addToUnscopables = __webpack_require__(67) 1939 | , step = __webpack_require__(78) 1940 | , Iterators = __webpack_require__(12) 1941 | , toIObject = __webpack_require__(8); 1942 | 1943 | // 22.1.3.4 Array.prototype.entries() 1944 | // 22.1.3.13 Array.prototype.keys() 1945 | // 22.1.3.29 Array.prototype.values() 1946 | // 22.1.3.30 Array.prototype[@@iterator]() 1947 | module.exports = __webpack_require__(42)(Array, 'Array', function(iterated, kind){ 1948 | this._t = toIObject(iterated); // target 1949 | this._i = 0; // next index 1950 | this._k = kind; // kind 1951 | // 22.1.5.2.1 %ArrayIteratorPrototype%.next() 1952 | }, function(){ 1953 | var O = this._t 1954 | , kind = this._k 1955 | , index = this._i++; 1956 | if(!O || index >= O.length){ 1957 | this._t = undefined; 1958 | return step(1); 1959 | } 1960 | if(kind == 'keys' )return step(0, index); 1961 | if(kind == 'values')return step(0, O[index]); 1962 | return step(0, [index, O[index]]); 1963 | }, 'values'); 1964 | 1965 | // argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) 1966 | Iterators.Arguments = Iterators.Array; 1967 | 1968 | addToUnscopables('keys'); 1969 | addToUnscopables('values'); 1970 | addToUnscopables('entries'); 1971 | 1972 | /***/ }), 1973 | /* 94 */ 1974 | /***/ (function(module, exports, __webpack_require__) { 1975 | 1976 | // 19.1.3.1 Object.assign(target, source) 1977 | var $export = __webpack_require__(17); 1978 | 1979 | $export($export.S + $export.F, 'Object', {assign: __webpack_require__(82)}); 1980 | 1981 | /***/ }), 1982 | /* 95 */ 1983 | /***/ (function(module, exports, __webpack_require__) { 1984 | 1985 | "use strict"; 1986 | 1987 | var LIBRARY = __webpack_require__(20) 1988 | , global = __webpack_require__(1) 1989 | , ctx = __webpack_require__(19) 1990 | , classof = __webpack_require__(38) 1991 | , $export = __webpack_require__(17) 1992 | , isObject = __webpack_require__(11) 1993 | , aFunction = __webpack_require__(26) 1994 | , anInstance = __webpack_require__(68) 1995 | , forOf = __webpack_require__(71) 1996 | , speciesConstructor = __webpack_require__(89) 1997 | , task = __webpack_require__(47).set 1998 | , microtask = __webpack_require__(81)() 1999 | , PROMISE = 'Promise' 2000 | , TypeError = global.TypeError 2001 | , process = global.process 2002 | , $Promise = global[PROMISE] 2003 | , process = global.process 2004 | , isNode = classof(process) == 'process' 2005 | , empty = function(){ /* empty */ } 2006 | , Internal, GenericPromiseCapability, Wrapper; 2007 | 2008 | var USE_NATIVE = !!function(){ 2009 | try { 2010 | // correct subclassing with @@species support 2011 | var promise = $Promise.resolve(1) 2012 | , FakePromise = (promise.constructor = {})[__webpack_require__(0)('species')] = function(exec){ exec(empty, empty); }; 2013 | // unhandled rejections tracking support, NodeJS Promise without it fails @@species test 2014 | return (isNode || typeof PromiseRejectionEvent == 'function') && promise.then(empty) instanceof FakePromise; 2015 | } catch(e){ /* empty */ } 2016 | }(); 2017 | 2018 | // helpers 2019 | var sameConstructor = function(a, b){ 2020 | // with library wrapper special case 2021 | return a === b || a === $Promise && b === Wrapper; 2022 | }; 2023 | var isThenable = function(it){ 2024 | var then; 2025 | return isObject(it) && typeof (then = it.then) == 'function' ? then : false; 2026 | }; 2027 | var newPromiseCapability = function(C){ 2028 | return sameConstructor($Promise, C) 2029 | ? new PromiseCapability(C) 2030 | : new GenericPromiseCapability(C); 2031 | }; 2032 | var PromiseCapability = GenericPromiseCapability = function(C){ 2033 | var resolve, reject; 2034 | this.promise = new C(function($$resolve, $$reject){ 2035 | if(resolve !== undefined || reject !== undefined)throw TypeError('Bad Promise constructor'); 2036 | resolve = $$resolve; 2037 | reject = $$reject; 2038 | }); 2039 | this.resolve = aFunction(resolve); 2040 | this.reject = aFunction(reject); 2041 | }; 2042 | var perform = function(exec){ 2043 | try { 2044 | exec(); 2045 | } catch(e){ 2046 | return {error: e}; 2047 | } 2048 | }; 2049 | var notify = function(promise, isReject){ 2050 | if(promise._n)return; 2051 | promise._n = true; 2052 | var chain = promise._c; 2053 | microtask(function(){ 2054 | var value = promise._v 2055 | , ok = promise._s == 1 2056 | , i = 0; 2057 | var run = function(reaction){ 2058 | var handler = ok ? reaction.ok : reaction.fail 2059 | , resolve = reaction.resolve 2060 | , reject = reaction.reject 2061 | , domain = reaction.domain 2062 | , result, then; 2063 | try { 2064 | if(handler){ 2065 | if(!ok){ 2066 | if(promise._h == 2)onHandleUnhandled(promise); 2067 | promise._h = 1; 2068 | } 2069 | if(handler === true)result = value; 2070 | else { 2071 | if(domain)domain.enter(); 2072 | result = handler(value); 2073 | if(domain)domain.exit(); 2074 | } 2075 | if(result === reaction.promise){ 2076 | reject(TypeError('Promise-chain cycle')); 2077 | } else if(then = isThenable(result)){ 2078 | then.call(result, resolve, reject); 2079 | } else resolve(result); 2080 | } else reject(value); 2081 | } catch(e){ 2082 | reject(e); 2083 | } 2084 | }; 2085 | while(chain.length > i)run(chain[i++]); // variable length - can't use forEach 2086 | promise._c = []; 2087 | promise._n = false; 2088 | if(isReject && !promise._h)onUnhandled(promise); 2089 | }); 2090 | }; 2091 | var onUnhandled = function(promise){ 2092 | task.call(global, function(){ 2093 | var value = promise._v 2094 | , abrupt, handler, console; 2095 | if(isUnhandled(promise)){ 2096 | abrupt = perform(function(){ 2097 | if(isNode){ 2098 | process.emit('unhandledRejection', value, promise); 2099 | } else if(handler = global.onunhandledrejection){ 2100 | handler({promise: promise, reason: value}); 2101 | } else if((console = global.console) && console.error){ 2102 | console.error('Unhandled promise rejection', value); 2103 | } 2104 | }); 2105 | // Browsers should not trigger `rejectionHandled` event if it was handled here, NodeJS - should 2106 | promise._h = isNode || isUnhandled(promise) ? 2 : 1; 2107 | } promise._a = undefined; 2108 | if(abrupt)throw abrupt.error; 2109 | }); 2110 | }; 2111 | var isUnhandled = function(promise){ 2112 | if(promise._h == 1)return false; 2113 | var chain = promise._a || promise._c 2114 | , i = 0 2115 | , reaction; 2116 | while(chain.length > i){ 2117 | reaction = chain[i++]; 2118 | if(reaction.fail || !isUnhandled(reaction.promise))return false; 2119 | } return true; 2120 | }; 2121 | var onHandleUnhandled = function(promise){ 2122 | task.call(global, function(){ 2123 | var handler; 2124 | if(isNode){ 2125 | process.emit('rejectionHandled', promise); 2126 | } else if(handler = global.onrejectionhandled){ 2127 | handler({promise: promise, reason: promise._v}); 2128 | } 2129 | }); 2130 | }; 2131 | var $reject = function(value){ 2132 | var promise = this; 2133 | if(promise._d)return; 2134 | promise._d = true; 2135 | promise = promise._w || promise; // unwrap 2136 | promise._v = value; 2137 | promise._s = 2; 2138 | if(!promise._a)promise._a = promise._c.slice(); 2139 | notify(promise, true); 2140 | }; 2141 | var $resolve = function(value){ 2142 | var promise = this 2143 | , then; 2144 | if(promise._d)return; 2145 | promise._d = true; 2146 | promise = promise._w || promise; // unwrap 2147 | try { 2148 | if(promise === value)throw TypeError("Promise can't be resolved itself"); 2149 | if(then = isThenable(value)){ 2150 | microtask(function(){ 2151 | var wrapper = {_w: promise, _d: false}; // wrap 2152 | try { 2153 | then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1)); 2154 | } catch(e){ 2155 | $reject.call(wrapper, e); 2156 | } 2157 | }); 2158 | } else { 2159 | promise._v = value; 2160 | promise._s = 1; 2161 | notify(promise, false); 2162 | } 2163 | } catch(e){ 2164 | $reject.call({_w: promise, _d: false}, e); // wrap 2165 | } 2166 | }; 2167 | 2168 | // constructor polyfill 2169 | if(!USE_NATIVE){ 2170 | // 25.4.3.1 Promise(executor) 2171 | $Promise = function Promise(executor){ 2172 | anInstance(this, $Promise, PROMISE, '_h'); 2173 | aFunction(executor); 2174 | Internal.call(this); 2175 | try { 2176 | executor(ctx($resolve, this, 1), ctx($reject, this, 1)); 2177 | } catch(err){ 2178 | $reject.call(this, err); 2179 | } 2180 | }; 2181 | Internal = function Promise(executor){ 2182 | this._c = []; // <- awaiting reactions 2183 | this._a = undefined; // <- checked in isUnhandled reactions 2184 | this._s = 0; // <- state 2185 | this._d = false; // <- done 2186 | this._v = undefined; // <- value 2187 | this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled 2188 | this._n = false; // <- notify 2189 | }; 2190 | Internal.prototype = __webpack_require__(87)($Promise.prototype, { 2191 | // 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected) 2192 | then: function then(onFulfilled, onRejected){ 2193 | var reaction = newPromiseCapability(speciesConstructor(this, $Promise)); 2194 | reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true; 2195 | reaction.fail = typeof onRejected == 'function' && onRejected; 2196 | reaction.domain = isNode ? process.domain : undefined; 2197 | this._c.push(reaction); 2198 | if(this._a)this._a.push(reaction); 2199 | if(this._s)notify(this, false); 2200 | return reaction.promise; 2201 | }, 2202 | // 25.4.5.1 Promise.prototype.catch(onRejected) 2203 | 'catch': function(onRejected){ 2204 | return this.then(undefined, onRejected); 2205 | } 2206 | }); 2207 | PromiseCapability = function(){ 2208 | var promise = new Internal; 2209 | this.promise = promise; 2210 | this.resolve = ctx($resolve, promise, 1); 2211 | this.reject = ctx($reject, promise, 1); 2212 | }; 2213 | } 2214 | 2215 | $export($export.G + $export.W + $export.F * !USE_NATIVE, {Promise: $Promise}); 2216 | __webpack_require__(23)($Promise, PROMISE); 2217 | __webpack_require__(88)(PROMISE); 2218 | Wrapper = __webpack_require__(2)[PROMISE]; 2219 | 2220 | // statics 2221 | $export($export.S + $export.F * !USE_NATIVE, PROMISE, { 2222 | // 25.4.4.5 Promise.reject(r) 2223 | reject: function reject(r){ 2224 | var capability = newPromiseCapability(this) 2225 | , $$reject = capability.reject; 2226 | $$reject(r); 2227 | return capability.promise; 2228 | } 2229 | }); 2230 | $export($export.S + $export.F * (LIBRARY || !USE_NATIVE), PROMISE, { 2231 | // 25.4.4.6 Promise.resolve(x) 2232 | resolve: function resolve(x){ 2233 | // instanceof instead of internal slot check because we should fix it without replacement native Promise core 2234 | if(x instanceof $Promise && sameConstructor(x.constructor, this))return x; 2235 | var capability = newPromiseCapability(this) 2236 | , $$resolve = capability.resolve; 2237 | $$resolve(x); 2238 | return capability.promise; 2239 | } 2240 | }); 2241 | $export($export.S + $export.F * !(USE_NATIVE && __webpack_require__(77)(function(iter){ 2242 | $Promise.all(iter)['catch'](empty); 2243 | })), PROMISE, { 2244 | // 25.4.4.1 Promise.all(iterable) 2245 | all: function all(iterable){ 2246 | var C = this 2247 | , capability = newPromiseCapability(C) 2248 | , resolve = capability.resolve 2249 | , reject = capability.reject; 2250 | var abrupt = perform(function(){ 2251 | var values = [] 2252 | , index = 0 2253 | , remaining = 1; 2254 | forOf(iterable, false, function(promise){ 2255 | var $index = index++ 2256 | , alreadyCalled = false; 2257 | values.push(undefined); 2258 | remaining++; 2259 | C.resolve(promise).then(function(value){ 2260 | if(alreadyCalled)return; 2261 | alreadyCalled = true; 2262 | values[$index] = value; 2263 | --remaining || resolve(values); 2264 | }, reject); 2265 | }); 2266 | --remaining || resolve(values); 2267 | }); 2268 | if(abrupt)reject(abrupt.error); 2269 | return capability.promise; 2270 | }, 2271 | // 25.4.4.4 Promise.race(iterable) 2272 | race: function race(iterable){ 2273 | var C = this 2274 | , capability = newPromiseCapability(C) 2275 | , reject = capability.reject; 2276 | var abrupt = perform(function(){ 2277 | forOf(iterable, false, function(promise){ 2278 | C.resolve(promise).then(capability.resolve, reject); 2279 | }); 2280 | }); 2281 | if(abrupt)reject(abrupt.error); 2282 | return capability.promise; 2283 | } 2284 | }); 2285 | 2286 | /***/ }), 2287 | /* 96 */ 2288 | /***/ (function(module, exports, __webpack_require__) { 2289 | 2290 | "use strict"; 2291 | 2292 | // ECMAScript 6 symbols shim 2293 | var global = __webpack_require__(1) 2294 | , has = __webpack_require__(6) 2295 | , DESCRIPTORS = __webpack_require__(3) 2296 | , $export = __webpack_require__(17) 2297 | , redefine = __webpack_require__(46) 2298 | , META = __webpack_require__(80).KEY 2299 | , $fails = __webpack_require__(10) 2300 | , shared = __webpack_require__(32) 2301 | , setToStringTag = __webpack_require__(23) 2302 | , uid = __webpack_require__(24) 2303 | , wks = __webpack_require__(0) 2304 | , wksExt = __webpack_require__(36) 2305 | , wksDefine = __webpack_require__(35) 2306 | , keyOf = __webpack_require__(79) 2307 | , enumKeys = __webpack_require__(70) 2308 | , isArray = __webpack_require__(74) 2309 | , anObject = __webpack_require__(5) 2310 | , toIObject = __webpack_require__(8) 2311 | , toPrimitive = __webpack_require__(34) 2312 | , createDesc = __webpack_require__(22) 2313 | , _create = __webpack_require__(43) 2314 | , gOPNExt = __webpack_require__(85) 2315 | , $GOPD = __webpack_require__(84) 2316 | , $DP = __webpack_require__(4) 2317 | , $keys = __webpack_require__(13) 2318 | , gOPD = $GOPD.f 2319 | , dP = $DP.f 2320 | , gOPN = gOPNExt.f 2321 | , $Symbol = global.Symbol 2322 | , $JSON = global.JSON 2323 | , _stringify = $JSON && $JSON.stringify 2324 | , PROTOTYPE = 'prototype' 2325 | , HIDDEN = wks('_hidden') 2326 | , TO_PRIMITIVE = wks('toPrimitive') 2327 | , isEnum = {}.propertyIsEnumerable 2328 | , SymbolRegistry = shared('symbol-registry') 2329 | , AllSymbols = shared('symbols') 2330 | , OPSymbols = shared('op-symbols') 2331 | , ObjectProto = Object[PROTOTYPE] 2332 | , USE_NATIVE = typeof $Symbol == 'function' 2333 | , QObject = global.QObject; 2334 | // Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 2335 | var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; 2336 | 2337 | // fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 2338 | var setSymbolDesc = DESCRIPTORS && $fails(function(){ 2339 | return _create(dP({}, 'a', { 2340 | get: function(){ return dP(this, 'a', {value: 7}).a; } 2341 | })).a != 7; 2342 | }) ? function(it, key, D){ 2343 | var protoDesc = gOPD(ObjectProto, key); 2344 | if(protoDesc)delete ObjectProto[key]; 2345 | dP(it, key, D); 2346 | if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); 2347 | } : dP; 2348 | 2349 | var wrap = function(tag){ 2350 | var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); 2351 | sym._k = tag; 2352 | return sym; 2353 | }; 2354 | 2355 | var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ 2356 | return typeof it == 'symbol'; 2357 | } : function(it){ 2358 | return it instanceof $Symbol; 2359 | }; 2360 | 2361 | var $defineProperty = function defineProperty(it, key, D){ 2362 | if(it === ObjectProto)$defineProperty(OPSymbols, key, D); 2363 | anObject(it); 2364 | key = toPrimitive(key, true); 2365 | anObject(D); 2366 | if(has(AllSymbols, key)){ 2367 | if(!D.enumerable){ 2368 | if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); 2369 | it[HIDDEN][key] = true; 2370 | } else { 2371 | if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; 2372 | D = _create(D, {enumerable: createDesc(0, false)}); 2373 | } return setSymbolDesc(it, key, D); 2374 | } return dP(it, key, D); 2375 | }; 2376 | var $defineProperties = function defineProperties(it, P){ 2377 | anObject(it); 2378 | var keys = enumKeys(P = toIObject(P)) 2379 | , i = 0 2380 | , l = keys.length 2381 | , key; 2382 | while(l > i)$defineProperty(it, key = keys[i++], P[key]); 2383 | return it; 2384 | }; 2385 | var $create = function create(it, P){ 2386 | return P === undefined ? _create(it) : $defineProperties(_create(it), P); 2387 | }; 2388 | var $propertyIsEnumerable = function propertyIsEnumerable(key){ 2389 | var E = isEnum.call(this, key = toPrimitive(key, true)); 2390 | if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; 2391 | return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; 2392 | }; 2393 | var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ 2394 | it = toIObject(it); 2395 | key = toPrimitive(key, true); 2396 | if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; 2397 | var D = gOPD(it, key); 2398 | if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; 2399 | return D; 2400 | }; 2401 | var $getOwnPropertyNames = function getOwnPropertyNames(it){ 2402 | var names = gOPN(toIObject(it)) 2403 | , result = [] 2404 | , i = 0 2405 | , key; 2406 | while(names.length > i){ 2407 | if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); 2408 | } return result; 2409 | }; 2410 | var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ 2411 | var IS_OP = it === ObjectProto 2412 | , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) 2413 | , result = [] 2414 | , i = 0 2415 | , key; 2416 | while(names.length > i){ 2417 | if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); 2418 | } return result; 2419 | }; 2420 | 2421 | // 19.4.1.1 Symbol([description]) 2422 | if(!USE_NATIVE){ 2423 | $Symbol = function Symbol(){ 2424 | if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); 2425 | var tag = uid(arguments.length > 0 ? arguments[0] : undefined); 2426 | var $set = function(value){ 2427 | if(this === ObjectProto)$set.call(OPSymbols, value); 2428 | if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; 2429 | setSymbolDesc(this, tag, createDesc(1, value)); 2430 | }; 2431 | if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); 2432 | return wrap(tag); 2433 | }; 2434 | redefine($Symbol[PROTOTYPE], 'toString', function toString(){ 2435 | return this._k; 2436 | }); 2437 | 2438 | $GOPD.f = $getOwnPropertyDescriptor; 2439 | $DP.f = $defineProperty; 2440 | __webpack_require__(44).f = gOPNExt.f = $getOwnPropertyNames; 2441 | __webpack_require__(21).f = $propertyIsEnumerable; 2442 | __webpack_require__(30).f = $getOwnPropertySymbols; 2443 | 2444 | if(DESCRIPTORS && !__webpack_require__(20)){ 2445 | redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); 2446 | } 2447 | 2448 | wksExt.f = function(name){ 2449 | return wrap(wks(name)); 2450 | } 2451 | } 2452 | 2453 | $export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); 2454 | 2455 | for(var symbols = ( 2456 | // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 2457 | 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' 2458 | ).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); 2459 | 2460 | for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); 2461 | 2462 | $export($export.S + $export.F * !USE_NATIVE, 'Symbol', { 2463 | // 19.4.2.1 Symbol.for(key) 2464 | 'for': function(key){ 2465 | return has(SymbolRegistry, key += '') 2466 | ? SymbolRegistry[key] 2467 | : SymbolRegistry[key] = $Symbol(key); 2468 | }, 2469 | // 19.4.2.5 Symbol.keyFor(sym) 2470 | keyFor: function keyFor(key){ 2471 | if(isSymbol(key))return keyOf(SymbolRegistry, key); 2472 | throw TypeError(key + ' is not a symbol!'); 2473 | }, 2474 | useSetter: function(){ setter = true; }, 2475 | useSimple: function(){ setter = false; } 2476 | }); 2477 | 2478 | $export($export.S + $export.F * !USE_NATIVE, 'Object', { 2479 | // 19.1.2.2 Object.create(O [, Properties]) 2480 | create: $create, 2481 | // 19.1.2.4 Object.defineProperty(O, P, Attributes) 2482 | defineProperty: $defineProperty, 2483 | // 19.1.2.3 Object.defineProperties(O, Properties) 2484 | defineProperties: $defineProperties, 2485 | // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) 2486 | getOwnPropertyDescriptor: $getOwnPropertyDescriptor, 2487 | // 19.1.2.7 Object.getOwnPropertyNames(O) 2488 | getOwnPropertyNames: $getOwnPropertyNames, 2489 | // 19.1.2.8 Object.getOwnPropertySymbols(O) 2490 | getOwnPropertySymbols: $getOwnPropertySymbols 2491 | }); 2492 | 2493 | // 24.3.2 JSON.stringify(value [, replacer [, space]]) 2494 | $JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ 2495 | var S = $Symbol(); 2496 | // MS Edge converts symbol values to JSON as {} 2497 | // WebKit converts symbol values to JSON as null 2498 | // V8 throws on boxed symbols 2499 | return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; 2500 | })), 'JSON', { 2501 | stringify: function stringify(it){ 2502 | if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined 2503 | var args = [it] 2504 | , i = 1 2505 | , replacer, $replacer; 2506 | while(arguments.length > i)args.push(arguments[i++]); 2507 | replacer = args[1]; 2508 | if(typeof replacer == 'function')$replacer = replacer; 2509 | if($replacer || !isArray(replacer))replacer = function(key, value){ 2510 | if($replacer)value = $replacer.call(this, key, value); 2511 | if(!isSymbol(value))return value; 2512 | }; 2513 | args[1] = replacer; 2514 | return _stringify.apply($JSON, args); 2515 | } 2516 | }); 2517 | 2518 | // 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) 2519 | $Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(7)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); 2520 | // 19.4.3.5 Symbol.prototype[@@toStringTag] 2521 | setToStringTag($Symbol, 'Symbol'); 2522 | // 20.2.1.9 Math[@@toStringTag] 2523 | setToStringTag(Math, 'Math', true); 2524 | // 24.3.3 JSON[@@toStringTag] 2525 | setToStringTag(global.JSON, 'JSON', true); 2526 | 2527 | /***/ }), 2528 | /* 97 */ 2529 | /***/ (function(module, exports, __webpack_require__) { 2530 | 2531 | __webpack_require__(35)('asyncIterator'); 2532 | 2533 | /***/ }), 2534 | /* 98 */ 2535 | /***/ (function(module, exports, __webpack_require__) { 2536 | 2537 | __webpack_require__(35)('observable'); 2538 | 2539 | /***/ }), 2540 | /* 99 */ 2541 | /***/ (function(module, exports, __webpack_require__) { 2542 | 2543 | exports = module.exports = __webpack_require__(14)(undefined); 2544 | // imports 2545 | exports.i(__webpack_require__(18), ""); 2546 | 2547 | // module 2548 | exports.push([module.i, "\n", ""]); 2549 | 2550 | // exports 2551 | 2552 | 2553 | /***/ }), 2554 | /* 100 */ 2555 | /***/ (function(module, exports, __webpack_require__) { 2556 | 2557 | exports = module.exports = __webpack_require__(14)(undefined); 2558 | // imports 2559 | exports.i(__webpack_require__(18), ""); 2560 | 2561 | // module 2562 | exports.push([module.i, "\n", ""]); 2563 | 2564 | // exports 2565 | 2566 | 2567 | /***/ }), 2568 | /* 101 */ 2569 | /***/ (function(module, exports, __webpack_require__) { 2570 | 2571 | exports = module.exports = __webpack_require__(14)(undefined); 2572 | // imports 2573 | 2574 | 2575 | // module 2576 | exports.push([module.i, "\nbody{\n margin: 0 0px;\n}\na{\n text-decoration: none;\n}\n\n", ""]); 2577 | 2578 | // exports 2579 | 2580 | 2581 | /***/ }), 2582 | /* 102 */ 2583 | /***/ (function(module, exports, __webpack_require__) { 2584 | 2585 | // style-loader: Adds some css to the DOM by adding a