From 549abf9314fc83cb49306b89c7bc584788ee581a Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 1 Mar 2016 17:37:08 -0500 Subject: [PATCH 001/969] 0.4.0 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index bf4c45fa2..cd25dbda5 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "0.3.0", + "version": "0.4.0", "description": "state management for Vue.js", "main": "lib/index.js", "files": [ From 0fb4920e7b68c530fc489ec4cf43fa77e1775bfe Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 1 Mar 2016 17:38:14 -0500 Subject: [PATCH 002/969] readme --- README.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/README.md b/README.md index 5c79e60b8..d1f1b84c8 100644 --- a/README.md +++ b/README.md @@ -6,10 +6,8 @@

-## NOTE: Vuex is still in development - API may change anytime. - - [Documentation](http://vuex.vuejs.org/) -- [Great introduction and explanation by @skyronic](http://skyronic.com/2016/01/03/vuex-basics-tutorial/) +- [Great introduction and explanation by @skyronic](http://skyronic.com/2016/01/03/vuex-basics-tutorial/) (using outdated 0.3.0 API, but still worth a read!) ## Examples From 3c6d085ab82bc2f6f0b533b4808e5f1d35f2c7ce Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 1 Mar 2016 18:16:56 -0500 Subject: [PATCH 003/969] dist build --- .babelrc | 9 ++++++- build/build.js | 70 ++++++++++++++++++++++++++++++++++++++++++++++++++ package.json | 13 ++++++---- 3 files changed, 86 insertions(+), 6 deletions(-) create mode 100644 build/build.js diff --git a/.babelrc b/.babelrc index 05581748b..01d096c1f 100644 --- a/.babelrc +++ b/.babelrc @@ -1,3 +1,10 @@ { - "presets": ["es2015", "stage-2"] + "env": { + "development": { + "presets": ["es2015", "stage-2"] + }, + "production": { + "presets": ["es2015-rollup"] + } + } } diff --git a/build/build.js b/build/build.js new file mode 100644 index 000000000..861395b37 --- /dev/null +++ b/build/build.js @@ -0,0 +1,70 @@ +process.env.BABEL_ENV = 'production' + +var fs = require('fs') +var zlib = require('zlib') +var rollup = require('rollup') +var uglify = require('uglify-js') +var babel = require('rollup-plugin-babel') +var version = process.env.VERSION || require('../package.json').version + +var banner = + '/*!\n' + + ' * Vuex v' + version + '\n' + + ' * (c) ' + new Date().getFullYear() + ' Evan You\n' + + ' * Released under the MIT License.\n' + + ' */' + +rollup.rollup({ + entry: 'src/index.js', + plugins: [babel()] +}) +.then(function (bundle) { + return write('dist/vuex.js', bundle.generate({ + format: 'umd', + banner: banner, + moduleName: 'Vuex' + }).code) +}) +.then(function () { + // Standalone Production Build + return rollup.rollup({ + entry: 'src/index.js', + plugins: [babel()] + }) +}) +.then(function (bundle) { + var code = bundle.generate({ + format: 'umd', + moduleName: 'Vuex' + }).code + var minified = banner + '\n' + uglify.minify(code, { + fromString: true, + output: { + ascii_only: true + } + }).code + return write('dist/vuex.min.js', minified) +}) +.catch(logError) + +function write (dest, code) { + return new Promise(function (resolve, reject) { + fs.writeFile(dest, code, function (err) { + if (err) return reject(err) + console.log(blue(dest) + ' ' + getSize(code)) + resolve() + }) + }) +} + +function getSize (code) { + return (code.length / 1024).toFixed(2) + 'kb' +} + +function logError (e) { + console.log(e) +} + +function blue (str) { + return '\x1b[1m\x1b[34m' + str + '\x1b[39m\x1b[22m' +} diff --git a/package.json b/package.json index cd25dbda5..1a8c2e3d0 100644 --- a/package.json +++ b/package.json @@ -2,9 +2,9 @@ "name": "vuex", "version": "0.4.0", "description": "state management for Vue.js", - "main": "lib/index.js", + "main": "dist/vuex.js", "files": [ - "lib", + "dist", "src" ], "scripts": { @@ -13,7 +13,7 @@ "todomvc": "cd examples/todomvc && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "cart": "cd examples/shopping-cart && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", - "prepublish": "babel src --out-dir lib --presets es2015 --plugins add-module-exports", + "build": "node build/build.js", "test": "eslint src && mocha --compilers js:babel-core/register", "docs": "cd docs && gitbook serve", "deploy-docs": "cd docs && ./deploy.sh" @@ -29,13 +29,13 @@ }, "homepage": "https://github.com/vuejs/vuex#readme", "devDependencies": { - "babel-cli": "^6.6.0", "babel-core": "^6.2.1", "babel-loader": "^6.2.0", "babel-plugin-add-module-exports": "^0.1.1", "babel-plugin-transform-runtime": "^6.1.18", "babel-polyfill": "^6.2.0", "babel-preset-es2015": "^6.1.18", + "babel-preset-es2015-rollup": "^1.1.1", "babel-preset-stage-2": "^6.1.18", "babel-runtime": "^5.8.0", "chai": "^3.4.1", @@ -45,12 +45,15 @@ "eslint-plugin-promise": "^1.0.8", "eslint-plugin-standard": "^1.3.2", "mocha": "^2.3.4", - "style-loader": "^0.13.0", + "rollup": "^0.25.4", + "rollup-plugin-babel": "^2.4.0", "todomvc-app-css": "^2.0.3", + "uglify-js": "^2.6.2", "vue": "^1.0.8", "vue-hot-reload-api": "^1.2.1", "vue-html-loader": "^1.0.0", "vue-loader": "^8.2.0", + "vue-style-loader": "^1.0.0", "webpack": "^1.12.8", "webpack-dev-server": "^1.12.1" } From 2c5b08d3d208b97548461516951b347c931e4380 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 1 Mar 2016 18:18:56 -0500 Subject: [PATCH 004/969] 0.4.1 + dist build --- bower.json | 2 +- dist/vuex.js | 506 +++++++++++++++++++++++++++++++++++++++++++++++ dist/vuex.min.js | 6 + package.json | 2 +- 4 files changed, 514 insertions(+), 2 deletions(-) create mode 100644 dist/vuex.js create mode 100644 dist/vuex.min.js diff --git a/bower.json b/bower.json index 991d45a14..cc13a359c 100644 --- a/bower.json +++ b/bower.json @@ -1,6 +1,6 @@ { "name": "vuex", - "main": "lib/index.js", + "main": "dist/vuex.js", "description": "state management for Vue.js", "authors": "Evan You", "license": "MIT", diff --git a/dist/vuex.js b/dist/vuex.js new file mode 100644 index 000000000..41a2e8904 --- /dev/null +++ b/dist/vuex.js @@ -0,0 +1,506 @@ +/*! + * Vuex v0.4.1 + * (c) 2016 Evan You + * Released under the MIT License. + */ +(function (global, factory) { + typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : + typeof define === 'function' && define.amd ? define(['exports'], factory) : + (factory((global.Vuex = global.Vuex || {}))); +}(this, function (exports) { 'use strict'; + + var babelHelpers = {}; + babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + }; + + babelHelpers.classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + }; + + babelHelpers.createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; + }; + }(); + + babelHelpers; + + /** + * Merge an array of objects into one. + * + * @param {Array} arr + * @return {Object} + */ + + function mergeObjects(arr) { + return arr.reduce(function (prev, obj) { + Object.keys(obj).forEach(function (key) { + var existing = prev[key]; + if (existing) { + // allow multiple mutation objects to contain duplicate + // handlers for the same mutation type + if (Array.isArray(existing)) { + existing.push(obj[key]); + } else { + prev[key] = [prev[key], obj[key]]; + } + } else { + prev[key] = obj[key]; + } + }); + return prev; + }, {}); + } + + /** + * Deep clone an object. Faster than JSON.parse(JSON.stringify()). + * + * @param {*} obj + * @return {*} + */ + + function deepClone(obj) { + if (Array.isArray(obj)) { + return obj.map(deepClone); + } else if (obj && (typeof obj === 'undefined' ? 'undefined' : babelHelpers.typeof(obj)) === 'object') { + var cloned = {}; + var keys = Object.keys(obj); + for (var i = 0, l = keys.length; i < l; i++) { + var key = keys[i]; + cloned[key] = deepClone(obj[key]); + } + return cloned; + } else { + return obj; + } + } + + var devtoolMiddleware = { + onInit: function onInit(state) { + // TODO + }, + onMutation: function onMutation(mutation, state) { + // TODO + } + }; + + // Credits: borrowed code from fcomb/redux-logger + + function createLogger() { + var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _ref$collapsed = _ref.collapsed; + var collapsed = _ref$collapsed === undefined ? true : _ref$collapsed; + var _ref$transformer = _ref.transformer; + var transformer = _ref$transformer === undefined ? function (state) { + return state; + } : _ref$transformer; + var _ref$mutationTransfor = _ref.mutationTransformer; + var mutationTransformer = _ref$mutationTransfor === undefined ? function (mut) { + return mut; + } : _ref$mutationTransfor; + + return { + snapshot: true, + onMutation: function onMutation(mutation, nextState, prevState) { + if (typeof console === 'undefined') { + return; + } + var time = new Date(); + var formattedTime = ' @ ' + pad(time.getHours(), 2) + ':' + pad(time.getMinutes(), 2) + ':' + pad(time.getSeconds(), 2) + '.' + pad(time.getMilliseconds(), 3); + var formattedMutation = mutationTransformer(mutation); + var message = 'mutation ' + mutation.type + formattedTime; + var startMessage = collapsed ? console.groupCollapsed : console.group; + + // render + try { + startMessage.call(console, message); + } catch (e) { + console.log(message); + } + + console.log('%c prev state', 'color: #9E9E9E; font-weight: bold', prevState); + console.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation); + console.log('%c next state', 'color: #4CAF50; font-weight: bold', nextState); + + try { + console.groupEnd(); + } catch (e) { + console.log('—— log end ——'); + } + } + }; + } + + function repeat(str, times) { + return new Array(times + 1).join(str); + } + + function pad(num, maxLength) { + return repeat('0', maxLength - num.toString().length) + num; + } + + // export install function + function override (Vue) { + var _init = Vue.prototype._init; + Vue.prototype._init = function (options) { + var _this = this; + + options = options || {}; + var componentOptions = this.constructor.options; + // store injection + var store = options.store || componentOptions.store; + if (store) { + this.$store = store; + } else if (options.parent && options.parent.$store) { + this.$store = options.parent.$store; + } + // vuex option handling + var vuex = options.vuex || componentOptions.vuex; + if (vuex) { + (function () { + if (!_this.$store) { + console.warn('[vuex] store not injected. make sure to ' + 'provide the store option in your root component.'); + } + var state = vuex.state; + var actions = vuex.actions; + // state + + if (state) { + options.computed = options.computed || {}; + Object.keys(state).forEach(function (key) { + options.computed[key] = function vuexBoundGetter() { + return state[key].call(this, this.$store.state); + }; + }); + } + // actions + if (actions) { + options.methods = options.methods || {}; + Object.keys(actions).forEach(function (key) { + options.methods[key] = function vuexBoundAction() { + var _actions$key; + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return (_actions$key = actions[key]).call.apply(_actions$key, [this, this.$store].concat(args)); + }; + }); + } + })(); + } + _init.call(this, options); + }; + } + + var Vue = undefined; + + var Store = function () { + + /** + * @param {Object} options + * - {Object} state + * - {Object} actions + * - {Object} mutations + * - {Array} middlewares + * - {Boolean} strict + */ + + function Store() { + var _this = this; + + var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var _ref$state = _ref.state; + var state = _ref$state === undefined ? {} : _ref$state; + var _ref$mutations = _ref.mutations; + var mutations = _ref$mutations === undefined ? {} : _ref$mutations; + var _ref$modules = _ref.modules; + var modules = _ref$modules === undefined ? {} : _ref$modules; + var _ref$middlewares = _ref.middlewares; + var middlewares = _ref$middlewares === undefined ? [] : _ref$middlewares; + var _ref$strict = _ref.strict; + var strict = _ref$strict === undefined ? false : _ref$strict; + babelHelpers.classCallCheck(this, Store); + + this._dispatching = false; + this._rootMutations = this._mutations = mutations; + this._modules = modules; + // bind dispatch to self + var dispatch = this.dispatch; + this.dispatch = function () { + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + dispatch.apply(_this, args); + }; + // use a Vue instance to store the state tree + this._vm = new Vue({ + data: state + }); + this._setupModuleState(state, modules); + this._setupModuleMutations(modules); + this._setupMiddlewares(middlewares, state); + // add extra warnings in strict mode + if (strict) { + this._setupMutationCheck(); + } + } + + /** + * Getter for the entire state tree. + * Read only. + * + * @return {Object} + */ + + babelHelpers.createClass(Store, [{ + key: 'dispatch', + + + /** + * Dispatch an action. + * + * @param {String} type + */ + + value: function dispatch(type) { + for (var _len2 = arguments.length, payload = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { + payload[_key2 - 1] = arguments[_key2]; + } + + var mutation = this._mutations[type]; + var prevSnapshot = this._prevSnapshot; + var state = this.state; + var snapshot = undefined, + clonedPayload = undefined; + if (mutation) { + this._dispatching = true; + // apply the mutation + if (Array.isArray(mutation)) { + mutation.forEach(function (m) { + return m.apply(undefined, [state].concat(payload)); + }); + } else { + mutation.apply(undefined, [state].concat(payload)); + } + this._dispatching = false; + // invoke middlewares + if (this._needSnapshots) { + snapshot = this._prevSnapshot = deepClone(state); + clonedPayload = deepClone(payload); + } + this._middlewares.forEach(function (m) { + if (m.onMutation) { + if (m.snapshot) { + m.onMutation({ type: type, payload: clonedPayload }, snapshot, prevSnapshot); + } else { + m.onMutation({ type: type, payload: payload }, state); + } + } + }); + } else { + console.warn('[vuex] Unknown mutation: ' + type); + } + } + + /** + * Watch state changes on the store. + * Same API as Vue's $watch, except when watching a function, + * the function gets the state as the first argument. + * + * @param {String|Function} expOrFn + * @param {Function} cb + * @param {Object} [options] + */ + + }, { + key: 'watch', + value: function watch(expOrFn, cb, options) { + var _this2 = this; + + return this._vm.$watch(function () { + return typeof expOrFn === 'function' ? expOrFn(_this2.state) : _this2._vm.$get(expOrFn); + }, cb, options); + } + + /** + * Hot update actions and mutations. + * + * @param {Object} options + * - {Object} [mutations] + * - {Object} [modules] + */ + + }, { + key: 'hotUpdate', + value: function hotUpdate() { + var _ref2 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + + var mutations = _ref2.mutations; + var modules = _ref2.modules; + + this._rootMutations = this._mutations = mutations || this._rootMutations; + this._setupModuleMutations(modules || this._modules); + } + + /** + * Attach sub state tree of each module to the root tree. + * + * @param {Object} state + * @param {Object} modules + */ + + }, { + key: '_setupModuleState', + value: function _setupModuleState(state, modules) { + var setPath = Vue.parsers.path.setPath; + + Object.keys(modules).forEach(function (key) { + setPath(state, key, modules[key].state); + }); + } + + /** + * Bind mutations for each module to its sub tree and + * merge them all into one final mutations map. + * + * @param {Object} modules + */ + + }, { + key: '_setupModuleMutations', + value: function _setupModuleMutations(modules) { + this._modules = modules; + var getPath = Vue.parsers.path.getPath; + + var allMutations = [this._rootMutations]; + Object.keys(modules).forEach(function (key) { + var module = modules[key]; + // bind mutations to sub state tree + var mutations = {}; + Object.keys(module.mutations).forEach(function (name) { + var original = module.mutations[name]; + mutations[name] = function (state) { + for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { + args[_key3 - 1] = arguments[_key3]; + } + + original.apply(undefined, [getPath(state, key)].concat(args)); + }; + }); + allMutations.push(mutations); + }); + this._mutations = mergeObjects(allMutations); + } + + /** + * Setup mutation check: if the vuex instance's state is mutated + * outside of a mutation handler, we throw en error. This effectively + * enforces all mutations to the state to be trackable and hot-reloadble. + * However, this comes at a run time cost since we are doing a deep + * watch on the entire state tree, so it is only enalbed with the + * strict option is set to true. + */ + + }, { + key: '_setupMutationCheck', + value: function _setupMutationCheck() { + var _this3 = this; + + // a hack to get the watcher constructor from older versions of Vue + // mainly because the public $watch method does not allow sync + // watchers. + var unwatch = this._vm.$watch('__vuex__', function (a) { + return a; + }); + var Watcher = this._vm._watchers[0].constructor; + unwatch(); + /* eslint-disable no-new */ + new Watcher(this._vm, '$data', function () { + if (!_this3._dispatching) { + throw new Error('[vuex] Do not mutate vuex store state outside mutation handlers.'); + } + }, { deep: true, sync: true }); + /* eslint-enable no-new */ + } + + /** + * Setup the middlewares. The devtools middleware is always + * included, since it does nothing if no devtool is detected. + * + * A middleware can demand the state it receives to be + * "snapshots", i.e. deep clones of the actual state tree. + * + * @param {Array} middlewares + * @param {Object} state + */ + + }, { + key: '_setupMiddlewares', + value: function _setupMiddlewares(middlewares, state) { + this._middlewares = [devtoolMiddleware].concat(middlewares); + this._needSnapshots = middlewares.some(function (m) { + return m.snapshot; + }); + if (this._needSnapshots) { + console.log('[vuex] One or more of your middlewares are taking state snapshots ' + 'for each mutation. Make sure to use them only during development.'); + } + var initialSnapshot = this._prevSnapshot = this._needSnapshots ? deepClone(state) : null; + // call init hooks + this._middlewares.forEach(function (m) { + if (m.onInit) { + m.onInit(m.snapshot ? initialSnapshot : state); + } + }); + } + }, { + key: 'state', + get: function get() { + return this._vm._data; + }, + set: function set(v) { + throw new Error('[vuex] Vuex root state is read only.'); + } + }]); + return Store; + }(); + + function install(_Vue) { + Vue = _Vue; + override(Vue); + } + + // also export the default + var index = { + Store: Store, + install: install, + createLogger: createLogger + }; + + exports.Store = Store; + exports.install = install; + exports.createLogger = createLogger; + exports['default'] = index; + +})); \ No newline at end of file diff --git a/dist/vuex.min.js b/dist/vuex.min.js new file mode 100644 index 000000000..6fa534d93 --- /dev/null +++ b/dist/vuex.min.js @@ -0,0 +1,6 @@ +/*! + * Vuex v0.4.1 + * (c) 2016 Evan You + * Released under the MIT License. + */ +!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o(t.Vuex=t.Vuex||{})}(this,function(t){"use strict";function o(t){return t.reduce(function(t,o){return Object.keys(o).forEach(function(e){var n=t[e];n?Array.isArray(n)?n.push(o[e]):t[e]=[t[e],o[e]]:t[e]=o[e]}),t},{})}function e(t){if(Array.isArray(t))return t.map(e);if(t&&"object"===("undefined"==typeof t?"undefined":u["typeof"](t))){for(var o={},n=Object.keys(t),r=0,s=n.length;s>r;r++){var i=n[r];o[i]=e(t[i])}return o}return t}function n(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.collapsed,e=void 0===o?!0:o,n=(t.transformer,t.mutationTransformer),r=void 0===n?function(t){return t}:n;return{snapshot:!0,onMutation:function(t,o,n){if("undefined"!=typeof console){var i=new Date,a=" @ "+s(i.getHours(),2)+":"+s(i.getMinutes(),2)+":"+s(i.getSeconds(),2)+"."+s(i.getMilliseconds(),3),u=r(t),c="mutation "+t.type+a,h=e?console.groupCollapsed:console.group;try{h.call(console,c)}catch(l){console.log(c)}console.log("%c prev state","color: #9E9E9E; font-weight: bold",n),console.log("%c mutation","color: #03A9F4; font-weight: bold",u),console.log("%c next state","color: #4CAF50; font-weight: bold",o);try{console.groupEnd()}catch(l){console.log("\u2014\u2014 log end \u2014\u2014")}}}}}function r(t,o){return new Array(o+1).join(t)}function s(t,o){return r("0",o-t.toString().length)+t}function i(t){var o=t.prototype._init;t.prototype._init=function(t){var e=this;t=t||{};var n=this.constructor.options,r=t.store||n.store;r?this.$store=r:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var s=t.vuex||n.vuex;s&&!function(){e.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var o=s.state,n=s.actions;o&&(t.computed=t.computed||{},Object.keys(o).forEach(function(e){t.computed[e]=function(){return o[e].call(this,this.$store.state)}})),n&&(t.methods=t.methods||{},Object.keys(n).forEach(function(o){t.methods[o]=function(){for(var t,e=arguments.length,r=Array(e),s=0;e>s;s++)r[s]=arguments[s];return(t=n[o]).call.apply(t,[this,this.$store].concat(r))}}))}(),o.call(this,t)}}function a(t){h=t,i(h)}var u={};u["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},u.classCallCheck=function(t,o){if(!(t instanceof o))throw new TypeError("Cannot call a class as a function")},u.createClass=function(){function t(t,o){for(var e=0;en;n++)e[n]=arguments[n];v.apply(o,e)},this._vm=new h({data:r}),this._setupModuleState(r,c),this._setupModuleMutations(c),this._setupMiddlewares(f,r),p&&this._setupMutationCheck()}return u.createClass(t,[{key:"dispatch",value:function(t){for(var o=arguments.length,n=Array(o>1?o-1:0),r=1;o>r;r++)n[r-1]=arguments[r];var s=this._mutations[t],i=this._prevSnapshot,a=this.state,u=void 0,c=void 0;s?(this._dispatching=!0,Array.isArray(s)?s.forEach(function(t){return t.apply(void 0,[a].concat(n))}):s.apply(void 0,[a].concat(n)),this._dispatching=!1,this._needSnapshots&&(u=this._prevSnapshot=e(a),c=e(n)),this._middlewares.forEach(function(o){o.onMutation&&(o.snapshot?o.onMutation({type:t,payload:c},u,i):o.onMutation({type:t,payload:n},a))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,o,e){var n=this;return this._vm.$watch(function(){return"function"==typeof t?t(n.state):n._vm.$get(t)},o,e)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.mutations,e=t.modules;this._rootMutations=this._mutations=o||this._rootMutations,this._setupModuleMutations(e||this._modules)}},{key:"_setupModuleState",value:function(t,o){var e=h.parsers.path.setPath;Object.keys(o).forEach(function(n){e(t,n,o[n].state)})}},{key:"_setupModuleMutations",value:function(t){this._modules=t;var e=h.parsers.path.getPath,n=[this._rootMutations];Object.keys(t).forEach(function(o){var r=t[o],s={};Object.keys(r.mutations).forEach(function(t){var n=r.mutations[t];s[t]=function(t){for(var r=arguments.length,s=Array(r>1?r-1:0),i=1;r>i;i++)s[i-1]=arguments[i];n.apply(void 0,[e(t,o)].concat(s))}}),n.push(s)}),this._mutations=o(n)}},{key:"_setupMutationCheck",value:function(){var t=this,o=this._vm.$watch("__vuex__",function(t){return t}),e=this._vm._watchers[0].constructor;o(),new e(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,o){this._middlewares=[c].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var n=this._prevSnapshot=this._needSnapshots?e(o):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?n:o)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),t}(),f={Store:l,install:a,createLogger:n};t.Store=l,t.install=a,t.createLogger=n,t["default"]=f}); \ No newline at end of file diff --git a/package.json b/package.json index 1a8c2e3d0..255e88c83 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "0.4.0", + "version": "0.4.1", "description": "state management for Vue.js", "main": "dist/vuex.js", "files": [ From 89be95da12c9c7cd6057da3815e6ada690bbe02d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=BDiga=20Vidic?= Date: Tue, 1 Mar 2016 20:04:18 -0800 Subject: [PATCH 005/969] There is no getters.md --- docs/en/getting-started.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/en/getting-started.md b/docs/en/getting-started.md index 3313a3764..a7b75a394 100644 --- a/docs/en/getting-started.md +++ b/docs/en/getting-started.md @@ -41,4 +41,4 @@ console.log(store.state.count) // -> 1 Again, the reason we are dispatching a mutation instead of changing `store.state.count` directly, is because we want to explicitly track it. This simple convention makes your intention more explicit, so that you can reason about state changes in your app better when reading the code. In addition, this gives us the opportunity to implement tools that can log every mutation, take state snapshots, or even perform time travel debugging. -Now this is just the simplest possible example of what a store is. But Vuex is more than just the store. Next, we will discuss some core concepts in depth: [State](state.md), [Mutations](mutations.md), [Actions](actions.md) and [Getters](getters.md). +Now this is just the simplest possible example of what a store is. But Vuex is more than just the store. Next, we will discuss some core concepts in depth: [State](state.md), [Mutations](mutations.md) and [Actions](actions.md). From e026c044baa809cf0ba371233b544da64a6d5139 Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 1 Mar 2016 23:13:54 -0500 Subject: [PATCH 006/969] run tests with BABEL_ENV --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 255e88c83..18bae762c 100644 --- a/package.json +++ b/package.json @@ -14,7 +14,7 @@ "cart": "cd examples/shopping-cart && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "build": "node build/build.js", - "test": "eslint src && mocha --compilers js:babel-core/register", + "test": "eslint src && BABEL_ENV=development mocha --compilers js:babel-core/register", "docs": "cd docs && gitbook serve", "deploy-docs": "cd docs && ./deploy.sh" }, From fe85a4262eb18dd564b02980cfff83aeee99f58b Mon Sep 17 00:00:00 2001 From: Evan You Date: Tue, 1 Mar 2016 23:41:03 -0500 Subject: [PATCH 007/969] fix todomvc example --- examples/todomvc/vuex/store.js | 1 - 1 file changed, 1 deletion(-) diff --git a/examples/todomvc/vuex/store.js b/examples/todomvc/vuex/store.js index 5d7cdf7ff..38296ce5e 100644 --- a/examples/todomvc/vuex/store.js +++ b/examples/todomvc/vuex/store.js @@ -1,6 +1,5 @@ import Vue from 'vue' import Vuex from '../../../src' -import mutations from './mutations' import middlewares from './middlewares' Vue.use(Vuex) From 3fff85fdfea9b9343c73a19040a2e2a8ed7a97ea Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 2 Mar 2016 00:27:46 -0500 Subject: [PATCH 008/969] add replace state method --- src/index.js | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/index.js b/src/index.js index 123607572..3e556b1d2 100644 --- a/src/index.js +++ b/src/index.js @@ -129,6 +129,18 @@ export class Store { this._setupModuleMutations(modules || this._modules) } + /** + * Replace entire state tree. + */ + + replaceState (newState) { + const state = this._vm._data + const clone = deepClone(newState) + Object.keys(clone).forEach(key => { + state[key] = clone[key] + }) + } + /** * Attach sub state tree of each module to the root tree. * From b0128d2fe52b2eee1f4532fd029d3b8cbb1aa1b0 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 2 Mar 2016 11:12:30 -0500 Subject: [PATCH 009/969] fix dist build export --- examples/todomvc/vuex/middlewares.js | 4 ++-- src/index.js | 8 +------- 2 files changed, 3 insertions(+), 9 deletions(-) diff --git a/examples/todomvc/vuex/middlewares.js b/examples/todomvc/vuex/middlewares.js index 645039262..d3f611b27 100644 --- a/examples/todomvc/vuex/middlewares.js +++ b/examples/todomvc/vuex/middlewares.js @@ -1,5 +1,5 @@ import { STORAGE_KEY } from './store' -import { createLogger } from '../../../src' +import Vuex from '../../../src' const localStorageMiddleware = { onMutation (mutation, { todos }) { @@ -8,5 +8,5 @@ const localStorageMiddleware = { } export default process.env.NODE_ENV !== 'production' - ? [createLogger(), localStorageMiddleware] + ? [Vuex.createLogger(), localStorageMiddleware] : [localStorageMiddleware] diff --git a/src/index.js b/src/index.js index 3e556b1d2..b379da129 100644 --- a/src/index.js +++ b/src/index.js @@ -5,7 +5,7 @@ import override from './override' let Vue -export class Store { +class Store { /** * @param {Object} options @@ -245,12 +245,6 @@ function install (_Vue) { override(Vue) } -export { - install, - createLogger -} - -// also export the default export default { Store, install, From aeb71ab50922e07e4610abf55a4314854e9b7f98 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 2 Mar 2016 11:13:38 -0500 Subject: [PATCH 010/969] [build] 0.4.2 --- dist/vuex.js | 30 ++++++++++++++++++++---------- dist/vuex.min.js | 4 ++-- package.json | 2 +- 3 files changed, 23 insertions(+), 13 deletions(-) diff --git a/dist/vuex.js b/dist/vuex.js index 41a2e8904..9b1bbbad7 100644 --- a/dist/vuex.js +++ b/dist/vuex.js @@ -1,13 +1,13 @@ /*! - * Vuex v0.4.1 + * Vuex v0.4.2 * (c) 2016 Evan You * Released under the MIT License. */ (function (global, factory) { - typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports) : - typeof define === 'function' && define.amd ? define(['exports'], factory) : - (factory((global.Vuex = global.Vuex || {}))); -}(this, function (exports) { 'use strict'; + typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : + typeof define === 'function' && define.amd ? define(factory) : + (global.Vuex = factory()); +}(this, function () { 'use strict'; var babelHelpers = {}; babelHelpers.typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { @@ -364,6 +364,20 @@ this._setupModuleMutations(modules || this._modules); } + /** + * Replace entire state tree. + */ + + }, { + key: 'replaceState', + value: function replaceState(newState) { + var state = this._vm._data; + var clone = deepClone(newState); + Object.keys(clone).forEach(function (key) { + state[key] = clone[key]; + }); + } + /** * Attach sub state tree of each module to the root tree. * @@ -491,16 +505,12 @@ override(Vue); } - // also export the default var index = { Store: Store, install: install, createLogger: createLogger }; - exports.Store = Store; - exports.install = install; - exports.createLogger = createLogger; - exports['default'] = index; + return index; })); \ No newline at end of file diff --git a/dist/vuex.min.js b/dist/vuex.min.js index 6fa534d93..26451eeae 100644 --- a/dist/vuex.min.js +++ b/dist/vuex.min.js @@ -1,6 +1,6 @@ /*! - * Vuex v0.4.1 + * Vuex v0.4.2 * (c) 2016 Evan You * Released under the MIT License. */ -!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?o(exports):"function"==typeof define&&define.amd?define(["exports"],o):o(t.Vuex=t.Vuex||{})}(this,function(t){"use strict";function o(t){return t.reduce(function(t,o){return Object.keys(o).forEach(function(e){var n=t[e];n?Array.isArray(n)?n.push(o[e]):t[e]=[t[e],o[e]]:t[e]=o[e]}),t},{})}function e(t){if(Array.isArray(t))return t.map(e);if(t&&"object"===("undefined"==typeof t?"undefined":u["typeof"](t))){for(var o={},n=Object.keys(t),r=0,s=n.length;s>r;r++){var i=n[r];o[i]=e(t[i])}return o}return t}function n(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.collapsed,e=void 0===o?!0:o,n=(t.transformer,t.mutationTransformer),r=void 0===n?function(t){return t}:n;return{snapshot:!0,onMutation:function(t,o,n){if("undefined"!=typeof console){var i=new Date,a=" @ "+s(i.getHours(),2)+":"+s(i.getMinutes(),2)+":"+s(i.getSeconds(),2)+"."+s(i.getMilliseconds(),3),u=r(t),c="mutation "+t.type+a,h=e?console.groupCollapsed:console.group;try{h.call(console,c)}catch(l){console.log(c)}console.log("%c prev state","color: #9E9E9E; font-weight: bold",n),console.log("%c mutation","color: #03A9F4; font-weight: bold",u),console.log("%c next state","color: #4CAF50; font-weight: bold",o);try{console.groupEnd()}catch(l){console.log("\u2014\u2014 log end \u2014\u2014")}}}}}function r(t,o){return new Array(o+1).join(t)}function s(t,o){return r("0",o-t.toString().length)+t}function i(t){var o=t.prototype._init;t.prototype._init=function(t){var e=this;t=t||{};var n=this.constructor.options,r=t.store||n.store;r?this.$store=r:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var s=t.vuex||n.vuex;s&&!function(){e.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var o=s.state,n=s.actions;o&&(t.computed=t.computed||{},Object.keys(o).forEach(function(e){t.computed[e]=function(){return o[e].call(this,this.$store.state)}})),n&&(t.methods=t.methods||{},Object.keys(n).forEach(function(o){t.methods[o]=function(){for(var t,e=arguments.length,r=Array(e),s=0;e>s;s++)r[s]=arguments[s];return(t=n[o]).call.apply(t,[this,this.$store].concat(r))}}))}(),o.call(this,t)}}function a(t){h=t,i(h)}var u={};u["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},u.classCallCheck=function(t,o){if(!(t instanceof o))throw new TypeError("Cannot call a class as a function")},u.createClass=function(){function t(t,o){for(var e=0;en;n++)e[n]=arguments[n];v.apply(o,e)},this._vm=new h({data:r}),this._setupModuleState(r,c),this._setupModuleMutations(c),this._setupMiddlewares(f,r),p&&this._setupMutationCheck()}return u.createClass(t,[{key:"dispatch",value:function(t){for(var o=arguments.length,n=Array(o>1?o-1:0),r=1;o>r;r++)n[r-1]=arguments[r];var s=this._mutations[t],i=this._prevSnapshot,a=this.state,u=void 0,c=void 0;s?(this._dispatching=!0,Array.isArray(s)?s.forEach(function(t){return t.apply(void 0,[a].concat(n))}):s.apply(void 0,[a].concat(n)),this._dispatching=!1,this._needSnapshots&&(u=this._prevSnapshot=e(a),c=e(n)),this._middlewares.forEach(function(o){o.onMutation&&(o.snapshot?o.onMutation({type:t,payload:c},u,i):o.onMutation({type:t,payload:n},a))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,o,e){var n=this;return this._vm.$watch(function(){return"function"==typeof t?t(n.state):n._vm.$get(t)},o,e)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.mutations,e=t.modules;this._rootMutations=this._mutations=o||this._rootMutations,this._setupModuleMutations(e||this._modules)}},{key:"_setupModuleState",value:function(t,o){var e=h.parsers.path.setPath;Object.keys(o).forEach(function(n){e(t,n,o[n].state)})}},{key:"_setupModuleMutations",value:function(t){this._modules=t;var e=h.parsers.path.getPath,n=[this._rootMutations];Object.keys(t).forEach(function(o){var r=t[o],s={};Object.keys(r.mutations).forEach(function(t){var n=r.mutations[t];s[t]=function(t){for(var r=arguments.length,s=Array(r>1?r-1:0),i=1;r>i;i++)s[i-1]=arguments[i];n.apply(void 0,[e(t,o)].concat(s))}}),n.push(s)}),this._mutations=o(n)}},{key:"_setupMutationCheck",value:function(){var t=this,o=this._vm.$watch("__vuex__",function(t){return t}),e=this._vm._watchers[0].constructor;o(),new e(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,o){this._middlewares=[c].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var n=this._prevSnapshot=this._needSnapshots?e(o):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?n:o)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),t}(),f={Store:l,install:a,createLogger:n};t.Store=l,t.install=a,t.createLogger=n,t["default"]=f}); \ No newline at end of file +!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):t.Vuex=o()}(this,function(){"use strict";function t(t){return t.reduce(function(t,o){return Object.keys(o).forEach(function(e){var n=t[e];n?Array.isArray(n)?n.push(o[e]):t[e]=[t[e],o[e]]:t[e]=o[e]}),t},{})}function o(t){if(Array.isArray(t))return t.map(o);if(t&&"object"===("undefined"==typeof t?"undefined":a["typeof"](t))){for(var e={},n=Object.keys(t),i=0,r=n.length;r>i;i++){var s=n[i];e[s]=o(t[s])}return e}return t}function e(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.collapsed,e=void 0===o?!0:o,n=(t.transformer,t.mutationTransformer),r=void 0===n?function(t){return t}:n;return{snapshot:!0,onMutation:function(t,o,n){if("undefined"!=typeof console){var s=new Date,a=" @ "+i(s.getHours(),2)+":"+i(s.getMinutes(),2)+":"+i(s.getSeconds(),2)+"."+i(s.getMilliseconds(),3),u=r(t),c="mutation "+t.type+a,h=e?console.groupCollapsed:console.group;try{h.call(console,c)}catch(l){console.log(c)}console.log("%c prev state","color: #9E9E9E; font-weight: bold",n),console.log("%c mutation","color: #03A9F4; font-weight: bold",u),console.log("%c next state","color: #4CAF50; font-weight: bold",o);try{console.groupEnd()}catch(l){console.log("\u2014\u2014 log end \u2014\u2014")}}}}}function n(t,o){return new Array(o+1).join(t)}function i(t,o){return n("0",o-t.toString().length)+t}function r(t){var o=t.prototype._init;t.prototype._init=function(t){var e=this;t=t||{};var n=this.constructor.options,i=t.store||n.store;i?this.$store=i:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var r=t.vuex||n.vuex;r&&!function(){e.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var o=r.state,n=r.actions;o&&(t.computed=t.computed||{},Object.keys(o).forEach(function(e){t.computed[e]=function(){return o[e].call(this,this.$store.state)}})),n&&(t.methods=t.methods||{},Object.keys(n).forEach(function(o){t.methods[o]=function(){for(var t,e=arguments.length,i=Array(e),r=0;e>r;r++)i[r]=arguments[r];return(t=n[o]).call.apply(t,[this,this.$store].concat(i))}}))}(),o.call(this,t)}}function s(t){c=t,r(c)}var a={};a["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a.classCallCheck=function(t,o){if(!(t instanceof o))throw new TypeError("Cannot call a class as a function")},a.createClass=function(){function t(t,o){for(var e=0;en;n++)e[n]=arguments[n];v.apply(t,e)},this._vm=new c({data:i}),this._setupModuleState(i,h),this._setupModuleMutations(h),this._setupMiddlewares(f,i),p&&this._setupMutationCheck()}return a.createClass(e,[{key:"dispatch",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;e>i;i++)n[i-1]=arguments[i];var r=this._mutations[t],s=this._prevSnapshot,a=this.state,u=void 0,c=void 0;r?(this._dispatching=!0,Array.isArray(r)?r.forEach(function(t){return t.apply(void 0,[a].concat(n))}):r.apply(void 0,[a].concat(n)),this._dispatching=!1,this._needSnapshots&&(u=this._prevSnapshot=o(a),c=o(n)),this._middlewares.forEach(function(o){o.onMutation&&(o.snapshot?o.onMutation({type:t,payload:c},u,s):o.onMutation({type:t,payload:n},a))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,o,e){var n=this;return this._vm.$watch(function(){return"function"==typeof t?t(n.state):n._vm.$get(t)},o,e)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.mutations,e=t.modules;this._rootMutations=this._mutations=o||this._rootMutations,this._setupModuleMutations(e||this._modules)}},{key:"replaceState",value:function(t){var e=this._vm._data,n=o(t);Object.keys(n).forEach(function(t){e[t]=n[t]})}},{key:"_setupModuleState",value:function(t,o){var e=c.parsers.path.setPath;Object.keys(o).forEach(function(n){e(t,n,o[n].state)})}},{key:"_setupModuleMutations",value:function(o){this._modules=o;var e=c.parsers.path.getPath,n=[this._rootMutations];Object.keys(o).forEach(function(t){var i=o[t],r={};Object.keys(i.mutations).forEach(function(o){var n=i.mutations[o];r[o]=function(o){for(var i=arguments.length,r=Array(i>1?i-1:0),s=1;i>s;s++)r[s-1]=arguments[s];n.apply(void 0,[e(o,t)].concat(r))}}),n.push(r)}),this._mutations=t(n)}},{key:"_setupMutationCheck",value:function(){var t=this,o=this._vm.$watch("__vuex__",function(t){return t}),e=this._vm._watchers[0].constructor;o(),new e(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,e){this._middlewares=[u].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var n=this._prevSnapshot=this._needSnapshots?o(e):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?n:e)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),e}(),l={Store:h,install:s,createLogger:e};return l}); \ No newline at end of file diff --git a/package.json b/package.json index 18bae762c..93bab34c8 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "0.4.1", + "version": "0.4.2", "description": "state management for Vue.js", "main": "dist/vuex.js", "files": [ From 20b0c365defecd7bc9a92563c248bed7d22af528 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 3 Mar 2016 01:19:40 -0500 Subject: [PATCH 011/969] devtool middleware --- src/index.js | 21 +++++---------------- src/middlewares/devtool.js | 18 +++++++++++++++--- 2 files changed, 20 insertions(+), 19 deletions(-) diff --git a/src/index.js b/src/index.js index b379da129..7ab6480e2 100644 --- a/src/index.js +++ b/src/index.js @@ -87,9 +87,9 @@ class Store { this._middlewares.forEach(m => { if (m.onMutation) { if (m.snapshot) { - m.onMutation({ type, payload: clonedPayload }, snapshot, prevSnapshot) + m.onMutation({ type, payload: clonedPayload }, snapshot, prevSnapshot, this) } else { - m.onMutation({ type, payload }, state) + m.onMutation({ type, payload }, state, this) } } }) @@ -129,18 +129,6 @@ class Store { this._setupModuleMutations(modules || this._modules) } - /** - * Replace entire state tree. - */ - - replaceState (newState) { - const state = this._vm._data - const clone = deepClone(newState) - Object.keys(clone).forEach(key => { - state[key] = clone[key] - }) - } - /** * Attach sub state tree of each module to the root tree. * @@ -151,7 +139,7 @@ class Store { _setupModuleState (state, modules) { const { setPath } = Vue.parsers.path Object.keys(modules).forEach(key => { - setPath(state, key, modules[key].state) + setPath(state, key, modules[key].state || {}) }) } @@ -168,6 +156,7 @@ class Store { const allMutations = [this._rootMutations] Object.keys(modules).forEach(key => { const module = modules[key] + if (!module || !module.mutations) return // bind mutations to sub state tree const mutations = {} Object.keys(module.mutations).forEach(name => { @@ -234,7 +223,7 @@ class Store { // call init hooks this._middlewares.forEach(m => { if (m.onInit) { - m.onInit(m.snapshot ? initialSnapshot : state) + m.onInit(m.snapshot ? initialSnapshot : state, this) } }) } diff --git a/src/middlewares/devtool.js b/src/middlewares/devtool.js index f52da0316..df817dff4 100644 --- a/src/middlewares/devtool.js +++ b/src/middlewares/devtool.js @@ -1,8 +1,20 @@ +const hook = + typeof window !== 'undefined' && + window.__VUE_DEVTOOLS_GLOBAL_HOOK__ + export default { - onInit (state) { - // TODO + onInit (state, store) { + if (!hook) return + hook.emit('vuex:init', store) + hook.on('vuex:travel-to-state', targetState => { + const currentState = store._vm._data + Object.keys(targetState).forEach(key => { + currentState[key] = targetState[key] + }) + }) }, onMutation (mutation, state) { - // TODO + if (!hook) return + hook.emit('vuex:mutation', mutation, state) } } From b981e2d47a7bc174a98884ab02a78f4e2aeacaca Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 3 Mar 2016 13:32:37 -0500 Subject: [PATCH 012/969] suppress warnings during vm instantiation --- src/index.js | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/index.js b/src/index.js index 7ab6480e2..b27795ef8 100644 --- a/src/index.js +++ b/src/index.js @@ -32,9 +32,14 @@ class Store { dispatch.apply(this, args) } // use a Vue instance to store the state tree + // suppress warnings just in case the user has added + // some funky global mixins + const silent = Vue.config.silent + Vue.config.silent = true this._vm = new Vue({ data: state }) + Vue.config.silent = silent this._setupModuleState(state, modules) this._setupModuleMutations(modules) this._setupMiddlewares(middlewares, state) From 7a1eb52afb92852154d5e99ffa15d1e9352a6bd1 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 3 Mar 2016 22:05:25 -0500 Subject: [PATCH 013/969] remove logger from default build --- .gitignore | 1 + build/build.js | 28 +++++++++++++++------------- examples/chat/vuex/store.js | 3 ++- examples/todomvc/vuex/middlewares.js | 4 ++-- package.json | 3 ++- src/index.js | 4 +--- 6 files changed, 23 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index 42c4aff98..3c5113900 100644 --- a/.gitignore +++ b/.gitignore @@ -3,3 +3,4 @@ node_modules TODO.md lib docs/_book +logger.js diff --git a/build/build.js b/build/build.js index 861395b37..ebf4567b1 100644 --- a/build/build.js +++ b/build/build.js @@ -19,24 +19,16 @@ rollup.rollup({ plugins: [babel()] }) .then(function (bundle) { - return write('dist/vuex.js', bundle.generate({ + var code = bundle.generate({ format: 'umd', banner: banner, moduleName: 'Vuex' - }).code) -}) -.then(function () { - // Standalone Production Build - return rollup.rollup({ - entry: 'src/index.js', - plugins: [babel()] + }).code + return write('dist/vuex.js', code).then(function () { + return code }) }) -.then(function (bundle) { - var code = bundle.generate({ - format: 'umd', - moduleName: 'Vuex' - }).code +.then(function (code) { var minified = banner + '\n' + uglify.minify(code, { fromString: true, output: { @@ -45,6 +37,16 @@ rollup.rollup({ }).code return write('dist/vuex.min.js', minified) }) +.then(function () { + return rollup.rollup({ + entry: 'src/middlewares/logger.js', + plugins: [babel()] + }).then(function (bundle) { + return write('logger.js', bundle.generate({ + format: 'cjs' + }).code) + }) +}) .catch(logError) function write (dest, code) { diff --git a/examples/chat/vuex/store.js b/examples/chat/vuex/store.js index b6e9b53b9..5a299e23e 100644 --- a/examples/chat/vuex/store.js +++ b/examples/chat/vuex/store.js @@ -1,6 +1,7 @@ import Vue from 'vue' import Vuex from '../../../src' import mutations from './mutations' +import createLogger from '../../../src/middlewares/logger' Vue.use(Vuex) @@ -33,6 +34,6 @@ export default new Vuex.Store({ }, mutations, middlewares: process.env.NODE_ENV !== 'production' - ? [Vuex.createLogger()] + ? [createLogger()] : [] }) diff --git a/examples/todomvc/vuex/middlewares.js b/examples/todomvc/vuex/middlewares.js index d3f611b27..6057f052b 100644 --- a/examples/todomvc/vuex/middlewares.js +++ b/examples/todomvc/vuex/middlewares.js @@ -1,5 +1,5 @@ import { STORAGE_KEY } from './store' -import Vuex from '../../../src' +import createLogger from '../../../src/middlewares/logger' const localStorageMiddleware = { onMutation (mutation, { todos }) { @@ -8,5 +8,5 @@ const localStorageMiddleware = { } export default process.env.NODE_ENV !== 'production' - ? [Vuex.createLogger(), localStorageMiddleware] + ? [createLogger(), localStorageMiddleware] : [localStorageMiddleware] diff --git a/package.json b/package.json index 93bab34c8..34d488730 100644 --- a/package.json +++ b/package.json @@ -5,7 +5,8 @@ "main": "dist/vuex.js", "files": [ "dist", - "src" + "src", + "logger.js" ], "scripts": { "counter": "cd examples/counter && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", diff --git a/src/index.js b/src/index.js index b27795ef8..205a48227 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,5 @@ import { mergeObjects, deepClone } from './util' import devtoolMiddleware from './middlewares/devtool' -import createLogger from './middlewares/logger' import override from './override' let Vue @@ -241,6 +240,5 @@ function install (_Vue) { export default { Store, - install, - createLogger + install } From 111f52d69a84b1b21a7959e292395da3b7fb92ed Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 3 Mar 2016 22:06:04 -0500 Subject: [PATCH 014/969] 0.5.0 --- dist/vuex.js | 117 +++++++++++++---------------------------------- dist/vuex.min.js | 4 +- package.json | 2 +- 3 files changed, 36 insertions(+), 87 deletions(-) diff --git a/dist/vuex.js b/dist/vuex.js index 9b1bbbad7..61825199f 100644 --- a/dist/vuex.js +++ b/dist/vuex.js @@ -1,5 +1,5 @@ /*! - * Vuex v0.4.2 + * Vuex v0.5.0 * (c) 2016 Evan You * Released under the MIT License. */ @@ -92,71 +92,25 @@ } } + var hook = typeof window !== 'undefined' && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + var devtoolMiddleware = { - onInit: function onInit(state) { - // TODO + onInit: function onInit(state, store) { + if (!hook) return; + hook.emit('vuex:init', store); + hook.on('vuex:travel-to-state', function (targetState) { + var currentState = store._vm._data; + Object.keys(targetState).forEach(function (key) { + currentState[key] = targetState[key]; + }); + }); }, onMutation: function onMutation(mutation, state) { - // TODO + if (!hook) return; + hook.emit('vuex:mutation', mutation, state); } }; - // Credits: borrowed code from fcomb/redux-logger - - function createLogger() { - var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - - var _ref$collapsed = _ref.collapsed; - var collapsed = _ref$collapsed === undefined ? true : _ref$collapsed; - var _ref$transformer = _ref.transformer; - var transformer = _ref$transformer === undefined ? function (state) { - return state; - } : _ref$transformer; - var _ref$mutationTransfor = _ref.mutationTransformer; - var mutationTransformer = _ref$mutationTransfor === undefined ? function (mut) { - return mut; - } : _ref$mutationTransfor; - - return { - snapshot: true, - onMutation: function onMutation(mutation, nextState, prevState) { - if (typeof console === 'undefined') { - return; - } - var time = new Date(); - var formattedTime = ' @ ' + pad(time.getHours(), 2) + ':' + pad(time.getMinutes(), 2) + ':' + pad(time.getSeconds(), 2) + '.' + pad(time.getMilliseconds(), 3); - var formattedMutation = mutationTransformer(mutation); - var message = 'mutation ' + mutation.type + formattedTime; - var startMessage = collapsed ? console.groupCollapsed : console.group; - - // render - try { - startMessage.call(console, message); - } catch (e) { - console.log(message); - } - - console.log('%c prev state', 'color: #9E9E9E; font-weight: bold', prevState); - console.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation); - console.log('%c next state', 'color: #4CAF50; font-weight: bold', nextState); - - try { - console.groupEnd(); - } catch (e) { - console.log('—— log end ——'); - } - } - }; - } - - function repeat(str, times) { - return new Array(times + 1).join(str); - } - - function pad(num, maxLength) { - return repeat('0', maxLength - num.toString().length) + num; - } - // export install function function override (Vue) { var _init = Vue.prototype._init; @@ -255,9 +209,14 @@ dispatch.apply(_this, args); }; // use a Vue instance to store the state tree + // suppress warnings just in case the user has added + // some funky global mixins + var silent = Vue.config.silent; + Vue.config.silent = true; this._vm = new Vue({ data: state }); + Vue.config.silent = silent; this._setupModuleState(state, modules); this._setupModuleMutations(modules); this._setupMiddlewares(middlewares, state); @@ -285,6 +244,8 @@ */ value: function dispatch(type) { + var _this2 = this; + for (var _len2 = arguments.length, payload = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { payload[_key2 - 1] = arguments[_key2]; } @@ -313,9 +274,9 @@ this._middlewares.forEach(function (m) { if (m.onMutation) { if (m.snapshot) { - m.onMutation({ type: type, payload: clonedPayload }, snapshot, prevSnapshot); + m.onMutation({ type: type, payload: clonedPayload }, snapshot, prevSnapshot, _this2); } else { - m.onMutation({ type: type, payload: payload }, state); + m.onMutation({ type: type, payload: payload }, state, _this2); } } }); @@ -337,10 +298,10 @@ }, { key: 'watch', value: function watch(expOrFn, cb, options) { - var _this2 = this; + var _this3 = this; return this._vm.$watch(function () { - return typeof expOrFn === 'function' ? expOrFn(_this2.state) : _this2._vm.$get(expOrFn); + return typeof expOrFn === 'function' ? expOrFn(_this3.state) : _this3._vm.$get(expOrFn); }, cb, options); } @@ -364,20 +325,6 @@ this._setupModuleMutations(modules || this._modules); } - /** - * Replace entire state tree. - */ - - }, { - key: 'replaceState', - value: function replaceState(newState) { - var state = this._vm._data; - var clone = deepClone(newState); - Object.keys(clone).forEach(function (key) { - state[key] = clone[key]; - }); - } - /** * Attach sub state tree of each module to the root tree. * @@ -391,7 +338,7 @@ var setPath = Vue.parsers.path.setPath; Object.keys(modules).forEach(function (key) { - setPath(state, key, modules[key].state); + setPath(state, key, modules[key].state || {}); }); } @@ -411,6 +358,7 @@ var allMutations = [this._rootMutations]; Object.keys(modules).forEach(function (key) { var module = modules[key]; + if (!module || !module.mutations) return; // bind mutations to sub state tree var mutations = {}; Object.keys(module.mutations).forEach(function (name) { @@ -440,7 +388,7 @@ }, { key: '_setupMutationCheck', value: function _setupMutationCheck() { - var _this3 = this; + var _this4 = this; // a hack to get the watcher constructor from older versions of Vue // mainly because the public $watch method does not allow sync @@ -452,7 +400,7 @@ unwatch(); /* eslint-disable no-new */ new Watcher(this._vm, '$data', function () { - if (!_this3._dispatching) { + if (!_this4._dispatching) { throw new Error('[vuex] Do not mutate vuex store state outside mutation handlers.'); } }, { deep: true, sync: true }); @@ -473,6 +421,8 @@ }, { key: '_setupMiddlewares', value: function _setupMiddlewares(middlewares, state) { + var _this5 = this; + this._middlewares = [devtoolMiddleware].concat(middlewares); this._needSnapshots = middlewares.some(function (m) { return m.snapshot; @@ -484,7 +434,7 @@ // call init hooks this._middlewares.forEach(function (m) { if (m.onInit) { - m.onInit(m.snapshot ? initialSnapshot : state); + m.onInit(m.snapshot ? initialSnapshot : state, _this5); } }); } @@ -507,8 +457,7 @@ var index = { Store: Store, - install: install, - createLogger: createLogger + install: install }; return index; diff --git a/dist/vuex.min.js b/dist/vuex.min.js index 26451eeae..339e5f905 100644 --- a/dist/vuex.min.js +++ b/dist/vuex.min.js @@ -1,6 +1,6 @@ /*! - * Vuex v0.4.2 + * Vuex v0.5.0 * (c) 2016 Evan You * Released under the MIT License. */ -!function(t,o){"object"==typeof exports&&"undefined"!=typeof module?module.exports=o():"function"==typeof define&&define.amd?define(o):t.Vuex=o()}(this,function(){"use strict";function t(t){return t.reduce(function(t,o){return Object.keys(o).forEach(function(e){var n=t[e];n?Array.isArray(n)?n.push(o[e]):t[e]=[t[e],o[e]]:t[e]=o[e]}),t},{})}function o(t){if(Array.isArray(t))return t.map(o);if(t&&"object"===("undefined"==typeof t?"undefined":a["typeof"](t))){for(var e={},n=Object.keys(t),i=0,r=n.length;r>i;i++){var s=n[i];e[s]=o(t[s])}return e}return t}function e(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.collapsed,e=void 0===o?!0:o,n=(t.transformer,t.mutationTransformer),r=void 0===n?function(t){return t}:n;return{snapshot:!0,onMutation:function(t,o,n){if("undefined"!=typeof console){var s=new Date,a=" @ "+i(s.getHours(),2)+":"+i(s.getMinutes(),2)+":"+i(s.getSeconds(),2)+"."+i(s.getMilliseconds(),3),u=r(t),c="mutation "+t.type+a,h=e?console.groupCollapsed:console.group;try{h.call(console,c)}catch(l){console.log(c)}console.log("%c prev state","color: #9E9E9E; font-weight: bold",n),console.log("%c mutation","color: #03A9F4; font-weight: bold",u),console.log("%c next state","color: #4CAF50; font-weight: bold",o);try{console.groupEnd()}catch(l){console.log("\u2014\u2014 log end \u2014\u2014")}}}}}function n(t,o){return new Array(o+1).join(t)}function i(t,o){return n("0",o-t.toString().length)+t}function r(t){var o=t.prototype._init;t.prototype._init=function(t){var e=this;t=t||{};var n=this.constructor.options,i=t.store||n.store;i?this.$store=i:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var r=t.vuex||n.vuex;r&&!function(){e.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var o=r.state,n=r.actions;o&&(t.computed=t.computed||{},Object.keys(o).forEach(function(e){t.computed[e]=function(){return o[e].call(this,this.$store.state)}})),n&&(t.methods=t.methods||{},Object.keys(n).forEach(function(o){t.methods[o]=function(){for(var t,e=arguments.length,i=Array(e),r=0;e>r;r++)i[r]=arguments[r];return(t=n[o]).call.apply(t,[this,this.$store].concat(i))}}))}(),o.call(this,t)}}function s(t){c=t,r(c)}var a={};a["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},a.classCallCheck=function(t,o){if(!(t instanceof o))throw new TypeError("Cannot call a class as a function")},a.createClass=function(){function t(t,o){for(var e=0;en;n++)e[n]=arguments[n];v.apply(t,e)},this._vm=new c({data:i}),this._setupModuleState(i,h),this._setupModuleMutations(h),this._setupMiddlewares(f,i),p&&this._setupMutationCheck()}return a.createClass(e,[{key:"dispatch",value:function(t){for(var e=arguments.length,n=Array(e>1?e-1:0),i=1;e>i;i++)n[i-1]=arguments[i];var r=this._mutations[t],s=this._prevSnapshot,a=this.state,u=void 0,c=void 0;r?(this._dispatching=!0,Array.isArray(r)?r.forEach(function(t){return t.apply(void 0,[a].concat(n))}):r.apply(void 0,[a].concat(n)),this._dispatching=!1,this._needSnapshots&&(u=this._prevSnapshot=o(a),c=o(n)),this._middlewares.forEach(function(o){o.onMutation&&(o.snapshot?o.onMutation({type:t,payload:c},u,s):o.onMutation({type:t,payload:n},a))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,o,e){var n=this;return this._vm.$watch(function(){return"function"==typeof t?t(n.state):n._vm.$get(t)},o,e)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],o=t.mutations,e=t.modules;this._rootMutations=this._mutations=o||this._rootMutations,this._setupModuleMutations(e||this._modules)}},{key:"replaceState",value:function(t){var e=this._vm._data,n=o(t);Object.keys(n).forEach(function(t){e[t]=n[t]})}},{key:"_setupModuleState",value:function(t,o){var e=c.parsers.path.setPath;Object.keys(o).forEach(function(n){e(t,n,o[n].state)})}},{key:"_setupModuleMutations",value:function(o){this._modules=o;var e=c.parsers.path.getPath,n=[this._rootMutations];Object.keys(o).forEach(function(t){var i=o[t],r={};Object.keys(i.mutations).forEach(function(o){var n=i.mutations[o];r[o]=function(o){for(var i=arguments.length,r=Array(i>1?i-1:0),s=1;i>s;s++)r[s-1]=arguments[s];n.apply(void 0,[e(o,t)].concat(r))}}),n.push(r)}),this._mutations=t(n)}},{key:"_setupMutationCheck",value:function(){var t=this,o=this._vm.$watch("__vuex__",function(t){return t}),e=this._vm._watchers[0].constructor;o(),new e(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,e){this._middlewares=[u].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var n=this._prevSnapshot=this._needSnapshots?o(e):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?n:e)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),e}(),l={Store:h,install:s,createLogger:e};return l}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vuex=e()}(this,function(){"use strict";function t(t){return t.reduce(function(t,e){return Object.keys(e).forEach(function(n){var o=t[n];o?Array.isArray(o)?o.push(e[n]):t[n]=[t[n],e[n]]:t[n]=e[n]}),t},{})}function e(t){if(Array.isArray(t))return t.map(e);if(t&&"object"===("undefined"==typeof t?"undefined":i["typeof"](t))){for(var n={},o=Object.keys(t),s=0,a=o.length;a>s;s++){var r=o[s];n[r]=e(t[r])}return n}return t}function n(t){var e=t.prototype._init;t.prototype._init=function(t){var n=this;t=t||{};var o=this.constructor.options,i=t.store||o.store;i?this.$store=i:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var s=t.vuex||o.vuex;s&&!function(){n.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var e=s.state,o=s.actions;e&&(t.computed=t.computed||{},Object.keys(e).forEach(function(n){t.computed[n]=function(){return e[n].call(this,this.$store.state)}})),o&&(t.methods=t.methods||{},Object.keys(o).forEach(function(e){t.methods[e]=function(){for(var t,n=arguments.length,i=Array(n),s=0;n>s;s++)i[s]=arguments[s];return(t=o[e]).call.apply(t,[this,this.$store].concat(i))}}))}(),e.call(this,t)}}function o(t){r=t,n(r)}var i={};i["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},i.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},i.createClass=function(){function t(t,e){for(var n=0;no;o++)n[o]=arguments[o];v.apply(t,n)};var y=r.config.silent;r.config.silent=!0,this._vm=new r({data:s}),r.config.silent=y,this._setupModuleState(s,h),this._setupModuleMutations(h),this._setupMiddlewares(d,s),l&&this._setupMutationCheck()}return i.createClass(n,[{key:"dispatch",value:function(t){for(var n=this,o=arguments.length,i=Array(o>1?o-1:0),s=1;o>s;s++)i[s-1]=arguments[s];var a=this._mutations[t],r=this._prevSnapshot,u=this.state,c=void 0,h=void 0;a?(this._dispatching=!0,Array.isArray(a)?a.forEach(function(t){return t.apply(void 0,[u].concat(i))}):a.apply(void 0,[u].concat(i)),this._dispatching=!1,this._needSnapshots&&(c=this._prevSnapshot=e(u),h=e(i)),this._middlewares.forEach(function(e){e.onMutation&&(e.snapshot?e.onMutation({type:t,payload:h},c,r,n):e.onMutation({type:t,payload:i},u,n))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,e,n){var o=this;return this._vm.$watch(function(){return"function"==typeof t?t(o.state):o._vm.$get(t)},e,n)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=t.mutations,n=t.modules;this._rootMutations=this._mutations=e||this._rootMutations,this._setupModuleMutations(n||this._modules)}},{key:"_setupModuleState",value:function(t,e){var n=r.parsers.path.setPath;Object.keys(e).forEach(function(o){n(t,o,e[o].state||{})})}},{key:"_setupModuleMutations",value:function(e){this._modules=e;var n=r.parsers.path.getPath,o=[this._rootMutations];Object.keys(e).forEach(function(t){var i=e[t];if(i&&i.mutations){var s={};Object.keys(i.mutations).forEach(function(e){var o=i.mutations[e];s[e]=function(e){for(var i=arguments.length,s=Array(i>1?i-1:0),a=1;i>a;a++)s[a-1]=arguments[a];o.apply(void 0,[n(e,t)].concat(s))}}),o.push(s)}}),this._mutations=t(o)}},{key:"_setupMutationCheck",value:function(){var t=this,e=this._vm.$watch("__vuex__",function(t){return t}),n=this._vm._watchers[0].constructor;e(),new n(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,n){var o=this;this._middlewares=[a].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var i=this._prevSnapshot=this._needSnapshots?e(n):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?i:n,o)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),n}(),c={Store:u,install:o};return c}); \ No newline at end of file diff --git a/package.json b/package.json index 34d488730..54e64c3e3 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "0.4.2", + "version": "0.5.0", "description": "state management for Vue.js", "main": "dist/vuex.js", "files": [ From 83c1aa59091a812c1ec7630c26cc4e2207882839 Mon Sep 17 00:00:00 2001 From: Evan You Date: Thu, 3 Mar 2016 22:06:56 -0500 Subject: [PATCH 015/969] update logger docs --- docs/en/middlewares.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/docs/en/middlewares.md b/docs/en/middlewares.md index 02570babb..970caf863 100644 --- a/docs/en/middlewares.md +++ b/docs/en/middlewares.md @@ -55,15 +55,17 @@ The middleware will be used by default. For production, use the build setup desc Vuex comes with a logger middleware for common debugging usage: ``` js +import createLogger from 'vuex/logger' + const store = new Vuex.Store({ - middlewares: [Vuex.createLogger()] + middlewares: [createLogger()] }) ``` The `createLogger` function takes a few options: ``` js -const logger = Vuex.createLogger({ +const logger = createLogger({ collapsed: false, // auto-expand logged mutations transformer (state) { // transform the state before logging it. From c5f1c0675fff2056b326b8c145fa9bac5cc74bca Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 4 Mar 2016 07:23:55 -0500 Subject: [PATCH 016/969] make sure devtool state travel work with strict mode --- src/middlewares/devtool.js | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/middlewares/devtool.js b/src/middlewares/devtool.js index df817dff4..a1abbfcd8 100644 --- a/src/middlewares/devtool.js +++ b/src/middlewares/devtool.js @@ -8,9 +8,11 @@ export default { hook.emit('vuex:init', store) hook.on('vuex:travel-to-state', targetState => { const currentState = store._vm._data + store._dispatching = true Object.keys(targetState).forEach(key => { currentState[key] = targetState[key] }) + store._dispatching = false }) }, onMutation (mutation, state) { From 9a9d3dad43dfd42dfce3a5e070b354f58a0af44f Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 4 Mar 2016 07:35:44 -0500 Subject: [PATCH 017/969] add deprecation warning for createLogger --- src/index.js | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 205a48227..32bfdc18c 100644 --- a/src/index.js +++ b/src/index.js @@ -238,7 +238,15 @@ function install (_Vue) { override(Vue) } +function createLogger () { + console.warn( + '[vuex] Vuex.createLogger has been deprecated.' + + 'Use `import createLogger from \'vuex/logger\' instead.' + ) +} + export default { Store, - install + install, + createLogger } From ddcc6dbf2e40768101f47d5dbad922a218277190 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 4 Mar 2016 07:36:34 -0500 Subject: [PATCH 018/969] 0.5.1 --- dist/vuex.js | 11 +++++++++-- dist/vuex.min.js | 4 ++-- package.json | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/dist/vuex.js b/dist/vuex.js index 61825199f..e8e66bb2f 100644 --- a/dist/vuex.js +++ b/dist/vuex.js @@ -1,5 +1,5 @@ /*! - * Vuex v0.5.0 + * Vuex v0.5.1 * (c) 2016 Evan You * Released under the MIT License. */ @@ -100,9 +100,11 @@ hook.emit('vuex:init', store); hook.on('vuex:travel-to-state', function (targetState) { var currentState = store._vm._data; + store._dispatching = true; Object.keys(targetState).forEach(function (key) { currentState[key] = targetState[key]; }); + store._dispatching = false; }); }, onMutation: function onMutation(mutation, state) { @@ -455,9 +457,14 @@ override(Vue); } + function createLogger() { + console.warn('[vuex] Vuex.createLogger has been deprecated.' + 'Use `import createLogger from \'vuex/logger\' instead.'); + } + var index = { Store: Store, - install: install + install: install, + createLogger: createLogger }; return index; diff --git a/dist/vuex.min.js b/dist/vuex.min.js index 339e5f905..b6583de8f 100644 --- a/dist/vuex.min.js +++ b/dist/vuex.min.js @@ -1,6 +1,6 @@ /*! - * Vuex v0.5.0 + * Vuex v0.5.1 * (c) 2016 Evan You * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vuex=e()}(this,function(){"use strict";function t(t){return t.reduce(function(t,e){return Object.keys(e).forEach(function(n){var o=t[n];o?Array.isArray(o)?o.push(e[n]):t[n]=[t[n],e[n]]:t[n]=e[n]}),t},{})}function e(t){if(Array.isArray(t))return t.map(e);if(t&&"object"===("undefined"==typeof t?"undefined":i["typeof"](t))){for(var n={},o=Object.keys(t),s=0,a=o.length;a>s;s++){var r=o[s];n[r]=e(t[r])}return n}return t}function n(t){var e=t.prototype._init;t.prototype._init=function(t){var n=this;t=t||{};var o=this.constructor.options,i=t.store||o.store;i?this.$store=i:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var s=t.vuex||o.vuex;s&&!function(){n.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var e=s.state,o=s.actions;e&&(t.computed=t.computed||{},Object.keys(e).forEach(function(n){t.computed[n]=function(){return e[n].call(this,this.$store.state)}})),o&&(t.methods=t.methods||{},Object.keys(o).forEach(function(e){t.methods[e]=function(){for(var t,n=arguments.length,i=Array(n),s=0;n>s;s++)i[s]=arguments[s];return(t=o[e]).call.apply(t,[this,this.$store].concat(i))}}))}(),e.call(this,t)}}function o(t){r=t,n(r)}var i={};i["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},i.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},i.createClass=function(){function t(t,e){for(var n=0;no;o++)n[o]=arguments[o];v.apply(t,n)};var y=r.config.silent;r.config.silent=!0,this._vm=new r({data:s}),r.config.silent=y,this._setupModuleState(s,h),this._setupModuleMutations(h),this._setupMiddlewares(d,s),l&&this._setupMutationCheck()}return i.createClass(n,[{key:"dispatch",value:function(t){for(var n=this,o=arguments.length,i=Array(o>1?o-1:0),s=1;o>s;s++)i[s-1]=arguments[s];var a=this._mutations[t],r=this._prevSnapshot,u=this.state,c=void 0,h=void 0;a?(this._dispatching=!0,Array.isArray(a)?a.forEach(function(t){return t.apply(void 0,[u].concat(i))}):a.apply(void 0,[u].concat(i)),this._dispatching=!1,this._needSnapshots&&(c=this._prevSnapshot=e(u),h=e(i)),this._middlewares.forEach(function(e){e.onMutation&&(e.snapshot?e.onMutation({type:t,payload:h},c,r,n):e.onMutation({type:t,payload:i},u,n))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,e,n){var o=this;return this._vm.$watch(function(){return"function"==typeof t?t(o.state):o._vm.$get(t)},e,n)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=t.mutations,n=t.modules;this._rootMutations=this._mutations=e||this._rootMutations,this._setupModuleMutations(n||this._modules)}},{key:"_setupModuleState",value:function(t,e){var n=r.parsers.path.setPath;Object.keys(e).forEach(function(o){n(t,o,e[o].state||{})})}},{key:"_setupModuleMutations",value:function(e){this._modules=e;var n=r.parsers.path.getPath,o=[this._rootMutations];Object.keys(e).forEach(function(t){var i=e[t];if(i&&i.mutations){var s={};Object.keys(i.mutations).forEach(function(e){var o=i.mutations[e];s[e]=function(e){for(var i=arguments.length,s=Array(i>1?i-1:0),a=1;i>a;a++)s[a-1]=arguments[a];o.apply(void 0,[n(e,t)].concat(s))}}),o.push(s)}}),this._mutations=t(o)}},{key:"_setupMutationCheck",value:function(){var t=this,e=this._vm.$watch("__vuex__",function(t){return t}),n=this._vm._watchers[0].constructor;e(),new n(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,n){var o=this;this._middlewares=[a].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var i=this._prevSnapshot=this._needSnapshots?e(n):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?i:n,o)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),n}(),c={Store:u,install:o};return c}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vuex=e()}(this,function(){"use strict";function t(t){return t.reduce(function(t,e){return Object.keys(e).forEach(function(o){var n=t[o];n?Array.isArray(n)?n.push(e[o]):t[o]=[t[o],e[o]]:t[o]=e[o]}),t},{})}function e(t){if(Array.isArray(t))return t.map(e);if(t&&"object"===("undefined"==typeof t?"undefined":s["typeof"](t))){for(var o={},n=Object.keys(t),i=0,a=n.length;a>i;i++){var r=n[i];o[r]=e(t[r])}return o}return t}function o(t){var e=t.prototype._init;t.prototype._init=function(t){var o=this;t=t||{};var n=this.constructor.options,i=t.store||n.store;i?this.$store=i:t.parent&&t.parent.$store&&(this.$store=t.parent.$store);var s=t.vuex||n.vuex;s&&!function(){o.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var e=s.state,n=s.actions;e&&(t.computed=t.computed||{},Object.keys(e).forEach(function(o){t.computed[o]=function(){return e[o].call(this,this.$store.state)}})),n&&(t.methods=t.methods||{},Object.keys(n).forEach(function(e){t.methods[e]=function(){for(var t,o=arguments.length,i=Array(o),s=0;o>s;s++)i[s]=arguments[s];return(t=n[e]).call.apply(t,[this,this.$store].concat(i))}}))}(),e.call(this,t)}}function n(t){u=t,o(u)}function i(){console.warn("[vuex] Vuex.createLogger has been deprecated.Use `import createLogger from 'vuex/logger' instead.")}var s={};s["typeof"]="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},s.classCallCheck=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},s.createClass=function(){function t(t,e){for(var o=0;on;n++)o[n]=arguments[n];v.apply(t,o)};var y=u.config.silent;u.config.silent=!0,this._vm=new u({data:i}),u.config.silent=y,this._setupModuleState(i,h),this._setupModuleMutations(h),this._setupMiddlewares(d,i),l&&this._setupMutationCheck()}return s.createClass(o,[{key:"dispatch",value:function(t){for(var o=this,n=arguments.length,i=Array(n>1?n-1:0),s=1;n>s;s++)i[s-1]=arguments[s];var a=this._mutations[t],r=this._prevSnapshot,u=this.state,c=void 0,h=void 0;a?(this._dispatching=!0,Array.isArray(a)?a.forEach(function(t){return t.apply(void 0,[u].concat(i))}):a.apply(void 0,[u].concat(i)),this._dispatching=!1,this._needSnapshots&&(c=this._prevSnapshot=e(u),h=e(i)),this._middlewares.forEach(function(e){e.onMutation&&(e.snapshot?e.onMutation({type:t,payload:h},c,r,o):e.onMutation({type:t,payload:i},u,o))})):console.warn("[vuex] Unknown mutation: "+t)}},{key:"watch",value:function(t,e,o){var n=this;return this._vm.$watch(function(){return"function"==typeof t?t(n.state):n._vm.$get(t)},e,o)}},{key:"hotUpdate",value:function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0],e=t.mutations,o=t.modules;this._rootMutations=this._mutations=e||this._rootMutations,this._setupModuleMutations(o||this._modules)}},{key:"_setupModuleState",value:function(t,e){var o=u.parsers.path.setPath;Object.keys(e).forEach(function(n){o(t,n,e[n].state||{})})}},{key:"_setupModuleMutations",value:function(e){this._modules=e;var o=u.parsers.path.getPath,n=[this._rootMutations];Object.keys(e).forEach(function(t){var i=e[t];if(i&&i.mutations){var s={};Object.keys(i.mutations).forEach(function(e){var n=i.mutations[e];s[e]=function(e){for(var i=arguments.length,s=Array(i>1?i-1:0),a=1;i>a;a++)s[a-1]=arguments[a];n.apply(void 0,[o(e,t)].concat(s))}}),n.push(s)}}),this._mutations=t(n)}},{key:"_setupMutationCheck",value:function(){var t=this,e=this._vm.$watch("__vuex__",function(t){return t}),o=this._vm._watchers[0].constructor;e(),new o(this._vm,"$data",function(){if(!t._dispatching)throw new Error("[vuex] Do not mutate vuex store state outside mutation handlers.")},{deep:!0,sync:!0})}},{key:"_setupMiddlewares",value:function(t,o){var n=this;this._middlewares=[r].concat(t),this._needSnapshots=t.some(function(t){return t.snapshot}),this._needSnapshots&&console.log("[vuex] One or more of your middlewares are taking state snapshots for each mutation. Make sure to use them only during development.");var i=this._prevSnapshot=this._needSnapshots?e(o):null;this._middlewares.forEach(function(t){t.onInit&&t.onInit(t.snapshot?i:o,n)})}},{key:"state",get:function(){return this._vm._data},set:function(t){throw new Error("[vuex] Vuex root state is read only.")}}]),o}(),h={Store:c,install:n,createLogger:i};return h}); \ No newline at end of file diff --git a/package.json b/package.json index 54e64c3e3..16525eed7 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "0.5.0", + "version": "0.5.1", "description": "state management for Vue.js", "main": "dist/vuex.js", "files": [ From d10e1b525c44b8462d4c4e0bb23a5c358730a7cb Mon Sep 17 00:00:00 2001 From: Vitor Arjol Date: Sun, 6 Mar 2016 14:18:10 -0300 Subject: [PATCH 019/969] Adding video introduction for Vuex --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index d1f1b84c8..91402fe98 100644 --- a/README.md +++ b/README.md @@ -8,6 +8,7 @@ - [Documentation](http://vuex.vuejs.org/) - [Great introduction and explanation by @skyronic](http://skyronic.com/2016/01/03/vuex-basics-tutorial/) (using outdated 0.3.0 API, but still worth a read!) +- [Vuex introduction video - James Browne from London Vue.js Meetup #1](https://www.youtube.com/watch?v=l1KHL-TX3qs) ## Examples From 9d24f8fcf6b0e2df238e940876bdd124b2cdde98 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 14:09:22 -0500 Subject: [PATCH 020/969] state -> getters --- examples/chat/components/MessageSection.vue | 2 +- examples/chat/components/Thread.vue | 2 +- examples/chat/components/ThreadSection.vue | 2 +- examples/counter/Counter.vue | 2 +- examples/shopping-cart/components/Cart.vue | 2 +- .../shopping-cart/components/ProductList.vue | 2 +- examples/todomvc/components/App.vue | 2 +- src/override.js | 17 ++++++++++++----- test/test.js | 2 +- 9 files changed, 20 insertions(+), 13 deletions(-) diff --git a/examples/chat/components/MessageSection.vue b/examples/chat/components/MessageSection.vue index 712121988..c557683f2 100644 --- a/examples/chat/components/MessageSection.vue +++ b/examples/chat/components/MessageSection.vue @@ -19,7 +19,7 @@ import { sendMessage } from '../vuex/actions' export default { components: { Message }, vuex: { - state: { + getters: { thread ({ currentThreadID, threads }) { return currentThreadID ? threads[currentThreadID] : {} }, diff --git a/examples/chat/components/Thread.vue b/examples/chat/components/Thread.vue index 3d44648db..9228d0f20 100644 --- a/examples/chat/components/Thread.vue +++ b/examples/chat/components/Thread.vue @@ -19,7 +19,7 @@ import { switchThread } from '../vuex/actions' export default { props: ['thread'], vuex: { - state: { + getters: { isCurrentThread ({ currentThreadID }) { return this.thread.id === currentThreadID } diff --git a/examples/chat/components/ThreadSection.vue b/examples/chat/components/ThreadSection.vue index d63fc0817..0f0814bda 100644 --- a/examples/chat/components/ThreadSection.vue +++ b/examples/chat/components/ThreadSection.vue @@ -21,7 +21,7 @@ import Thread from './Thread.vue' export default { components: { Thread }, vuex: { - state: { + getters: { threads: state => state.threads } }, diff --git a/examples/counter/Counter.vue b/examples/counter/Counter.vue index 8fea6f02d..0ab241cf0 100644 --- a/examples/counter/Counter.vue +++ b/examples/counter/Counter.vue @@ -13,7 +13,7 @@ import * as actions from './actions' export default { vuex: { - state: { + getters: { count: state => state.count }, actions: actions diff --git a/examples/shopping-cart/components/Cart.vue b/examples/shopping-cart/components/Cart.vue index e41534d56..8e120020a 100644 --- a/examples/shopping-cart/components/Cart.vue +++ b/examples/shopping-cart/components/Cart.vue @@ -19,7 +19,7 @@ import { cartProducts } from '../vuex/getters' export default { vuex: { - state: { + getters: { products: cartProducts, checkoutStatus: ({ cart }) => cart.lastCheckout }, diff --git a/examples/shopping-cart/components/ProductList.vue b/examples/shopping-cart/components/ProductList.vue index 9b7a901fd..7393eac3a 100644 --- a/examples/shopping-cart/components/ProductList.vue +++ b/examples/shopping-cart/components/ProductList.vue @@ -17,7 +17,7 @@ import { getAllProducts, addToCart } from '../vuex/actions' export default { vuex: { - state: { + getters: { products: ({ products }) => products.all }, actions: { diff --git a/examples/todomvc/components/App.vue b/examples/todomvc/components/App.vue index 86fe10215..9f780ad3c 100644 --- a/examples/todomvc/components/App.vue +++ b/examples/todomvc/components/App.vue @@ -62,7 +62,7 @@ const filters = { export default { components: { Todo }, vuex: { - state: { + getters: { todos: state => state.todos }, actions: { diff --git a/src/override.js b/src/override.js index 5a5bb3ca3..87b213507 100644 --- a/src/override.js +++ b/src/override.js @@ -20,13 +20,20 @@ export default function (Vue) { 'provide the store option in your root component.' ) } - const { state, actions } = vuex - // state - if (state) { + let { state, getters, actions } = vuex + // getters + if (state && !getters) { + console.warn( + '[vuex] vuex.state option has been deprecated. ' + + 'Use vuex.getters instead.' + ) + getters = state + } + if (getters) { options.computed = options.computed || {} - Object.keys(state).forEach(key => { + Object.keys(getters).forEach(key => { options.computed[key] = function vuexBoundGetter () { - return state[key].call(this, this.$store.state) + return getters[key].call(this, this.$store.state) } }) } diff --git a/test/test.js b/test/test.js index eff3e117c..56c3a9f11 100644 --- a/test/test.js +++ b/test/test.js @@ -37,7 +37,7 @@ describe('Vuex', () => { const vm = new Vue({ store, vuex: { - state: { + getters: { a: state => state.a }, actions: { From 00d90072fa5d64876b5c22112764ea2daa9f5016 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 15:16:59 -0500 Subject: [PATCH 021/969] handle option merging --- src/override.js | 63 ++++++++++++++++++++++++++++++++++--------------- test/test.js | 43 +++++++++++++++++++++++++++++++++ 2 files changed, 87 insertions(+), 19 deletions(-) diff --git a/src/override.js b/src/override.js index 87b213507..23677696f 100644 --- a/src/override.js +++ b/src/override.js @@ -1,18 +1,23 @@ -// export install function export default function (Vue) { + // override init and inject vuex init procedure const _init = Vue.prototype._init - Vue.prototype._init = function (options) { - options = options || {} - const componentOptions = this.constructor.options + Vue.prototype._init = function (options = {}) { + options.init = options.init + ? [vuexInit].concat(options.init) + : vuexInit + _init.call(this, options) + } + + function vuexInit () { + const options = this.$options + const { store, vuex } = options // store injection - const store = options.store || componentOptions.store if (store) { this.$store = store } else if (options.parent && options.parent.$store) { this.$store = options.parent.$store } // vuex option handling - const vuex = options.vuex || componentOptions.vuex if (vuex) { if (!this.$store) { console.warn( @@ -21,32 +26,52 @@ export default function (Vue) { ) } let { state, getters, actions } = vuex - // getters + // handle deprecated state option if (state && !getters) { console.warn( - '[vuex] vuex.state option has been deprecated. ' + + '[vuex] vuex.state option will been deprecated in 1.0. ' + 'Use vuex.getters instead.' ) getters = state } + // getters if (getters) { options.computed = options.computed || {} - Object.keys(getters).forEach(key => { - options.computed[key] = function vuexBoundGetter () { - return getters[key].call(this, this.$store.state) - } - }) + for (let key in getters) { + options.computed[key] = makeBoundGetter(getters[key]) + } } // actions if (actions) { options.methods = options.methods || {} - Object.keys(actions).forEach(key => { - options.methods[key] = function vuexBoundAction (...args) { - return actions[key].call(this, this.$store, ...args) - } - }) + for (let key in actions) { + options.methods[key] = makeBoundAction(actions[key]) + } } } - _init.call(this, options) + } + + function makeBoundGetter (getter) { + return function vuexBoundGetter () { + return getter.call(this, this.$store.state) + } + } + + function makeBoundAction (action) { + return function vuexBoundAction (...args) { + return action.call(this, this.$store, ...args) + } + } + + // option merging + const merge = Vue.config.optionMergeStrategies.computed + Vue.config.optionMergeStrategies.vuex = (toVal, fromVal) => { + if (!toVal) return fromVal + if (!fromVal) return toVal + return { + getters: merge(toVal.getters, fromVal.getters), + state: merge(toVal.state, fromVal.state), + actions: merge(toVal.actions, fromVal.actions) + } } } diff --git a/test/test.js b/test/test.js index 56c3a9f11..1d8b26015 100644 --- a/test/test.js +++ b/test/test.js @@ -281,4 +281,47 @@ describe('Vuex', () => { store.state.a++ }).to.throw(/Do not mutate vuex store state outside mutation handlers/) }) + + it('option merging', function () { + const store = new Vuex.Store({ + state: { + a: 1, + b: 2 + }, + mutations: { + [TEST] (state, n) { + state.a += n + } + } + }) + const vm = new Vue({ + store, + vuex: { + getters: { + a: state => state.a + }, + actions: { + test: ({ dispatch }, n) => dispatch(TEST, n) + } + }, + mixins: [{ + vuex: { + getters: { + b: state => state.b + }, + actions: { + testPlusOne: ({ dispatch }, n) => dispatch(TEST, n + 1) + } + } + }] + }) + expect(vm.a).to.equal(1) + expect(vm.b).to.equal(2) + vm.test(2) + expect(vm.a).to.equal(3) + expect(store.state.a).to.equal(3) + vm.testPlusOne(2) + expect(vm.a).to.equal(6) + expect(store.state.a).to.equal(6) + }) }) From 3d9f8a02f44b17a2bf408508e9a1ecd33d95565f Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 15:17:57 -0500 Subject: [PATCH 022/969] improve test case --- test/test.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/test/test.js b/test/test.js index 1d8b26015..0cd9a01d8 100644 --- a/test/test.js +++ b/test/test.js @@ -294,8 +294,7 @@ describe('Vuex', () => { } } }) - const vm = new Vue({ - store, + const Comp = Vue.extend({ vuex: { getters: { a: state => state.a @@ -315,6 +314,7 @@ describe('Vuex', () => { } }] }) + const vm = new Comp({ store }) expect(vm.a).to.equal(1) expect(vm.b).to.equal(2) vm.test(2) From ae5506f8abf35be2f0ab7b77f0a14cd263a40794 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 15:37:15 -0500 Subject: [PATCH 023/969] add build examples script --- .gitignore | 1 + examples/webpack.build-all.config.js | 33 ++++++++++++++++++++++++++++ examples/webpack.shared.config.js | 2 +- package.json | 1 + 4 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 examples/webpack.build-all.config.js diff --git a/.gitignore b/.gitignore index 3c5113900..6f4c325d8 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,4 @@ TODO.md lib docs/_book logger.js +examples/**/build.js diff --git a/examples/webpack.build-all.config.js b/examples/webpack.build-all.config.js new file mode 100644 index 000000000..f62e0785d --- /dev/null +++ b/examples/webpack.build-all.config.js @@ -0,0 +1,33 @@ +var examples = [ + 'chat', + 'counter', + 'counter-hot', + 'shopping-cart', + 'todomvc' +] + +var entry = {} +examples.forEach(function (name) { + entry[name] = './examples/' + name + '/main.js' +}) + +module.exports = { + entry: entry, + output: { + path: __dirname, + filename: '[name]/build.js' + }, + module: { + loaders: [ + { + test: /\.js$/, + loader: 'babel', + exclude: /node_modules|vue\/dist|vue-hot-reload-api|vue-loader/ + }, + { + test: /\.vue$/, + loader: 'vue' + } + ] + } +} diff --git a/examples/webpack.shared.config.js b/examples/webpack.shared.config.js index 63fc5c42c..1938023d3 100644 --- a/examples/webpack.shared.config.js +++ b/examples/webpack.shared.config.js @@ -17,5 +17,5 @@ module.exports = { } ] }, - devtool: 'source-map' + devtool: '#source-map' } diff --git a/package.json b/package.json index 16525eed7..84639da81 100644 --- a/package.json +++ b/package.json @@ -15,6 +15,7 @@ "cart": "cd examples/shopping-cart && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "build": "node build/build.js", + "build-examples": "webpack --config examples/webpack.build-all.config.js", "test": "eslint src && BABEL_ENV=development mocha --compilers js:babel-core/register", "docs": "cd docs && gitbook serve", "deploy-docs": "cd docs && ./deploy.sh" From 6d66b2914f8488d314542c90bfc8d8bd16c63dbe Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 15:55:58 -0500 Subject: [PATCH 024/969] e2e test for chat --- package.json | 5 +++- test/e2e/chat.js | 52 +++++++++++++++++++++++++++++++++++++++++ test/{ => unit}/test.js | 4 ++-- 3 files changed, 58 insertions(+), 3 deletions(-) create mode 100644 test/e2e/chat.js rename test/{ => unit}/test.js (99%) diff --git a/package.json b/package.json index 84639da81..0900b5f60 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,9 @@ "chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "build": "node build/build.js", "build-examples": "webpack --config examples/webpack.build-all.config.js", - "test": "eslint src && BABEL_ENV=development mocha --compilers js:babel-core/register", + "unit": "BABEL_ENV=development mocha test/unit/test.js --compilers js:babel-core/register", + "e2e": "casperjs test --concise ./test/e2e", + "test": "eslint src && npm run unit && npm run build-examples && npm run e2e", "docs": "cd docs && gitbook serve", "deploy-docs": "cd docs && ./deploy.sh" }, @@ -40,6 +42,7 @@ "babel-preset-es2015-rollup": "^1.1.1", "babel-preset-stage-2": "^6.1.18", "babel-runtime": "^5.8.0", + "casperjs": "^1.1.0-beta5", "chai": "^3.4.1", "css-loader": "^0.23.1", "eslint": "^2.2.0", diff --git a/test/e2e/chat.js b/test/e2e/chat.js new file mode 100644 index 000000000..fcd2a6f3d --- /dev/null +++ b/test/e2e/chat.js @@ -0,0 +1,52 @@ +casper.test.begin('chat', 16, function (test) { + casper + .start('examples/chat/index.html') + .then(function () { + test.assertSelectorHasText('.thread-count', 'Unread threads: 2') + test.assertElementCount('.thread-list-item', 3) + test.assertSelectorHasText('.thread-list-item.active', 'Functional Heads') + test.assertSelectorHasText('.message-thread-heading', 'Functional Heads') + test.assertElementCount('.message-list-item', 2) + test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill') + test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Brian') + }) + .then(function () { + this.sendKeys('.message-composer', 'hi') + enter() + }) + .wait(50) // the demo simulates API latency + .then(function () { + test.assertElementCount('.message-list-item', 3) + test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi') + }) + .thenClick('.thread-list-item:nth-child(2)', function () { + test.assertSelectorHasText('.thread-list-item.active', 'Dave and Bill') + test.assertSelectorHasText('.message-thread-heading', 'Dave and Bill') + test.assertElementCount('.message-list-item', 2) + test.assertSelectorHasText('.message-list-item:nth-child(1) .message-author-name', 'Bill') + test.assertSelectorHasText('.message-list-item:nth-child(1) .message-text', 'Hey Dave') + }) + .then(function () { + this.sendKeys('.message-composer', 'hi') + enter() + }) + .wait(50) // the demo simulates API latency + .then(function () { + test.assertElementCount('.message-list-item', 3) + test.assertSelectorHasText('.message-list-item:nth-child(3)', 'hi') + }) + .run(function () { + test.done() + }) +}) + +function enter () { + casper.evaluate(function () { + // casper.mouseEvent can't set keyCode + var field = document.querySelector('.message-composer') + var e = document.createEvent('HTMLEvents') + e.initEvent('keyup', true, true) + e.keyCode = 13 + field.dispatchEvent(e) + }) +} diff --git a/test/test.js b/test/unit/test.js similarity index 99% rename from test/test.js rename to test/unit/test.js index 0cd9a01d8..91150aea7 100644 --- a/test/test.js +++ b/test/unit/test.js @@ -1,7 +1,7 @@ import { expect } from 'chai' import Vue from 'vue' -import Vuex from '../src' -import * as util from '../src/util' +import Vuex from '../../src' +import * as util from '../../src/util' Vue.use(Vuex) From 19b4aabcbbe0fa212e84e297f574cf7040c38e7a Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 16:50:42 -0500 Subject: [PATCH 025/969] todomvc e2e tests --- build/bind.js | 2 + examples/todomvc/vuex/store.js | 7 +- examples/webpack.build-all.config.js | 2 +- package.json | 1 + test/e2e/todomvc.js | 272 +++++++++++++++++++++++++++ 5 files changed, 282 insertions(+), 2 deletions(-) create mode 100644 build/bind.js create mode 100644 test/e2e/todomvc.js diff --git a/build/bind.js b/build/bind.js new file mode 100644 index 000000000..6ebdff012 --- /dev/null +++ b/build/bind.js @@ -0,0 +1,2 @@ +// shim phantomjs for testing +Function.prototype.bind = require('function-bind') diff --git a/examples/todomvc/vuex/store.js b/examples/todomvc/vuex/store.js index 38296ce5e..d5557aa09 100644 --- a/examples/todomvc/vuex/store.js +++ b/examples/todomvc/vuex/store.js @@ -6,13 +6,18 @@ Vue.use(Vuex) export const STORAGE_KEY = 'todos-vuejs' +// for testing +if (navigator.userAgent.indexOf('PhantomJS') > -1) { + localStorage.clear() +} + const state = { todos: JSON.parse(localStorage.getItem(STORAGE_KEY) || '[]') } const mutations = { ADD_TODO (state, text) { - state.todos.unshift({ + state.todos.push({ text: text, done: false }) diff --git a/examples/webpack.build-all.config.js b/examples/webpack.build-all.config.js index f62e0785d..899a4ec89 100644 --- a/examples/webpack.build-all.config.js +++ b/examples/webpack.build-all.config.js @@ -8,7 +8,7 @@ var examples = [ var entry = {} examples.forEach(function (name) { - entry[name] = './examples/' + name + '/main.js' + entry[name] = ['./build/bind.js', './examples/' + name + '/main.js'] }) module.exports = { diff --git a/package.json b/package.json index 0900b5f60..944951aa9 100644 --- a/package.json +++ b/package.json @@ -49,6 +49,7 @@ "eslint-config-standard": "^5.1.0", "eslint-plugin-promise": "^1.0.8", "eslint-plugin-standard": "^1.3.2", + "function-bind": "^1.1.0", "mocha": "^2.3.4", "rollup": "^0.25.4", "rollup-plugin-babel": "^2.4.0", diff --git a/test/e2e/todomvc.js b/test/e2e/todomvc.js new file mode 100644 index 000000000..c7085174c --- /dev/null +++ b/test/e2e/todomvc.js @@ -0,0 +1,272 @@ +casper.test.begin('todomvc', 57, function (test) { + casper + .start('examples/todomvc/index.html') + .then(function () { + test.assertNotVisible('.main', '.main should be hidden') + test.assertNotVisible('.footer', '.footer should be hidden') + test.assertElementCount('.filters .selected', 1, 'should have one filter selected') + test.assertSelectorHasText('.filters .selected', 'All', 'default filter should be "All"') + }) + + // let's add a new item ----------------------------------------------- + + .then(function () { + casper.sendKeys('.new-todo', 'test') + }) + .then(function () { + // wait before hitting enter + // so v-model unlocks + createNewItem() + }) + .then(function () { + test.assertElementCount('.todo', 1, 'new item should be created') + test.assertNotVisible('.todo .edit', 'new item edit box should be hidden') + test.assertSelectorHasText('.todo label', 'test', 'new item should have correct label text') + test.assertSelectorHasText('.todo-count strong', '1', 'remaining count should be 1') + test.assertEvalEquals(function () { + return __utils__.findOne('.todo .toggle').checked + }, false, 'new item toggle should not be checked') + test.assertVisible('.main', '.main should now be visible') + test.assertVisible('.footer', '.footer should now be visible') + test.assertNotVisible('.clear-completed', '.clear-completed should be hidden') + test.assertField({type: 'css', path: '.new-todo'}, '', 'new todo input should be reset') + }) + + // add another item --------------------------------------------------- + + .then(function () { + createNewItem('test2') + }) + .then(function () { + test.assertElementCount('.todo', 2, 'should have 2 items now') + test.assertSelectorHasText('.todo:nth-child(2) label', 'test2', 'new item should have correct label text') + test.assertSelectorHasText('.todo-count strong', '2', 'remaining count should be 2') + }) + + // mark one item as completed ----------------------------------------- + + .thenClick('.todo .toggle', function () { + test.assertElementCount('.todo.completed', 1, 'should have 1 item completed') + test.assertEval(function () { + return __utils__.findOne('.todo').classList.contains('completed') + }, 'it should be the first one') + test.assertSelectorHasText('.todo-count strong', '1', 'remaining count should be 1') + test.assertVisible('.clear-completed', '.clear-completed should now be visible') + }) + + // add yet another item ----------------------------------------------- + + .then(function () { + createNewItem('test3') + }) + .then(function () { + test.assertElementCount('.todo', 3, 'should have 3 items now') + test.assertSelectorHasText('.todo:nth-child(3) label', 'test3', 'new item should have correct label text') + test.assertSelectorHasText('.todo-count strong', '2', 'remaining count should be 2') + }) + + // add moreeee, now we assume they all work properly ------------------ + + .then(function () { + createNewItem('test4') + createNewItem('test5') + }) + .then(function () { + test.assertElementCount('.todo', 5, 'should have 5 items now') + test.assertSelectorHasText('.todo-count strong', '4', 'remaining count should be 4') + }) + + // check more as completed -------------------------------------------- + .then(function () { + this.click('.todo:nth-child(4) .toggle') + this.click('.todo:nth-child(5) .toggle') + }) + .then(function () { + test.assertElementCount('.todo.completed', 3, 'should have 3 item completed') + test.assertSelectorHasText('.todo-count strong', '2', 'remaining count should be 2') + }) + + // remove a completed item -------------------------------------------- + + .thenClick('.todo:nth-child(1) .destroy', function () { + test.assertElementCount('.todo', 4, 'should have 4 items now') + test.assertElementCount('.todo.completed', 2, 'should have 2 item completed') + test.assertSelectorHasText('.todo-count strong', '2', 'remaining count should be 2') + }) + + // remove a incompleted item ------------------------------------------ + + .thenClick('.todo:nth-child(2) .destroy', function () { + test.assertElementCount('.todo', 3, 'should have 3 items now') + test.assertElementCount('.todo.completed', 2, 'should have 2 item completed') + test.assertSelectorHasText('.todo-count strong', '1', 'remaining count should be 1') + }) + + // remove all completed ------------------------------------------------ + + .thenClick('.clear-completed', function () { + test.assertElementCount('.todo', 1, 'should have 1 item now') + test.assertSelectorHasText('.todo label', 'test2', 'the remaining one should be the second one') + test.assertElementCount('.todo.completed', 0, 'should have no completed items now') + test.assertSelectorHasText('.todo-count strong', '1', 'remaining count should be 1') + test.assertNotVisible('.clear-completed', '.clear-completed should be hidden') + }) + + // prepare to test filters ------------------------------------------------ + .then(function () { + createNewItem('test') + createNewItem('test') + }) + .then(function () { + this.click('.todo:nth-child(2) .toggle') + this.click('.todo:nth-child(3) .toggle') + }) + + // active filter ---------------------------------------------------------- + .thenClick('.filters li:nth-child(2) a', function () { + test.assertElementCount('.todo', 1, 'filter active should have 1 item') + test.assertElementCount('.todo.completed', 0, 'visible items should be incomplete') + }) + + // add item with filter active -------------------------------------------- + // mostly make sure v-repeat works well with v-if + .then(function () { + createNewItem('test') + }) + .then(function () { + test.assertElementCount('.todo', 2, 'should be able to create new item when fitler active') + }) + + // completed filter ------------------------------------------------------- + .thenClick('.filters li:nth-child(3) a', function () { + test.assertElementCount('.todo', 2, 'filter completed should have 2 items') + test.assertElementCount('.todo.completed', 2, 'visible items should be completed') + }) + + // toggling todos when filter is active ----------------------------------- + .thenClick('.todo .toggle', function () { + test.assertElementCount('.todo', 1, 'should have only 1 item left') + }) + .thenClick('.filters li:nth-child(2) a', function () { + test.assertElementCount('.todo', 3, 'should have only 3 items now') + }) + .thenClick('.todo .toggle', function () { + test.assertElementCount('.todo', 2, 'should have only 2 items now') + }) + + // test editing triggered by blur ------------------------------------------ + .thenClick('.filters li:nth-child(1) a') + .then(function () { + doubleClick('.todo:nth-child(1) label') + }) + .then(function () { + test.assertElementCount('.todo.editing', 1, 'should have one item being edited') + test.assertEval(function () { + var input = document.querySelector('.todo:nth-child(1) .edit') + return input === document.activeElement + }, 'edit input should be focused') + }) + .then(function () { + resetField() + this.sendKeys('.todo:nth-child(1) .edit', 'edited!') // doneEdit triggered by blur + }) + .then(function () { + test.assertElementCount('.todo.editing', 0, 'item should no longer be edited') + test.assertSelectorHasText('.todo:nth-child(1) label', 'edited!', 'item should have updated text') + }) + + // test editing triggered by enter ---------------------------------------- + .then(function () { + doubleClick('.todo label') + }) + .then(function () { + resetField() + this.sendKeys('.todo:nth-child(1) .edit', 'edited again!', { keepFocus: true }) + keyUp(13) // Enter + }) + .then(function () { + test.assertElementCount('.todo.editing', 0, 'item should no longer be edited') + test.assertSelectorHasText('.todo:nth-child(1) label', 'edited again!', 'item should have updated text') + }) + + // test cancel ------------------------------------------------------------ + .then(function () { + doubleClick('.todo label') + }) + .then(function () { + resetField() + this.sendKeys('.todo:nth-child(1) .edit', 'cancel test', { keepFocus: true }) + keyUp(27) // ESC + }) + .then(function () { + test.assertElementCount('.todo.editing', 0, 'item should no longer be edited') + test.assertSelectorHasText('.todo label', 'edited again!', 'item should not have updated text') + }) + + // test empty input remove ------------------------------------------------ + .then(function () { + doubleClick('.todo label') + }) + .then(function () { + resetField() + this.sendKeys('.todo:nth-child(1) .edit', ' ') + }) + .then(function () { + test.assertElementCount('.todo', 3, 'item should have been deleted') + }) + + // test toggle all + .thenClick('.toggle-all', function () { + test.assertElementCount('.todo.completed', 3, 'should toggle all items to completed') + }) + .thenClick('.toggle-all', function () { + test.assertElementCount('.todo:not(.completed)', 3, 'should toggle all items to active') + }) + + // run + .run(function () { + test.done() + }) + + // helper =============== + + function createNewItem (text) { + if (text) { + casper.sendKeys('.new-todo', text) + } + casper.evaluate(function () { + // casper.mouseEvent can't set keyCode + var field = document.querySelector('.new-todo') + var e = document.createEvent('HTMLEvents') + e.initEvent('keyup', true, true) + e.keyCode = 13 + field.dispatchEvent(e) + }) + } + + function doubleClick (selector) { + casper.evaluate(function (selector) { + var el = document.querySelector(selector) + var e = document.createEvent('MouseEvents') + e.initMouseEvent('dblclick', true, true, null, 1, 0, 0, 0, 0, false, false, false, false, 0, null) + el.dispatchEvent(e) + }, selector) + } + + function keyUp (code) { + casper.evaluate(function (code) { + var input = document.querySelector('.todo:nth-child(1) .edit') + var e = document.createEvent('HTMLEvents') + e.initEvent('keyup', true, true) + e.keyCode = code + input.dispatchEvent(e) + }, code) + } + + function resetField () { + // somehow casper.sendKey() option reset:true doesn't work + casper.evaluate(function () { + document.querySelector('.todo:nth-child(1) .edit').value = '' + }) + } +}) From 793d52cc4b111e7702fd87f21e8f6825dd98dfbd Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 16:54:18 -0500 Subject: [PATCH 026/969] counter e2e tests --- test/e2e/counter.js | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 test/e2e/counter.js diff --git a/test/e2e/counter.js b/test/e2e/counter.js new file mode 100644 index 000000000..9e232e4e4 --- /dev/null +++ b/test/e2e/counter.js @@ -0,0 +1,32 @@ +casper.test.begin('counter', 8, function (test) { + casper + .start('examples/counter/index.html') + .then(function () { + test.assertSelectorHasText('div', 'Clicked: 0 times') + }) + .thenClick('button:nth-child(1)', function () { + test.assertSelectorHasText('div', 'Clicked: 1 times') + }) + .thenClick('button:nth-child(2)', function () { + test.assertSelectorHasText('div', 'Clicked: 0 times') + }) + .thenClick('button:nth-child(3)', function () { + test.assertSelectorHasText('div', 'Clicked: 0 times') + }) + .thenClick('button:nth-child(1)', function () { + test.assertSelectorHasText('div', 'Clicked: 1 times') + }) + .thenClick('button:nth-child(3)', function () { + test.assertSelectorHasText('div', 'Clicked: 2 times') + }) + .thenClick('button:nth-child(4)', function () { + test.assertSelectorHasText('div', 'Clicked: 2 times') + }) + .wait(1000) + .then(function () { + test.assertSelectorHasText('div', 'Clicked: 3 times') + }) + .run(function () { + test.done() + }) +}) From 024518b3b50a2065b58685b8fa83214f9c995a89 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 17:05:52 -0500 Subject: [PATCH 027/969] e2e tests for cart --- examples/shopping-cart/api/shop.js | 4 +++- examples/shopping-cart/vuex/store.js | 3 ++- test/e2e/cart.js | 36 ++++++++++++++++++++++++++++ 3 files changed, 41 insertions(+), 2 deletions(-) create mode 100644 test/e2e/cart.js diff --git a/examples/shopping-cart/api/shop.js b/examples/shopping-cart/api/shop.js index ec56b3c66..5f3a53058 100644 --- a/examples/shopping-cart/api/shop.js +++ b/examples/shopping-cart/api/shop.js @@ -15,7 +15,9 @@ export default { buyProducts (products, cb, errorCb) { setTimeout(() => { // simulate random checkout failure. - Math.random() > 0.5 ? cb() : errorCb() + (Math.random() > 0.5 || navigator.userAgent.indexOf('PhantomJS') > -1) + ? cb() + : errorCb() }, 100) } } diff --git a/examples/shopping-cart/vuex/store.js b/examples/shopping-cart/vuex/store.js index c958e8457..bdbe6536a 100644 --- a/examples/shopping-cart/vuex/store.js +++ b/examples/shopping-cart/vuex/store.js @@ -2,6 +2,7 @@ import Vue from 'vue' import Vuex from '../../../src' import cart from './modules/cart' import products from './modules/products' +import createLogger from '../../../src/middlewares/logger' Vue.use(Vuex) Vue.config.debug = true @@ -14,5 +15,5 @@ export default new Vuex.Store({ products }, strict: debug, - middlewares: debug ? [Vuex.createLogger()] : [] + middlewares: debug ? [createLogger()] : [] }) diff --git a/test/e2e/cart.js b/test/e2e/cart.js new file mode 100644 index 000000000..1b049c67c --- /dev/null +++ b/test/e2e/cart.js @@ -0,0 +1,36 @@ +casper.test.begin('shopping-cart', 16, function (test) { + casper + .start('examples/shopping-cart/index.html') + .wait(120) // api simulation + .then(function () { + test.assertElementCount('li', 3) + test.assertElementCount('.cart button[disabled]', 1) + test.assertSelectorHasText('li:nth-child(1)', 'iPad 4 Mini') + test.assertSelectorHasText('.cart', 'Please add some products to cart') + test.assertSelectorHasText('.cart', 'Total: $0.00') + }) + .thenClick('li:nth-child(1) button', function () { + test.assertSelectorHasText('.cart', 'iPad 4 Mini - $500.01 x 1') + test.assertSelectorHasText('.cart', 'Total: $500.01') + }) + .thenClick('li:nth-child(1) button', function () { + test.assertSelectorHasText('.cart', 'iPad 4 Mini - $500.01 x 2') + test.assertSelectorHasText('.cart', 'Total: $1,000.02') + test.assertElementCount('li:nth-child(1) button[disabled]', 1) + }) + .thenClick('li:nth-child(2) button', function () { + test.assertSelectorHasText('.cart', 'H&M T-Shirt White - $10.99 x 1') + test.assertSelectorHasText('.cart', 'Total: $1,011.01') + }) + .thenClick('.cart button') + .wait(120) + .then(function () { + test.assertSelectorHasText('.cart', 'Please add some products to cart') + test.assertSelectorHasText('.cart', 'Total: $0.00') + test.assertSelectorHasText('.cart', 'Checkout successful') + test.assertElementCount('.cart button[disabled]', 1) + }) + .run(function () { + test.done() + }) +}) From 4877cb460df058dde4a6ce8cc85bb55110d74174 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 17:13:40 -0500 Subject: [PATCH 028/969] build examples with explicit babel env --- package.json | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/package.json b/package.json index 944951aa9..19b38bfb7 100644 --- a/package.json +++ b/package.json @@ -15,7 +15,7 @@ "cart": "cd examples/shopping-cart && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "build": "node build/build.js", - "build-examples": "webpack --config examples/webpack.build-all.config.js", + "build-examples": "BABEL_ENV=development webpack --config examples/webpack.build-all.config.js", "unit": "BABEL_ENV=development mocha test/unit/test.js --compilers js:babel-core/register", "e2e": "casperjs test --concise ./test/e2e", "test": "eslint src && npm run unit && npm run build-examples && npm run e2e", @@ -35,7 +35,6 @@ "devDependencies": { "babel-core": "^6.2.1", "babel-loader": "^6.2.0", - "babel-plugin-add-module-exports": "^0.1.1", "babel-plugin-transform-runtime": "^6.1.18", "babel-polyfill": "^6.2.0", "babel-preset-es2015": "^6.1.18", @@ -55,7 +54,7 @@ "rollup-plugin-babel": "^2.4.0", "todomvc-app-css": "^2.0.3", "uglify-js": "^2.6.2", - "vue": "^1.0.8", + "vue": "^1.0.17", "vue-hot-reload-api": "^1.2.1", "vue-html-loader": "^1.0.0", "vue-loader": "^8.2.0", From 0c01cb75bfbc97fc56560a5b1c71afafbc9e98a7 Mon Sep 17 00:00:00 2001 From: Evan You Date: Sun, 6 Mar 2016 19:09:25 -0500 Subject: [PATCH 029/969] make getters globally cached --- examples/chat/components/MessageSection.vue | 10 ++--- examples/chat/components/Thread.vue | 6 +-- examples/chat/vuex/getters.js | 12 ++++++ src/index.js | 11 ++--- src/override.js | 46 +++++++++++++++++---- src/util.js | 23 +++++++++++ 6 files changed, 83 insertions(+), 25 deletions(-) create mode 100644 examples/chat/vuex/getters.js diff --git a/examples/chat/components/MessageSection.vue b/examples/chat/components/MessageSection.vue index c557683f2..0be64caf6 100644 --- a/examples/chat/components/MessageSection.vue +++ b/examples/chat/components/MessageSection.vue @@ -15,18 +15,14 @@ +``` + +### `components/Display.vue` + +``` + + + +``` + +### `components/Increment.vue` + +``` + + + +``` + +### Challenges + +* `Increment` and `Display` aren't aware of each other and cannot pass messages to each other. +* `App` will have to use events and broadcasts to coordinate the two components. +* Since `App` is coordinating between the two components, they are not re-usable and tightly coupled. Re-structuring the app might break it + +### Vuex "flow" + +These are the steps that take place in order: + +![Vuex Flow](tutorial/vuex_flow.png) + +This might seem a little excessive for incrementing a counter. But do note that these concepts work well in larger applications and improve maintainability and make your app easier to debug and improve in the long run. So let's modify our app to use vuex. + +### Step 1: Add a store + +First, install vuex via npm: + +``` +$ npm install --save vuex +``` + +Create a new file in `vuex/store.js` + +```js +import Vue from 'vue' +import Vuex from 'vuex' + +// Make vue aware of vuex +Vue.use(Vuex) + +// We create an object to hold the initial state when +// the app starts up +const state = { + // TODO: Set up our initial state +} + +// Create an object storing various mutations. We will write the mutation +const mutations = { + // TODO: set up our mutations +} + +// We combine the intial state and the mutations to create a vuex store. +// This store can be linked to our app. +export default new Vuex.Store({ + state, + mutations +}) +``` + +We need to make our app aware of this store. To do this we simply need to modify our root component. + +Edit `components/App.vue` and add the store. + +```js +import Display from "./Display.vue" +import Increment from "./IncrementButton.vue" +import store from '../vuex/store' // import the store + +export default { + components: { + Display, + Increment + }, + store: store // make this and all child components aware of the new store +} +``` + +### Step 2: Set up the action + +Create a new file in `vuex/actions.js` with a single function `incrementCounter` + +``` +// An action will recieve the store as the first argument. +// Since we are only interested in the dispatch (and optionally the state) +export const incrementCounter = function ({ dispatch, state }) { + dispatch('INCREMENT', 1) +} +``` + +And let's call the action from our `components/Increment.vue` component. + +``` + + + +``` + +Notice some interesting things about what we just added. + +1. We have a new object `vuex.actions` which includes the new action +2. We didn't specify which store, object, state etc. Vuex wires everything up for us. +3. We can call the action either by using `this.increment()` in any method. +4. We can also call the action using the `@click` parameter making `increment` like any regular vue component method. +5. The action is called `incrementCounter` but we can use any name which is appropriate. + +### Step 3: Set up the state and mutation + +In our `vuex/actions.js` file we dispatch an `INCREMENT` mutation but we haven't written how to handle it yet. Let's do that now. + +Edit `vuex/store.js` + +```js +const state = { + // When the app starts, count is set to 0 + count: 0 +} + +const mutations = { + // A mutation recieves the current state as the first argument + // You can make any modifications you want inside this function + INCREMENT (state, amount) { + state.count = state.count + amount + } +} +``` + +### Step 4: Get the value into the component + +Create a new file called `vuex/getters.js` + +``` +// This getter is a function which just returns the count +export const getCount = function (state) { + return state.count +} +``` + +This is a simple function which just returns a subset of the state object which is of interest for us, which is the current count. Now we need to use this getter to actually fetch the data in the component. + +Edit `components/Display.vue` + +```html + + + +``` + +There's a new object `vuex.getters` which requests `counterValue` to be bound to the getter `getCount`. We've chosen different names to demonstrate that you can use the names that make sense in the context of your component, not necessarily the getter name itself. + +You might be wondering, why is it preferable to use a getter instead of using something like `store.state.count` (which doesn't work, but still). While it would be ok here, in a large app: + +1. A value may be derived from many other value (think totals, averages, etc.). +2. Many components can use the same getter function. +3. If the value is moved from say `store.count` to `store.counter.value` you'd have to update one getter instead of dozens of components. + +These are a few of the benefits of using getters. + +### Step 5: Next steps + +If you run the application now you will find it behaves as expected. + +To further your understanding of vuex you can try implementing the following changes to the app. + +* Add a decrement button. +* Install [VueJS Devtools](https://chrome.google.com/webstore/detail/vuejs-devtools/nhdogjmejiglipccpnnnanhbledajbpd?hl=en) and play with the vuex tools and observe the mutations being applied. +* Add a text input in another component called `IncrementAmount` and enter the amount to increment by. This can be a bit tricky since forms in vuex work slightly differently. Read the [Form Handling](forms.md) section for more details. + + + diff --git a/docs/en/tutorial/result.png b/docs/en/tutorial/result.png new file mode 100644 index 0000000000000000000000000000000000000000..d969c8634abadf1d0abb81c19a38165179e37dec GIT binary patch literal 119856 zcmeFXRX`kDx(3=vfZ!5b0|aZ_-GjRaC%87!XmAhi?(QzZEx22N5S+##xXWelGjnEk z&V9SDmzQd)YW=>xUuu0-QjkPJBtQfJ04UN@;wk_D?CVb$P6W8ui$&^L2LOPKZz(3G zBrPUJrsN1Rv$Qb<0HnSqYQn3jO58uDR}> z)=F*(e91-R2K|N=EoT-oKIN$9Hb3
m#J_q!-&?4xD&@49ihIB(vj}x6mg11zp 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≀XggV;7LIi;2;!Ldk34 ztcjLpem33WmY(%3-TfK}v||E*l~J!NB2$SckDjH~is#vz%2?R^YW&7SKMhkRFP^1k z`O@^fF!?*{IFNtSTcm_E*X95Ng0h>-%5DNNeMT?(L>Pzf5tQMu()Eu(VdUWronKrU(i2aR?S?3?bvJOxd-88aI-sWUkZlZ0O<1u z#+UzX-MUp)V-kqNJN;}D1ayT{1Zsaz^YY zXfhM{uRS^1VmW7YB~k5TM7B^~Dqt6RmAv9Zr^~0_b&Xtf#gF7KF##}F*2}l92&49M z-gt(L-{3cy)!{Z$79M~ie8S$c5$*~t%q_R&nkd)uK;2-22m;i`t>hku> zJ|WNJr!Z~eC8`JmK1z(a(5D(t3tH{B3~N>h3GBp-mrZLg=ni6mEAsBzSuX3+#rqH) zRl`&sgk!NW4K6S$$No4}_)jar< zW>&Esg`CR@l0fBl6m*+8HY%RUy{{IBQj&s z6+*3?05Ah9WYx9g)b2EF23Mn5S|#6fq<)r{X(_Ez*mN*GJ&fLYp96aw){4z=8e+80 z8#R_=i358aw8a3kRI@L&+0r`Yb6`J_gZrZ8i?Qt-pTahRWC0{EkG0AMS1;S9ifGxuP^g_S<5C5nWaiv2lsxX zOlQa`>J1THt$_$X`83YKK-CI)^|j}W&Rk^T+n(uICc48<$73s)0FZ0GD8JZvuADG{ z?f*KUTr00Q^$4t3u}jH(P+k@uj-Gys3gMCX9JX$!)>P1tg|5NrBts;g{%U#0@|m*J zGLGfdRCEdsUX9f}=EcWFKpY<0gtyp_xx4OqL`tVEVUJdw;>r#&4^Z^weQFo;=7G*` zFjomIHu=nP8!R1pcyQ}$U;vkPt^+4mbi+`M^m6uKVFw+nYv?S~nH?H|Zmz0PpFRdd zBHPgjcIv2OrtG{Uf+b;kboyL=v_5S|R(CN8oEQc?bd4N*-1#b}KPS9M&RM*l?7L`* zESPzVeCQ*nQ#jT<^@nyeh5%_ivh8RH+mOknD~a$qictG%v?H@o+ZP0e9`V1!Ex<~vTeE^ z=?(_!=cp5|(d$vG+R+FG*o2n##+Uwm8=v~)OZK?(e)7pDD~8-|yx*ezBr@IZv^ zsR!+!lLLIe3(L+OM|v&9eMZ0L049v{ao-_`xGF+#4_5g{xN8C0_?`^z5RhSh$TVE* zIbp$^`0k1@@qjq;zLw+HkSHJCXMxEhOoH*Ct0Ygmxx<0yL4RLA+7{XmR{VLc(A8TeP8{%< z0LRlTJ#aRuBaLDDba~-CUZVx6vENjm>B{rRBtqUF%F z+Mo_7Xw=qbp0ZP=qVl7NHbes#RRr7f6YrmG}7ZI&2rgh43zRePXF+=e_6LbMBCEbMx+d-?R5#d+oK?UhjVQwDzEGr$w(n3<{Hx z2SDS%UUt(jW#bUJr$n!|r>QKaESnaTSs#NCY_H ze)8e_%md85O%ddNw}6wSn=eNh3c0Dveb-*@kn`occYa#VUg~n;fVh9T+=B^#m;xXo z%aMw?FrIrll_Sm%s4V=Nfx%ASEMSG-Cmb>g@qXRbaS@{j ze-YLF+4lm!f*3)Ky~`{i!jwq+azvDft?2Z7I%e^g^@RNqC%$u%R$S$;QI4_!z4N8? zS&kT44I{uu03T-{K<-WOEmq*a7L{5(H-f0|Aj*3O;c(;ax- z*sXB#usqE)yp=of85ZG$6{e8Ds7fFjfSA$d;eS)0t(iS{4)&9xqlL~?m7O3w?6mQz zP-B9JOEL993AIk7b?&JUN52l8F4M+vSfScKYGm+G3&e-_pX(jyo}&`AIPCa2WmN;I z28bO#bmZ8d!$ZYq3ECX?8~LyUsGZ1=3mno$WUv#ESLx++v`G=&?0obfzvTBXIh_EW2$mfRN+$45y0QrK30G;w` zd4Zhzc8l`GKlrjd4&iVqH%~5Cg7x)s{dX^yOE0}tZe5KIGT=P5eeJDZl(&3wxkmiV z)wjsMz1e7d^qf!0^6i+@#X4Co4cF!2E|`Agk&nuo#L*$&;kCzx?a(}+XUj*=Y=Gdl z_eEaT3OCNw*@4HyA=rz^%N3R+=)gf4``@t1Y&E+V;@p4ouW5tA;gXHB) z=9uij2g}f7|9N@iIzg2+WR8Lp`^zbwcIAludF|7)4Dso@92rg3$a9Y|646qFGJ=dE zPmOZK-1L9}J}g6NIf`;!#$M;F9HA`f0u2;dt`y+YT#i_#`MvTxL8^REj`UG3@P2UE z86RD#p&xAb<%ng;z7~q3xg5E8bUeq>kd`BTm%!KaDRSkA{PJNLYAQ#dp>)6_2VpEj zP2~sz+L`rH$Zw?e(WsOo3{WYy?|kc9a?Q2Z$iC40>)`*Dao`^-vmH43|13QikcR>8 zx9@)PQ%nMU=Ud;_`jOi9(Jn_jw%1g<&p|(zI!F5v?Fm>`!-D|1ovfcr>L=O+DOYY( z(LnU$-RjU;HS>7aSWVP}cdi3{7Ak&zz^&uZKfZsA;L&g(F25v{Z8kb|_v0|X621rS z=Vv>^1!7Vz+g-3s0bmWJou z;isK{BF(}sBrxg{V5cpX|3CTUldjdken)Em+nFe>4Cjc2Dn1=Br4ayALp$6KQY(tN z!vf90KCW#d`hUEXl<`{mF6?9b#;UUA1Lo9>bS?|1&z;=K1i0>bgnkFZlajyDq{@bt0O)HB)aeqZ~14>amr_Ft*(kUk9bSvEMugQ;OG)wc<(Dki_Gn8@Sj!@O}t z02TT?aX5s=;!nOf!58-^pc1)-)#@2`8HUP?|FymYTQ9-0O zvmE}&KK)_Zxm$$~24h%CEA@yWvhng(heDV4J{TBJHk9=3| z`{JAB3$Oo;y#JK_luXD4J80Eki`lTs5s2H6%gY!O)8)m@ z<%n#Q$|&D(aNtA3<<2yEs2S`YJq-oeg@!8&)YxlAM2oMZ83aUm<=y2p_PGL? z<%mYVQ^9@{lUJN}nqC9ghx(c;6j+Cs zu-b%!;(n|II2$Vg0F+gauabAX{T&b*g$ycOZ8gf}sJf#rha7Z>+Sun)t`6o= zuIS^^e-70vh_AQ(@az$MBh<{-G5N(?#3;ya%}{Vhi)KE}@Y7D+kzPAkz=@Z4ho5%-2~2%uSX?(Py?LZL`;iWhfx3sR&wMT@(;OMwC{?#0~+Qrz8Ndd|D|yT6kkJ1c8X8FP*? z+CmNFj5X-H!l+W5K0S3JKM66KdKcQh6@IXs<0S_J;;48M+r}nhaq=kQAW@03bgrg6 z9q=h$C3J21-{-GtB9F>32}=E2I%d%C`67KBoyW z&TX-xMjXFRwV;aVv8wm*WL$GxiMv&CenvHKk49|-o!B(8ug!j24Y@-VodM)+DMYK{ z_h#OE76h;PPOpVog1@>CxX_pfhFDkig^ZM>WB*CpQ7FqL7UF*G41-avz7TEgHN2O5PqxKFKZnE;j{ zIllVHB%05Y631jYKBUA2&5aPd_=)~QvPllfuI&1A3@Sk`08_-y#q9emF35PA6CKw3 z4@zr)15l0%qZfwYiQ((azL=YC^3xQY#^Jt!o*|$_s6QBA1@?m1P^2yZq2lAGneuzPd7gq!HaZ_)VGvFB5k zGv=W3c9G+6;G??EdiGtZ3r+NxfNyQM=;aXY2EC*SDoS(-yy+4HW-~-nq@(iIE8t9Y z)lF2T*vLun5e8?8G*1|$yul2q}WdPi3fsHyta?`8O(pPsMABN%RboKJR5ny|I*H^Jr1smB;j&@GS z_36hvz3tEXX+vH=JILJyZ1&RI;Vs9q%Y*N-)nfUpjpD`w4C-j5{+`7gB^!t7#Wv|M zoVi$~(vlacm1NXC&Wc$J+2*Nl{;9#xw?3P7g@0VCM)XmYbQ3atv@p8ptz5G<4V74N z-Pv8MOeNSI8kwu9h;#2#8u+zN@@}^*B#5(;Sw0D>CaJV{M2lYRnFVLC1p)~iI(t6Y!cPoj$8bU1;1^0ep;;TB8!FS=K!4Dogu&0^4wp-WO1Secnp{g=4k-6S z*8_pV&2Wm@;+oASG@BHw=m7)7R`KT)CSaUbj|Brpt89-HX4KmV{kU31j9qdLgSKn- zp_gEAt171tV-^2aP-C%3MN0SiazFaL^Rbr8C!#fAx6%4qOs=5GCt;X(zIAn72j+1R zVK+G<^xXWtYIc~mi0@Q-KY3xI`7mD~qf$nZ*UTkVJxrLUYSQ1b*h|mrO{5QwNXW21&-pjWQoND6$?3}I z%h8Ci8=pT6Wa>qi^X?s>84Mw8Y2Z#Rnefd-a1t3$WLUtR5B!NNL}>HnW!-$w@EjC> z*FqDnyi!Co`JtmPhu<#e&k&;H)Buts9Tpl<2S$cIIo6fX*fh0roML8w@hiSQDI(|Y z`%mu~hW?%?o)%5TbpJ4KbcO@$+X`dT?}r6&iS#S2MI>Hf$P^2)(O5o2Mhnc$no6!B z55F3i{f`#FEg1Wkh0t^oPxSl&zZ7ZY-|6AWFgcEI3-bw#M6bqOG#DX>MeLAlt=P{c ziwGjR9e4sBaMV!Nrn@^8P3`42Bpc|mR?voT3i=$&^|4$}f@tt4m(Ac#0QK{SaW2?R z_{?AFoRb$Mc0}e^kMA*>yoolUU|X>Rs*4Z`mL(-w8dMG8Zuq@I>d5Rma|8Ka$#tRO zW@$IvYea=!Q&&K`!sEqYFvU%ouJz_m_OL6ZEVEhlC+@{sQ)clNSm#PrghtxcJ)^y5 zK-Xjah7tINgh4>ayT=Z;?BPz&0bjNS9_#ZF0;OnDJS$A=X`rHs0s@=i`|_*WG`8I+ zfN~9u(Bwce)UYc%$N?Z)8K~XolH8kPTyTbUn-jlxkunJOGVw|PX)RyS@dXYjzLaMM zmFGH6=b^MdWCTPehV8wKEutH-cHpJ7k=Fm=(;?y(4&6J5A$~g*hLH%u>~{~|KxH&O zIo_o1IlvS+nI&&MafZzqK=C3W;97=Qg8v24DENXcs0wK6lN-uj{UBMeMGTEzi#l%a zQEC-NY^>EB-vFO`hxN#6D++Fgzvr^GDW+4^9EOtdm}XGh-FI-!(t_Ocdq$<0+6yfu z0>CkHMI?qp+0N*sb+1M?=FOzjasKvST;iI@IEG?8T(aK_s{$Y4Hm2hswYCvJ7}_DJ z0&B3V82Vjl#R-d~yV;!46a`IIf|2H3@0njpgVL-apB1@VOssOP3zmYH-S0sWtSMgi7m z)+3@eq$N?Yd}B2%vOXCC)2u&bL`ODMN3m7VOUobA38~Vmtip)hSPy zcO%+&;zUjbf1NsEjI$z-iL9jQ^!E%0{^J}wwmn!{$4<;g!m)kqso3JWvk%!a%yuDV0n!t2ts@h(f8XV8}TIc3r@ zse1)uiA9}t#^NIAoB3RYW(MeqXW)%<<0vm2J}vHoBw#eRlr{6Ta8r6 zRBl^j;^RTAAa+Vz;#SeAsDGb=!&b=fAUfFAE0`DO8F;Gjx7qMOA*F)=fa(KOY;hNc zc%V*Pk=&bjk>)_bkvpVpKOzXT<0if*br7}!75Q^xqs&Qv7&@tjNN*j9uq@O?xM-*% zB`z~dpi82@6HuozSej@f%Sq`3SO-XO$do#d;U)Zm_gVaDJf@)T&(oI|-y%Y@^U3jK zOdUNy@9+e+Ed=TF;_W5G4v-X@C9p^mn2NANv(tg{SuK{wq^vNzD5D+``S+-`!_+c@ zI|^n~9q%hiV7FUp@2G2L@ZSIb9va7iWfKSJ+W${0hi=;kLoftkO`f1~q#zrmpaVT{ z59S%_%lh4hw?y6ob{w!t#{zs_J?ezp_A#iK2)^Um+!JLTTqQeiR4OPjsQA)GTZ*dm z%isWIOf&^?KPWrxeAgB>&$u7{_P}gC#iC$2oERGHcj?=R~|$lUZ|LDYg-8ZBAMxyHWsaA%LW0rk? zN3GDvC`MpIJuKBYa#;gyavJC*?*yVE(d&A7&y+DaIcW2YKGvClj_%pdx8QOl(JwH3 zyUoI!A>R*N@>sB6Fu>TCu@zKV)Dk_ZX_&Enz*K7chNR#Y!}(5{9>R*$YOWb$_xR*3 zEUL(63_v>EV_pExwoZj?B`kB0a0C}0>@91iQE2O2`P<)YOR#3>++(rwE((=E{Iy9u z3+DulmYI>deunUmoo{R08H2cN$7O4+jJ1;sH$hs4Nd^*pMn5<0)w;`MCd>mXOC8Tr zGo&*77p@1>-$@I7s^1qoa=#!E$S5EyC(28{J#)Zhm#yM#{bGNy)!+6#ntz4B_NCEj z<3lkkg8yw}?g3qw3u6{jW{cx@a=n&3)%>0%4jeh{_BsF}pfMquhsfL?ZWZ8a(Vx!yR zTks>#4_6kuBgw94TIi?D4-}l7-zx>~Pwz22c&a{TPVuBZ$4@iHS8X+N^*poAY$6wi zyYxCyTEGcxG8;yz2r5w!ymmM&-iqkxL=m2LIqhLW%NfxV$Rv>#+1V)?>**;@WDmJg z;`BSOMH}Ie;`8oR8zP$`|F&%t9otVGc!sU-P|$Q??W-Q@w)T20{3b-NqRG6DUH0qn zM<2u3CTS$8gCt=?;cuN$oB@BJS?`#0IfY2S2(B+uF!1_%MkV!!-NJ}Uz@?czVGmz8 z@80I$bdsx5fW`UV}QCTX;==n%JCg7j0-sx zLn+okD6AM!k{NE0?WNFsnc1g_5&>@KJpwKY!J&IOWkw2cAeE(kr6@SX&zY2jp=sC` z^OZ&C(dcg#ycU+T-TQJx(0x_}KDvtNOUR!zZnHRMm?RV@&}PMZGSzH{t3@;TI#R2o z;DFz}zeRrcUayeR={+l6%7DlLGj+2{&s~wwCTBhS@#@}2=MbYKVX;ujiLT=~sWm@h zg}F~w&fN+bRGi+{Zo#(|vc_U4&UVw{mWa{2_3_0$Jo3B_&TuglUPcbg81vYAU> z&#Z&W?@Mv(=!z-cRID%avDYllTE51_vNSpjiFL{uRI(ha?Sk(4N00^|om0IKR(-Eq zk;?)k6^KfZ5%2=?d<>`_)Ph%iC$+8jkiX^ z{osAbi+&be0?D2L9=A@PbFpN6-)q^rYjFF)6vG)3DEi0f@_cdI=&Bd_uqG;Q_UBG= z$p+t!=$Ib5rY0A@iV>gM`Ct^Hr{Y|QC>Wk!G3znc=2{9P0n;jp+>kFve~3@ZzVG0< zgD{g}F-lpo`D-_V5em9*QK>Eer5Vb}p=;k!o3*V!|A!>nRFWNAzYAmTjJ8^P$ggeS z9MfI`WvaSb?6WV^NJ2_t0oem#@~kYM27%k(@u}eRR(#{r)t^3G#;b^VU#}<~;qI$9 z9@)k4oR=Ejw3K$f(<7PC7&l)lZW@zs&@9vBTpE3y&(1Zm!I``FGz1KARZJ~BlARD~ z!vV03*i$Z#Y$;O~q7*kJ3`_*+u$I5%?5gEP2!BNhHV^gp_xK_fgT)?L#wGZprSN*RPsW0kRoltpmp_8T=pvVPB`w%JV7&zjzx^RFlO9rIr zX8C%K!?@MthAV*nt<^+UXA$OX0NNv;I&OLPP>W>@>R!NaHAx;0-1d)8y1KQ3M8RV4;J^+I#1GObi@klF^gl5sf;a2wHd}Oe3Tv&l`r1N3S$vn}}iFD?+ z-QjkCe!Jr~&LRnyuXSE!gR--cW00VFfWAD-G*Gg`Sys>l2&3ZiNxRNp zh)5iW*vX?@UYLkF<6E_q__1TyfH4Fb`h*Pw>AS6vkkT2vP*v!l2j?{>8Hv4 zX=AU-W&Pjsy>KP7U@)6a*&{J(ao%23vreR%+n8_MXf;UVI;T2~k?mm`)war7l6E4o z&PFm;(})_7o!UbyDx%*tb9N&(zNlFVc6k(0+0xoRQ>wjy%{#S%GP{TRa5p}x#a3nE zL!0$}aAn+M^Md)?3ub(#({E`^xE-oo2lQ0(#*_SPfezubcqxpja5%YU1(6x&O39Wm zxYcg7tHJkkIo9{$LV-nSf_Xb1lq>Jr8AmLu{-&R?X#%D|A9^v5=qa2HkQ`AP8j`E*l?xL7Ug^Gnc>@&%4`-2`uB#UyL{+4f z>+o(RqvN*IK<0L~+g-#v+5^0ty15Br0Q68CJ)bc@_e%w?+FiQ!h`! zp9boYO9l2&p4QEr2YT3*x*)mn+UuuZh{M#e8WFtHOPf{F5qQ-S^w!DouScMw`?T1b z0$_ced~Q^SssfiX@^?ZyuC6DqfBz<*M9Y*BQ1<40u(`BeVmHuszcOYZ$;nbov}rPM zGrCE)$jPaK_%8-5X&(9G0e%zBl!b?Z#?iVs9AmWIo-3}pMKb1E5kw4fd=GA|9sqKx5 zuef%F?|UaD?jr2p2ff<5Is@cWb4--s>k7RPU^<@8;|C4@TCIS9G?7~$&8dU zT2H}B@_Y>SN|CL?i*W7w(g391;2A+v3h38{70lh$iNuONXG2LVAj994dnc(DtAXY# z`K1X?;XY36ug=4KOK0dD;7K4GE*=9%ld6Bhku!)$|MZranTIP4z5{L%D5!ElD~foE zW`{Jo-E_t4Pm)ri-5O2>V?-q!LbUyk57l%r+m#S(f(!B}y+HW~gS3OO8T*w?yuC6E zA~g z*Dva^?gee^5fS4Qzd_n&*or{0VF1EkkB8N7BZ zp8y{Dn*)Gr{8qYW0x@n&eB+wh(u0zLi@mwoho_}btyH*T!B7zJCIzka{5osmUVpm^ zKqiytcMJCU;*uG3Hnl)o7KzPD&cmJlSHzKU6X6puNeEpft)zSRo2Bnp(V&b0%>2P9 z_`CLJZ*&6mv+NRx%>uCX;`53Bgsi?RmK92pm?5(kpwG9Q*vRGaOaF}9ZQZB7>2mLm zfok{^L*{Y$^JIbn^833+*eKVc+R*UNWra+#T87_T%{RWxs<_M!{tF&;*~hzr7SEvH z4@$Z%j@ieJ6XI=;Y$;*kCq^Gl@S%x=tC@aNEUQ^jrj-vICPVb{P^a|@q%f1!Z|ik` z_wL!#Q@)hcOGLOG-OtMirYjYg!LYx3;%U>=^G=6^5z}suu|rd*>&i1j=HE3iM=2V8 z`*|JkaJlO`!d$xlLqVk3D}ZS_9+!g#?|-rs1$~geB3L<>-(XzyNb#Rx7zIBmV=N&n z%xzhLs=4R092JP;x4l-#VF`Y~yuf88k~X1Gbk>A{<-_*5}%lF!<%M$y9Bj$3)M{Lb~EBsr23Q0_fL ziD}QZz_Ne*3cvbdkJ6X(a!e3>FZnY2(#DHr^-d$paizgTpbXXE!r1jp}dNxeXg`Mn~Kog64V0R+QG}(;m;_pqc#Ra10H7j3B}m z_#~PR^WEZ&yH~>9A?-lCUAb?HYO%+oOSngchq2YJL({<)Yi>t7(Ah;Y8B}SV$7}!% z;$d!|7^MkNt0aJ81KgZJ`;aCxAo`u5PS`R>^to0mj2*sm0Su;yLRqj`*?n*VEqli1 zoS)gXSCuj#1WQ)Wer*yxt0Vgo$0P*(uW~P}0On}#738|bm#Bp+6h4d%#Qnt@c zas+HTdD?pykFBOSdBIrUHYH)rWML2P=_WLVu^1>`nrx=I9`(Af>hiGf-_wTjMl%?D zuSn{>AvzvSLZrM1)*x;nX=YHxU`Y~(nMli!a50_7wauOFmZ%xj0Wi$OigyNt(*U~3 z2jMt|J_9`#obR&V;!=i?TS>>MM{VNE?V2{f)2c1d57W!~khNy`M2ak9F_ZFoYu3l} zbT+Mka$!+VZTvRtX(Uil>J)V!IdxHFeXruhP>QMD7Igb)#@oT5e)a3f1Jf&1K%CBr zP(P8v*Y1hc-!sr|=gA?jI+C(cv4Obx4yI_!wc>I8 z?!MtESmmwfC|~!k7~W+hVAU3@1+xz|BHpV?wCsW6i+z!%cVEtH*S9Em14my@j`_A+ zG1bevgemMqm40o%>(m~~i<5q>m#VJ~0@NNGPr23Bi;zpsk%W<7OtR8KmzWyWV!y-> zdq?Wm*S}}E9x@YMt0eoL{nD;Q+Ud&Gh8uvFSk&^y@BEj^qq$K&5Ehc_p;=i`Iqg9c zMrg~|Vo3GsS|3VQo!%66l{&Z`e6m?2yPZvY)sfT*J$&OPbL_8 zm^(DHxG_mNaRD~(mx(2vWI>^OYuBY*mvg8D=XEO(E>S0WJpm^*qU)cQR=z*be;mW@ zO#-!ElFk-;*Y?QYZkb2#^*y{xn#h5SlVP&Ixkt+ih0so>h^r*<-sm<`x;So30KgFftOAYvG zOS0s%bhRC_o%BG_>GgZ#&U|qFJjd|c!d}Ko8M1tizgTrkA9dy1@pGD=) z8{N5Lk+dEYd==E_x|-YL6kjA%DI?n*dM9E1*oY~{N;Do&g?H|^@O&Ixk-CkxwoC9b zE7;%32;EF(rsk+kLmC-L7##F|`i!F>4nw$$e8)qyO51lg3(dBH!G_lN^pz@X{s9^` zfbDn zveIu6^!Y2VYS4K76a#Ih2`QVtsGbChyW1M)N<5{(y zZZh8!b7ZHA8eTscxypFLz+Fs#rk~@e!WYF=PSqk+27t@^ax&olaz-%FyLxIEg` z8^;uJaeAA4V-1`zwQZKIJHB9pAg26$v@vg}W*BB$KDbtxa_MC^pT@l{pZMJzxc`pM z>e`@C$HQMzo#Gw9uNzhpz5egT&wzM_l&-tJ^<%a#n0MOy3yZX0Pt+V{`NIhBGPKLQ z`vW{N+ni#MW1N?u(iWkub+}#hX9O6+THE1G3f9eL)Dl_ZlsAT}aA!-S>y+aPTEa`^ zXB=s5XLG5O&*7H*f|qyrsCN{pwN8<#Q0&A@HHntB3<`M)^;v1o%4%^E+$4OVm~u4b zOool}9NXPut&j4IF=&_RtlX#6eK_}cFa2gMaAsvU)vTTI+At~5HXRcmxFS0hh#9uh z)!_1pReuZqWOfZTWm>@nI=?IhLXl@$&NLkDa!iiwfUe zdGC0;cP+g-fbMyK`$87co+a8roVtQ#g8aoB@51BM*hc>y&w4b9AixwsJdy=R3 zVZR_Vt$q48T}>$J{pN}Xdobe2I0kf$lDeBzu+w@}Zz$YR{z)2bPQiH=*NVY8qJ~_= z+MW%Z8Dhp*lNORMo+%c=HzlFp6v{^wlrC;ZQC8_wSo>JS@C=`$_9=wUb*hH%qfH(o z=TryCRIsBgPLj%C>7*!KM%iUQR)wnnU`N@;y@&iWxFzWd>>W^ac)r$7c7flIOI)0L zdVLcLa+XAfF8;tNi|iNIIhUH0x38RQfni7&Zfmlj4a(^_-l5zKvGTK)3$h)8)jHC< z(NPBLrYQA_`;wkXx4d_&=!oP>M_28x z8qvZ?7t6O=iZ^0=_qGooWXp)W7PIbWrt(j?>u^t`Bhq|K|nL9uz<|wBhw-66V=vnWP$i6 zZ|h%CZLQV|OtA$9+e$qzX=11B23zFIw`wsK7gu|o1D)-gxCxt<5O+RR3 z5(ljbWx(zWS1!vB;kb;&eAD;L)!nP@EZIZ^Xal2Z$b}Lzrl0$r5J+uFm}6$Mr>Q&C zbv8q?2PWF#7z>G|>}aMPf)`|fGy|#MS6FhX(HC8buwiM>CO%=px2$abfXOt*B7&6U z$qCK_UUj~Pr9!1E?MpYcVp(rkLfJ%3yNsfmbUCLJxM_#F91 zvvAvjIGKsUCBk9}6u6k7cKdbW2+L+Gqf?Nqc86E!=2+`pYUN;~2@l<=@5kA=Ceka> zSctF5ke03KyN`-w2*0Y}ANo=zj{0KLWqylFdVUL`)uP!p#4x2n;Z@G?Qvv}6zZhHT z1yIpjtq#%DDwl?#(Bj)DI&;f0Kh$1z-?NF-dxVC&U2^U?;Cc>aJLwKz9`X7w<%g=N z_1lf_I2`m}jO}iM99ip4YqTR1ex>b4tw_+krHh*NjJc^N(Iz_iaYE}w&TdA~j@ zU$ij$z3}Fg$fDXs=4C|}!f&KKldG+gQ?x-Y^UhjgR!k33YnA0}qGS%|%YoHelExu~ zFSLZ_A`f9%nLScIXhkc_bW-G?m%^d!T~=3U>0C>uwtP|4qpX|Xeo##pRJ{f7*j^Wi z%ejg&Of950WsN|JI+ZX$DgU{5U@e&y5H?DO@RRkA@j;PEd8S|S>umO(P*2Zzc&YzZ zlW)ewq;Wm!)de~5kc`{7m2mLeprsP!rp7N?T;IKI;I-h|@9wOhw!gi^Yc^P)093$r ziw!cpSd8y>5d~%xxt2dnrK^ui^HLk0db>G6MwIch!vf#uMY&7I1Li~?xf@ul1{+se zaxYHcN{G6W>wjhw-9**8cd;Y)RS)36+$10r;x6PEhxE+Sp9Xtz){LujE!Ks|*YL#g z0==yaK}yZ3)7o@>U|CTk?wm>=%&INlmPUMn zaVzpO^<9(lOI0|p11<-}6k1OP@5i^oI8m0kn$PS<^VPix=ptE8l#-9{qLN8mG6QSm zU@TL{{DfS)rNjARqas|faA7T~RMmd+rDW`9#w3%v2!_?Rbnm4l%kA>k%={TqJBRFY z{O+t01z&?j9@PRr@tedexeFGg77ke@)gC{^La7nkA{f8>4-f*dIhBV!P0SF!VMdrr zG9O)#n&@du#pLx5RZvqhe-Klms|gp?QFoIk;v5o2UMlX-BIBze7)l)n~2eb1}9HE!%M*=Aagd zFmLs;t-pYMouCfQ&->V|%0{Q!dU1e10?g9a3~@@m!*OC4v+5cQwjWksizr>#1kY~H z;fJ?nJ@UzY7>gsZlHFIJ>XABMJJfG`4WeR6!M+SP3pBo<5+J?-#Rwc>in+IV@HWp%KiZcH&my|8g`b zT0?D7&oE>06IBEpD+XO6gxl=Jp3h>e*3Hy8^V-*igRwzBXk){!W?H&AyYBZ={N`aw z9^e5a!ZLM1^tY?5JlED$KO#v<{6DD&=hM@+%KWj`L#9=Y8{hm?LeoI3vj3c9n4ZBm zx%=IOM37HXh^UZql7w#`8FvY$fF<6CIARBSmVkkOhs&571V;0~MWnO5uEl zfj-QQ9)1_Qg+R4;Tr_km8&z@3B{aByG=nA-cj&&Jjz1+ZMeI$JQKN!?iZ>EUb9-zec7joKnWQZInpH7Qx&ZHZ7DbU7w zk%nM5Kn`P#e^rK8Fk!bme$7HjJ8PaRCp>QR_W!Jn%rAF_h4155D6sU?{s$w6;&ApT z&P#7iHZ$gD-oC@Vm>{~AmuG&V?P%UfnMe7~Xr5(b{w(P?xhKqH3A`6tya=)8T!(%D zC44993y*Q*ij3DfVp%n{BUBV-1~t5{i}cSL$0@}-P6oj7oNRZ@*Z9Zq!|@s8=OmdB zuLfG>^;j_K0w)^i;$|N_g%lH3MuZOEk8b}}2rHV7s1VySAK)!7&z$nXM|5Dq6u^m? zGS6a-MsL$=X0HSoBAH}3%@CZ#l9}5d*Hh&6HNO#lK-(xRdS$~*fHgPMMUG{|`50;v z^>?uLrI!JodR)2JB#k6hkR%qk|3Q)=H=e8X;~xj#%gAW#&hO5`;{Mt`GP42f5Vi+I z$=>8*Oe{v@>2fe5Wsku4_cG`2dlEA=MWCQwtRf2JC{l{AvYlj_T;5l+>MC+7D$*EY zJF4ltUa^YV!hA$5P%P)aQwQjY+TtvBcsDk$cx||~h(g&t4aVL6X;M~&WF=F7bt{ot z`A6n4qcm-%C_X=(xddrn$1!~?2$ER*cG<=HH=^;Ns5Tma%*=!W=R;ct-UY8xAa4;Yjm+jIuDZ?;3K)y7 z(L|?P;6*$_3vap*h5*~csi~g|cq?BiPFcoh5E*#i*V|dG$VF^@`4}8Q_szK=edhe* zOms2n8Rz{%`67J^w?TO?X~yII_BPfNrB@ z4Ag^(x?NEEt!$stTbESih4yy4AlLGjZHhX;#8VSQ`ce0*<%|O?4X%^`Ht5(BZ~A<8 z4WpA3%qqOr)0PinaPgbvW$?Be#4{SPP8Y47&22+c;Os9Hx!K#6)`?0D-|g+8^yF2N zydY?lm=o?DgrTIs5P6Vx1=t1agz+WTaaTc*pkPLu5YR$WUJ8XJ4BK^Cm_Dy5fdQ+L zyYkY!Oi^T8%H})hb?H16;@30r5$OwH{L?IuOvMFzfd1+aZ^Ahi{p9AKP3#^n@@>1k zpXeY{5^W0mD7R^85RmqwIW9MRwA^+sVOB2zW1v?47aaX}n8#!& zb=A<}bFBSR1Hu>$3H1qmW6X^w&Tzxerd;dvY8du^Fap!jMuS~)hKo+@^zqM3O37Cf zRgwQpRH_vxBe)*hxtR?QEmu1_NqtV7WfGxFNHX~1>so;53TGJ!HdM*Q6FF%pdCrh^ zG0@pIFfwh9k7#Zg%#~Lb4*{Bz`DMr=jgnxh!;{J3z+kqd&FBs*qay*{d@8_9P;rWM z*&4bsL>KD;A#(yy_6FV*ot&*-wCwS%w!jzR*x2r-X({)GbL~d;cJ?oE@bdij0x>`< z(T`~hu?V`TfL?uuZ6Gm@?|r{E{CP8s%ot){8xKsd4JZaw^YNS5TY6v;!M-j#rqMZ^ ztsLk1Fh;Jhvi5>I5h7@+5eU#m@nP;uXN4=(3?>+}; zPZ$THcgKJKtrN1C0LQ@jNdp)ojyQ_FPQACX5XHqNsZsrQV5%^E?BDd2>(Aqtsp zQ>7DF-Gp*GNaLz1XXY{&x?I(#Rz^xX#Lx6_&pVJ1Wl_)VtT?UV6%Umy%jIus3UY;C zlG9q^GZf8Bph>Lj;F4=Z(VMy+bSwE$cT&yh-z(^qQ#ueR#^tV4rG|$Kw9#XmoChM; zxifLUPH{z40)R%bgwM>dlW6MLQ{GfvyYW-%icco3YCj_1#n`*x1=*C{10^i5ajD6= z^!7sJ&^eN2V-yWVYtNx}!vt_K6b5DuWC`49rsqzsO#biw^R}zX8Sg0sI>i3Co9}9T zQ@xI>8qE8JhWidM-)?;^TIHp79j7D1j8F0!yWqM*+=ymbEZHd5kefuX7Bg<^+XlUy zu|(Cz*eT0vTg5J(3U@l`fV?i*nP`5o%am!wwTC*-hX}!cD{+Wy=upH5?tErodfTlov7jp6yJew6ucO|LLz_S5xm^xey}Sn~x;`*4_D? zPI?6xYbfO<81=nN6i1dbt-kEMe>Rny)E1hCxv@3FYAsBWf@oRr+_0|qG%Sa%bViER z)+S2tAFfK&;7tB|wu4VFeY^63a_`<}NvP>>+PEqY?hJ&)v|{8!ID#p6gGk|ftv{r? z$0Myom!lVivC_g@OH={tU<9{#$l+c3Ln)X-u*KE*ygmAi*YBs2iJd?DMI}53#wK)s z+ipg`>;n@lSSQ$6M3_#U2Xgr-Ced0-r-I`f|L+wwpoam5=wn-x6FY>Mb{Nbe6x_#(YkJJfv?dQ{VTo-dF zYcfUEzz53WxBi=k*PQm9a>^Ig`PF;ggcwrv;6!fCbrNa6v6AIu%494p8KU*1p=ja; zOh?DXGmlQz##o_`K30FG{WYq!<~&O2hphE);(#-1q7DZv^nL#897k41nOql{>H*n} zXr}h*0;{(?yh+hA?dOOkKhtF7X>UqT{W>6zvWW~fQ$^3D=7evt$tZya=_gqJ;$vFp zT6Gbrn4?c{oIljFoS`(TAj&!@e>cQQN(BC)OgVKO7cRMYT*u6P(1#cCk72ka3eWFk zDFu$1B-tr6jvfrK%n+QhZv4Z679lxUUI%q!nk$+~S>-|F13Z8LZs|B0q!J3}8B-bw zT;*4A`iUAFO-8I{e&d6t`i|(qY|e&Zzl<~H5Lx#&2+L*PcJf_c-oXbf?oS$MKAWls zT_xJR_y*i~K?fI*fzUh&(d}iyIDNR|ZA)XI9M*B4iR=dilD#P5za!Y|cdx z9}V^2XvQfQ*>D+^rn9(r_bF`{CA?u&_OXuFUubt=aEXr>>X1IIwJGt}>NEdxo&XWU z-LIn{4;T}``HgknJzTGKjj@ve^{e0OY{Zfa_WtC^go^Eyko(~=0ID+08n!cmegjhv zxFc#ah*Zb>w#WQ0g+-kaqQ{5+{B(pkg=36#C{~uAz^yhjSRmu;QpZQVbW!E?+yNW> zdDH>HlTGGdF1zb%jDY(dMBd;~OoI7XOL1k!01;v6AQlrW;tTk#W%GPqJ|O)t*LxmV zY(&ks&Nc%<3OmUjRD_bF&F(t%^!XiyS-)vXZ)5)K1s;Y#cQ_Fi{YLix|c+|O{HqdX{ zl->yj?K*0GH*g92(kVtHo-Jyip|9)r<)0=8ndDYFhhWF2xsWDq>YVcXLbLc?LMv)6 zkZxhH6bg|4O6Ij=`%}*}ss*796|)1{FoEElA6GQdA4W*CETCEGz8B*9p2>w>4X1%| zI_@%`>4Tf!H2->}3Pn;Tw_0pdoo&hR|M}BZlDjmu4d}hrZWN#$K=4h}Z)lPq2_^h( zS4xhhz|OK_Zl}A1X>1pDo8bIx6Flmvl`VBddE=(~tvNsvvu)Gf^$6eldP>t3vxag< zGsNxhpJeH8gl6&IfK$WMH(^~;Y`}{Yg2I#W7uv%RTaVkuxHd@0fo7q7B}zKVh&41W1v!glxi^?_%&k zl%O-GTvuB2I>F%31j*8K85Xn2AMGlDW7LF81We0I$Tbq12c`@ybR#Y#v>l)P-F7%; zFSY3-RK~FyPQEJ=8(%WaY>Fr^vW_R;gp5y~FejRgR08|}*E^s(7}dr5SY;fv4d;RL zsnry>rU+{SA|KtW&2Ndk9mqdT_hN2b$(>F#)1vVQap;~a2gn?bohW6NjV=B8HxC7% z7a?PMQt+9Yiu?UkGo7kTSe_NTc{+-CP&F4uiBit{?8}C<_t=qTxT;}OO7P=DT_EKkN>^YgAoT3A8L4cEx&)}Q z|GV`fgaf{wlHF}yaZCk0_k!Y~O`Sf}S(N4NdE$*mU>%$Y9W?J9lf4H&nN@fCG6e1Xxp+6NTi22?D7*N_>B+^_ChabKEpU|Hfe zPLSI88OZRO9Jy8((5Jt2(ywtY5geyS$Pc=WAakB}X#gRfCqF##{aQFVum1c3?}=#t z9a>F}tou$R631(%9kjB5w{J#whMy?n{U=Q~2Jj5ylScG`C6$PTg}a;@{0;rg*n9n7*t^4raOgT}p2yXzxRfA2R8*2}Z!@t-^aP+zHjcA9_tIR9DX-2b=< z-QXN(cq?~ZGzn*(8ct*!g_7)8I$v*UceC6KD;<{hi!GDnMUhY($X3eoZ{t4yu(M}; z^1Lo@C`5wOK7FwA9b`xUw@UGR-DX!0yGgMW@b+RcpS9HBJO#sJ_NdXXCJn!2+7j{t zc(zf1I*D(#Tf9a1=^;t^G7c#qjJ|p!O8$r&eaIZk;IrGYS}@{_tI}si;`mI*DRMw3 zbe&hsGuI-2?R3`bjVh=P04{=d(EyApOw~A6aPjl1kFtsePtI8G{JOpVu|0FBw|cj6 zcyRXda3{Xhwn?-(1`>rYEbNvUa$$r1CBKY*JOB2)p++2~rTxxjoJ5JfI#OAHtL^)X zpol3R#<@br1LuqGH~t3KA`}~zW9CELXcq5hBHpl>ku_9MOr{rUasFGytn1Y0Zda!5 z6_FeUKvPDGj75icKHSDrL%F#6%WQF-c zYw#=2mA()e0f~Rws_thPAsZj<`k(r4uG`}OO!zuR58OJ;&l2YecHP1DYO+q zYcXFG*)VZ!!(-9y|C!^l*?zjUsJoGRD2`+#<6x@H0+`P53(XbV_ARNF@lo$R%~3p` zu%pcQu&@bj3H7~NfmUo1g|lvK)7xr(F1fi4k`rBJmYpG4R0lI+2X^?YGpSauc1e%S zHWT-E4c=8(ybIjSk1}6Tz=6E|y!`BjhZI;gX@S6M$B$?PR&{lb2XQDJ7d$Xnp_Z+Z zAJhsOyxzyX=`fh^H-FWVb3&oYDfv1gc7LrV z#A-B_Ff-?5WM>M`WTr1Kk##;(jr9zGfsfW4m4!d(=DI$I$;b(d0*?Au!W@ZLM`u$i zgRN;brU1WA0(r{^I7u0bf-l(bD%d-nLPc9{g)B@v5#H_O6$^$$TrzB={g|&xcBVqd zLG0UiH4Vh_eV--<3F4Jz3`grf%A+l5%fFFt||nOQ&m zNJa{q@C=i)I9Fqa)^ME{cjvvBHb}Pr=x((v!i>LkTm>n8_gW_|p}tGWOOqeC3{uF) zv_a-ydGgr#cww`_~9RTs!7q;rZ1|d6Oqg>Bnse+pzziXD4h2 ztqr&#U?ZOGSSe7d*f2)pP!zza_F<(3$o9kT@AuUN=(n(+rN7<*t>Fd&fV6+a4jlPo znq-f^(SO#X3J9?dmgb8%L+xjC#U-=L10O&8ub-7`uf10Dv9k`d0-Y18EFv(J_f ze(;0ZztcV$nP3JYW5X>+AORDv-Fyu{Q|M$G;_igm9NsEkD_C=^hHogijaUuWNaHss zy@al@JOMxfkGAPVvr~BR(+aN@Ebxb7lTOe|-6@SmI9>Xg#kXcQzi+}hXrr+uWCU0Q zvvf$O7^*QRBI;dMoH{-Rsx5hE)m_1Ial_|8@3WWu9~{W@3tcA7N|H12U;4K%$%j7l zAxi@TMH)>mmOm()Hfpc z#uDklrx*mX!EtOhOU#G*l_wx5zR{!fNKcow(XHYH0%tU6kT^wP1`g0>OeVwkQ$b@& z0{xg(zxqc%g2v%WTs8Exa497_7(ITd4hPMg5V-Ni8|4dM_<|gD^wIMB7yP~)bIj37 znuqNuQTYDv*S{|R`Tg(9doTgOw3vJ*-a*QdzAvSQpO_$Vq9zYeGR6aI#5UhqH^x`y zDQYnZ(2c|joI(PH1PTf4JPF)?|NVO4+rbAP)Rf4C2@~YN0~gEk<;!(|(-b&L9yUXx z(XMe2$~M-TIqdm=VZGdX>#cIr%{Sp}gWGiQ&%qko>L;F9E#Lj#cV*S%t2AH79CM8B zc{fhD%@WE1JY{SlNC%Et3kMoH8Lu*64q$d-|A>4=yB~@oZR1sN*2gLJK)VlC>eQyd zP#?o?PI*!fL{gF+823+@1!V(dq38Sc1%Zr5BI(j}*oGL_{Xv_-!)UiBiUuUe;GJbf7Yf#%%4X!D;;# z^6H4nJLs#|`eGUbKaBIa&wpO~Slni~aN$Bb(9j5v>MzSmA0|O=y6GleS@PcZzSnb} zOGYzdFy)g@Fi*F=24sXd1IrO}NE5dC>^ERa#sf0)DdG^_q?@PH3f78jC%jJKt!NGg zBR!ftzXpAYf5-9!z;Hzq0v~StR`FWV>;~2frxks|h@0Z4?levl+$ukmEq<5`(FzDo ze6@zCLwU@S+5pWo^Q?do4umL`RcgSMjFWdd+Q0y0D+`EIk}rJj^SWGZ;lcy56L`67 zjr-SjU;wEVE;&|uwiGM&Q0bm?O#*>1R^P&n*1;ggXVohtJ8J-VXdH=92OekSZJw4O zE~-KR?z>lmmW6aOO)>_eCJ2**A>r4(RffZqYNQCd$`I%Ru7h_BP;1ccZ^X&Gd+#$} z*y*5|G9Guu9(@&U?tp@P&|fNZ1p(p6m9@Nb{{t&X?o_^|S`S`~_E+@b2W%7X!ykDkI zpRRPdw|?1=mSL&lT*ksfgSZ{aQC(-8!4va=Xq@=q8w*W==8EM58IOjYWqG)U`7slA zx0DS3qKhuVN`QagX)6J?ZG1ttLYX5ylV$dFyY{JD4#zBB|2BDH<5p#F^7Pq)K3-!J#Nje) z)+}wSsp;m*K60kF8o?geKMGCu&hHqH7L&aw_CN4r0JP(9bJZXWcK7Rv{~RbY zSl294HVE#);J(s3QOY_AVE9S`aeLA4nl*d2_CKbeugQMMl&Mo>g0HAh;-JI0JOiKy zT5sL&@9A&_B-voPq})@nwW;iGF+deCh+jkhPucZ;19_)&wEEe+<%;GPzxah5aKHhY z4_$S@L}9G=N|uzV5Fxum7Vi9-4|qmS^WYdBZA%VN7~O0 zK9WR(qcn)j1iZmmiqYPk#wAwXKNMK|RJsdkm3DVA$0%0PH5;QG?i{wF5VoS;F02*2 z9V~^@JrsW{o&uJqW3^Kx5T6*a;ifktM3B~N^spjQk5#nhW}INxV$iQk&y-qSzVhX- zpz^v?m)uR9$fao(f6}DMs!itB08HbO12a)W1p}Z%XPz$w0?rCJHT3b}{jM}N!wN@+ zXBebs7{p>j(`>vx&nnU;WTI+h{3v54g$xE@Z_fm4Y|t37GM-SLfC+(p_XF4c(}4*X+q-H;Cn^JLwUHX1x_m-`W^W%<+he?UIQ!>|LR^U5r5S7dbjfysHcln*?6Wo)KIxnxZ#EyWc~W}^2)WZ zl#_7i-GT#}&pP1Mcx+dr$AtxcAX7$PB_O0{TsJ6>e*Z}2gf?5#fX(KcZnfd)-}s_b zw``Sd8(xqaR!-J2gTY04+{#elARdS>U`yhL=hn)W855y^=tFEXp#|6uoUFO!Mwy8%nl;Fx23nLa^&qO~nK(fv&ctNH6wsS7Q>A14 zI>*uY(;LQN#IsC#0P_H+!jm9HXF$H6?UA`Ge=45nKRdOCm8MO)Ie!DOvx{d}F+ICN z(ePtyZp0>eK11zid;G{gy(UTz7{rP=k+Y%tgLJF(TEU3l4&Es&(i(Sm)Dq(^V_jw_ z3SF1z*>|4ex1*7VxANywW) zph@Y&;wU-F)lKvj2kpbvB->1EON$o~9#?I06+jMlb-H{+SyGoM6qm zvRqQnIC02cb|4A)!hhiFd@b4UJ*I)jd@^zH=q^GMQV;pG2@_{a;hYjNTsF+cPso)~)%bhn41-}1fJW4} zT40F>{Gepy5rT;doprCvRaagq-}uJmx}R`1uFC1b5;+S)c|iw)OT>&ODVpJodj(4j z+2C?@0JSeXt@xuK{g|esv)7oh--N?@RErOWxtiZJ`2))lmQg5SI|~8%S>)Z~~N&ha!*YCvw;=k!Ji0FT7AEP)7S;z=_G&46gx8OS~TS^VgaFb!^z*nx8ZHe)p=S0}RHq6#Ml!t^10Gp_&J^vsj8^6OufsklLbr{2?W z)kGQLy^w8v-d-~A#N%b^;-#|J8D~;(#ys#Un2=zab@r#=pi+mXsu{$}0cH|r*!^sF z4Dn`O^{Q9u%@0$iOwsqPJSb(O@5v}H1d~M?>-Ca?<0&+J@FWpEik6Elkjt58on`%K zMCFPInvwRimB_#!V~%WgHmz_8OXKGKLA4dU6)f;u*+a!|MPs*x#W-=d&A=dx^Tm$T zj0TOAhi>SlICQ6e(n?{Cu=rduNB|=FEIZ^#WlyTJ~n z!Az`f4RCI@qcY~~?A!nF4}t6P-KLLEq@JbdXjuTUnh}-Hfj>qmCN5&BJtq#7q|LdVWlX+77+UK4X z-c`K#z$K_;F^ElRDi;KRM~=|prx?*ECmeA>00KjAe%Cwg(S)vm+`yqclXe2jbfb-OoPs!c)+%0RKeO4yw z1VBY5V*=oS0~R9x+jItg0%qVjvrH3taG$~whBXV!3Jq~Gu2WCy&hl-@u}XpQhiV$- zWN0yi-!#^{-gTjT?Q56rwCw;~cd;j#-7de|ekm8sI8m`~O&&i;Pqbhe?{wev|Eo%}OoLnl6?>o$z zJHIU-d1jsb{m0%Yt;vireuDAB-lHYJK?|?{JL;&T2EC1igQ@RhQ2oRcPiQ;Gfg!cT zBQb1q*rKvo;?rogves)z?HbPvT8+aDxxAm6*uD0er<3a(7*2$+MFB4?yl!{E6 zJx}U5dw~-N#F+q@_Mp%5^t$!(;(d3^=7%1Ud8eNV3TdAU{WGTK*+?9KTaemWxaLqn z_LBvu*Tm514hRPeRjyeA==OY=&6td5_%(I^{Vi+OY zcKvLi2PxWoQi>54uzYxyTH@#iCqeJ%91VJ-L8Bw1F9pKxGy%Yu@KTsvm2R32-KoD- zzBRn;Gn_S^!U9uvO*>SpYOtGI?H+DwhpFH+Rho==Xrw(}tz?>7tegTd)g#MyzVjWq z1{L^z`|XE{b&6KVN(4U~{Bt?h``-5_XrN|cMzK#DEmXCN;_P7t)?-9fpi37xGiw0X z-$VcF`G|VNXOhdD@rJ3o>OA=OY-ZI?%*-nP!1wHA4WpCSvjj*lCIaFxR9=%}+Iaso zO8v@HrQD0o#X@;}^%JrMOWCGi;7`MG_T)*}4lobf0nm_Bu!|QjmO57$z;Hm1`W_9C zamt30Ip#^UG^X$7$_INdWyp=;JoVO0pZ~%aWgj%E z+&>qmxRul+*P;D6FVuaOVD=Xc~l65762 ze)heu$hU742{ZA@NMdwQ;X_#Vh2DGtNk$t(|Pw zct+1?v}?cl&2oAEg%@NB+R<0M;xw6wz7qFkKLr_FcipwKNmu+PFyQnlI#%|BS3HdQ9?JzureRp7)v zf41e63s(W`!0G?IwMfrEvQf57hGzee3*I61^UhaIe;IuXt}xI(09GLOOn}k?Jk7+a zk_WzZnLPFL>*X--U)p+4_EU%f-o1mxTLPGqQR`>-*@{y3v)}r*x60e!`A&WB19~~} z?v)>K1VpTBAt}yd|uPAG3VZ$CIE&jym%p<;&+SJiOxvEJMl0eJmxN=sThDT zC^soK-S(}p@ipykUHme?OFc_uE(Z5!tE$BT6kYXWB2m_+ptedk!io9Py$R zXF``GK`&^lJ71fTT!KRHU?!oSMH}u{9<);VrL@A$nRxCwI{*hC@>-&;$UC*-G?dpQ z+)2y5^3OiI1`{M@S-fZwDqSDsDiKRb+r>y!$j@+1OaO%4i4Ns)&N=6_MdM`Gl~-OR+o6ew zgA>~#7Xjl-0z6GRGZXcsjLh4$W3xPTe?wz`+yx(#i(j=ci9JycJo%0Cce8utBmcb2 z;H&SG$G5*u4o+tPsw?HYS1ixsO*-Pu@{jL7yD>>HaW8q*AAC&qp7I&_>@^Q7-nKix zCAYr*L^*9QpJY?$SmP(lQsEef5}+oWH_W`}J?~Zxcx*w7ta8xHc82|mq13P3AJ3-FU|XgW69_;2$Rq7MAGG<@jKA>W2DL#< z>CeE{MdAmy$~pWx=+1H6%G;a^Ypt7T1K=Nop4WKg>%FgIUUlDNrd9{gTPp&p!=k7IiYSCt~ma556trNe9lstn%y`aEXO) zH2c~5ZlUwRO{O}H_c;R2w zm;M9V(ZstaBHffl$b+ypCQ#c1XQbMN?+SP)9)pK&@dAIhv-gAvfL-xYSWvn(d0hJQ zusp4HIHhbUxyNYQ+XI*>q7mJ{+^W{3s2+SU=L&cX8V!M0urREK8s&#S{2`XseP1>I z({So4;n9@v3OqJWe}uvRUf6@z-){{auU%GANs8V;G6IH6Y-LwmjwGx1xuZAasa?Eo;WpeLe%i`13)CmFIg!&U-4epM9|c6dM)!=_7xN+Csh14*I?sjU~Jp5 zO|O38{>ZqMfrI~p4?bAldcg%)hUokLA#=^TuOuKDHZnbscMZJ%HxB#bDaCtXa>GRj z406ygY<&E+W#tGjQW2^dpT-~$<)JC*`-1I!BckEEzk=C&mc^La*1%!>#K1q^Z#N|7 z&)>H#+GJ>ONRu7cU1zq*Bfq>=ZolUt9HTc;w`EM5HeU`s_INpZ(d;hRi1?2qzJS66 znRCEWIrivdWzk+84jt&12>b-^zpZ+}W~PM@1ea`H(F!_#C>J@_nn%|6TI z8pYix+gRL^34rJCx?XHp&uB-;hu@bB{u4@vzwwXd+!Y^@WvdC?CO^69K{@S>hc__B z8b1xr3fDN40Iv&Xn-sU{un#emf&NHE!jtq*Jn=-i{r1~sun7RB6Ix-qvvzox?b@P6 z2kIm|S3*+rKV|Y1&37FgprejHQn%YZv3j+xwxg1Tr~8Lt+ZF8?+nsywy%!VE+hhyQ z5ZJtJi*DoN$@nWDT`4!+aFZ%1mMmQ&FMs)IGHZ_A9FX>pNUOdR`bXNKbGGeP0Q7BK zUhFSuyP2GO5cz9mr~M0tGcJ`&{pf@3K;MPe8ONYF;&Z})=N5G`Rq&uPKq6(XsD!Mu zz75jR?Vm3H3N$v#i+5CmuaWk%RY}A5tRr`Dob_|Pf8_aaFbkk&t1&M?Jis!>tzTI6 zezu*Zgfh&2KF})Ok<$JaGBH~HY-2)MOMko+G<6fxaJpOJ5EdfNlRt8vb#lW&@s;pd#GnuzZCcPN59AS~paotK3R_m|aZutQ@(8l=fXU3kUblh{Yk zN`C(ZkPm8YL~AmsH+9Fvz`&x^6uqq{^2H7g4=;?XllaaU_CKKc=gc$dldrsC=OY?z zUiJ5rYks1u9)fNjKlL*od@HR?n#ZQ_wgJQ%G_Z+GXU}NT>YUnWVXVFP3iZz;xV> zLHu0VXO>8-v;P{jJGr*Y9Y4J@Lt1$5@5(}(U(H|*$5eUM>wim@ec=WLt-0o>vhuvc z<-ounYy31AFI?kL0^FDWzylBB5VTimzhYNsk?l1nw0UBDH-@bSpOLm}yd{W+TlTas z<;~GP^Y@mck3JeF{cq4c`;V<$>FqQ6LukKE(`|0XC;!y+-+S+GbP{?Sln~tZKn2Z; z`|p>ZUVDvBCU64%a{l@t@auj2`lNRu&mC{jYx-L~m%M@DI;fvMXDqB?lr@S@bT z{{dwSCNoONV_;@7Mjr$nwFaDiyn$H$ziHEE9QLDa!+f0Ord1U%&QUV5P{%wcX3f>A9)EL$&t-u}3 z9xXb9r7%-xeH3^EaRP zxU7F+z3#^vT1DB&3J1)ue)X&6!VBMph7py1KOR)N*dt;+k ztLq8~yaA#E6~lPN)-wQrRL9B#ntO1#3^fh9rwzPN`+xGuCqwfvS>;>h9(yny?OO@u zh>Tg$`xM)%Mne<-wRLrrQr$+wSCf|s#is# zv5ut!`l2}dZUW)VIJcCrJa#krpu}7JM7iNzxT9r)=4jDtN9U2NJ|+j9_vv=Q3cvo6 zcgf;Q9+dmH{(~HrQ|7O_`cty_w?E!7{(|dP%fq+-wJc5I-+S4g$T9C~IW*7cU4O~j zWbfxhHhkl)!#E7@%X0RKgV4YJ<8lo4**{kQYgv?~XpRxd<%OH%%?n;>2l?gbhWDP! z|56UWe7!u}_Ybmkh%IDw?XB`ZKlu&czc2FhH-Ak2?Cey_KUL;&qCn63+a`DXVznIK zv<1Mp*!<9sUHeb}0WvQ=!oT{I+_&2Bcx}WhPC6hwE$tacoGb^)4ZdPvot+Pu(Hm?0 zw9G;Q948W>_Wh1K?v&4c?(_2c*S}tlJo1QLmb0~MpOY)DxB`>&Ps+LH{`R2hvdv*z z#Aa(W+cj;mu{AI>yK`pFlB17065z6|TlbuB6#xhQ9O$z@Mw<@}Cl1J0Y@2xGkw^c3 z_Pzta&Z64?Y)kLG5R#ApNr2F#n?Pt%gdiOPC>DwZ(f<=3s66F8LG&r8JOzA+Pp|F_W%9P%=zwj@7}w+clYjQH#w8+{id8bbLRJzIn&PQ zK*q9V%QT+bD@aSb2~&XU(BVV%h&^2;7@NNu*yv&VRT-DwrS&705f|oRMPbwv%cFu4 zHJqTOWUSy@^Uc+I>SD*%+Uy2f;>S9m-dyF0r4M1HA`C<|Q0HTs>M}uBp!UN!@<_MZ zw9T^yfA77wQU<>}L{_a@1>?)BF!<3Ag9+%^<0LAcUPS$j?tSQ{@4mZIjqQyXK1@c! zh+=sqG$!h~ECV=~CHhFv;H-W;t%@$KA2HlkJ-Y(xHuvvuf-&Wv;2n4nx;70jrzhB0 zPN^K9hu*#W$RURuEMNN47ce0N8(z?rYimM%+p1?rIqk+ZCAQI|Zz<^+pD&JS`Qmfq zNJp2CPe=*B&84Sli}e?(Td{mPoW4l)ro-iHj{@yxHOIR-x~9^ZmM=YDTp>B~(Kd=J z^fnY?+BiON(9S;+**M?$i<@-jzaREf*#|E-pLQ~);cysoQ>wW^0aV!GG?dw zA+%BNruY_HZ`SYCS6|hAbi>dXRF#L`ju}1F-Y^QZj(lBg$Qlg*;G4vTsRA8sE?qP^ z(l>@P=xTTe{Ajd?`xyseYk)Q6TCbSV@)xRWCf$52iGE!565}m7GI|?F_Hn-Ze4%l`{Erd&q{H zPs}VsUwNM#o7MS0LvEY*E&154qj4tloATrzuazS$|H8}U`0pPi3%)rm@Ixp0%c;)) z%u8;P|2+3-*?xFmsadmJ=Kl5yIr7V~^M1=L`NP+bkx$uldBF-5NSJY<-22}b$^odC zK(4=D_boZ;vRfkYWpe#}pOGt$7?sJ~CR}RezVClA)A^rzp*;BeugUaDqofjB9Tq=v zm;C$mSuy=ex%QrOB(-D>4|fOfUl~!{Y3J z^}DYpoqr1b?z?LXC3zBKlvB=>CJPJ zd{a(6QnEIsz)l6Xas)R?b{J`DtHtG9D~8DqfcItHPOw~FUa?LlkGBzk&L&Te>>k{r z5MY~f)>&u5KF#g&+u#0H?a>^4^ij!5wf3kizt>MZF;5M31$w+d}U1`Zga`|rxD0xotAZ4@UNiOtLy2YGFPTbbb}piNvYCX}Z~ z03xa)4g#?8dhPYsWXRCLI`Uf^N0uw%(0jezFEn^`VMd>xAQ9kEXPYBz3xkz|`2kJ0 z6$<5XrhComHF|VXL|bPKMvfYe#+O(jPu!bdVSC$9K{Us@^5WB<{;Zt;`SU};v3%Q; zXnWsm#RRv|(ZG>PiyyO=8#3cJJ`eTregR-jDz}jpBMjArVi4|2IZj_71XeF2EA~o7 zqtvcFc;?FZ(2d{AM9sKL-hAjHNxH#3M#;hFUM(wjn%N!SuRiti>>2(Z6XXcwU$xtK8MN=0HUC0%x))zEO(p^U+STuC9L9@e@WHpq@2Xa9+`8sOtbC&m3?K>wA1CLdG98eyt`_3kPK;~ zXzyUqcmX5<*YRUz9FG5t{eG)~^cXTC@zc}2mr0(9?zhV+a_Olx^26WF)xm;i@3}#q zjrRUBRKYjqfHURO2WEBubp|b-#UX-OzUB`ksFZ$#G2pp882nscoqV*kkj^GgE(RXn zvJl|Wvlm?OCAsUayR;L>8SLYZn<*0~PAqvv--qRW8ZutC>|d}wFdRp?9cC9wrE-Htf!uF$#Hh$1Fal)e#I^3wCqh#+r_mNeY(Vhc~`HL4XRztIt zlQjIZ2?TbGwX=){l5yOU$O)94ciLIcm)~c#9?IgBdSn{7FDsv4|-)X$IlYrrQixo2As zBGM5b>SbIJN=yFhvCZKPY^me~4p(o|eYoaBc^o?9iWMtWpZoB`4`4rGJv#e+q~C!4 z(j9{U@2*^l0f5(J#L(fg2|W6Z87tj)+ZlQe>Jar1TLDoXr^0KKrLzI3w0@)omq^ck z`st@-TMYbg>xLTKPSlieA53r3GSfe%R~MmY6H89m&3)o=IsXemU$FbxRy`Y{MS;^o zs-N*mtx~B*pD!&%)*^4IcomYhMM89CqQ=@u*Q<>^1nnt#N0iZ={An4|{^s%(mCnxG z2#nIV#F$D^j0+I6Ve5mVdES02eAo++l`NWj;#p=#IF4TT#&&=W)$M!EYreYF)YgQC z1&M4>S!a%nM_Y~gvM3!#-f19^3WK`XfY-$VnTmL_LA@DIj9-v?(-iV@Zf#_E%x%=X zHC(K-Zr9fE$jwtqUb(zAjPvGy96P`a|N7@&&2;`#8HVn2uH1X!PvyvKLZ|kY`(Bh2 z&)o&K-sZ~@G@EkPdrXF|* zl5c5>q?xp-a@!9+lj;1YsHdHGkxYgBtkuGKOEBAgglIp#t+=Gh5ScAY-&lhIfb1^( zzqRl{Z4A=~GYXn54_IEoAk>;tdo zO^%Th<;X*J6`QL!%8e^tlO)?li*4%KT}F+=Fw3GOS0m!iCQl;)Jz|SOfNc?1{7soM z1p@(p5w1GhXP@&|iBlp0FEms*%pFUk?%$T9G$}QpDmNq9Jf73a5 z9Im#<80Ze|Naj1s6?)uq$=U0-(b46J1$2~!an|k_FQ#z|C2a_BzyBWCUNLF%j#vrM zKcOWJT{=&Q>DXVkmz@p)99WwC>1Gp+d4YP`+V+Foqz{t59m107$}x;WyyEiBw` z*swujFnNn@HAXM3+d^QFV>zVAKizB=?vTiFNj9oqW z(bdNh>&m#Ipf1K&bqjK;@xNF%%0wlox_XmzqXL3uVKyOeD>9Om1fZqAd{ek#4LCDa z%Zr;M0(U;JF@961h&>l}KCR(YY2yfH3m_U_FnsM88&ht|%FQ?f>Iuwi4Pcd`_#fkI z*Wx)e&QVHUjk$-Iq+2@mDmko)jp+NF`WcaH!Yux>#c$&6-X)nWS5C-(bgprLq|m;Y zalc+pOu~gdwODq(p=JY~A)Y5(BkwFJ+?g!QC7m)=wi{ib`RO}4Gt-VU?bB3k!=b&3IB{7rB(3O`cr& zJiO&1!2Rmu#*M?#s&~q~dGoLY{$)Aij5B2L;K8k~H228=@sEF0Yx(4J)>&u4Xz!Tf z`Ju6EK>Jf)gH|$b+HY;UR&F!oXs6k-#xr=JpJ0hQ2J0&@1K+J@ciDczM49%{X)^zr z`Lf{I1-c5rX8u_Lwmqz$#c}oIl$|Ea@yDMa6DCYRIyi%7Bie1!n9;%J^rPBno2W7> z8ugG#U2L~?HG~QfGyt<+-%u6wgtDl|@Ej&OTgg}(6$4UH*I>t6S632Ow(Vv!2sx;i zsjVpzV}SWC5$DmmDMmh*u4@)n@5j^O@tAug3)kd9VbY@$7~tdDOTmcjIN-5R3bfl8jN86 z14lacD({Kvm^R632mQ|UsemrAGZ%fy#Zn?=ZU!XtdDsA>i3cBiuPnU-wc~G0Hi9NK<(KVG`3LfNN zDn41V9)H3Ka?>wv!XEbujI>(!Ig6yE0sS~(z~PWX4=E|%e9Q*JI{%vYKa@TdeKI2h z`3OrC$A)?nj!PW9&1n4ymxyhP*w8>B6#$N!(-CLRDvTYyjW#$fVzSwZ!Xs{jDy|&>m8BB5Hn57V9hF$c&6pZkPN9-5iwuUq%FJaEhP za_6(5i@)gh@5vuWT_wj)j*I=fSK=VY=rU$LEGEx&oh)8hV8Euc$&*KVkJ_>k;B4ru zS+m4u?Em+FZ`3UU?Bun^(a_(bMT=zLefJga_qQVli{aIlHm8_!(zMpDOrA6u+aXWX zL5q2?UBIR9Tw!Ok_|z-R@k9Vx`rmf!w&;1`Uu^G4!#b!@UnAa}SM6-G?;bk&x?&K1 zM1)R1WMgZu^E>LnBnRru0hlVxVE4sR`3Vyz$n*ne$jDKnb=&B~iQ6M?q7DGCm1mu+ zunK@UahPQj2CdiQxI`Yc+ymPrdcvj^lp<_%2rB^EU%PD#IPVWJI2A`RS3)wl#lC9|4wAsI2DFvdXYM-!@}xd*ZqLoUV+c ztZ?;luea@GixcTc33N3W5@cs_(hfVwX{VkdzrXc1WbTf*IK!)4GCv!!oJcLY#s(+z zAo4ME5I zXe&LE;}N3m2R4wwh5FRR6%3;==g_6IO|Z4Mv%@%?91cQ{(R4o zHrk-&J*0J9ZM=1P9^$O{_#D;8`&MBi>9Ia#W_38yCC`Jk!tp*f#H|Ii5x}ZfKb8|0Xv-8}{u#@V94V=Hvsz ziYDm)$zsmsi{&jmF55Rb5CB6^Nf`rVOzKF1&L&SHrhB$J1a{wjcQpq1o8SCKE%mq7 zCcr=c`Oj!v@aQ&SScbM#l`*t&rEJ$IRApR=$!3zXi2? zXSQj_U=1wA({b552Q>u8>Sc|L#y_>B_%VJW3Kq2{B%DS!jTUt(s&~0f00HpxU9@J9tYKmWL(@eIe z@*7QyuWUHjA7(>L<8^=d!|nQ!wNAG&;s=EvvCp6Xc^N-$oJQLKKrtUCW@NvQANUPe zzD3ubohw>I9Wio*j2=A-pWy&qT;YyT_-55v2i(H3V`}u)<6R3&v|(f(%gxxZr5w)~ z-c*Cm|FB`ww_hJ!G98OcQMIpkhwZnQW&iqDVqKXA8|OSUM~*)7DBM#nk;@nrYDyBj z_lZ$NRF#8EJW8e|r!_RiyCc%zy(!g;R>El?CQpZ(k~FUacr&p79D`TQpikTJss=$_Ml{RYd1 ze_SDxXWA(QD4+veTX8WFD~IkO7hV65eDy~w<>f`s$^6IW%DoTWF1Os78SuFC;v?nM z9#6|17wlo#N^o5#|D6AF!snn=w=6nyI)S%*Yj1JHYjOiXP0 zy)MtawobO+KC^-#!z21uFO{c~{Q}*kZ!a5l>umBglH4PUsY>okvbQ3iwbmbxvK9C4D{c0 z(=TQ3efE}V(>{t5hX$#d!gh*nwDQkZQ92x&a_Ezl?D)cFL3!Wqn3#bcfqIrhkR3z0|kr49hJ zS@MfB+&1%H5x-P%o*x4VK>+Rv=KusUs2uf`fnP-&(X5MKGW$;2sRfjmt}52AzA}!` z#&BKSyH}}u*|0Yb4FO$QohiYgJmXg%tS0Byr#;x#ZoI^QgV<6s^cvda4#=UiAab!NR zzH3AC%9RgS;6rhFkN4bjFS+~fdyjWXeUA8y(8XjlOz}S3(u!CPb}A}e zr5P2B&k;`@;4{P{dyJP7w)!WO-|Flgn6by`?PMm(yOU+kUMwrntM6OjOTFr)=M%|h z9JgCAmN$Gm8IM@)&d#1Mui%m2CGS#uX2r}1M-8Afg(BXU$A5JT6VzRD=gV@%u@fwq zT&s83HSu?pr_H$J2wK@=s7%`9VEsG&f^W*t-(M{Mclqb#ylZAF<(+ptCGTSZzzzz? z$=-@!ovaTNd78JXz&%YE_a3T75?^OT_p11YGcXi;UkAwCr-H43M<0Dbj^BQ7CggRm zKlPZHRRI}3RmLV`1)WWvyyAQ0R)oO(`SWG``0d(syfBUFJ@n8+IQ8d4%o=0acPkv* zoO-nNG}5LjR@9HIEow`mzGBZj@xb=4Es%zB`+<} zRT1pm@3q%nvhM-=>9Y9e7Ca|^{p(-l&O7dq7hhZ?!v_zQ{SP<*y=JtlXmfdC$2yt@ zg8mWOTie5*tsfzqO?;Ss6la=krC*up9h4IeFsTb`B{J=OWmMG6){oW}#AR5Sz^0%1 z>d@wBel*R>1}t?l1)QqQK`?Bug< zbgj{km@nUR#Q50%*CQ7-tV;plGuvNrAfT;!HhD)Ep9Bq=Ki1Ajk}J~-rIDz){6^Ch z57LyW( zylKa!XEdP5*^7Y#2kIzwI=v(Oynl3kG1|TBuDj|eIm6t_F$6~g{q_F8%KZ=A&nRsK zStnC!G!j1?K+utM_-XL%s_%bSe)-E^>UqPr-FmBBb4{4}&CO@|JJZ$hAS|W$W8I8r zyVbLDuuMsqUn9SH?Rj5r|K62J)aZUu+3hhx_T&-(bvMW_{<72pIoG%3KXbGxkdz8`#<8NyK!|R*1mz<;!(8`y(IOvrV<9ReXM< zIhfFu9NW`$+p>1;I-HL5mb~-MJK81>$LUPF?7WM71cvaqr<Q zAF}T6^W?oJo{;xnKpG}l8n8T_6GdFU&eH>Ey`L*P)*x*?jM{Mqy`BRB97ur0|5_Xa zxMs;B`S8iP;Pt3%nEwQ>^gkvWo_<2=pPerai(i!L7oNq+fsIl&F!L?$NKEqSTpdw9 zp99nD+Nr#j^i7(hX)c|jw}i&3SPZS@*=nu@^_wjOfl}Q3VtA0Y82UED%zaeq;z(wB z+}mE8to;e%n00(p6KzD-RtzLdhcK1Pe|4A{#;oXpG#hp-hF#X|AGB6$jn*lz@H7&y7lYO`5%nEdxJ3ZkAg7b45Pg2Y;S#H z-+vKh z@EAbMC}1VW@Dao1#$Vhhuf6sP3@@E7Rop`dD0P7ZWvU9emf<;Cv2q0rmi-7y+3T`B zjP2Oo!{?rVUaHX;a|vQHavi%T>F0>-%qD?ZAvOi4KCY;+=g{hroXbng%NWR~Z3Q-5 zt#wwOU0cg1ov)O<(tHzt+QlVV_$oc_&o(ZzAh~7FMC}iK+%0M2GvvJ-4HP)ivjdPbsj}?bGV5H~8(B5$!msB>N*4#IS4r zukV1lAOXwxhKlrGh5>O%9j71TEGNNVJ6eGc+V3E?tjugW>2rYv2%igw8w>cO;A({6 z()_#xW~uJx&ztGdZdd;2Yp(oYE^}hA%@uDT&$+2{%$|AAV%a&;0bEQdU^dYrct-bt zP}uEhwJVv*1GT7f`f@9=RV05#6~cO63+~`Dxhm*KK!11(+{4UQp$y{0^Lh~aGPy?` z1H4;Q$}o@Tlj7Y~{#o16qUX`-WT^^dtq;&3)&5hD;%-L^r@got;de(?zFw!d{XF?w zGA}2z`yta{2O|(fDHwR1k}a%5edaQuF#Gc%H7Os2tMI!HGyT#z^_$1qOkpVHfjleV z8r5U}s}y$Kt1(Jw(z0_mIpgmhMOaLq`=IJD@KARF@K!7phCGPn>I(5~y{A0)vrT=F zNKtjvLQ)w2T44sNIfum1=NKalAy_gy3H$qVgiL3ktj6;FGT=hFW;u<)K-JF2gRa`W zH%I3zZXd>)2oUAB8)KYoq$4Y3$Xd}FO)hWWoM*_dsy{%#g|+o39W6BCj=6++r~yk5 z;d=Z0TK^fW?+_vrHBP9?F{zMVxMaszh1(O*_PYXx5gcWBH1uV|dNzx>+Xbc4W6WI{ z2L@cLN{9T{uxF5b@4Lsk)qxGMWfQ7gKSYNLgviX<9GvT6ey$Azp6yx3P_!>@yP)&& z9C^Q}@H~h%kRf9X z8Dj;ODYfx|nC6QCAUEd=)d~)iF;(F6iMQ?(Yu5z_yVm-B+Rs1v!Edm^PnOd0DbyLp zw6qsoI2Dt6-cUe;tPRHeqylq4$Nmz)`Fo!P1x+I`(G+$P$YV%1deNDpvD`&{d)X#7 z({r9)OkthFMd|w#_^XcnbE}m}rpa@`{(*F_ux^AqA-Qy(SKUI5udUMYYl{5+8DN$2 zBl%4^E9Z)cV_zrBtJGtn5|~FCXqdNs!ItHHWyB6)?%LevHNGF1vUy}-bs-5eW;^;j zWdlOg^X;H*HlNO|rcLN3KsUhWni?=yPCH3b)PPiM_)jc=XPJwQlABWFpY*kn#L9Aw ztLxTW>^Pt^^K07mq*esj1sJnV9oU~pPkTUm^2-k2NuTG}3m5X%O{dNYVjY~11$owS z6gG#gtlVZ=hsKKpPtTPqqiRM9FJMaqWL;CBNDiobbVc;+(Ey$eG=t=_?N8c%S-Lv@ z7Xu&i8FkL*ciUV1M2aUgcPXLY9C^cTvt@%%e`CYV@~THi(4X|R;L`p0s5tx8$>-Kz z$^G})#eWjbi(w+-3G0sPaXM&yt5-r8jo>&328Np8LAqsrRTO7Nibl;PT ziea@7IbDjuKWs@0Ai9k_e|3JgzGz*nS#Ue|V(z32RQU3~t{g~{ApBewOT?$9y~8EI zLCWY1$-wQJe8&!0G%w-BAJxopQ`K@ts_}n+b;Eq?4!dVr!mWR#Gpv+n!p_%1tShlP zC(!fToNt9KyU3B74Q^=G=#g^I!goW899Z|R#&&J=s%AD@o_ApRjY4XW8KL^z1|-H9 zLUmP)J;GsicW8g;A;CFM5Zse#mJxWkZnuL|;Mk`{fjOMJA@hv2zVC~0mJiIx z$EokMNcXTfDKW&TcVoLMk-RoE@iBYTaCi>?6enDDqpr==!fkEoPW^|QN4HiSuqz(0=KQIbsfP$87z1*{thwN}0K8 ztT)m772rRA{R<~r%XuhL$jtzK0O&=V?}xw!4_F>arwd*`O$&%8Bgcs-V@&WxbOcId zRj<`Oi_#ZVMlKuGNQ^H@7sb5SAJGlyy1)D3$6EI^neDSTUSy)nTG!-IY1ev5Y!h<} zeY*KFX=zRS&RMQkCGsW19m^=Q9xz-{3hWm1HNzuo6Q~tbzMMM8lR36F0F)Ydn^~2A z2p@gOuylFZ5&5CD0~>A$(tLLlYLYFDdw4nY^IYsV)a!aq98R)4ha!3CFq+^qQ~~2L zt>Zsal%q!pX3{5TMvOZgZu4DJULV!@GR>k6n$D~y(vHH(!Srk&ZR+{mezs;HvI?m8xIRsf_q+mUg~@n!Y7+&Hb808HKXd#dDmoKBL~B0{xd*rc zs&-)6kG}AX5mCw*ei68)c)Hu>n?{I zLDwWU*tHIge|8HeLq<~b|IQplQs=Q`zeI=ce^^@bE9^qE+A*lV1g6TNctoQ=4YCeh zWf?be06=KJ^f4A+!%h-9r-Gwr-Y8~yia%LwUzzs?;zgg-QK)j6i%4O(IB~}YYpE0l z|M}MCHnaGh;Cp~mhk`ES{kb3j)2dU`J2|DSpsyvCdweN4FMXv5Qj)=6_2T6q&1ky? z&=gt2>^D|~<%ck?Lgd_I_hiH~v@RV7UGl9#9C#SF+NjfC21C4=H9E6|er$l)si|oy z0QOKZ&t4gwLaD8!Lao-%++U-LFhOX+T@Qd`>L^)-SSQR_%p@mNsIkFggNutG2qkaa zS!ule)tevNx8QTB+K5_Fve_(pot|^_ErpUcllHS#D#5fElBEc-{F^Om&_kU3#d`UV zH;4^}orQN|+KaM@rN`@i%ZUSeyW@n$cgXs*LV*@ImG!+on1`)g_Z!)UQ4-Sx8p8C2 zP8HSniqKK1Y32$KZOFRn)s-|OI_-zzMP8%lBc%nTTpAu{FUbJ^C;X?zSzc*SpI`Kr z>Tz2~uRGW!Og$IjmAF2IhJ6z4} zwzR?e!+gCn=S3jv;jD5FsN5M~26wmZB(iQFRDzrc`G9X9e4zIU5ZHdx%bJFXnwdES zyhX|fWcu9;tWMB(9-Xv}BE8X&QmziT>^i}l@a5DY?+(=lNY4ma_$i6gfKJ14nZurH z=-{W@d2#{)CG9!jN|x4TZRaJwAix_W%G|`fEN2fCsQv7&#fW zOWCwYdi)6v&9?+;wJ=4{bO4I!O+;}>l(YXD zAaSGcCzf?siorCc4EEr+kSpv7mnH5=_ae)Jb!l$N@1>u`vj@2)qs4|6SHg?MJm*;V zeXfB97=7SD1eYHPn5a2^W#RK?5w_0b4vO<+1q9F%d6#veiM<8+W+FPB}N zcO%WKsktSz6Bk^juqPY_vKXA({F5|S&a3Z4EVQlek~vxdUGt;Dn7X_ z;0m!BNydQ&16~hthtjL zSZiH49&qO|I#cEZSke#%0F_<|b4R;}lUbJ`-dJp=XDPqt%= zfMw|(tzXezA`Z@3xicn!tbrtl!YH$K1-^{V`LyAg)}Pt}$mD*zuD>XIu(8{4U4-gs zFL$L$l3srIl5&HeqRngxP}5xvDhXpJ2d{0roR*hP;1Lz-Ails5$*2q$jUA0Csn;nH z&pv44{x-%ZaO2%> zy>g>Qa2>6aKbhympFF&*uY_vOS$+~KZ&?r4B}McYrF_w<2~OV9=I%nRf<;N2KR!S@ z{b_LMpjEkTL{r<-qvnG|Ot;MVYt*CboGqZtU$5aSVmN=cVEDn^BQs1es_>&|P0zF4 z&&eK8a7ul@XV(NO`KugGXO|NH3OL^K-@_cWmCo1%dk3Lh^|QYd%FTj1)xhkW*SAy4 zr;jnWZc#)Mdu9?$Ha?~stRMb#J<12pg<6+gc@^U5e;SV2-S zGJL90XuA_BdC7Dge`rk%kWf?u#&VYxoI|&V@GDBn50)hwfjZr9GsQdf13&b=Ps;;M zC}1jy6<|Rr%MXx)nCSy&Bl6z69<>M0{vKfCQ?q`^pf$VgneE65Hc0)bA0rYnOlYtD z?Dhdz1Pr#{F~b*SN&(qO4fzB4b7p6GJKVQ_44gFmcx|^uTGZtuPkq}2by+l&xSt4q z6%kyPb*a1_GLp_d+awU4Qg`Svc&>7JhA$9dte@jZpGn1yaDecH0)enGf-CXwQn^E% zxzCb3#N9$lojv$obhmmg4S0DP{UB$b?x^pJv%RU8yB(8Dfag2GnHqt?XATx@c!kp` z#flr~6N7Yz>E?+$?5`e`gY{IAHm${IaL zCcyT{&9NUk6N#9=BF&>BmE^eYh*Z41?@L{H?!#rb<-z0lqkRcpxkG4QSm3GNWG$$n zq9Wh7RRL<-@0Qt7f5G=YgIS;E%O2dGW~G*G$(Iqe$ArMw{qaAa3CP~htwku^j%L!< z8;{CZ8XVRc0Yoq{v}T%w#I>9Zj~n*2_HD=cG}*Bg1uh#GI6MC?z2Wf)2L^-wDskrtC|=e43(W$AlZE#->_`9 zk3(+7aLdqh++6kC_$p;^Gc&4BG(u=UBEe&2XpNebKeWfukhajVeSanG@mXQ*O0Y6t z%O?m0x$izGv}_tjUojcJ7RXW)u2NS%k0mN5DNVb`uMN|!%LHBxlm6N!WV_}9|l;geq34EJ81Q!CU&`2Z_CS~FKFBf3H>yJnP zL{dkDyv=bRf}^=C=Xc*}!_GAFRJa!zQ(bi%W?R|g6-M??=C87H#NHb+XL14VR*I`q zfXThs06q&%+%t7t>9vb&jqw?l_jLt9Smw{4r@+VI@T0A`*6L#Mg|xNG$igAuG5@YhVj$qtED4 z{DbQ^Zo?rorXwM%2uu01GQ6$$rSGipxpe$p14(_=Zytt6}8 z9_A;oc0YpSg@_NLoNGrb2-fWYUH{bDAa>@ZNe2-I0}JA8=a_9sKOW~h!kM-0Pz;no zJ)sYeAG@f55(0nXxBPCW8+d3aP()r`a`BJO`K)zgJV1Cf7M0Uvr!1~Nx@6zr?wD;? z>0+8Uz3(ZHCDJTSfkt&DSa+13dX)t+D%_{iHu#z%6iVFlGikv>bA@?quD z2Xa9?zXGJw`yaQDKW!e%NqsXzV9<34-26^z8~!~c6yME`;XGzB%K+Oz44ki=R5fkh zB5au(>l|;6M#Y_AFm%+0#@kl1z(i7?=fyD81 z8n;Tqc!Y-BpE zt|`GpMBM*8lM7jl&ENon!u{!zmEqQD%1?Pv6n2dm1Nz!9g5=NQMfVkE&dHnxY?wu6 z@6Y|r!}JVODb+jRaZ|bi z$qtXD0iID=Qy35*WN{cnUOyI-Ag=4dxFNP^$F5W3mI;>%c0pMu+C>o`Faib6jyB_i z0dp7L9n}PE60Ww@<>h_{LeH&oq|5}B%RecC^pe8Ts!Ys_uLt-gQiA>pvZZ?E%)J21 ziPauY)k%(~parZIoJ9VwlskXTRTL90mQ=*(;l8nGLc~pQ4}^3bznEgr#PZ8yC<+~L z*?wfR-R?%Z8XN|ycUJjK5IFd5;HKZ|?>9M`cm8nHw{eEdFJAtfc%e=+t;aZ$neV-D z@hw78EJh-ZFA?EM?OAnC(yt`|>hfz3v?7$?`nI-~)_9xiz6Gc}v7m`oSx@amZk0o; zkVCeKM2dWNn^s6kB1fT}o*DMNp>X%dT~WcWq3E6OxxT09Q}E&82AU$`&}&Jk^o1jL z>gpPLNG@}9WZI&srhx%MG`bU=`%Cmx6#8?5JMf>8rl3e+z$WUCdaJ$|(@T>aQlnnn zg-9S;Tj7+lLwjcyDrip14rCg?1*eUK*6t0QOMQpN?@iSIO#ddMZ7H6x1;_Vk zq_D>5Hz|y}nbt5`z)dMGR5{6jsXXE6$QvrFZ$X86-;;0Y&^vB9p{kJ zGa^j<;eq2RXA5%fhm0jf^@GE!D=W#qyw+(330nFslKW|Dlu1^p2pPhW#L2ywpF!Pn z&dc zdXo^OH`-0a6Q3#<&-hTIN;E@IM$0zZO{qQx{XWzZ0Zd{gz&JdD<1>T|hTtHc663AW z4`Lo%TkMqXK{E@F$k2*{aQpY;9kiDCbvGZksN3+u+2pucag0c>dGn zazm}r=WyBMoG%I%NWJj(O(-!Yw3_S56ZMYfBo^%Uf`Vw71e(LV2TUbiql}@}FliP= zwjiY3AVnMWXY?n|BITmnFiwO8;?QZb z5AUC8)!*P|)!d$wwjH{Eb;&PbhHgWHi+9TvTd#_v?u%4naxy=b`+vfDpgjE|7#tn1 zPkF2{JHo~1Pk(Bk&55mPWz{Az+d`ezBs=H@RC;UU^l4$I-b@!Lic4-0G>50BA3S90 z4b!wGWL!1dj4*aKC8T&%KW}tP zLXnV@rXfPxQJh06OfqRg;halp(-Fl$S;&%DVcL9CXCDp*P_kYj&x-F91xyq1ratpc zYz3wEedSqNBzUFj2q$6rIN(Ok3saGkwoK{z$@lkg-hpc(1}FHP&3C)T%|XCn73+7Z zp6|dx+QR1mUagAaNI}V&o_Bn6CLK2xYf$U3%FYakioU1>v2F>Z7QJljvPKFP5?lC5 zIe)UfBM9V`F^qsGa5CQMdl1D7C?Dzr-+V#(!gxf6 z{E^)z7ZVhY`Rrgp7oB8LYH>%2jcZw_qZF#qXJR_*x^D@om9ZksV?4oaLPOeka9{Zg zmO~Ay2LHSb0?bfX@Amgk>52@Ng~e!}AZchNJ_>vFf+i-YxJaLUnHeVs*`BsWL^5Cf+{PDl`zS*tsbU|B2Jg<9 zyl-GA5WE-lFxFRInd!|dORm9#UR#BGYMwA-VyRhQ7}+b6c_`(N+guY8F-}RmW4)vp ztBBx%rQ}aa`;+4QxrW0T@*;$fs`=c)GD}LHOzEV;Zv)qmQ>a{06ltcfbHmg!1~z>} zmi!H}7{Dr0X~O0u2P~)$K1fBMO+@RXfz3RZ5@=LKSkuQjfU(hzJ}xYTji3~l`0^X!GBb3=aXA+-EEH^j|6`qY|lb4Bdj!Y>d_V=xC zkV!KA-+hpiB2d0Wi4+3O@g8IstN5AnL&9|)nMKMIgAgmFi$r1zv5ha4IqSz+(Zbtb z>PneI^Xr@UAqG>xa`@-nhU_9DkTh+>&82@@pX!6>Si3?IflHe(N|U)s5PC2=#zIh3 zXxrFN!&DgF6(Qt=3}Kk~;P={O)I$X8DS-BE&4)y3KIUmK2?Df6OWv_T!cWhfsz~G_ zJqPHj{y)Q-mD|gXaoOr3YS2k#5R1_P{w2R^Iwv;*g;~!o+chWZ!pZSahq`!SxG?k< z7SVmHVwpmJg5{b2QfZa->Dz`(c&i*jkH(&Z2SsdOs>1k-E44o>Ew^@b1cce02wA0- zy*r@@2@L2S4@hU4;hbg88ra|HZ{IaHHxzq2xCW4d(fP?QqMDjk?5S-`G`a=^{M;*= z=AkAxktPMF;m8ZL&G2Jt`ZPJm*31264DIy*oq#W*x-E>7KW_s)9@@6C#4;IN-1S8G zjcTZtKVHf@%#x`c)|wN^a*Vwm-#8UkcYSR>JmQ<=Cm5i9R(;+%OQcV5-V+5!_m#Bw zt~f7Lc3UO(w$r}_v`<=9@H9$yRdnJn+yVviMK@X7;ilN@v&V^eqA^e40;!IAF{ zbn)fBxoRk|fvLpzgU@7h-ks6@L|HTLNFb&J+UYDXjPfre^oKCZiA3Lv=W=J{<+kI0 zRW=T#(&#F!e!5LtBN4n!TLkX;ffZP`#-gfNyBB)QClHD}Zq>r5URM`+sJ|FQB#;V3 z%Iv`=k`zbG(1^swuAcW}%2K4Y*l-FDD3#!6m&b6dbZF;}g)z(3D{x0yMC04uh&!-- zg5{T}VKPRH9kdfxMTiP zlcn0t0&7yPYKsw*9f5?HP4zj*Z3kg|uN;cV)mmt&9M6=&So$){Do)#=-h^Y*;8Xug zzYTM=JpInDD7a7+pZ~KwzB#%ntB5PglS2+Pewu`LQhN3a8r;>;)C8(XfdULf)w?TD z)Y>b)>5m`V)_*!@UI^l-pqBY_F9442rW%$K>Nl#E&R8=-NoDKB1ov@@`VfbTb}{g| zKUj>f?&{;+q866*3g$hkSkGH+2}W+ir+Shk5yZ_krEkSJ;7kBA6}!wDv^9th$X z=Xj{7uuNr($=LU-0`XaPNFG$(%A7%^>rKgWi1}uVY4?;6_3iiPQ55s%4)FE~C61;Rq4Q~@UV{L4N*zXifJ{K#Z@r7gn;tg~p;H(i$ z;bRfi76~U}pYR-Q?-;li_K+8H^kAjt!h<2FtG_-L&dIi4(SD86dY_WcKym+m6!n0( zfS=A#@$rva>fh*}I5>zqd!xY4wuTfPW;KD`N7D;Vvl(H|MnbQMJz5k~ttID(Zm9;l z7e*DrkkJckLVWw8zg5NCkb4^zEV|R<&m2xhC2@H(>e!RVOjQxlnS|bG7G?4IPCetW zd!^{HS0rltA57-(x859W>D!^$rpww&xKv7f3h=uVCQokYi!s zw(RptBrj9-lckiM-=MyW4oE!P#-%YLWaiRGjRto1mFBwL%xk=|=?aV~3?_SF^I7df zaZD~Zcmqki4rKpq%vUkI+asHm8m*V-*B1^>H9X?NmhD;-Ct-6upK8;j3V5!m$_%8q zKNc;%{3sZLYhFPxYU@347V&Xlm1(QYkEh%&-sv`-VHbE43r1Mb4VWlWBMZ52^)g#3 z&!b!lT}iF1taNoK#Ah^f{AW193vm%D%9f1Fgc8oN)|`f97sfSRf2;sHwN?|ba8?s2 zkTmMbQdD`&m(uTvY^eoSQNd@tKMQ08<;s4W^F2|(XlL>Zx~N4XxMmcWd+EC>FBLhA z4?v8Ful<7|CL>pZ@}v%Z8vA9-dZtyTdQmk8as zKN0V8u4nCE@Ht0qIAnl&fcVsGnEh)PQ>?>b+&&Qjx``x0ri+1CJFVmpIQTUFX$`gA z>^2n=`_P^^fQI4PcAbXK>@)hKrr>!GEP%L*T&&pIsAP_J0ZNQ{EooL&s3mtUcS89JhC|L~JUXg|28m)N<^h6OhUuk&_cZCMIo#qEr!m&X;Tt8a{AWfRCbubVH4 zd;cV5o$m^q0{o#LfRmJ%a!(Q3)SYZ^D8jt#twD3 zD&69pj(;`9#k~z@u!;c7MD&QdCdY0#A@T6s!pF3vWqs6jn<=1;5`_`!&8T9doRJ!* z+G~HPYV(}P62c0?_d^)-sb{hps^VR+*%R$Nma%qULr|$*`(&T_gj&X4rMn9c$pBYR z#%{qF<(2-KAon`qh7rVn5&0Qs{|$-bbzITRCy^|*pDd@k!^9|kRu%Op>4=XCU}vOC zPo$bsnK=`jN*nObS(0fd(llJk}^Olj)Y!5;~mkOFCksH+gF|K%Rj=~zjyjh zvbumb{-@Q25_TAv6Fb+Lu4)*h@cLYdPS704nY14ncToTqiG*O>+;v&PqDNC6vE1~F zJhNK!a#uOYIz8Ih<%lK+@=|&DE5&1+vLm`LkM zsIOwUh$bj1w!vN2Sq^19QCTA*!)XCt=Lf+mo-`uK*qeWR;<+6+s0JfYN;w-$b|G{- zopSdk0sp!%mi-~nHjtA|7p8=%ye)-%@s1^D(l7`fkgExg3Q&gS{`ZtP zi@J9X6A;$UQHGx#P6CU#^?gP_7#GIiDjNdZ*Qi#RHOpEuzxa_(bZFyiDFuRJSy#(1 zL43m}*p}CRUXPeQkApfChxzE^UBL*X_j+pNN~?>Z#zg!BC)KfW94AxLu>|3~?uVLm zH+$Ru=b6^C$u&5FNh4pqMqJukX?Dj5tmfD47fes}3Db0v*aarSB}~vdi@rsYg~7l* zdE0?YlKYcUH)h7;(XdxZl+iMVm9c-jwHB0mJYn~JB`1C7;ta$022e-#h5M}qTM0u9 z>V&0f?%)PR1<*j<=qP(Ophtd8Bv>G&kcydEbOoM2!d|ZB!zqixp3I+!Lt2re=jshm z5AJx0G|v=LMHjxd?}_DpCH@`L@by(@zHk;D#-;)^PVdxt$$*&WFLfyV9Ob}c>Wlx$ ztnKc29&(nf{-0NQ&;<F?UmpF^_`vgX-pY&9dt?K zfq^Jz-^HLwgBMXizH!0%W%U+Xyy9w2zYtt zw-_lDjYhdx7S}=Oa!i{3*xI#T{3~5lsWGD3vuN42!U@?J2DxcD{DvECaD;~Nvl&`b zFyX#9@n^Y^>>BLP1loW^x(=vbG7Pheuc8uGKz+o;i%qg9`n(-p0PrV}zM6VoGeN zbo?@!5){_#5<#vhN*Iz@YK7)IGL{ZucP4%}Cu!lOZG)yc_p_R z`pCFF>qGl*-FMp_jAEjYsUG_5vGKlsyn?}UABd+H2HiAl=%BJ$Va*;cBZ&nlP1&Oq zpI`&)(CJ&_StiVrzIynjBXU3QTEoEXw6!K6t&y94UyvzP%SCW8+BO4?W%6 zU4FlW@4{ivbu=rN9RXMy@T&<1vop8tlU>`FXBcpgV4@jqiqnX;#FoDF>$77wlzkCX zdy0ke)9x~JW>w&=>~Z35lqQ0sM@29&&LKHq> zHs~y_fy*E3SX9+F?4uf3#HAvUmT(M92%sf-k0n1#3NEBc7q`ZXMMRb3Ti@`+!@E~G zQE1#**?g9uV`bz%5EI`?mWx4OAyrgsA`2rx#ERyT;ycOx!zb>~t>v6(cc~~=GU0xj z=5@S?9+0F#+A2py+y@5+A|1r{t+A~COfc$v#Tj{|2U`PYHWc|q#DwssF?3qGurLpj zVJ9j?<{Mr~EUJZW7QQPIq|t^dv?+e7!ZraR@1RY@grtw#fwjIO70Q&ZKL^KNDkMHP@)svSAaOs1Q z4<96V7}y;#XGmIpvae9StXQ}>a1`mQJF}{Nh-A-h2eV0m2@So{g`2hccmbS`rtqs4 zL6k7}j6a~L2J+9OBNW;QoXCfqom(0+MN8Qh35y!tC`r)2IjqOxQ<{I1JW0EDSwRUy zqcjs|A*I<(aO~>Hxw}fG+8b`+OiZTErnS-(snPGqBeuKjHN*yA%> z#NH?2n$EsE_7Z1J4IGc7CderJsyA1A@ihn)tckXRxKF@af6v~+lmo}wIb&Fz>YmVF zVeEtlrkjQqvr$K5BmXLFbi$k{cV0gV$QBO?f5LgY$(5lzme9oq1#ftVrwt=pN!gGN zOKta%(U|Zl9$D)O1_ozAhKiF)=%APiQ?eHRjB3RUaEw1KBEcwm968!xZZJTJ$<0Ry zY7xo;SFGIc3*O1A# z;1lrA4`V%z=y)%Aptpi$g_&S9+CX09I!ctvOCmu;8lD22E-=2qxB!pcf99?qsu^^p zcD715XaDOgj@mW-nv)-@O3czmvkp7j?ph%@rreRa_lfwvB~|M=X+>7X-i^n0j5L^& z2)WX93)Uc&#c*7>4(KbRlUW*WF*?06I=}<`=}J-D=CBF{XACwGIyN#;l*=D4*!4^t0$PKYw66II6eRrTC&iJ)k!M)E066T+Rk8}fWN zLv5L|>f0ys$*neE^R6~v$^8){pJMAPW|%swCAF43pc1!K7h1#CCl?ka?VWSh8lhLc z9BgX%N|7;KvWlEmNK(j#MGA{`x{n;YM`>Ol@4_j3%_pPe5hXAF%7^f<2-2bvNL5E2 zZ@yTNanFp0|-&~vW>#l{>`d-TKNbJn) zPvjcP`x-;V6pllSZPe{?BQd@><4#0ZH6(@i(4vequF@P3wL#Fk!Hi|9bb)B{`}E-Ws0 zYdf{W^z_e%{nO!~&E~*zps!uits;AA@!R)xX^H2`i&NpXB8h#fOM3)=nm5#uqrd-$ zu=RkWvRCFwL-%g;Jc1l{yjUTla%|`@`cGbPLoMTy6IV0APfl9Olt%8ZQv6SKL-f}Z z(O1V@68!q$DumWIlMbhXGgaD|^C7&8jw_RAd$HdBIpsY2%s^MGiYoRoRejutna#sx z-W1L3^JdihiXddLj&ELe!56u$Y2YVCh-qv!I&73y&92S?Y14J1%K7*lG1hP<c%vLcOvK|kTK3?h)7=x-TY4K!Fv}%_+{z5D&Dz!p{K$0U6Drr&Z}`55 zS$!5oPi=*jaH8zqYS^~`lVS%FEcfaM7J2ghWpp4=?fgo6N)a5%J@CTux zel0U_Q>~+AV)5&3DY?vx=7ALYv_`Sc^Vm$oliLzfPcHBJCAp-+|5tB#1Rs?ZL`{?J zkLQAclY$*X@f0#sXvkzicVQpRa{iT7G>qjDP0mf{Sj$s$ih4zcw+8Ay~2CrA}T+0~WTYJC^d}CHX_ESx?@A*X&q&}Z2eg>Wn zpQm4rf89kYRHd_JY7vR`I_#&tiO4qb0v4wRl*oKjpwv&Al1e62Mn=0mIqQEPzK zFgBitYeiuX#g3ja=E+{RA*r%$9q!L~^~yM}^wGOI7O+wb8+sf7VE>T^D9s*AsF%>of3a*hyRs1{oCdv2*EwQDQIaL{Xg4(W7>b%p3LI1U|HWW zw*#UCNez1*w|Eh6H(&z=OlIG?+B*I#5%!e@htAVnxux`hP6UJQsr8BW49vNu|L8}|Czk!M1knHf zsCD6#Ae+^HME-O7UwQU_CX4>#vl4x{GY|RS>i_%M z4llgMpunGBex==?t;%a^rfFzt$^Gi_w*U;e^#wz^r3e~`Lm7GPLO+3+ge~R@#Mr%W4ln>tgq5wo0`ym^^-C2V ziDL0SeRo6>YWF1!) z3ZK9q3Rx7m#(vjUqrQL6*V#c6J@{O9saN>Bzs8a%fl-w4iNi6t&M?JYGXJvq$sjDL zg9=LozkQ#~NGHrd;W=u(Gpn)Hd%g`v9LD#TuOV_Dm(E}n=9wA5-kB#16yW6KGzhit zY!i9EP5=zR(^^~~#(tD!7%}*s*GHzNrHwBti!f&x0Az8dGkWf*z4zmI4wM6*Q;6KA zKKWFa6^vaXf!F*v{?*$Ht?$u&(Xx4PkfQ9A`mh^Gntrla$`kGU8%{6=FpRA|#?y0+ z%p5&CA@s0Sl=}`MI&hP{{s+nnXxWqpF8|T>@n46@F+W@Zstb9sVTcIJebt~b(%zQ2{rg(6LD6iSeB|`6Z}$Ak>hD{e5hrxUSz*Kbtk9SZrq~1@6tKT2*zc+#f&g%xl0%jyWKqDSXUatqVBJ)bUk}d^( zhA_eQHSJQKYo@T|GmfqgKff4npCjV3OcDOdOFDlIJk$Rr$N#|;1Bqq8H?T}@{Iao{ zyeIOfJ^@}E{=chl|2%bqoYyNC>d zpz!X1J-z(;*yfzq%8`SNrp@y*8%Hytqh_C&sI-<3;jdKr@zPPW7Y zhnRSZ`Fi7BE4DlH6?*U})a*0v$x*GVF!KBwzmQ?lYzdHDL`u_9}eeZ0Q%bOlu!-_nL8R4%N67jp+Y&VG~ zU%1F&%`D4hsvqoO_;rbb(OnK|tMzd}ps9 z)XSf7GByH*MZ_6r*;|!b)e{UoTvG7k_A@zrx_&p%UK&)&@naqzZ@)f%QU$c%k^D=_%iH!xpflDouT&=*=qw=!eEF6Kr=skPnRmQ4NpF`Mg}Ta^=zT z6%*GNhQGV+kBsYD=TZm0-{#*Rk8mogzaQlX_LLu3Eeb#GK<*mLw`Ouq&cXk4FaB3N zSnxLpRYCh!OdVAbU=-j1xdU|@}S;4mnBF$!Mf7tfLELcYe26*OC&K8|# z<_CVf^nO%^g2R&wp4V|O=Wl-b<)32X8Mb~h&E+5y0)hsi`6RBbt6QFX4T4f)8PEQc z6ZrmgGf4W*_M01i!4NP`4Omp<84rO*Ozyt?>x{N%davJrtbw*hSt5ZwS6+fFY0fjM zD<$$76NX=Yre&l)mJoaY1{tp`R;veS_)ha?M&NhZR)(RcZn9RDyAuFEp$K@(GUh1glY1-KimLq@IZvl^4VA(+P z3gqtDJCcf21saoF7G!C;gjT}?FZrwij$uX=wYau>B{9A*7d{2Xc zd=fgD(vmk2*jUfYIqID+Vhq9;1s7Uu#Uc^(|TPUDu1W33;pRVla=vc4&Z(?q} z;J7byXP?At08WJEP z@VjYG=DyGG```D^{jt{w;q$qs|mS=(WWUXXGB0v$L)viH+^qju)jr zroIsV+7%a&5*OKZD&;irv9`i>^;>Y4wyplP!s`WTboKdAXjAq4Q}t$(;coFSoi#S4 zasNxQ&uT3^Rp^L>e7&V;} zPnLgFA8$KH|K#@X|Lb2T36|t#+&bF5?lduPx&C9QLqy;vKX778d}uohdc^Af;nB_; z1OV{3+df!bYUl5xxlURzF`CE16fWQT5x)(1pr`j z#fqpVTB;_QhB&l%VA2r*|yZpNknD0#f?*LBOIwe10Oj=C&pigN^@6Rflc-)>ay{d!Z= z+W!gLtG{VV4*2l1ka{_I4&ia}VJj5B>Z)W)=CSMC!_-Ne(9>r#SGw*lNt-;?2|M%h z5xuzOmyd1Sg#uQB^5}B}sc zl78+hjvY3Wu9p>VTm0yV$(t0*uL`a{fd#;fx{Vz9zor>n45;|vYhidLE!VICrvF|% z83qFN!OX4OyR;>VV%#`*cFG~o^rqC8XGWaTlqdx15WD@xX4{2UuUog51eYfCLwvEa zjxR1(%z7azxiWV98->+|{O7+%+yD5VuMjJXP7wfH{4_Rct^`=P=;u8{&sWcneX)9v zFgC<${%oRi2r)b6h8Y}2fw_(W5GHuu2eegR=-~UnIdlo&Nzc1+K7aj>2q2sfG?bH$ zp^aY%%Cfipz*HBHef?{(eMG`|LlGUyS+p+eBk}2n3xC*#5qm#preeJ#)7r0ZT;8p) z9Q_E6oDYum9)$?PQdBK}9iA)0YezQfvuTaeY_DHeVxIWwUtGgQR-Q8Y*7tvV?jz^0 z@)FG9Z$96FJ8?{fAs7l%MzN*W8poKTJ4eP9yfkec{hU3Llij)M(DT*YpFdoBc~dE8 zVjxMH6^w(YYI>?>S;edkzJKz-@`dw>Kg7E1TpnQkUe@~W%G&-`mRkLFNaSA@_F_2# z+4gXW>x27z@WkRAj~|e8y^=;Aq3Z_{wu$=dF^J%M$IdRA_lN7fb4A?Jp6p zy2|SNp)gZVDP z80B00Q*7w2E4*q1i+SK{|Jf6dbJDK6ef8~{MWemj=RUN6n9o+-JBI(9!iXOF9ns3|7jmd(^@!R>=bJd7*`GXy z9qo%WieD5__;n=|aiUS2dQDBL<1riM-g2nHIxj%%&%47v$a@30{^-8dS+Ofh7?ha|3u?c%! z3u-mVgH0tI{10~U+_>o}VbZ@bDfgS`Pu^rt{MHQU?XAWM_0PRQ6FFuTO#39E)Ick3 zBwR6F_t#%fC8XR*^B&Qwqn!J^lULbgNmj=Pp>h`n2?eEotWsmoqXl{j<{KEds+9 zrtfK$#>8pAtrG^+(2}|+hu}qVgsuVsJIYIO;d*>WC_|Z%U>BPezzIdz*SV9kX#u?X zLa(!PHlgHsT!n^GBZS|HG!tuOyBUI#%Mqpm7so+SKb)QwVQBZT8jpXy7B;@ta6z1O zC1jiLsMI$`M?n}UjsB(={_r0LbR3DvT+C7@CYT2iQyFbjy`Nl!!SW1m%)M0;be@6k zWnCLzoAe)Z2tk2SrcGQRBCIt|2w#^gUghTk*nAiT7W zm)};m&<6k1`;go#NN1>Or9sW2!PJ#q>~+Iv`MX zii&#kk^tRdX29HH7q8y_x3!BZ(if&DI}9owCRKAf(V~Ewl+WLc*O7@R^>Ch-CTW3> zHpq(;3MZ4Zdb9_94E5LDJcb$CLr!YJb^T(AOgo5n5(%iYu0XOU_8EA_exB0tiqzwU zWmV}gmvSVNY{?te%Uuv5VUQrhY?L}rs1j6u4!GksrP+>-y*8M_oWwcJ5simy{x| zu+HWfKu7Qb#ROvcV1Mk`;Mjyejt=m<*nH}n{tR%O-Wk@}rRK0_L<6o}vDM~pFWa8p zbZTz2RloWe!jX;gxhDcY3bPjiGeptex=+r9N5~uswqr;$DGWkGdg=&!g0W>{lz)p0 zVPC$r3LOIxvujh8wpJYGcbOahYfoU;LcGUcDH+O}}vdTdS;>Yw9T@X6|9bB?7KMqjcl>GxM@nwKv4=Xe&c*xod+$;zYe(+_8U zFdbBG$^RVB>aW0?>9b;L*L^zUir~JsR`5Chyv;Gon{)b)@A=~Wtt|rt2A%hh@%(Gh ze+~Li*ZKeT&}Zl72bHaJSp6D+9fFRjV_|^iI*c=gT3ij%If1%IN zM*lt^Hska&Z=>4K7q5$%3YhU#qZ~lN z#tq)jKdjjH3vNOGlB73}{dDB|M7q?zv7TjAHUfFRuQAeFy3!yJ7k{yA#tPoQ>DZiS ze-z2Rg1x6$mcW_XdLgBC6a?CBl3yCe>lRVH`6Q8ehbg0TDS=R z#F(W1R^#7{XsaJxj(M=1t_5Ep@0vej^#`s6Ba8~=o#0PgH%~ONCX}pmP3JzlC^$x6 zZsaYs9^c~W@$TbI=;grpg=3?aDJ=wz&X%RJHCP`Dxw_?-rW+qNU$A1Mw!*J1n)&k~ z;Now}Bi)cwR5#zN#!LPwgTZ0-8I07~s#TeSn~7Ha%w*KAX*coM0RmQMgSGXWO;c>m z*>Nx2lGjI_R@|BXz})>#;EK(^$vwkTCJN3q?OXi%DE-64Ki#GST>lXepXxPTaOs0V z){-dz#3lwdr2MsEL~PR5Bc%Do!|NBM0R7TDYHj)x)?l`~WS&Hr75f^#5KJ3zd-`_2 zrg_`v?>gDIeM*NmO9@js0~nJG6XO`&{CGAQXv~Q@$^Fstt+ z;slP_o`VOv5uoPwzt--1Oqptvd9vw3qSup)?`T>b?piwdj zklZL>@TTG^m`-l$-y*B>E0KmUhe8qnLc6O)4%(F(`$|)J<_(UR1Ll`Grk7rFg0`-d zk*vx>HuI*R7&=n>tKeuM$3;gj<)%yjhj}LXsRNWl5j`cS*k0>C%Mcsx+1xE zBq0kbAsdC{9&Temj;6Wsi($NJ7-76?xM1-5-sVP9gQ+*i*gJrj_?Ymc&N8KasbYDm zcr>4vA~Q|JW+y#M15)?sC;A%*{S70zmjN$n z`@H6=Dm#&m)RD~^mY6X$1d$+0d1-ksp1gO6XKa8B8n)ICYT>Pf32XC@x|=qPlja0f zQhKUbT~d!2kxUg5ur>(I#rX>Incp$rNW#`FOq_IQW482(m5Wqar}=BCeUmlKB)rhsV3_Yc}C|Yu)_uTeQ#=8Zc5vz z&d8M18`ctDU@?flZj>_Ye>X;E`mYe&{3BGLhj#swg*XIXp(w^Ila*U1OM{Cve z@f+lR^M~Jd*%W@tsHbxtCWgv+pn5ZwW?^h*TTSnki@mJLKy#F?3^rM2NOa#R@i)Km zALFUGtSPRcml>;a=BqUbv&OJ5r*z^{X|JwDFGZ_sRxWldny`?P&Np5WRdS%3kD2U0 zf=!%*HNXfZYuU|nlI$$MgNYbZz;zE&z1;VN@A%x^VX$~^U~Dt{TYBNc_db-~g!{19 z%9Ct}Ck7fsX(EgW_QF@XlGlJWBBojpbi-1@p#KOAY6>K10(GjS1?FVJ*qBlwnaGkf zn7!0?i!tZS!(`L&z?hN2O0+5cTEZNfN;Hxrl#Ij$DZLj`d(*x%X}!dMIRcg@A|#u^ zkqMK(adW2vfWU4nUERDR$@@M_OCb-)doZd?ld47OQ_ecai8+L0HiYwwIg$xm0#aw0 z-NYx-`f?j^G{Z+Czj#(A;=MdkthmJ%4NAw_6-%rK z9o1VM>&(u0-!tqv*p!!uDWZ?>agtB?oad~mT=SFjI%QHuN^l}#65<# zb^f?}+IL>=A6pnW$?I$Jjm03cz<#_v7JfT*cxGTvu>^Lr!$RyY8jqKhv`@DCe#MzT z*VG2WjBaf9NqNQvWzvNvVwq_@p|b&EsD+5k)*mn~OinDEx&W3aDPQ&nR28{cqV|zs zs(HM*7p(^y?^w4KKDZL<|HfQL(DD-elZ8*q4?2G5?JxmT)cGn(u$&8D zvgb8bfMqHcB>LZ+H{<$|8=md3;*Amq#2;sy;iI6rKulQFRG%uUAEU~f7K#i*(_g`GNwx#OMS}GG)tawHcaYF z{m+=QHqWkk^_50%wfVe6UuX^p;}u}rKYtG?p5Xy$49%<6F?PGf75+_mVs?<`~Yqm&mH5m$o{GWX*bL}(;}Ekfa)>ySl>mLl`*aoJnZSk-XuY-`-)% zN;UuPIQhGm^-JX+A?6b>L4f>{CS?G~JX;*br56*wdU3uvH|lUkXo6rb>uOV z!;%>=+2MYZbpPpD|5riHJq(XyB-wJcQi$xL|MleOEf@yt`AzSMi}g2IGB+|!Yuy@x z{ZnPDnII1jUVAC^kcBw5Cd)6v)?L&O5>{SJoD(WvqQG&y#5HCwLqK&!qH!!u*QhI; z&sg{~+_dj&3uy{IVMCYv12qu}B@iXWIic($k|@5Tg> zz5bJ#m0qZQw9NVyFNy8CACKJcBOzvFXqro1LN!YYKb9voqrQS?s0z-^@YK`zS+G;3 z;x|<%GA}$ydTr^R!5GPzN73A+{GMWk-KvM8e>k77}i9j9LH(o=yn|LGx zTNAnNwFLs3kG@%yUiSdKh4_wEKFb7av*>Z>gFAb&tcx;O89Dw}5*H^eo~;sQSa^{A z45tgt0#0`~*5_`p^r2=j;DzK(xkukz&%0iUUR&H9Oj3#s`OkoqM^fc~YCd{D#T7QM zKTogl@M&Br#gIx3{qj**vB_+bm>bR5^tVcNFD>o2{=R{q|J>qfs`v>Y2ZV%SA&dm8 zA@Ep{`vivGVEz-nfVk%!r#M{=as=syL001Ao1(<=lEtPSy@Qw+Ab4bV{(*U_F`9dCOXV#k!C2>;p)zd2E4)lJL8ySCGx#cURqh>>Gf%Wl0( z@qfO5?=aAvk8IUX^UJp{o_zvZK8v33+nhUf_F&+;_vN(oro$g6&7(y<-&`b_*R*U9 z{%5zTCT!N7jqls07JCLYxwij#MgV&>uSrvgfg-1n~K9@o;!aXYn<+G zb>!Qy9R&m@LHfvNGe!}5H(g$Y8Y+S1FHFZdGG_b*Oy9F33sPQJ2esgwZ>H`sOS=@~ zVa_wHuxNQ};@so7*E{FM*t}kpt~{}Odd}azI9sfortuo(KBWIF?%af z45vRMMYOke#^eCo1tetG?la*D_iF(&p|8TSCvoH8IzED5;U78%2 z(oVyxOCvhwHT8(8NW>XVHcQx(56Tsy|W94twRCHNyakrFr<}`N?U0aq$%ekzDA7RtD%J z4}f$ydn9u0;I~7L56vtT9XonVq3$6@)>qb*glAXM9FwM~7%RJv=|eJdTUdMWaE_*` z4Vo~(o-wTL$G$(-S=V;3>mVWYVL=g{?@WW9$Q!4|ScU5LA+{mjklXU{&nePeSwVqc z(fhH@nq9H@Ht!3i`UfvUC)#k6@wG1&k0fuRp6LvX7jG`sfh*XZOK7)cy!p1oOAv}6 zVfO8pZJN1cPFGp1O)I*^q?xJ(Y3(#>iD9=)LS2}S#JsMN3dAowdEGSPB)?>b!%Rmb z9ewslUQiiZ!4xBTz&QiR^4t0t(Y&VLSD-M%LOM<1*<4z7!R7Z)dg3PN^4@2_u5~D`pl0&1__#cmcGUHwzz?Ixz`LJHBkxjbDAJsCl zD{*|;zATtw0u378vI~>!g?Uml1BQZsW$RF zyzi^xv{7h9F3bk(GiE4Cy~e6v*~ZQ}rtE~b7b8+OtXU1?~bBUQP{C)rXs09YP*fLNb8!V^pyD@!vNy0F# z+#_aBOi7uCzjha`8-cCoSCA4F-hvVW$=2$^_Tu3WzH;*)+w~};h2q~Lir0*7*hIimxh(+j4OAXJwFr=A>! zU#GqGYP;a#-`|}D@b?{7gsd)s4)#gEeLi4=P&xhTm%6(x$T@csHF~&50DmZ?-+j=v zxm2gx;Q3H`q-$%gK%rk#9YGeEn-J{v5l&#D(z;hkVQ3hP<7 zuT#C+;hAGIw1UrC!RoZNs+ma16Cc#ZDdr?~HGX#27(ABM$#g>P@0PYQzf`wQ8X%_6 zeZi9qSd&+CCNAbA{kkvx#eo^2=XBL}&=LM(9YkM}0h={p-Xgnf{)uif5)7|Jz9aQU z1~>THQ(KQ^UM(pVdC1{Ohm$EF_BZh^DBukC_*pM?T{O0Q5DmXCZJnZxyQszenJpRW zRB+TqtCyuQ$J`FO2Hq4pYJYUpeq(8ra%i7Bv$1k6bwRUa%F?)NsL7B_5p+mv^H{?Q zb0M(%)MMY(y6}Js6jqdwiIVeZcop19ojk;!65B=EW?blcw|xg+)4*TF0}I*6pkIuj z6S10vy;RXw{mPFiggXwjfK)dzH=}nxBE?5Ds0c27{bA|r*Oo?0=1WWKAL2D=bSAuX zEm394eL$;zvT#@Fj86YqvvnVa((g_bW0FBf{=@?TV{{)(e+{O;Yr_hi(r5S^2?M(Z zLmMCD{Q566=ZB ztl+WE$J$+9;>W6=GsqR8DJ^pd(F?rwgNjQwh{uBLOSrYm{YuKvk@P@*Y@dW3)fmVN zB9F8TdgHqB%~6ef5wlXYa_ojOg;7-5yA@d>`|Mq`>EC@8=@3KBR1Q&Vge1*rva+f^ zq7!9^N+yZ5yOK8%Qz@CK+ty;V7k2FivCu3AjX1XEq-Qzx1`a{5d)X5BrUw@uD(a%u zj;)CxRAWKwO{kCj4isA>%+)v{v#Vf77@Ygsh|xpv&dwqyQ4N;1Clx9u(znU>`=p^# z0&?bh4LuC#fO<#{5{_!d@iiTigKY2E=6L?3ZxFMGd7BeB^{~UmRKqrQW}VF=*Uwt4 z+QHm%e!zp272(D8_NNN2W1)|2{5lH#s{N|a{w;ASL`H01AQ!X&Wo~>JMg|QIT%A(iL$7^#C2E+QjmRp zcQ#H`W`n}sWL&TBmK0*QBn<0iT@>2bdW=ebYU6iB^I2-b+=?1I}d++=q7 zOCwA>vRv42nE1k3HkG>QPj`B;_cJ!HHYldR2$D6KJ+*w~DBMu<+Gl-!h}spiiD-mP(dLirfVNj{V6R#dx-l+wZcQi>YBNa&93(%#MDOl0oz$@cbR$Shq~ zIW;)u(Hv8BWIhs~n%kF)jes}1c*tAn(E?Lu#C}n(%1Lq5l}hzKF(SmauKh2E>YsP^ zR%x4z-w+WEsn4P)Jrmirp|&V>oqa^LJjIPKJKmTZV92hPQ+D=w4eOJQXeagB5&@qt z+IoSipz*u5dYm9(lv5sS#@x|Xb|0%f>>;+C<|1#a(>F-Y{i<8?t0-IXBwr*|WrxIu~hM#NB|_ckslGR)gfw;FyJ6f9(J6Tk!j zcPJA&4tjC+-B3Kumpm#AfrN!8k2 z`$eVF>(ltPVyWj4FBFT_OyX;Tg0sK~Lvhr)Dya+gkSwo2z%Luf7>e(X+f<(=&nxl} z1)l&nUTN&hr3Leo_!aC3Lbmb-dcTMSRuv;CGyk$cA9L7P9&PnSis4cGmkAw-cWC3Q zhKnc;Mzj~F+XZ_wvy1^Cr3{|kK-kMJi{|(_bzN1R1oyo-w4}x}t|LMr9@7+vpm?b( z%n(QQ<{Zk$9XPSyHX{MP!^?aqhFwA04E6y-1^sz6MWJm)&O6xkEbS}>7E;}&7`k6W zOVCEF3@p?*CD)8()biJQWV@F@a~X-8?u6{h2(Lg{B%MeR7nWtC6>hNM*yBzL!!bRz z8*xzAQ{*9~gem$6(YSV~KU8o)@nEB^m7jC?(6j9b!#%#Nr-tI2INXuplAX}SeMudI z2HG!E%V<&F!z+2QZXQVJdNPD_+*`z$TBXP$8@D1#U~=Ct_=RibD1$ITrfF}j_Dfb$ z{HF==vp+wyo5UW)ghG~YMp^Fd<{=H%PP!1GlqyYY##&@>P6E5OBto_`-%qyNOI_O$ zLm2c@Pq5trOI;=jBFZx zG6SKDx6L4<~?x z6-yGwwuUlr&C{D#vzG=<(xOp>PO_$T$Q4HDFPy0{tr)~?#c9M)9W|d!`S6m8!8J!2zQ9f*{(oMZ@ zs3?w9i7om%E!)-#YZW_3c%hn7L&H@}4);^UT%O4(8Hx&r`nFfDbxaqzjEjP($=F>8 zA7a-^8ZI@MEUgolxPny$zaCKYQW3^Glm_vTlgepdO~!pMH>hz8hMH z1lfs4qN7245vMmi)|@3%>-p+caiP~^yY-N@YKdYZ<#w1Cr@xny%DBr_3)~_Yxe|7q zy<6H|C)ukkL;*|d7~+48hNG_N>@0h~@o!CSR+yj(~q%J{*9&kR>?}SZkktdm!dGgz0`n-gk7Yc&)sZ>ExO=>>|f- zY3iLZ$@fWa6~57t@Dhlut-pg?>*FUH9nyqvjoDO^dO#MxGxgO){dlj-7S5ON5Yk){ z{MnV#r{(OuEy!hHVaO+4Al!n&8n*~pwuXIiprPU0cb??%?n%B(T|HlRC6fZ3Dxz2{M2Bokzx-G@bi6hqL0gE zQb&ePIK?R*H=Zvd%X;uivZi3EW`tX-BrH}Io^iGgH+FshU*7F$b5_i&M3ERCBpWUb zT+@$$)(wY*=ZiL@oQCx`1Yh-(s#>{gIs0#1&6P&=aWU9rC`g~Iz!Uq4Sg58bKakUd z*G57GxzLI)$qMiJ2n96Ss(Em>i^HQuK6q(zO|@D8jbd~yRe9nCrK!0q6Ir^rIuG8p z2sSDoxC<2REmUsRY!8(J?--+0j3=uoHJ<)2*pEXv5xjvh25wAy=UpmZ(0}Hv8%(X? zf8`dl#~WMMp+4@#y$BKt2!%JRG#%A7?iB(7w=JlXr!VV3R>IUbqp>JNwE!!?cea6X zHWG2ni#_=>1B=i>~Fl27}04UU78}3&7+|UR#7^}EpL~#S)WU@S~s6)|$BFK7NK$cS$45#20Vk1iK=DPOe%3o&X zU$%EC?}{Ip*d_=yKIp1z>{^&k`v4J%ct*93#hHYG3X~xk=SI}rQVVRhzu=?V@IPs{l|@6+>)mR!eY6%aZ|^;Qym%@v%%AEW0Ye< z^)=CvD<1^&YHd)4+AuCf;|>w(m&v=^r_3)4R;vOaVnUFN+9yHgz6b%GC9Cjpwh$AJ40gmeEOt{Vn(h8VWkx&n+>_sRgbhxyz zv8(P70$Xwm>aIiR<~4zx@z2w(vgdQfTYCf<^%l12%{$~YSwY$`86N60yd#z`XUluN z30{ad0-S6TOWIam{rCAWZ|sv_JjgEQBu#@`^^%uH?+~)-iYcMvP$N58LkrSc*wn(u zU1V@!IDvf=WLy+NM9B9sGGz6dqD1@~2C5PV6&$KkVnka>Hia1w%`S5_G=@8GyZD8h zb@K(F^RYYBL_2iOPH z!@Ze;B4av-8A0$WXXlQKOm-shX9M7i^~60`Ck@6&lGVyOWovb*-?!J{+%jxeXRa~0 zs~EL!zZcV^+$JLy5QR$UTC#)Yb4D1p&{paK<5tpK#N4~;<6>c46q6!-zwsh-!y^MN zA?vRv4OAAI0|f`R0QYuhWkn{FMl?M^AvxNEPUOwly38b>C~rmZZg_XHA6r!0*=bre z))GY^Gf(W59q%jL5WdG4AT1xPD8USS-<5ix=d6Z!|2FvibvLH~=UU;cpd3du%Z48# z1WRbK-GB(ty8;b2OZo6(Qnq!Ae+udqT} zfg)t-U1%`Rg>)QDE;fQpW()CTpJjJdbpAyR^Crt7KDrQ=Yq>BIMb8?dxxldC{}Bix zAaQ~hZ`jT)q$u$%b(dDsy)a$8Yr`?aBM~=jX@;KKaYG+WmETq!<8<#?aQXA@vaHOwQ#c#+p{%5P?tceR1N+Y zZ=5|amp>Iv;fHsIVxbJCJ5lK*6;iuhJ=%|w)!h>ZeK-_#PeNf`Il1!^C^IHGLy`e4 z^u~&qv;?p9vM6NEFQXfU^k~VoGdrc-YWvuYq6;N}(l!n@tkmD5l#8=VqXaY;`IVr| zOJ#5*Riqd88=HWWBiM1wXum%0DP+E*6hx6Ox>N3?D}-CEhsNCLKxN^i7ZdopS(0h= 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 B;hO*e literal 0 HcmV?d00001 diff --git a/docs/en/tutorial/vuex_flow.png b/docs/en/tutorial/vuex_flow.png new file mode 100644 index 0000000000000000000000000000000000000000..dfbf27d843abba87de64053bb15ae98d9e98f8b1 GIT binary patch literal 615128 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�=A|b2uI{~0T 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

-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

NwQkxw#+*t;30HpS_>`9o9$6 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 Date: Tue, 22 Mar 2016 12:57:55 +0530 Subject: [PATCH 059/969] Improve tutorial based on suggestions --- docs/en/SUMMARY.md | 1 + docs/en/tutorial.md | 79 ++++++++++++++++++++++++++------------------- 2 files changed, 47 insertions(+), 33 deletions(-) diff --git a/docs/en/SUMMARY.md b/docs/en/SUMMARY.md index 590516377..57e8931c0 100644 --- a/docs/en/SUMMARY.md +++ b/docs/en/SUMMARY.md @@ -4,6 +4,7 @@ - [What is Vuex?](intro.md) - [Getting Started](getting-started.md) +- [Tutorial](tutorial.md) - Core Concepts - [State and Getters](state.md) - [Mutations](mutations.md) diff --git a/docs/en/tutorial.md b/docs/en/tutorial.md index 782ca348c..c5d8889b8 100644 --- a/docs/en/tutorial.md +++ b/docs/en/tutorial.md @@ -1,14 +1,14 @@ # Tutorial -Let's build a very simple app which will demonstrate the various parts of vuex and how they work together. For this example we're building an app where you press a button and it increments a counter. +Let's build a very simple app using vuex to understand how to use it. For this example, we're building an app where you press a button, and it increments a counter. ![End Result](tutorial/result.png) -We are using this simple example to explain the concept and the problem vuex aims to solve - how to manage a large app which uses several components. Consider if this example used three components: +We are using this simple example to explain the concepts, and the problems vuex aims to solve - how to manage a large app which uses several components. Consider if this example used three components: ### `components/App.vue` -The main app which contains two other child components: +The root component, which contains two other child components: * `Display` to display the current counter value. * `Increment` which is a button to increment the current value. @@ -23,13 +23,13 @@ The main app which contains two other child components: @@ -37,7 +37,7 @@ export default { ### `components/Display.vue` -``` +```html diff --git a/examples/shopping-cart/components/ProductList.vue b/examples/shopping-cart/components/ProductList.vue index 7393eac3a..484c10ded 100644 --- a/examples/shopping-cart/components/ProductList.vue +++ b/examples/shopping-cart/components/ProductList.vue @@ -13,20 +13,17 @@ diff --git a/examples/shopping-cart/vuex/actions.js b/examples/shopping-cart/vuex/actions.js index 075ec4027..6d6be6a79 100644 --- a/examples/shopping-cart/vuex/actions.js +++ b/examples/shopping-cart/vuex/actions.js @@ -3,7 +3,9 @@ import * as types from './mutation-types' export const addToCart = ({ dispatch }, product) => { if (product.inventory > 0) { - dispatch(types.ADD_TO_CART, product.id) + dispatch(types.ADD_TO_CART, { + id: product.id + }) } } @@ -13,12 +15,12 @@ export const checkout = ({ dispatch, state }, products) => { shop.buyProducts( products, () => dispatch(types.CHECKOUT_SUCCESS), - () => dispatch(types.CHECKOUT_FAILURE, savedCartItems) + () => dispatch(types.CHECKOUT_FAILURE, { savedCartItems }) ) } export const getAllProducts = ({ dispatch }) => { shop.getProducts(products => { - dispatch(types.RECEIVE_PRODUCTS, products) + dispatch(types.RECEIVE_PRODUCTS, { products }) }) } diff --git a/examples/shopping-cart/vuex/getters.js b/examples/shopping-cart/vuex/getters.js index eb2c092d0..aa8da0e12 100644 --- a/examples/shopping-cart/vuex/getters.js +++ b/examples/shopping-cart/vuex/getters.js @@ -1,3 +1,7 @@ +export const checkoutStatus = state => state.cart.checkoutStatus + +export const allProducts = state => state.products.all + export const cartProducts = state => { return state.cart.added.map(({ id, quantity }) => { const product = state.products.all.find(p => p.id === id) diff --git a/examples/shopping-cart/vuex/modules/cart.js b/examples/shopping-cart/vuex/modules/cart.js index 88d787e28..9a746c280 100644 --- a/examples/shopping-cart/vuex/modules/cart.js +++ b/examples/shopping-cart/vuex/modules/cart.js @@ -1,25 +1,20 @@ -import { - ADD_TO_CART, - CHECKOUT_REQUEST, - CHECKOUT_SUCCESS, - CHECKOUT_FAILURE -} from '../mutation-types' +import * as types from '../mutation-types' // initial state // shape: [{ id, quantity }] const state = { added: [], - lastCheckout: null + checkoutStatus: null } // mutations const mutations = { - [ADD_TO_CART] (state, productId) { + [types.ADD_TO_CART] (state, { id }) { state.lastCheckout = null - const record = state.added.find(p => p.id === productId) + const record = state.added.find(p => p.id === id) if (!record) { state.added.push({ - id: productId, + id, quantity: 1 }) } else { @@ -27,20 +22,20 @@ const mutations = { } }, - [CHECKOUT_REQUEST] (state) { + [types.CHECKOUT_REQUEST] (state) { // clear cart state.added = [] - state.lastCheckout = null + state.checkoutStatus = null }, - [CHECKOUT_SUCCESS] (state) { - state.lastCheckout = 'successful' + [types.CHECKOUT_SUCCESS] (state) { + state.checkoutStatus = 'successful' }, - [CHECKOUT_FAILURE] (state, savedCartItems) { + [types.CHECKOUT_FAILURE] (state, { savedCartItems }) { // rollback to the cart saved before sending the request state.added = savedCartItems - state.lastCheckout = 'failed' + state.checkoutStatus = 'failed' } } diff --git a/examples/shopping-cart/vuex/modules/products.js b/examples/shopping-cart/vuex/modules/products.js index d7293f3f4..a1db7d560 100644 --- a/examples/shopping-cart/vuex/modules/products.js +++ b/examples/shopping-cart/vuex/modules/products.js @@ -1,7 +1,4 @@ -import { - RECEIVE_PRODUCTS, - ADD_TO_CART -} from '../mutation-types' +import * as types from '../mutation-types' // initial state const state = { @@ -10,12 +7,12 @@ const state = { // mutations const mutations = { - [RECEIVE_PRODUCTS] (state, products) { + [types.RECEIVE_PRODUCTS] (state, { products }) { state.all = products }, - [ADD_TO_CART] (state, productId) { - state.all.find(p => p.id === productId).inventory-- + [types.ADD_TO_CART] (state, { id }) { + state.all.find(p => p.id === id).inventory-- } } diff --git a/examples/shopping-cart/vuex/store.js b/examples/shopping-cart/vuex/store.js index c4341c203..4373d2d76 100644 --- a/examples/shopping-cart/vuex/store.js +++ b/examples/shopping-cart/vuex/store.js @@ -1,15 +1,18 @@ import Vue from 'vue' import Vuex from '../../../src' +import * as actions from './actions' +import * as getters from './getters' import cart from './modules/cart' import products from './modules/products' import createLogger from '../../../src/plugins/logger' Vue.use(Vuex) -Vue.config.debug = true const debug = process.env.NODE_ENV !== 'production' export default new Vuex.Store({ + actions, + getters, modules: { cart, products diff --git a/src/index.js b/src/index.js index 716b425e0..f2f02675a 100644 --- a/src/index.js +++ b/src/index.js @@ -81,7 +81,8 @@ class Store { // set state if (!isRoot && !hot) { - const parentState = getNestedState(this.state, path.slice(-1)) + const parentState = getNestedState(this.state, path.slice(0, -1)) + if (!parentState) debugger const moduleName = path[path.length - 1] Vue.set(parentState, moduleName, state || {}) } @@ -257,7 +258,7 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { } function enableStrictMode (store) { - store._vm.watch('state', () => { + store._vm.$watch('state', () => { if (!store._dispatching) { throw new Error( '[vuex] Do not mutate vuex store state outside mutation handlers.' From 28df9a0a75752d92efa115b5cc5e4f5fd0c9b26f Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 09:37:14 -0400 Subject: [PATCH 159/969] pass e2e tests, improve error stack --- examples/chat/components/MessageSection.vue | 2 +- examples/chat/components/ThreadSection.vue | 2 +- examples/counter/main.js | 1 + examples/shopping-cart/components/Cart.vue | 2 +- .../shopping-cart/components/ProductList.vue | 2 +- examples/todomvc/components/App.vue | 4 +- examples/todomvc/components/Todo.vue | 25 ++++++++--- examples/todomvc/main.js | 1 + examples/todomvc/vuex/actions.js | 2 +- examples/todomvc/vuex/store.js | 14 +++--- src/helpers.js | 6 +-- src/index.js | 43 +++++++++++-------- 12 files changed, 62 insertions(+), 42 deletions(-) diff --git a/examples/chat/components/MessageSection.vue b/examples/chat/components/MessageSection.vue index ca61c9704..93a51d132 100644 --- a/examples/chat/components/MessageSection.vue +++ b/examples/chat/components/MessageSection.vue @@ -42,7 +42,7 @@ export default { sendMessage (e) { const text = e.target.value if (text.trim()) { - this.$store.call('sendMessage', { + this.$store.trigger('sendMessage', { text, thread: this.thread }) diff --git a/examples/chat/components/ThreadSection.vue b/examples/chat/components/ThreadSection.vue index eb45021ac..f1dc17be0 100644 --- a/examples/chat/components/ThreadSection.vue +++ b/examples/chat/components/ThreadSection.vue @@ -40,7 +40,7 @@ export default { }, methods: { switchThread (id) { - this.$store.call('switchThread', { id }) + this.$store.trigger('switchThread', { id }) } } } diff --git a/examples/counter/main.js b/examples/counter/main.js index 947369d8d..c19c36748 100644 --- a/examples/counter/main.js +++ b/examples/counter/main.js @@ -1,3 +1,4 @@ +import 'babel-polyfill' import Vue from 'vue' import Counter from './Counter.vue' import store from './store' diff --git a/examples/shopping-cart/components/Cart.vue b/examples/shopping-cart/components/Cart.vue index 69577dbe4..45292b545 100644 --- a/examples/shopping-cart/components/Cart.vue +++ b/examples/shopping-cart/components/Cart.vue @@ -30,7 +30,7 @@ export default { }, methods: { checkout (products) { - this.$store.call('checkout', products) + this.$store.trigger('checkout', products) } } } diff --git a/examples/shopping-cart/components/ProductList.vue b/examples/shopping-cart/components/ProductList.vue index 484c10ded..367cba5fe 100644 --- a/examples/shopping-cart/components/ProductList.vue +++ b/examples/shopping-cart/components/ProductList.vue @@ -23,7 +23,7 @@ export default { 'addToCart' ]), created () { - this.$store.call('getAllProducts') + this.$store.trigger('getAllProducts') } } diff --git a/examples/todomvc/components/App.vue b/examples/todomvc/components/App.vue index 183909e70..86e03a1da 100644 --- a/examples/todomvc/components/App.vue +++ b/examples/todomvc/components/App.vue @@ -16,7 +16,7 @@ + @change="toggleAll({ done: !allChecked })">

@@ -81,7 +81,7 @@ export default { addTodo (e) { var text = e.target.value if (text.trim()) { - this.$store.call('addTodo', text) + this.$store.trigger('addTodo', { text }) } e.target.value = '' }, diff --git a/examples/todomvc/components/Todo.vue b/examples/todomvc/components/Todo.vue index 81dc1aa1d..16d6f340f 100644 --- a/examples/todomvc/components/Todo.vue +++ b/examples/todomvc/components/Todo.vue @@ -4,9 +4,9 @@ + @change="toggleTodo({ todo: todo })"> - + diff --git a/examples/shopping-cart/vuex/actions.js b/examples/shopping-cart/vuex/actions.js index 6d6be6a79..8623fc81e 100644 --- a/examples/shopping-cart/vuex/actions.js +++ b/examples/shopping-cart/vuex/actions.js @@ -1,26 +1,26 @@ import shop from '../api/shop' import * as types from './mutation-types' -export const addToCart = ({ dispatch }, product) => { +export const addToCart = ({ commit }, product) => { if (product.inventory > 0) { - dispatch(types.ADD_TO_CART, { + commit(types.ADD_TO_CART, { id: product.id }) } } -export const checkout = ({ dispatch, state }, products) => { +export const checkout = ({ commit, state }, products) => { const savedCartItems = [...state.cart.added] - dispatch(types.CHECKOUT_REQUEST) + commit(types.CHECKOUT_REQUEST) shop.buyProducts( products, - () => dispatch(types.CHECKOUT_SUCCESS), - () => dispatch(types.CHECKOUT_FAILURE, { savedCartItems }) + () => commit(types.CHECKOUT_SUCCESS), + () => commit(types.CHECKOUT_FAILURE, { savedCartItems }) ) } -export const getAllProducts = ({ dispatch }) => { +export const getAllProducts = ({ commit }) => { shop.getProducts(products => { - dispatch(types.RECEIVE_PRODUCTS, { products }) + commit(types.RECEIVE_PRODUCTS, { products }) }) } diff --git a/examples/todomvc/components/App.vue b/examples/todomvc/components/App.vue index 86e03a1da..14f17429d 100644 --- a/examples/todomvc/components/App.vue +++ b/examples/todomvc/components/App.vue @@ -81,7 +81,7 @@ export default { addTodo (e) { var text = e.target.value if (text.trim()) { - this.$store.trigger('addTodo', { text }) + this.$store.dispatch('addTodo', { text }) } e.target.value = '' }, diff --git a/examples/todomvc/vuex/actions.js b/examples/todomvc/vuex/actions.js index f13c3273f..8ffcbdea3 100644 --- a/examples/todomvc/vuex/actions.js +++ b/examples/todomvc/vuex/actions.js @@ -6,5 +6,5 @@ export const toggleAll = makeAction('TOGGLE_ALL') export const clearCompleted = makeAction('CLEAR_COMPLETED') function makeAction (type) { - return ({ dispatch }, payload) => dispatch(type, payload) + return ({ commit }, payload) => commit(type, payload) } diff --git a/src/helpers.js b/src/helpers.js index ab0639030..3fd3d4eb5 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -12,7 +12,7 @@ export function mapActions (actions) { const res = {} normalizeMap(actions).forEach(({ key, val }) => { res[key] = function mappedAction (...args) { - return this.$store.trigger(val, ...args) + return this.$store.dispatch(val, ...args) } }) return res diff --git a/src/index.js b/src/index.js index da11cfd8f..3c85e77fb 100644 --- a/src/index.js +++ b/src/index.js @@ -27,21 +27,21 @@ class Store { // store internal state this._options = options - this._dispatching = false + this._committing = false this._events = Object.create(null) this._actions = Object.create(null) this._mutations = Object.create(null) this._subscribers = [] - // bind dispatch and trigger to self + // bind commit and dispatch to self const store = this - const { trigger, dispatch } = this - this.trigger = function boundTrigger (type, payload) { - trigger.call(store, type, payload) - } + const { dispatch, commit } = this this.dispatch = function boundDispatch (type, payload) { dispatch.call(store, type, payload) } + this.commit = function boundCommit (type, payload) { + commit.call(store, type, payload) + } // init state and getters const getters = extractModuleGetters(options.getters, modules) @@ -66,9 +66,9 @@ class Store { } replaceState (state) { - this._dispatching = true + this._committing = true this._vm.state = state - this._dispatching = false + this._committing = false } module (path, module, hot) { @@ -123,57 +123,54 @@ class Store { action (type, handler, path = []) { const entry = this._actions[type] || (this._actions[type] = []) const store = this - const { trigger, dispatch } = this + const { dispatch, commit } = this entry.push(function wrappedActionHandler (payload, cb) { let res = handler({ - trigger, dispatch, + commit, state: getNestedState(store.state, path) }, payload, cb) if (!isPromise(res)) { res = Promise.resolve(res) } return res.catch(err => { - console.warn(`[vuex] error in Promise returned from action "${type}":`) + console.error(`[vuex] error in Promise returned from action "${type}":`) console.error(err) }) }) } - dispatch (type, payload) { + commit (type, payload) { const entry = this._mutations[type] if (!entry) { - console.warn(`[vuex] unknown mutation type: ${type}`) + console.error(`[vuex] unknown mutation type: ${type}`) return } - // check object-style dispatch + // check object-style commit let mutation if (isObject(type)) { payload = mutation = type } else { mutation = { type, payload } } - this._dispatching = true - entry.forEach(function dispatchIterator (handler) { + this._committing = true + entry.forEach(function commitIterator (handler) { handler(payload) }) - this._dispatching = false + this._committing = false this._subscribers.forEach(sub => sub(mutation, this.state)) } - trigger (type, payload, cb) { + dispatch (type, payload) { const entry = this._actions[type] if (!entry) { - console.warn(`[vuex] unknown action type: ${type}`) + debugger + console.error(`[vuex] unknown action type: ${type}`) return } - if (typeof payload === 'function') { - cb = payload - payload = undefined - } return entry.length > 1 ? Promise.all(entry.map(handler => handler(payload))) - : entry[0](payload) + : Promise.resolve(entry[0](payload)) } subscribe (fn) { @@ -214,11 +211,11 @@ class Store { if (this.strict) { enableStrictMode(this) } - // trigger changes in all subscribed watchers + // dispatch changes in all subscribed watchers // to force getter re-evaluation. - this._dispatching = true + this._committing = true oldVm.state = null - this._dispatching = false + this._committing = false Vue.nextTick(() => oldVm.$destroy()) } } @@ -257,7 +254,7 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { Object.keys(module.getters).forEach(getterKey => { const rawGetter = module.getters[getterKey] if (getters[getterKey]) { - console.warn(`[vuex] duplicate getter key: ${getterKey}`) + console.error(`[vuex] duplicate getter key: ${getterKey}`) return } getters[getterKey] = function wrappedGetter (state) { @@ -272,7 +269,7 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { function enableStrictMode (store) { store._vm.$watch('state', () => { - if (!store._dispatching) { + if (!store._committing) { throw new Error( '[vuex] Do not mutate vuex store state outside mutation handlers.' ) @@ -294,7 +291,7 @@ function getNestedState (state, path) { function install (_Vue) { if (Vue) { - console.warn( + console.error( '[vuex] already installed. Vue.use(Vuex) should be called only once.' ) return From bc5447ea48616ed5ad7fa1029e39871e6701db07 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 10:09:28 -0400 Subject: [PATCH 161/969] remove unnecessary line --- src/index.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/index.js b/src/index.js index 3c85e77fb..5a11fe47f 100644 --- a/src/index.js +++ b/src/index.js @@ -28,7 +28,6 @@ class Store { // store internal state this._options = options this._committing = false - this._events = Object.create(null) this._actions = Object.create(null) this._mutations = Object.create(null) this._subscribers = [] From 6c669a5b1006a1501c5198e661d5fd3f2f56fb69 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 10:44:08 -0400 Subject: [PATCH 162/969] update type definition for subscribe --- types/index.d.ts | 5 +---- types/test/index.ts | 11 ++--------- 2 files changed, 3 insertions(+), 13 deletions(-) diff --git a/types/index.d.ts b/types/index.d.ts index a0f20f9f6..fc7600840 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -16,10 +16,7 @@ declare namespace Vuex { modules?: ModuleTree; }): void; - on(event: string, cb: (...args: any[]) => void): void; - once(event: string, cb: (...args: any[]) => void): void; - off(event?: string, cb?: (...args: any[]) => void): void; - emit(event: string, ...args: any[]): void; + subscribe(cb: (mutation: MutationObject, state: S) => void): () => void; } function install(Vue: vuejs.VueStatic): void; diff --git a/types/test/index.ts b/types/test/index.ts index b974abb5d..5a1f9d293 100644 --- a/types/test/index.ts +++ b/types/test/index.ts @@ -169,21 +169,14 @@ namespace TestHotUpdate { }); } -namespace TestEvents { +namespace TestSubscribe { const store = createStore(); const handler = (mutation: Vuex.MutationObject, state: ISimpleState) => { state.count += 1; }; - store.on('mutation', handler); - store.once('mutation', handler); - - store.off(); - store.off('mutation'); - store.off('mutation', handler); - - store.emit('some-event', 1, 'a', []); + store.subscribe(handler); } namespace TestLogger { From 8130c4fa65bb82ecfe474f465c27a02ca59f3d42 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 10:45:57 -0400 Subject: [PATCH 163/969] improve type test for subscribe --- types/test/index.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/types/test/index.ts b/types/test/index.ts index 5a1f9d293..6759a54bc 100644 --- a/types/test/index.ts +++ b/types/test/index.ts @@ -176,7 +176,8 @@ namespace TestSubscribe { state.count += 1; }; - store.subscribe(handler); + const unsubscribe = store.subscribe(handler); + unsubscribe(); } namespace TestLogger { From 6b6d4be4fb2b2afdbda73f471a9e56e38d1d2ace Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 15:25:02 -0400 Subject: [PATCH 164/969] add logger back --- src/plugins/logger.js | 52 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 src/plugins/logger.js diff --git a/src/plugins/logger.js b/src/plugins/logger.js new file mode 100644 index 000000000..583620837 --- /dev/null +++ b/src/plugins/logger.js @@ -0,0 +1,52 @@ +// Credits: borrowed code from fcomb/redux-logger + +export default function createLogger ({ + collapsed = true, + transformer = state => state, + mutationTransformer = mut => mut +} = {}) { + return store => { + let prevState = JSON.parse(JSON.stringify(store.state)) + + store.subscribe((mutation, state) => { + if (typeof console === 'undefined') { + return + } + const nextState = JSON.parse(JSON.stringify(state)) + const time = new Date() + const formattedTime = ` @ ${pad(time.getHours(), 2)}:${pad(time.getMinutes(), 2)}:${pad(time.getSeconds(), 2)}.${pad(time.getMilliseconds(), 3)}` + const formattedMutation = mutationTransformer(mutation) + const message = `mutation ${mutation.type}${formattedTime}` + const startMessage = collapsed + ? console.groupCollapsed + : console.group + + // render + try { + startMessage.call(console, message) + } catch (e) { + console.log(message) + } + + console.log('%c prev state', 'color: #9E9E9E; font-weight: bold', prevState) + console.log('%c mutation', 'color: #03A9F4; font-weight: bold', formattedMutation) + console.log('%c next state', 'color: #4CAF50; font-weight: bold', nextState) + + try { + console.groupEnd() + } catch (e) { + console.log('—— log end ——') + } + + prevState = nextState + }) + } +} + +function repeat (str, times) { + return (new Array(times + 1)).join(str) +} + +function pad (num, maxLength) { + return repeat('0', maxLength - num.toString().length) + num +} From c9706eee056b81a5a79fbdb97f0951ad100e3256 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 16:06:14 -0400 Subject: [PATCH 165/969] test wip --- package.json | 2 +- src/helpers.js | 3 + src/index.js | 23 +- test/unit/test.js | 765 ++++++++++++++++++++++++++-------------------- 4 files changed, 455 insertions(+), 338 deletions(-) diff --git a/package.json b/package.json index d1beb1cf9..29461e2a9 100644 --- a/package.json +++ b/package.json @@ -16,7 +16,7 @@ "chat": "cd examples/chat && webpack-dev-server --inline --hot --config ../webpack.shared.config.js", "build": "node build/build.js", "build-examples": "BABEL_ENV=development webpack --config examples/webpack.build-all.config.js", - "unit": "BABEL_ENV=development mocha test/unit/test.js --compilers js:babel-core/register", + "unit": "BABEL_ENV=development mocha test/unit/test.js --compilers js:babel-core/register 2>/dev/null", "pree2e": "npm run build-examples", "e2e": "casperjs test --concise ./test/e2e", "test": "eslint src && npm run unit && npm run e2e", diff --git a/src/helpers.js b/src/helpers.js index 3fd3d4eb5..5c4f38194 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -2,6 +2,9 @@ export function mapGetters (getters) { const res = {} normalizeMap(getters).forEach(({ key, val }) => { res[key] = function mappedGetter () { + if (!(val in this.$store.getters)) { + console.error(`[vuex] unknown getter: ${val}`) + } return this.$store.getters[val] } }) diff --git a/src/index.js b/src/index.js index 5a11fe47f..e99ee95fd 100644 --- a/src/index.js +++ b/src/index.js @@ -36,10 +36,10 @@ class Store { const store = this const { dispatch, commit } = this this.dispatch = function boundDispatch (type, payload) { - dispatch.call(store, type, payload) + return dispatch.call(store, type, payload) } this.commit = function boundCommit (type, payload) { - commit.call(store, type, payload) + return commit.call(store, type, payload) } // init state and getters @@ -140,24 +140,27 @@ class Store { } commit (type, payload) { - const entry = this._mutations[type] - if (!entry) { - console.error(`[vuex] unknown mutation type: ${type}`) - return - } // check object-style commit let mutation - if (isObject(type)) { + if (isObject(type) && type.type) { payload = mutation = type + type = type.type } else { mutation = { type, payload } } + const entry = this._mutations[type] + if (!entry) { + console.error(`[vuex] unknown mutation type: ${type}`) + return + } this._committing = true entry.forEach(function commitIterator (handler) { handler(payload) }) this._committing = false - this._subscribers.forEach(sub => sub(mutation, this.state)) + if (!payload || !payload.silent) { + this._subscribers.forEach(sub => sub(mutation, this.state)) + } } dispatch (type, payload) { @@ -169,7 +172,7 @@ class Store { } return entry.length > 1 ? Promise.all(entry.map(handler => handler(payload))) - : Promise.resolve(entry[0](payload)) + : entry[0](payload) } subscribe (fn) { diff --git a/test/unit/test.js b/test/unit/test.js index 2f0e2b3fa..b1ba73c28 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -1,9 +1,9 @@ +import 'babel-polyfill' import chai, { expect } from 'chai' import sinonChai from 'sinon-chai' import sinon from 'sinon' import Vue from 'vue' -import Vuex from '../../src' -import * as util from '../../src/util' +import Vuex, { mapGetters, mapActions } from '../../build/dev-entry' Vue.use(Vuex) chai.use(sinonChai) @@ -11,7 +11,7 @@ chai.use(sinonChai) const TEST = 'TEST' describe('Vuex', () => { - it('direct dispatch', () => { + it('committing mutations', () => { const store = new Vuex.Store({ state: { a: 1 @@ -22,11 +22,31 @@ describe('Vuex', () => { } } }) + store.commit(TEST, 2) + expect(store.state.a).to.equal(3) + }) + + it('dispatching actions, sync', () => { + const store = new Vuex.Store({ + state: { + a: 1 + }, + mutations: { + [TEST] (state, n) { + state.a += n + } + }, + actions: { + [TEST] ({ commit }, n) { + commit(TEST, n) + } + } + }) store.dispatch(TEST, 2) expect(store.state.a).to.equal(3) }) - it('injecting state and action to components', function () { + it('dispatching actions, with returned Promise', done => { const store = new Vuex.Store({ state: { a: 1 @@ -35,25 +55,205 @@ describe('Vuex', () => { [TEST] (state, n) { state.a += n } + }, + actions: { + [TEST] ({ commit }, n) { + return new Promise(resolve => { + setTimeout(() => { + commit(TEST, n) + resolve() + }, 0) + }) + } } }) - const vm = new Vue({ - store, - vuex: { - getters: { - a: state => state.a + expect(store.state.a).to.equal(1) + store.dispatch(TEST, 2).then(() => { + expect(store.state.a).to.equal(3) + done() + }) + }) + + it('composing actions with async/await', done => { + const store = new Vuex.Store({ + state: { + a: 1 + }, + mutations: { + [TEST] (state, n) { + state.a += n + } + }, + actions: { + [TEST] ({ commit }, n) { + return new Promise(resolve => { + setTimeout(() => { + commit(TEST, n) + resolve() + }, 0) + }) }, - actions: { - test: ({ dispatch }, n) => dispatch(TEST, n) + two: async ({ commit, dispatch }, n) => { + await dispatch(TEST, 1) + expect(store.state.a).to.equal(2) + commit(TEST, n) } } }) - vm.test(2) - expect(vm.a).to.equal(3) - expect(store.state.a).to.equal(3) + expect(store.state.a).to.equal(1) + store.dispatch('two', 3).then(() => { + expect(store.state.a).to.equal(5) + done() + }) + }) + + it('capturing action Promise errors', done => { + const spy = sinon.spy(console, 'error') + const store = new Vuex.Store({ + actions: { + [TEST] () { + return new Promise((resolve, reject) => { + reject(new Error()) + }) + } + } + }) + store.dispatch(TEST).then(() => { + expect(spy).to.have.been.calledWith(`[vuex] error in Promise returned from action "${TEST}":`) + spy.restore() + done() + }) + }) + + it('getters', () => { + const store = new Vuex.Store({ + state: { + a: 1 + }, + getters: { + hasAny: state => state.a > 1 + }, + mutations: { + [TEST] (state, n) { + state.a += n + } + } + }) + expect(store.getters.hasAny).to.equal(false) + store.commit(TEST, 1) + expect(store.getters.hasAny).to.equal(true) }) - it('modules', function () { + it('store injection', () => { + const store = new Vuex.Store() + const vm = new Vue({ + store + }) + const child = new Vue({ parent: vm }) + expect(child.$store).to.equal(store) + }) + + it('helper: mapGetters (array)', () => { + const store = new Vuex.Store({ + state: { count: 0 }, + mutations: { + inc: state => state.count++, + dec: state => state.count-- + }, + getters: { + hasAny: ({ count }) => count > 0, + negative: ({ count }) => count < 0 + } + }) + const vm = new Vue({ + store, + computed: mapGetters(['hasAny', 'negative']) + }) + expect(vm.hasAny).to.equal(false) + expect(vm.negative).to.equal(false) + store.commit('inc') + expect(vm.hasAny).to.equal(true) + expect(vm.negative).to.equal(false) + store.commit('dec') + store.commit('dec') + expect(vm.hasAny).to.equal(false) + expect(vm.negative).to.equal(true) + }) + + it('helper: mapGetters (object)', () => { + const store = new Vuex.Store({ + state: { count: 0 }, + mutations: { + inc: state => state.count++, + dec: state => state.count-- + }, + getters: { + hasAny: ({ count }) => count > 0, + negative: ({ count }) => count < 0 + } + }) + const vm = new Vue({ + store, + computed: mapGetters({ + a: 'hasAny', + b: 'negative' + }) + }) + expect(vm.a).to.equal(false) + expect(vm.b).to.equal(false) + store.commit('inc') + expect(vm.a).to.equal(true) + expect(vm.b).to.equal(false) + store.commit('dec') + store.commit('dec') + expect(vm.a).to.equal(false) + expect(vm.b).to.equal(true) + }) + + it('helper: mapActions (array)', () => { + const a = sinon.spy() + const b = sinon.spy() + const store = new Vuex.Store({ + actions: { + a, + b + } + }) + const vm = new Vue({ + store, + methods: mapActions(['a', 'b']) + }) + vm.a() + expect(a).to.have.been.called + expect(b).not.to.have.been.called + vm.b() + expect(b).to.have.been.called + }) + + it('helper: mapActions (object)', () => { + const a = sinon.spy() + const b = sinon.spy() + const store = new Vuex.Store({ + actions: { + a, + b + } + }) + const vm = new Vue({ + store, + methods: mapActions({ + foo: 'a', + bar: 'b' + }) + }) + vm.foo() + expect(a).to.have.been.called + expect(b).not.to.have.been.called + vm.bar() + expect(b).to.have.been.called + }) + + it('module: mutation', function () { const mutations = { [TEST] (state, n) { state.a += n @@ -93,7 +293,7 @@ describe('Vuex', () => { } } }) - store.dispatch(TEST, 1) + store.commit(TEST, 1) expect(store.state.a).to.equal(2) expect(store.state.nested.a).to.equal(3) expect(store.state.nested.one.a).to.equal(4) @@ -102,35 +302,39 @@ describe('Vuex', () => { expect(store.state.four.a).to.equal(7) }) - it('hot reload', function () { - const mutations = { - [TEST] (state, n) { - state.a += n + it('module: action', function () { + let calls = 0 + const makeAction = n => { + return { + [TEST] ({ state }) { + calls++ + expect(state.a).to.equal(n) + } } } const store = new Vuex.Store({ state: { a: 1 }, - mutations, + actions: makeAction(1), modules: { nested: { state: { a: 2 }, - mutations, + actions: makeAction(2), modules: { one: { state: { a: 3 }, - mutations + actions: makeAction(3) }, nested: { modules: { two: { state: { a: 4 }, - mutations + actions: makeAction(4) }, three: { state: { a: 5 }, - mutations + actions: makeAction(5) } } } @@ -138,138 +342,229 @@ describe('Vuex', () => { }, four: { state: { a: 6 }, - mutations + actions: makeAction(6) } } }) - store.dispatch(TEST, 1) - expect(store.state.a).to.equal(2) - expect(store.state.nested.a).to.equal(3) - expect(store.state.nested.one.a).to.equal(4) - expect(store.state.nested.nested.two.a).to.equal(5) - expect(store.state.nested.nested.three.a).to.equal(6) - expect(store.state.four.a).to.equal(7) + store.dispatch(TEST) + expect(calls).to.equal(6) + }) - // hot reload only root mutations - store.hotUpdate({ - mutations: { - [TEST] (state, n) { - state.a = n - } - } + it('module: getters', function () { + const makeGetter = n => ({ + [`getter${n}`]: state => state.a }) - store.dispatch(TEST, 1) - expect(store.state.a).to.equal(1) // only root mutation updated - expect(store.state.nested.a).to.equal(4) - expect(store.state.nested.one.a).to.equal(5) - expect(store.state.nested.nested.two.a).to.equal(6) - expect(store.state.nested.nested.three.a).to.equal(7) - expect(store.state.four.a).to.equal(8) - - // hot reload modules - store.hotUpdate({ - modules: { - nested: { - state: { a: 234 }, - mutations, - modules: { - one: { - state: { a: 345 }, - mutations - }, - nested: { - modules: { - two: { - state: { a: 456 }, - mutations - }, - three: { - state: { a: 567 }, - mutations - } - } - } - } - }, - four: { - state: { a: 678 }, - mutations - } - } - }) - store.dispatch(TEST, 2) - expect(store.state.a).to.equal(2) - expect(store.state.nested.a).to.equal(6) // should not reload initial state - expect(store.state.nested.one.a).to.equal(7) // should not reload initial state - expect(store.state.nested.nested.two.a).to.equal(8) // should not reload initial state - expect(store.state.nested.nested.three.a).to.equal(9) // should not reload initial state - expect(store.state.four.a).to.equal(10) // should not reload initial state - - // hot reload all - store.hotUpdate({ - mutations: { - [TEST] (state, n) { - state.a -= n - } + const store = new Vuex.Store({ + state: { + a: 1 }, + getters: makeGetter(1), modules: { nested: { - state: { a: 234 }, - mutations: { - [TEST] (state, n) { - state.a += n - } - }, + state: { a: 2 }, + getters: makeGetter(2), modules: { one: { - state: { a: 345 }, - mutations: { - [TEST] (state, n) { - state.a += n - } - } + state: { a: 3 }, + getters: makeGetter(3) }, nested: { modules: { two: { - state: { a: 456 }, - mutations: { - [TEST] (state, n) { - state.a += n - } - } + state: { a: 4 }, + getters: makeGetter(4) }, three: { - state: { a: 567 }, - mutations: { - [TEST] (state, n) { - state.a -= n - } - } + state: { a: 5 }, + getters: makeGetter(5) } } } } }, four: { - state: { a: 678 }, - mutations: { - [TEST] (state, n) { - state.a -= n - } - } + state: { a: 6 }, + getters: makeGetter(6) } } }) - store.dispatch(TEST, 3) - expect(store.state.a).to.equal(-1) - expect(store.state.nested.a).to.equal(9) - expect(store.state.nested.one.a).to.equal(10) - expect(store.state.nested.nested.two.a).to.equal(11) - expect(store.state.nested.nested.three.a).to.equal(6) - expect(store.state.four.a).to.equal(7) + ;[1, 2, 3, 4, 5, 6].forEach(n => { + expect(store.getters[`getter${n}`]).to.equal(n) + }) }) + // it('dispatching multiple actions in different modules', () => { + + // }) + + // it('hot reload', function () { + // const mutations = { + // [TEST] (state, n) { + // state.a += n + // } + // } + // const store = new Vuex.Store({ + // state: { + // a: 1 + // }, + // mutations, + // modules: { + // nested: { + // state: { a: 2 }, + // mutations, + // modules: { + // one: { + // state: { a: 3 }, + // mutations + // }, + // nested: { + // modules: { + // two: { + // state: { a: 4 }, + // mutations + // }, + // three: { + // state: { a: 5 }, + // mutations + // } + // } + // } + // } + // }, + // four: { + // state: { a: 6 }, + // mutations + // } + // } + // }) + // store.dispatch(TEST, 1) + // expect(store.state.a).to.equal(2) + // expect(store.state.nested.a).to.equal(3) + // expect(store.state.nested.one.a).to.equal(4) + // expect(store.state.nested.nested.two.a).to.equal(5) + // expect(store.state.nested.nested.three.a).to.equal(6) + // expect(store.state.four.a).to.equal(7) + + // // hot reload only root mutations + // store.hotUpdate({ + // mutations: { + // [TEST] (state, n) { + // state.a = n + // } + // } + // }) + // store.dispatch(TEST, 1) + // expect(store.state.a).to.equal(1) // only root mutation updated + // expect(store.state.nested.a).to.equal(4) + // expect(store.state.nested.one.a).to.equal(5) + // expect(store.state.nested.nested.two.a).to.equal(6) + // expect(store.state.nested.nested.three.a).to.equal(7) + // expect(store.state.four.a).to.equal(8) + + // // hot reload modules + // store.hotUpdate({ + // modules: { + // nested: { + // state: { a: 234 }, + // mutations, + // modules: { + // one: { + // state: { a: 345 }, + // mutations + // }, + // nested: { + // modules: { + // two: { + // state: { a: 456 }, + // mutations + // }, + // three: { + // state: { a: 567 }, + // mutations + // } + // } + // } + // } + // }, + // four: { + // state: { a: 678 }, + // mutations + // } + // } + // }) + // store.dispatch(TEST, 2) + // expect(store.state.a).to.equal(2) + // expect(store.state.nested.a).to.equal(6) // should not reload initial state + // expect(store.state.nested.one.a).to.equal(7) // should not reload initial state + // expect(store.state.nested.nested.two.a).to.equal(8) // should not reload initial state + // expect(store.state.nested.nested.three.a).to.equal(9) // should not reload initial state + // expect(store.state.four.a).to.equal(10) // should not reload initial state + + // // hot reload all + // store.hotUpdate({ + // mutations: { + // [TEST] (state, n) { + // state.a -= n + // } + // }, + // modules: { + // nested: { + // state: { a: 234 }, + // mutations: { + // [TEST] (state, n) { + // state.a += n + // } + // }, + // modules: { + // one: { + // state: { a: 345 }, + // mutations: { + // [TEST] (state, n) { + // state.a += n + // } + // } + // }, + // nested: { + // modules: { + // two: { + // state: { a: 456 }, + // mutations: { + // [TEST] (state, n) { + // state.a += n + // } + // } + // }, + // three: { + // state: { a: 567 }, + // mutations: { + // [TEST] (state, n) { + // state.a -= n + // } + // } + // } + // } + // } + // } + // }, + // four: { + // state: { a: 678 }, + // mutations: { + // [TEST] (state, n) { + // state.a -= n + // } + // } + // } + // } + // }) + // store.dispatch(TEST, 3) + // expect(store.state.a).to.equal(-1) + // expect(store.state.nested.a).to.equal(9) + // expect(store.state.nested.one.a).to.equal(10) + // expect(store.state.nested.nested.two.a).to.equal(11) + // expect(store.state.nested.nested.three.a).to.equal(6) + // expect(store.state.four.a).to.equal(7) + // }) + it('plugins', function () { let initState const mutations = [] @@ -285,7 +580,7 @@ describe('Vuex', () => { plugins: [ store => { initState = store.state - store.on('mutation', (mut, state) => { + store.subscribe((mut, state) => { expect(state).to.equal(store.state) mutations.push(mut) }) @@ -293,10 +588,10 @@ describe('Vuex', () => { ] }) expect(initState).to.equal(store.state) - store.dispatch(TEST, 2) + store.commit(TEST, 2) expect(mutations.length).to.equal(1) expect(mutations[0].type).to.equal(TEST) - expect(mutations[0].payload[0]).to.equal(2) + expect(mutations[0].payload).to.equal(2) }) it('plugins should ignore silent mutations', function () { @@ -307,14 +602,14 @@ describe('Vuex', () => { a: 1 }, mutations: { - [TEST] (state, { payload }) { - state.a += payload + [TEST] (state, { n }) { + state.a += n } }, plugins: [ store => { initState = store.state - store.on('mutation', (mut, state) => { + store.subscribe((mut, state) => { expect(state).to.equal(store.state) mutations.push(mut) }) @@ -322,41 +617,21 @@ describe('Vuex', () => { ] }) expect(initState).to.equal(store.state) - store.dispatch(TEST, 1) - store.dispatch({ + store.commit(TEST, { n: 1 }) + store.commit({ type: TEST, - payload: 2 + n: 2 }) - store.dispatch({ + store.commit({ type: TEST, silent: true, - payload: 3 + n: 3 }) expect(mutations.length).to.equal(2) expect(mutations[0].type).to.equal(TEST) expect(mutations[1].type).to.equal(TEST) - expect(mutations[0].payload[0]).to.equal(1) // normal dispatch - expect(mutations[1].payload).to.equal(2) // object dispatch - }) - - it('watch', function (done) { - const store = new Vuex.Store({ - state: { - a: 1 - }, - mutations: { - [TEST]: state => state.a++ - } - }) - let watchedValueOne - store.watch(({ a }) => a, val => { - watchedValueOne = val - }) - store.dispatch(TEST) - Vue.nextTick(() => { - expect(watchedValueOne).to.equal(2) - done() - }) + expect(mutations[0].payload.n).to.equal(1) // normal dispatch + expect(mutations[1].n).to.equal(2) // object dispatch }) it('strict mode: warn mutations outside of handlers', function () { @@ -370,168 +645,4 @@ describe('Vuex', () => { store.state.a++ }).to.throw(/Do not mutate vuex store state outside mutation handlers/) }) - - it('option merging', function () { - const store = new Vuex.Store({ - state: { - a: 1, - b: 2 - }, - mutations: { - [TEST] (state, n) { - state.a += n - } - } - }) - const Comp = Vue.extend({ - vuex: { - getters: { - a: state => state.a - }, - actions: { - test: ({ dispatch }, n) => dispatch(TEST, n) - } - }, - mixins: [{ - vuex: { - getters: { - b: state => state.b - }, - actions: { - testPlusOne: ({ dispatch }, n) => dispatch(TEST, n + 1) - } - } - }] - }) - const vm = new Comp({ store }) - expect(vm.a).to.equal(1) - expect(vm.b).to.equal(2) - vm.test(2) - expect(vm.a).to.equal(3) - expect(store.state.a).to.equal(3) - vm.testPlusOne(2) - expect(vm.a).to.equal(6) - expect(store.state.a).to.equal(6) - }) - - it('shared getters should evaluate only once', function (done) { - const store = new Vuex.Store({ - state: { - a: 1 - }, - mutations: { - [TEST] (state) { - state.a++ - } - } - }) - - let getterCalls = 0 - let watcherCalls = 0 - const getter = state => { - getterCalls++ - return state.a - } - - const vm1 = new Vue({ - store, - vuex: { - getters: { - a: getter - } - }, - watch: { - a: () => { - watcherCalls++ - } - } - }) - - const vm2 = new Vue({ - store, - vuex: { - getters: { - a: getter - } - }, - watch: { - a: () => { - watcherCalls++ - } - } - }) - - expect(vm1.a).to.equal(1) - expect(vm2.a).to.equal(1) - expect(getterCalls).to.equal(1) - expect(watcherCalls).to.equal(0) - - store.dispatch('TEST') - Vue.nextTick(() => { - expect(vm1.a).to.equal(2) - expect(vm2.a).to.equal(2) - expect(getterCalls).to.equal(2) - expect(watcherCalls).to.equal(2) - done() - }) - }) - - it('object-format mutations', () => { - const store = new Vuex.Store({ - state: { - a: 1 - }, - mutations: { - [TEST] (state, { by }) { - state.a += by - } - } - }) - store.dispatch({ - type: TEST, - by: 2 - }) - expect(store.state.a).to.equal(3) - }) - - it('console.warn when action is not a function', function () { - sinon.spy(console, 'warn') - - new Vue({ - vuex: { - actions: { - test: undefined - } - } - }) - - expect(console.warn).to.have.been.calledWith('[vuex] Action bound to key \'vuex.actions.test\' is not a function.') - console.warn.restore() - }) - - it('console.warn when getter is not a function', function () { - const store = new Vuex.Store({ - state: { - a: 1 - }, - mutations: { - [TEST] (state, amount) { - state.a += amount - } - } - }) - sinon.spy(console, 'warn') - - new Vue({ - store, - vuex: { - getters: { - test: undefined - } - } - }) - - expect(console.warn).to.have.been.calledWith('[vuex] Getter bound to key \'vuex.getters.test\' is not a function.') - console.warn.restore() - }) }) From 7ed91c1dd962a479af8e39e99c1c8396315cdf07 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 16:10:39 -0400 Subject: [PATCH 166/969] fix getters --- src/index.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/index.js b/src/index.js index e99ee95fd..6c1cd0ee0 100644 --- a/src/index.js +++ b/src/index.js @@ -252,6 +252,7 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { if (!modules) return getters Object.keys(modules).forEach(key => { const module = modules[key] + const modulePath = path.concat(key) if (module.getters) { Object.keys(module.getters).forEach(getterKey => { const rawGetter = module.getters[getterKey] @@ -260,11 +261,11 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { return } getters[getterKey] = function wrappedGetter (state) { - return rawGetter(getNestedState(state, path)) + return rawGetter(getNestedState(state, modulePath)) } }) } - extractModuleGetters(getters, module.modules, path.concat(key)) + extractModuleGetters(getters, module.modules, modulePath) }) return getters } From adebb52491670fe55816bbd696b48358cf840c89 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 21:30:42 -0400 Subject: [PATCH 167/969] complete unit tests --- test/unit/test.js | 457 +++++++++++++++++++++++++++++----------------- 1 file changed, 286 insertions(+), 171 deletions(-) diff --git a/test/unit/test.js b/test/unit/test.js index b1ba73c28..c55a4d28c 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -9,6 +9,7 @@ Vue.use(Vuex) chai.use(sinonChai) const TEST = 'TEST' +const TEST2 = 'TEST2' describe('Vuex', () => { it('committing mutations', () => { @@ -393,177 +394,31 @@ describe('Vuex', () => { }) }) - // it('dispatching multiple actions in different modules', () => { - - // }) - - // it('hot reload', function () { - // const mutations = { - // [TEST] (state, n) { - // state.a += n - // } - // } - // const store = new Vuex.Store({ - // state: { - // a: 1 - // }, - // mutations, - // modules: { - // nested: { - // state: { a: 2 }, - // mutations, - // modules: { - // one: { - // state: { a: 3 }, - // mutations - // }, - // nested: { - // modules: { - // two: { - // state: { a: 4 }, - // mutations - // }, - // three: { - // state: { a: 5 }, - // mutations - // } - // } - // } - // } - // }, - // four: { - // state: { a: 6 }, - // mutations - // } - // } - // }) - // store.dispatch(TEST, 1) - // expect(store.state.a).to.equal(2) - // expect(store.state.nested.a).to.equal(3) - // expect(store.state.nested.one.a).to.equal(4) - // expect(store.state.nested.nested.two.a).to.equal(5) - // expect(store.state.nested.nested.three.a).to.equal(6) - // expect(store.state.four.a).to.equal(7) - - // // hot reload only root mutations - // store.hotUpdate({ - // mutations: { - // [TEST] (state, n) { - // state.a = n - // } - // } - // }) - // store.dispatch(TEST, 1) - // expect(store.state.a).to.equal(1) // only root mutation updated - // expect(store.state.nested.a).to.equal(4) - // expect(store.state.nested.one.a).to.equal(5) - // expect(store.state.nested.nested.two.a).to.equal(6) - // expect(store.state.nested.nested.three.a).to.equal(7) - // expect(store.state.four.a).to.equal(8) - - // // hot reload modules - // store.hotUpdate({ - // modules: { - // nested: { - // state: { a: 234 }, - // mutations, - // modules: { - // one: { - // state: { a: 345 }, - // mutations - // }, - // nested: { - // modules: { - // two: { - // state: { a: 456 }, - // mutations - // }, - // three: { - // state: { a: 567 }, - // mutations - // } - // } - // } - // } - // }, - // four: { - // state: { a: 678 }, - // mutations - // } - // } - // }) - // store.dispatch(TEST, 2) - // expect(store.state.a).to.equal(2) - // expect(store.state.nested.a).to.equal(6) // should not reload initial state - // expect(store.state.nested.one.a).to.equal(7) // should not reload initial state - // expect(store.state.nested.nested.two.a).to.equal(8) // should not reload initial state - // expect(store.state.nested.nested.three.a).to.equal(9) // should not reload initial state - // expect(store.state.four.a).to.equal(10) // should not reload initial state - - // // hot reload all - // store.hotUpdate({ - // mutations: { - // [TEST] (state, n) { - // state.a -= n - // } - // }, - // modules: { - // nested: { - // state: { a: 234 }, - // mutations: { - // [TEST] (state, n) { - // state.a += n - // } - // }, - // modules: { - // one: { - // state: { a: 345 }, - // mutations: { - // [TEST] (state, n) { - // state.a += n - // } - // } - // }, - // nested: { - // modules: { - // two: { - // state: { a: 456 }, - // mutations: { - // [TEST] (state, n) { - // state.a += n - // } - // } - // }, - // three: { - // state: { a: 567 }, - // mutations: { - // [TEST] (state, n) { - // state.a -= n - // } - // } - // } - // } - // } - // } - // }, - // four: { - // state: { a: 678 }, - // mutations: { - // [TEST] (state, n) { - // state.a -= n - // } - // } - // } - // } - // }) - // store.dispatch(TEST, 3) - // expect(store.state.a).to.equal(-1) - // expect(store.state.nested.a).to.equal(9) - // expect(store.state.nested.one.a).to.equal(10) - // expect(store.state.nested.nested.two.a).to.equal(11) - // expect(store.state.nested.nested.three.a).to.equal(6) - // expect(store.state.four.a).to.equal(7) - // }) + it('dispatching multiple actions in different modules', done => { + const store = new Vuex.Store({ + modules: { + a: { + actions: { + [TEST] () { + return 1 + } + } + }, + b: { + actions: { + [TEST] () { + return new Promise(r => r(2)) + } + } + } + } + }) + store.dispatch(TEST).then(res => { + expect(res[0]).to.equal(1) + expect(res[1]).to.equal(2) + done() + }) + }) it('plugins', function () { let initState @@ -645,4 +500,264 @@ describe('Vuex', () => { store.state.a++ }).to.throw(/Do not mutate vuex store state outside mutation handlers/) }) + + it('hot reload: mutations', function () { + const mutations = { + [TEST] (state, n) { + state.a += n + } + } + const store = new Vuex.Store({ + state: { + a: 1 + }, + mutations, + modules: { + nested: { + state: { a: 2 }, + mutations, + modules: { + one: { + state: { a: 3 }, + mutations + }, + nested: { + modules: { + two: { + state: { a: 4 }, + mutations + }, + three: { + state: { a: 5 }, + mutations + } + } + } + } + }, + four: { + state: { a: 6 }, + mutations + } + } + }) + store.commit(TEST, 1) + expect(store.state.a).to.equal(2) + expect(store.state.nested.a).to.equal(3) + expect(store.state.nested.one.a).to.equal(4) + expect(store.state.nested.nested.two.a).to.equal(5) + expect(store.state.nested.nested.three.a).to.equal(6) + expect(store.state.four.a).to.equal(7) + + // hot reload only root mutations + store.hotUpdate({ + mutations: { + [TEST] (state, n) { + state.a = n + } + } + }) + store.commit(TEST, 1) + expect(store.state.a).to.equal(1) // only root mutation updated + expect(store.state.nested.a).to.equal(4) + expect(store.state.nested.one.a).to.equal(5) + expect(store.state.nested.nested.two.a).to.equal(6) + expect(store.state.nested.nested.three.a).to.equal(7) + expect(store.state.four.a).to.equal(8) + + // hot reload modules + store.hotUpdate({ + modules: { + nested: { + state: { a: 234 }, + mutations, + modules: { + one: { + state: { a: 345 }, + mutations + }, + nested: { + modules: { + two: { + state: { a: 456 }, + mutations + }, + three: { + state: { a: 567 }, + mutations + } + } + } + } + }, + four: { + state: { a: 678 }, + mutations + } + } + }) + store.commit(TEST, 2) + expect(store.state.a).to.equal(2) + expect(store.state.nested.a).to.equal(6) // should not reload initial state + expect(store.state.nested.one.a).to.equal(7) // should not reload initial state + expect(store.state.nested.nested.two.a).to.equal(8) // should not reload initial state + expect(store.state.nested.nested.three.a).to.equal(9) // should not reload initial state + expect(store.state.four.a).to.equal(10) // should not reload initial state + + // hot reload all + store.hotUpdate({ + mutations: { + [TEST] (state, n) { + state.a -= n + } + }, + modules: { + nested: { + state: { a: 234 }, + mutations: { + [TEST] (state, n) { + state.a += n + } + }, + modules: { + one: { + state: { a: 345 }, + mutations: { + [TEST] (state, n) { + state.a += n + } + } + }, + nested: { + modules: { + two: { + state: { a: 456 }, + mutations: { + [TEST] (state, n) { + state.a += n + } + } + }, + three: { + state: { a: 567 }, + mutations: { + [TEST] (state, n) { + state.a -= n + } + } + } + } + } + } + }, + four: { + state: { a: 678 }, + mutations: { + [TEST] (state, n) { + state.a -= n + } + } + } + } + }) + store.commit(TEST, 3) + expect(store.state.a).to.equal(-1) + expect(store.state.nested.a).to.equal(9) + expect(store.state.nested.one.a).to.equal(10) + expect(store.state.nested.nested.two.a).to.equal(11) + expect(store.state.nested.nested.three.a).to.equal(6) + expect(store.state.four.a).to.equal(7) + }) + + it('hot reload: actions', () => { + const store = new Vuex.Store({ + state: { + list: [] + }, + mutations: { + [TEST] (state, n) { + state.list.push(n) + } + }, + actions: { + [TEST] ({ commit }) { + commit(TEST, 1) + } + }, + modules: { + a: { + actions: { + [TEST] ({ commit }) { + commit(TEST, 2) + } + } + } + } + }) + store.dispatch(TEST) + expect(store.state.list.join()).to.equal('1,2') + + // update root + store.hotUpdate({ + actions: { + [TEST] ({ commit }) { + commit(TEST, 3) + } + } + }) + store.dispatch(TEST) + expect(store.state.list.join()).to.equal('1,2,3,2') + + // update modules + store.hotUpdate({ + actions: { + [TEST] ({ commit }) { + commit(TEST, 4) + } + }, + modules: { + a: { + actions: { + [TEST] ({ commit }) { + commit(TEST, 5) + } + } + } + } + }) + store.dispatch(TEST) + expect(store.state.list.join()).to.equal('1,2,3,2,4,5') + }) + + it('hot reload: getters', done => { + const store = new Vuex.Store({ + state: { + count: 0 + }, + mutations: { + inc: state => state.count++ + }, + getters: { + hasAny: state => state.count > 0 + } + }) + + const spy = sinon.spy() + const vm = new Vue({ + computed: { + a: () => store.getters.hasAny + }, + watch: { + a: spy + } + }) + + expect(vm.a).to.equal(false) + store.commit('inc') + expect(vm.a).to.equal(true) + Vue.nextTick(() => { + expect(spy).to.have.been.called + done() + }) + }) }) From 28b10096b0ed3a82d2f4c8a8ca2290ebd573e0d0 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 21:43:43 -0400 Subject: [PATCH 168/969] [build] 2.0.0-rc.1 --- dist/vuex.js | 846 +++++++++++++++++++---------------------------- dist/vuex.min.js | 4 +- 2 files changed, 351 insertions(+), 499 deletions(-) diff --git a/dist/vuex.js b/dist/vuex.js index 907e0654a..6e41488e8 100644 --- a/dist/vuex.js +++ b/dist/vuex.js @@ -1,5 +1,5 @@ /*! - * Vuex v1.0.0-rc + * Vuex v2.0.0-rc.1 * (c) 2016 Evan You * Released under the MIT License. */ @@ -9,121 +9,6 @@ (global.Vuex = factory()); }(this, function () { 'use strict'; - var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { - return typeof obj; - } : function (obj) { - return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; - }; - - var classCallCheck = function (instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - }; - - var createClass = function () { - function defineProperties(target, props) { - for (var i = 0; i < props.length; i++) { - var descriptor = props[i]; - descriptor.enumerable = descriptor.enumerable || false; - descriptor.configurable = true; - if ("value" in descriptor) descriptor.writable = true; - Object.defineProperty(target, descriptor.key, descriptor); - } - } - - return function (Constructor, protoProps, staticProps) { - if (protoProps) defineProperties(Constructor.prototype, protoProps); - if (staticProps) defineProperties(Constructor, staticProps); - return Constructor; - }; - }(); - - var toConsumableArray = function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) arr2[i] = arr[i]; - - return arr2; - } else { - return Array.from(arr); - } - }; - - /** - * Merge an array of objects into one. - * - * @param {Array} arr - * @return {Object} - */ - - function mergeObjects(arr) { - return arr.reduce(function (prev, obj) { - Object.keys(obj).forEach(function (key) { - var existing = prev[key]; - if (existing) { - // allow multiple mutation objects to contain duplicate - // handlers for the same mutation type - if (Array.isArray(existing)) { - prev[key] = existing.concat(obj[key]); - } else { - prev[key] = [existing].concat(obj[key]); - } - } else { - prev[key] = obj[key]; - } - }); - return prev; - }, {}); - } - - /** - * Check whether the given value is Object or not - * - * @param {*} obj - * @return {Boolean} - */ - - function isObject(obj) { - return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object'; - } - - /** - * Get state sub tree by given keys. - * - * @param {Object} state - * @param {Array} nestedKeys - * @return {Object} - */ - function getNestedState(state, nestedKeys) { - return nestedKeys.reduce(function (state, key) { - return state[key]; - }, state); - } - - /** - * Hacks to get access to Vue internals. - * Maybe we should expose these... - */ - - var Watcher = void 0; - function getWatcher(vm) { - if (!Watcher) { - var noop = function noop() {}; - var unwatch = vm.$watch(noop, noop); - Watcher = vm._watchers[0].constructor; - unwatch(); - } - return Watcher; - } - - var Dep = void 0; - function getDep(vm) { - if (!Dep) { - Dep = vm._data.__ob__.dep.constructor; - } - return Dep; - } - var hook = typeof window !== 'undefined' && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; function devtoolPlugin(store) { @@ -135,12 +20,12 @@ store.replaceState(targetState); }); - store.on('mutation', function (mutation, state) { + store.subscribe(function (mutation, state) { hook.emit('vuex:mutation', mutation, state); }); } - function override (Vue) { + function applyMixin (Vue) { var version = Number(Vue.version.split('.')[0]); if (version >= 2) { @@ -166,440 +51,332 @@ function vuexInit() { var options = this.$options; - var store = options.store; - var vuex = options.vuex; // store injection - - if (store) { - this.$store = store; + if (options.store) { + this.$store = options.store; } else if (options.parent && options.parent.$store) { this.$store = options.parent.$store; } - // vuex option handling - if (vuex) { - if (!this.$store) { - console.warn('[vuex] store not injected. make sure to ' + 'provide the store option in your root component.'); - } - var state = vuex.state; - var actions = vuex.actions; - var getters = vuex.getters; - // handle deprecated state option - - if (state && !getters) { - console.warn('[vuex] vuex.state option will been deprecated in 1.0. ' + 'Use vuex.getters instead.'); - getters = state; - } - // getters - if (getters) { - options.computed = options.computed || {}; - for (var key in getters) { - defineVuexGetter(this, key, getters[key]); - } - } - // actions - if (actions) { - options.methods = options.methods || {}; - for (var _key in actions) { - options.methods[_key] = makeBoundAction(this.$store, actions[_key], _key); - } - } - } - } - - /** - * Setter for all getter properties. - */ - - function setter() { - throw new Error('vuex getter properties are read-only.'); } + } - /** - * Define a Vuex getter on an instance. - * - * @param {Vue} vm - * @param {String} key - * @param {Function} getter - */ + function mapGetters(getters) { + var res = {}; + normalizeMap(getters).forEach(function (_ref) { + var key = _ref.key; + var val = _ref.val; - function defineVuexGetter(vm, key, getter) { - if (typeof getter !== 'function') { - console.warn('[vuex] Getter bound to key \'vuex.getters.' + key + '\' is not a function.'); - } else { - Object.defineProperty(vm, key, { - enumerable: true, - configurable: true, - get: makeComputedGetter(vm.$store, getter), - set: setter - }); - } - } + res[key] = function mappedGetter() { + if (!(val in this.$store.getters)) { + console.error("[vuex] unknown getter: " + val); + } + return this.$store.getters[val]; + }; + }); + return res; + } - /** - * Make a computed getter, using the same caching mechanism of computed - * properties. In addition, it is cached on the raw getter function using - * the store's unique cache id. This makes the same getter shared - * across all components use the same underlying watcher, and makes - * the getter evaluated only once during every flush. - * - * @param {Store} store - * @param {Function} getter - */ + function mapActions(actions) { + var res = {}; + normalizeMap(actions).forEach(function (_ref2) { + var key = _ref2.key; + var val = _ref2.val; - function makeComputedGetter(store, getter) { - var id = store._getterCacheId; + res[key] = function mappedAction() { + var _$store; - // cached - if (getter[id]) { - return getter[id]; - } - var vm = store._vm; - var Watcher = getWatcher(vm); - var Dep = getDep(vm); - var watcher = new Watcher(vm, function (vm) { - return getter(vm.state); - }, null, { lazy: true }); - var computedGetter = function computedGetter() { - if (watcher.dirty) { - watcher.evaluate(); - } - if (Dep.target) { - watcher.depend(); + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; } - return watcher.value; + + return (_$store = this.$store).dispatch.apply(_$store, [val].concat(args)); }; - getter[id] = computedGetter; - return computedGetter; - } + }); + return res; + } - /** - * Make a bound-to-store version of a raw action function. - * - * @param {Store} store - * @param {Function} action - * @param {String} key - */ + function normalizeMap(map) { + return Array.isArray(map) ? map.map(function (key) { + return { key: key, val: key }; + }) : Object.keys(map).map(function (key) { + return { key: key, val: map[key] }; + }); + } - function makeBoundAction(store, action, key) { - if (typeof action !== 'function') { - console.warn('[vuex] Action bound to key \'vuex.actions.' + key + '\' is not a function.'); - } - return function vuexBoundAction() { - for (var _len = arguments.length, args = Array(_len), _key2 = 0; _key2 < _len; _key2++) { - args[_key2] = arguments[_key2]; - } + var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { + return typeof obj; + } : function (obj) { + return obj && typeof Symbol === "function" && obj.constructor === Symbol ? "symbol" : typeof obj; + }; - return action.call.apply(action, [this, store].concat(args)); - }; + var classCallCheck = function (instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); } + }; - // option merging - var merge = Vue.config.optionMergeStrategies.computed; - Vue.config.optionMergeStrategies.vuex = function (toVal, fromVal) { - if (!toVal) return fromVal; - if (!fromVal) return toVal; - return { - getters: merge(toVal.getters, fromVal.getters), - state: merge(toVal.state, fromVal.state), - actions: merge(toVal.actions, fromVal.actions) - }; + var createClass = function () { + function defineProperties(target, props) { + for (var i = 0; i < props.length; i++) { + var descriptor = props[i]; + descriptor.enumerable = descriptor.enumerable || false; + descriptor.configurable = true; + if ("value" in descriptor) descriptor.writable = true; + Object.defineProperty(target, descriptor.key, descriptor); + } + } + + return function (Constructor, protoProps, staticProps) { + if (protoProps) defineProperties(Constructor.prototype, protoProps); + if (staticProps) defineProperties(Constructor, staticProps); + return Constructor; }; - } + }(); - var Vue = void 0; - var uid = 0; + var Vue = void 0; // bind on install var Store = function () { - - /** - * @param {Object} options - * - {Object} state - * - {Object} actions - * - {Object} mutations - * - {Array} plugins - * - {Boolean} strict - */ - function Store() { var _this = this; - var _ref = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; - - var _ref$state = _ref.state; - var state = _ref$state === undefined ? {} : _ref$state; - var _ref$mutations = _ref.mutations; - var mutations = _ref$mutations === undefined ? {} : _ref$mutations; - var _ref$modules = _ref.modules; - var modules = _ref$modules === undefined ? {} : _ref$modules; - var _ref$plugins = _ref.plugins; - var plugins = _ref$plugins === undefined ? [] : _ref$plugins; - var _ref$strict = _ref.strict; - var strict = _ref$strict === undefined ? false : _ref$strict; + var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; classCallCheck(this, Store); - this._getterCacheId = 'vuex_store_' + uid++; - this._dispatching = false; - this._rootMutations = this._mutations = mutations; - this._modules = modules; - this._events = Object.create(null); - // bind dispatch to self - var dispatch = this.dispatch; - this.dispatch = function () { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - dispatch.apply(_this, args); - }; - // use a Vue instance to store the state tree - // suppress warnings just in case the user has added - // some funky global mixins if (!Vue) { throw new Error('[vuex] must call Vue.use(Vuex) before creating a store instance.'); } - var silent = Vue.config.silent; - Vue.config.silent = true; - this._vm = new Vue({ - data: { - state: state - } - }); - Vue.config.silent = silent; - this._setupModuleState(state, modules); - this._setupModuleMutations(modules); - // add extra warnings in strict mode - if (strict) { - this._setupMutationCheck(); + + if (typeof Promise === 'undefined') { + throw new Error('[vuex] vuex requires a Promise polyfill in this browser.'); } + + var _options$state = options.state; + var state = _options$state === undefined ? {} : _options$state; + var _options$modules = options.modules; + var modules = _options$modules === undefined ? {} : _options$modules; + var _options$plugins = options.plugins; + var plugins = _options$plugins === undefined ? [] : _options$plugins; + var _options$strict = options.strict; + var strict = _options$strict === undefined ? false : _options$strict; + + // store internal state + + this._options = options; + this._committing = false; + this._actions = Object.create(null); + this._mutations = Object.create(null); + this._subscribers = []; + + // bind commit and dispatch to self + var store = this; + var dispatch = this.dispatch; + var commit = this.commit; + + this.dispatch = function boundDispatch(type, payload) { + return dispatch.call(store, type, payload); + }; + this.commit = function boundCommit(type, payload) { + return commit.call(store, type, payload); + }; + + // init state and getters + var getters = extractModuleGetters(options.getters, modules); + initStoreState(this, state, getters); + + // apply root module + this.module([], options); + + // strict mode + if (strict) enableStrictMode(this); + // apply plugins - devtoolPlugin(this); - plugins.forEach(function (plugin) { + plugins.concat(devtoolPlugin).forEach(function (plugin) { return plugin(_this); }); } - /** - * Getter for the entire state tree. - * Read only. - * - * @return {Object} - */ - createClass(Store, [{ key: 'replaceState', - - - /** - * Replace root state. - * - * @param {Object} state - */ - value: function replaceState(state) { - this._dispatching = true; + this._committing = true; this._vm.state = state; - this._dispatching = false; + this._committing = false; } - - /** - * Dispatch an action. - * - * @param {String} type - */ - }, { - key: 'dispatch', - value: function dispatch(type) { - for (var _len2 = arguments.length, payload = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) { - payload[_key2 - 1] = arguments[_key2]; - } + key: 'module', + value: function module(path, _module, hot) { + var _this2 = this; - var silent = false; - var isObjectStyleDispatch = false; - // compatibility for object actions, e.g. FSA - if ((typeof type === 'undefined' ? 'undefined' : _typeof(type)) === 'object' && type.type && arguments.length === 1) { - isObjectStyleDispatch = true; - payload = type; - if (type.silent) silent = true; - type = type.type; - } - var handler = this._mutations[type]; - var state = this.state; - if (handler) { - this._dispatching = true; - // apply the mutation - if (Array.isArray(handler)) { - handler.forEach(function (h) { - isObjectStyleDispatch ? h(state, payload) : h.apply(undefined, [state].concat(toConsumableArray(payload))); - }); - } else { - isObjectStyleDispatch ? handler(state, payload) : handler.apply(undefined, [state].concat(toConsumableArray(payload))); - } - this._dispatching = false; - if (!silent) { - var mutation = isObjectStyleDispatch ? payload : { type: type, payload: payload }; - this.emit('mutation', mutation, state); - } - } else { - console.warn('[vuex] Unknown mutation: ' + type); + if (typeof path === 'string') path = [path]; + if (!Array.isArray(path)) { + throw new Error('[vuex] module path must be a string or an Array.'); } - } - /** - * Watch state changes on the store. - * Same API as Vue's $watch, except when watching a function, - * the function gets the state as the first argument. - * - * @param {Function} fn - * @param {Function} cb - * @param {Object} [options] - */ + var isRoot = !path.length; + var state = _module.state; + var actions = _module.actions; + var mutations = _module.mutations; + var modules = _module.modules; - }, { - key: 'watch', - value: function watch(fn, cb, options) { - var _this2 = this; + // set state - if (typeof fn !== 'function') { - console.error('Vuex store.watch only accepts function.'); - return; + if (!isRoot && !hot) { + var parentState = getNestedState(this.state, path.slice(0, -1)); + if (!parentState) debugger; + var moduleName = path[path.length - 1]; + Vue.set(parentState, moduleName, state || {}); } - return this._vm.$watch(function () { - return fn(_this2.state); - }, cb, options); - } - /** - * Hot update mutations & modules. - * - * @param {Object} options - * - {Object} [mutations] - * - {Object} [modules] - */ - - }, { - key: 'hotUpdate', - value: function hotUpdate() { - var _ref2 = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + if (mutations) { + Object.keys(mutations).forEach(function (key) { + _this2.mutation(key, mutations[key], path); + }); + } - var mutations = _ref2.mutations; - var modules = _ref2.modules; + if (actions) { + Object.keys(actions).forEach(function (key) { + _this2.action(key, actions[key], path); + }); + } - this._rootMutations = this._mutations = mutations || this._rootMutations; - this._setupModuleMutations(modules || this._modules); + if (modules) { + Object.keys(modules).forEach(function (key) { + _this2.module(path.concat(key), modules[key], hot); + }); + } } - - /** - * Attach sub state tree of each module to the root tree. - * - * @param {Object} state - * @param {Object} modules - */ - }, { - key: '_setupModuleState', - value: function _setupModuleState(state, modules) { - var _this3 = this; - - if (!isObject(modules)) return; - - Object.keys(modules).forEach(function (key) { - var module = modules[key]; - - // set this module's state - Vue.set(state, key, module.state || {}); - - // retrieve nested modules - _this3._setupModuleState(state[key], module.modules); + key: 'mutation', + value: function mutation(type, handler) { + var path = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + + var entry = this._mutations[type] || (this._mutations[type] = []); + var store = this; + entry.push(function wrappedMutationHandler(payload) { + handler(getNestedState(store.state, path), payload); }); } - - /** - * Bind mutations for each module to its sub tree and - * merge them all into one final mutations map. - * - * @param {Object} updatedModules - */ - }, { - key: '_setupModuleMutations', - value: function _setupModuleMutations(updatedModules) { - var modules = this._modules; - Object.keys(updatedModules).forEach(function (key) { - modules[key] = updatedModules[key]; + key: 'action', + value: function action(type, handler) { + var path = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + + var entry = this._actions[type] || (this._actions[type] = []); + var store = this; + var dispatch = this.dispatch; + var commit = this.commit; + + entry.push(function wrappedActionHandler(payload, cb) { + var res = handler({ + dispatch: dispatch, + commit: commit, + state: getNestedState(store.state, path) + }, payload, cb); + if (!isPromise(res)) { + res = Promise.resolve(res); + } + return res.catch(function (err) { + console.error('[vuex] error in Promise returned from action "' + type + '":'); + console.error(err); + }); }); - var updatedMutations = this._createModuleMutations(modules, []); - this._mutations = mergeObjects([this._rootMutations].concat(toConsumableArray(updatedMutations))); } - - /** - * Helper method for _setupModuleMutations. - * The method retrieve nested sub modules and - * bind each mutations to its sub tree recursively. - * - * @param {Object} modules - * @param {Array} nestedKeys - * @return {Array} - */ - }, { - key: '_createModuleMutations', - value: function _createModuleMutations(modules, nestedKeys) { - var _this4 = this; - - if (!isObject(modules)) return []; - - return Object.keys(modules).map(function (key) { - var module = modules[key]; - var newNestedKeys = nestedKeys.concat(key); - - // retrieve nested modules - var nestedMutations = _this4._createModuleMutations(module.modules, newNestedKeys); - - if (!module || !module.mutations) { - return mergeObjects(nestedMutations); - } - - // bind mutations to sub state tree - var mutations = {}; - Object.keys(module.mutations).forEach(function (name) { - var original = module.mutations[name]; - mutations[name] = function (state) { - for (var _len3 = arguments.length, args = Array(_len3 > 1 ? _len3 - 1 : 0), _key3 = 1; _key3 < _len3; _key3++) { - args[_key3 - 1] = arguments[_key3]; - } - - original.apply(undefined, [getNestedState(state, newNestedKeys)].concat(args)); - }; - }); + key: 'commit', + value: function commit(type, payload) { + var _this3 = this; - // merge mutations of this module and nested modules - return mergeObjects([mutations].concat(toConsumableArray(nestedMutations))); + // check object-style commit + var mutation = void 0; + if (isObject(type) && type.type) { + payload = mutation = type; + type = type.type; + } else { + mutation = { type: type, payload: payload }; + } + var entry = this._mutations[type]; + if (!entry) { + console.error('[vuex] unknown mutation type: ' + type); + return; + } + this._committing = true; + entry.forEach(function commitIterator(handler) { + handler(payload); }); + this._committing = false; + if (!payload || !payload.silent) { + this._subscribers.forEach(function (sub) { + return sub(mutation, _this3.state); + }); + } + } + }, { + key: 'dispatch', + value: function dispatch(type, payload) { + var entry = this._actions[type]; + if (!entry) { + debugger; + console.error('[vuex] unknown action type: ' + type); + return; + } + return entry.length > 1 ? Promise.all(entry.map(function (handler) { + return handler(payload); + })) : entry[0](payload); } - - /** - * Setup mutation check: if the vuex instance's state is mutated - * outside of a mutation handler, we throw en error. This effectively - * enforces all mutations to the state to be trackable and hot-reloadble. - * However, this comes at a run time cost since we are doing a deep - * watch on the entire state tree, so it is only enalbed with the - * strict option is set to true. - */ - }, { - key: '_setupMutationCheck', - value: function _setupMutationCheck() { - var _this5 = this; - - var Watcher = getWatcher(this._vm); - /* eslint-disable no-new */ - new Watcher(this._vm, 'state', function () { - if (!_this5._dispatching) { - throw new Error('[vuex] Do not mutate vuex store state outside mutation handlers.'); + key: 'subscribe', + value: function subscribe(fn) { + var subs = this._subscribers; + if (subs.indexOf(fn) < 0) { + subs.push(fn); + } + return function () { + var i = subs.indexOf(fn); + if (i > -1) { + subs.splice(i, 1); } - }, { deep: true, sync: true }); - /* eslint-enable no-new */ + }; + } + }, { + key: 'hotUpdate', + value: function hotUpdate(newOptions) { + var _this4 = this; + + this._actions = Object.create(null); + this._mutations = Object.create(null); + var options = this._options; + if (newOptions.actions) { + options.actions = newOptions.actions; + } + if (newOptions.mutations) { + options.mutations = newOptions.mutations; + } + if (newOptions.modules) { + for (var key in newOptions.modules) { + options.modules[key] = newOptions.modules[key]; + } + } + this.module([], options, true); + + // update getters + var getters = extractModuleGetters(newOptions.getters, newOptions.modules); + if (Object.keys(getters).length) { + (function () { + var oldVm = _this4._vm; + initStoreState(_this4, _this4.state, getters); + if (_this4.strict) { + enableStrictMode(_this4); + } + // dispatch changes in all subscribed watchers + // to force getter re-evaluation. + _this4._committing = true; + oldVm.state = null; + _this4._committing = false; + Vue.nextTick(function () { + return oldVm.$destroy(); + }); + })(); + } } }, { key: 'state', @@ -613,17 +390,90 @@ return Store; }(); + function initStoreState(store, state, getters) { + // bind getters + store.getters = {}; + var computed = {}; + Object.keys(getters).forEach(function (key) { + var fn = getters[key]; + // use computed to leverage its lazy-caching mechanism + computed[key] = function () { + return fn(store._vm.state); + }; + Object.defineProperty(store.getters, key, { + get: function get() { + return store._vm[key]; + } + }); + }); + + // use a Vue instance to store the state tree + // suppress warnings just in case the user has added + // some funky global mixins + var silent = Vue.config.silent; + Vue.config.silent = true; + store._vm = new Vue({ + data: { state: state }, + computed: computed + }); + Vue.config.silent = silent; + } + + function extractModuleGetters() { + var getters = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; + var modules = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1]; + var path = arguments.length <= 2 || arguments[2] === undefined ? [] : arguments[2]; + + if (!modules) return getters; + Object.keys(modules).forEach(function (key) { + var module = modules[key]; + var modulePath = path.concat(key); + if (module.getters) { + Object.keys(module.getters).forEach(function (getterKey) { + var rawGetter = module.getters[getterKey]; + if (getters[getterKey]) { + console.error('[vuex] duplicate getter key: ' + getterKey); + return; + } + getters[getterKey] = function wrappedGetter(state) { + return rawGetter(getNestedState(state, modulePath)); + }; + }); + } + extractModuleGetters(getters, module.modules, modulePath); + }); + return getters; + } + + function enableStrictMode(store) { + store._vm.$watch('state', function () { + if (!store._committing) { + throw new Error('[vuex] Do not mutate vuex store state outside mutation handlers.'); + } + }, { deep: true, sync: true }); + } + + function isObject(obj) { + return obj !== null && (typeof obj === 'undefined' ? 'undefined' : _typeof(obj)) === 'object'; + } + + function isPromise(val) { + return val && typeof val.then === 'function'; + } + + function getNestedState(state, path) { + return path.reduce(function (state, key) { + return state[key]; + }, state); + } + function install(_Vue) { if (Vue) { - console.warn('[vuex] already installed. Vue.use(Vuex) should be called only once.'); + console.error('[vuex] already installed. Vue.use(Vuex) should be called only once.'); return; } - Vue = _Vue - // reuse Vue's event system - ;['on', 'off', 'once', 'emit'].forEach(function (e) { - Store.prototype[e] = Store.prototype['$' + e] = Vue.prototype['$' + e]; - }); - override(Vue); + Vue = _Vue; + applyMixin(Vue); } // auto install in dist mode @@ -633,7 +483,9 @@ var index = { Store: Store, - install: install + install: install, + mapGetters: mapGetters, + mapActions: mapActions }; return index; diff --git a/dist/vuex.min.js b/dist/vuex.min.js index dabe182d6..19fe20eba 100644 --- a/dist/vuex.min.js +++ b/dist/vuex.min.js @@ -1,6 +1,6 @@ /*! - * Vuex v1.0.0-rc + * Vuex v2.0.0-rc.1 * (c) 2016 Evan You * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vuex=e()}(this,function(){"use strict";function t(t){return t.reduce(function(t,e){return Object.keys(e).forEach(function(n){var o=t[n];o?Array.isArray(o)?t[n]=o.concat(e[n]):t[n]=[o].concat(e[n]):t[n]=e[n]}),t},{})}function e(t){return null!==t&&"object"===("undefined"==typeof t?"undefined":s(t))}function n(t,e){return e.reduce(function(t,e){return t[e]},t)}function o(t){if(!d){var e=function(){},n=t.$watch(e,e);d=t._watchers[0].constructor,n()}return d}function i(t){return v||(v=t._data.__ob__.dep.constructor),v}function r(t){h&&(h.emit("vuex:init",t),h.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.on("mutation",function(t,e){h.emit("vuex:mutation",t,e)}))}function u(t){function e(){var t=this.$options,e=t.store,n=t.vuex;if(e?this.$store=e:t.parent&&t.parent.$store&&(this.$store=t.parent.$store),n){this.$store||console.warn("[vuex] store not injected. make sure to provide the store option in your root component.");var o=n.state,i=n.actions,u=n.getters;if(o&&!u&&(console.warn("[vuex] vuex.state option will been deprecated in 1.0. Use vuex.getters instead."),u=o),u){t.computed=t.computed||{};for(var s in u)r(this,s,u[s])}if(i){t.methods=t.methods||{};for(var c in i)t.methods[c]=a(this.$store,i[c],c)}}}function n(){throw new Error("vuex getter properties are read-only.")}function r(t,e,o){"function"!=typeof o?console.warn("[vuex] Getter bound to key 'vuex.getters."+e+"' is not a function."):Object.defineProperty(t,e,{enumerable:!0,configurable:!0,get:u(t.$store,o),set:n})}function u(t,e){var n=t._getterCacheId;if(e[n])return e[n];var r=t._vm,u=o(r),a=i(r),s=new u(r,function(t){return e(t.state)},null,{lazy:!0}),c=function(){return s.dirty&&s.evaluate(),a.target&&s.depend(),s.value};return e[n]=c,c}function a(t,e,n){return"function"!=typeof e&&console.warn("[vuex] Action bound to key 'vuex.actions."+n+"' is not a function."),function(){for(var n=arguments.length,o=Array(n),i=0;i=2){var c=t.config._lifecycleHooks.indexOf("init")>-1;t.mixin(c?{init:e}:{beforeCreate:e})}else!function(){var n=t.prototype._init;t.prototype._init=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];t.init=t.init?[e].concat(t.init):e,n.call(this,t)}}();var f=t.config.optionMergeStrategies.computed;t.config.optionMergeStrategies.vuex=function(t,e){return t?e?{getters:f(t.getters,e.getters),state:f(t.state,e.state),actions:f(t.actions,e.actions)}:t:e}}function a(t){return p?void console.warn("[vuex] already installed. Vue.use(Vuex) should be called only once."):(p=t,["on","off","once","emit"].forEach(function(t){m.prototype[t]=m.prototype["$"+t]=p.prototype["$"+t]}),void u(p))}var s="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol?"symbol":typeof t},c=function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")},f=function(){function t(t,e){for(var n=0;n1?e-1:0),o=1;o1?o-1:0),r=1;r=2){var o=t.config._lifecycleHooks.indexOf("init")>-1;t.mixin(o?{init:e}:{beforeCreate:e})}else!function(){var n=t.prototype._init;t.prototype._init=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];t.init=t.init?[e].concat(t.init):e,n.call(this,t)}}()}function n(t){var e={};return i(t).forEach(function(t){var n=t.key,o=t.val;e[n]=function(){return o in this.$store.getters||console.error("[vuex] unknown getter: "+o),this.$store.getters[o]}}),e}function o(t){var e={};return i(t).forEach(function(t){var n=t.key,o=t.val;e[n]=function(){for(var t,e=arguments.length,n=Array(e),i=0;i1?Promise.all(n.map(function(t){return t(e)})):n[0](e):void console.error("[vuex] unknown action type: "+t)}},{key:"subscribe",value:function(t){var e=this._subscribers;return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}},{key:"hotUpdate",value:function(t){var e=this;this._actions=Object.create(null),this._mutations=Object.create(null);var n=this._options;if(t.actions&&(n.actions=t.actions),t.mutations&&(n.mutations=t.mutations),t.modules)for(var o in t.modules)n.modules[o]=t.modules[o];this.module([],n,!0);var i=s(t.getters,t.modules);Object.keys(i).length&&!function(){var t=e._vm;r(e,e.state,i),e.strict&&u(e),e._committing=!0,t.state=null,e._committing=!1,y.nextTick(function(){return t.$destroy()})}()}},{key:"state",get:function(){return this._vm.state},set:function(t){throw new Error("[vuex] Use store.replaceState() to explicit replace store state.")}}]),e}();"undefined"!=typeof window&&window.Vue&&l(window.Vue);var g={Store:p,install:l,mapGetters:n,mapActions:o};return g}); \ No newline at end of file From 54a1dd27442637c8f62892b15a04d6e900eaaac1 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 4 Jul 2016 21:43:43 -0400 Subject: [PATCH 169/969] [release] 2.0.0-rc.1 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 29461e2a9..ba5caf243 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "1.0.0-rc", + "version": "2.0.0-rc.1", "description": "state management for Vue.js", "main": "dist/vuex.js", "files": [ From 234a3bf7cb3c46ee85bb26472279bbe0be6b8daf Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 6 Jul 2016 01:33:31 -0400 Subject: [PATCH 170/969] update docs for 1.0-rc.2 --- docs/en/api.md | 15 ++++++++------- docs/en/plugins.md | 6 +++--- 2 files changed, 11 insertions(+), 10 deletions(-) diff --git a/docs/en/api.md b/docs/en/api.md index f5c0f6d5a..5bdfad2eb 100644 --- a/docs/en/api.md +++ b/docs/en/api.md @@ -102,12 +102,13 @@ const store = new Vuex.Store({ ...options }) Hot swap new actions and mutations. [Details](hot-reload.md) -- **on(event: String, cb: Function)** +- **subscribe(handler: Function)** -- **once(event: String, cb: Function)** + Subscribe to store mutations. The `handler` is called after every mutaiton and receives the mutation descriptor and post-mutation state as arguments: -- **off([event: String, cb: Function])** - -- **emit(event: String, ...args)** - - Same event interface as found on a Vue instance. The only event the store emits is `mutation` (see [Plugins](plugins.md)). + ``` js + store.subscribe((mutation, state) => { + console.log(mutation.type) + console.log(mutation.payload) + }) + ``` diff --git a/docs/en/plugins.md b/docs/en/plugins.md index 2e7e10dfa..6dd4db089 100644 --- a/docs/en/plugins.md +++ b/docs/en/plugins.md @@ -5,7 +5,7 @@ Vuex stores accept the `plugins` option that exposes hooks for each mutation. A ``` js const myPlugin = store => { // called when the store is initialized - store.on('mutation', (mutation, state) => { + store.subscribe((mutation, state) => { // called after every mutation. // The mutation comes in the format of { type, payload } for normal // dispatches, and will be the original mutation object for object-style @@ -35,7 +35,7 @@ export default function createWebSocketPlugin (socket) { socket.on('data', data => { store.dispatch('RECEIVE_DATA', data) }) - store.on('mutation', (mutation) => { + store.subscribe(mutation => { if (mutation.type === 'UPDATE_DATA') { socket.emit('update', mutation.payload) } @@ -61,7 +61,7 @@ Sometimes a plugin may want to receive "snapshots" of the state, and also compar ``` js const myPluginWithSnapshot = store => { let prevState = _.cloneDeep(store.state) - store.on('mutation', (mutation, state) => { + store.subscribe((mutation, state) => { let nextState = _.cloneDeep(state) // compare prevState and nextState... From 3d08a0196a7f05e3225aee8cdce8d63da5857a7b Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 6 Jul 2016 11:55:02 -0400 Subject: [PATCH 171/969] emit errors to devtool instead --- src/index.js | 12 ++++++++---- src/plugins/devtool.js | 12 +++++++----- test/unit/test.js | 23 +++++++++++++++-------- 3 files changed, 30 insertions(+), 17 deletions(-) diff --git a/src/index.js b/src/index.js index 6c1cd0ee0..2e2ad3de4 100644 --- a/src/index.js +++ b/src/index.js @@ -132,10 +132,14 @@ class Store { if (!isPromise(res)) { res = Promise.resolve(res) } - return res.catch(err => { - console.error(`[vuex] error in Promise returned from action "${type}":`) - console.error(err) - }) + if (store._devtoolHook) { + return res.catch(err => { + store._devtoolHook.emit('vuex:error', err) + throw err + }) + } else { + return res + } }) } diff --git a/src/plugins/devtool.js b/src/plugins/devtool.js index 29a0f7e65..a6df685f0 100644 --- a/src/plugins/devtool.js +++ b/src/plugins/devtool.js @@ -1,17 +1,19 @@ -const hook = +const devtoolHook = typeof window !== 'undefined' && window.__VUE_DEVTOOLS_GLOBAL_HOOK__ export default function devtoolPlugin (store) { - if (!hook) return + if (!devtoolHook) return - hook.emit('vuex:init', store) + store._devtoolHook = devtoolHook - hook.on('vuex:travel-to-state', targetState => { + devtoolHook.emit('vuex:init', store) + + devtoolHook.on('vuex:travel-to-state', targetState => { store.replaceState(targetState) }) store.subscribe((mutation, state) => { - hook.emit('vuex:mutation', mutation, state) + devtoolHook.emit('vuex:mutation', mutation, state) }) } diff --git a/test/unit/test.js b/test/unit/test.js index c55a4d28c..bb81b3de1 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -108,22 +108,29 @@ describe('Vuex', () => { }) }) - it('capturing action Promise errors', done => { - const spy = sinon.spy(console, 'error') + it('detecting action Promise errors', done => { const store = new Vuex.Store({ actions: { [TEST] () { return new Promise((resolve, reject) => { - reject(new Error()) + reject('no') }) } } }) - store.dispatch(TEST).then(() => { - expect(spy).to.have.been.calledWith(`[vuex] error in Promise returned from action "${TEST}":`) - spy.restore() - done() - }) + const spy = sinon.spy() + store._devtoolHook = { + emit: spy + } + const thenSpy = sinon.spy() + store.dispatch(TEST) + .then(thenSpy) + .catch(err => { + expect(thenSpy).not.to.have.been.called + expect(err).to.equal('no') + expect(spy).to.have.been.calledWith('vuex:error', 'no') + done() + }) }) it('getters', () => { From 5d67ee5062e3b8fe29e2f9979e2c51cfbd86f4db Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 6 Jul 2016 12:04:36 -0400 Subject: [PATCH 172/969] use assert util fn --- src/index.js | 35 ++++++++++++++--------------------- 1 file changed, 14 insertions(+), 21 deletions(-) diff --git a/src/index.js b/src/index.js index 2e2ad3de4..7b3116163 100644 --- a/src/index.js +++ b/src/index.js @@ -6,17 +6,8 @@ let Vue // bind on install class Store { constructor (options = {}) { - if (!Vue) { - throw new Error( - '[vuex] must call Vue.use(Vuex) before creating a store instance.' - ) - } - - if (typeof Promise === 'undefined') { - throw new Error( - '[vuex] vuex requires a Promise polyfill in this browser.' - ) - } + assert(Vue, `must call Vue.use(Vuex) before creating a store instance.`) + assert(typeof Promise !== 'undefined', `vuex requires a Promise polyfill in this browser.`) const { state = {}, @@ -61,7 +52,7 @@ class Store { } set state (v) { - throw new Error('[vuex] Use store.replaceState() to explicit replace store state.') + assert(false, `Use store.replaceState() to explicit replace store state.`) } replaceState (state) { @@ -72,9 +63,7 @@ class Store { module (path, module, hot) { if (typeof path === 'string') path = [path] - if (!Array.isArray(path)) { - throw new Error('[vuex] module path must be a string or an Array.') - } + assert(Array.isArray(path), `module path must be a string or an Array.`) const isRoot = !path.length const { @@ -170,7 +159,6 @@ class Store { dispatch (type, payload) { const entry = this._actions[type] if (!entry) { - debugger console.error(`[vuex] unknown action type: ${type}`) return } @@ -192,6 +180,11 @@ class Store { } } + watch (getter, cb, options) { + assert(typeof getter === 'function', `store.watch only accepts a function.`) + return this._vm.$watch(() => getter(this.state), cb, options) + } + hotUpdate (newOptions) { this._actions = Object.create(null) this._mutations = Object.create(null) @@ -227,6 +220,10 @@ class Store { } } +function assert (condition, msg) { + if (!condition) throw new Error(`[vuex] ${msg}`) +} + function initStoreState (store, state, getters) { // bind getters store.getters = {} @@ -276,11 +273,7 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { function enableStrictMode (store) { store._vm.$watch('state', () => { - if (!store._committing) { - throw new Error( - '[vuex] Do not mutate vuex store state outside mutation handlers.' - ) - } + assert(store._committing, `Do not mutate vuex store state outside mutation handlers.`) }, { deep: true, sync: true }) } From 6a0e4300615a7c6aa024f600098a5c16175b3ba6 Mon Sep 17 00:00:00 2001 From: Evan You Date: Wed, 6 Jul 2016 14:58:42 -0400 Subject: [PATCH 173/969] implement onActionsResolved --- src/index.js | 13 ++++++++++++- test/unit/test.js | 39 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 51 insertions(+), 1 deletion(-) diff --git a/src/index.js b/src/index.js index 7b3116163..139a4c0b2 100644 --- a/src/index.js +++ b/src/index.js @@ -22,6 +22,7 @@ class Store { this._actions = Object.create(null) this._mutations = Object.create(null) this._subscribers = [] + this._pendingActions = [] // bind commit and dispatch to self const store = this @@ -162,9 +163,19 @@ class Store { console.error(`[vuex] unknown action type: ${type}`) return } - return entry.length > 1 + const res = entry.length > 1 ? Promise.all(entry.map(handler => handler(payload))) : entry[0](payload) + const pending = this._pendingActions + pending.push(res) + return res.then(value => { + pending.splice(pending.indexOf(res), 1) + return value + }) + } + + onActionsResolved (cb) { + Promise.all(this._pendingActions).then(cb) } subscribe (fn) { diff --git a/test/unit/test.js b/test/unit/test.js index bb81b3de1..31d09d459 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -133,6 +133,45 @@ describe('Vuex', () => { }) }) + it('onActionsResolved', done => { + const store = new Vuex.Store({ + state: { + count: 0 + }, + mutations: { + inc: state => state.count++ + }, + actions: { + one ({ commit }) { + return new Promise(r => { + commit('inc') + r(1) + }) + }, + two ({ commit }) { + return new Promise(r => { + setTimeout(() => { + commit('inc') + r(2) + }, 0) + }) + } + } + }) + store.dispatch('one') + store.dispatch('two') + expect(store.state.count).to.equal(1) + expect(store._pendingActions.length).to.equal(2) + store.onActionsResolved(res => { + expect(store._pendingActions.length).to.equal(0) + expect(store.state.count).to.equal(2) + expect(res.length).to.equal(2) + expect(res[0]).to.equal(1) + expect(res[1]).to.equal(2) + done() + }) + }) + it('getters', () => { const store = new Vuex.Store({ state: { From 17d80ffd07e76d961b99971280ce6bf6c4d4bb00 Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 8 Jul 2016 18:26:49 -0400 Subject: [PATCH 174/969] test dynamic module registration (fix #243) --- src/index.js | 2 ++ test/unit/test.js | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/src/index.js b/src/index.js index 139a4c0b2..f6c3bce26 100644 --- a/src/index.js +++ b/src/index.js @@ -63,6 +63,7 @@ class Store { } module (path, module, hot) { + this._committing = true if (typeof path === 'string') path = [path] assert(Array.isArray(path), `module path must be a string or an Array.`) @@ -99,6 +100,7 @@ class Store { this.module(path.concat(key), modules[key], hot) }) } + this._committing = false } mutation (type, handler, path = []) { diff --git a/test/unit/test.js b/test/unit/test.js index 31d09d459..95e64b9bf 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -191,6 +191,21 @@ describe('Vuex', () => { expect(store.getters.hasAny).to.equal(true) }) + it('dynamic module registration', () => { + const store = new Vuex.Store({ + strict: true + }) + expect(() => { + store.module('hi', { + state: { a: 1 }, + mutations: { inc: state => state.a++ } + }) + }).not.to.throw() + expect(store.state.hi.a).to.equal(1) + store.commit('inc') + expect(store.state.hi.a).to.equal(2) + }) + it('store injection', () => { const store = new Vuex.Store() const vm = new Vue({ From b2f2514e128505a82baf1f293d088f0424e50671 Mon Sep 17 00:00:00 2001 From: katashin Date: Sun, 10 Jul 2016 01:39:27 +0900 Subject: [PATCH 175/969] Expose getters into actions (#245) * expose getters into actions (Fix #244) * improve getters test for hot reload --- src/index.js | 1 + test/unit/test.js | 38 ++++++++++++++++++++++++++++++++++---- 2 files changed, 35 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index f6c3bce26..607c1b8ec 100644 --- a/src/index.js +++ b/src/index.js @@ -119,6 +119,7 @@ class Store { let res = handler({ dispatch, commit, + getters: store.getters, state: getNestedState(store.state, path) }, payload, cb) if (!isPromise(res)) { diff --git a/test/unit/test.js b/test/unit/test.js index 95e64b9bf..dfd4c3bd7 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -184,11 +184,21 @@ describe('Vuex', () => { [TEST] (state, n) { state.a += n } + }, + actions: { + check ({ getters }, value) { + // check for exposing getters into actions + expect(getters.hasAny).to.equal(value) + } } }) expect(store.getters.hasAny).to.equal(false) + store.dispatch('check', false) + store.commit(TEST, 1) + expect(store.getters.hasAny).to.equal(true) + store.dispatch('check', true) }) it('dynamic module registration', () => { @@ -799,23 +809,43 @@ describe('Vuex', () => { inc: state => state.count++ }, getters: { - hasAny: state => state.count > 0 + count: state => state.count + }, + actions: { + check ({ getters }, value) { + expect(getters.count).to.equal(value) + } } }) const spy = sinon.spy() const vm = new Vue({ computed: { - a: () => store.getters.hasAny + a: () => store.getters.count }, watch: { a: spy } }) - expect(vm.a).to.equal(false) + expect(vm.a).to.equal(0) + store.dispatch('check', 0) + store.commit('inc') - expect(vm.a).to.equal(true) + + expect(vm.a).to.equal(1) + store.dispatch('check', 1) + + // update getters + store.hotUpdate({ + getters: { + count: state => state.count * 10 + } + }) + + expect(vm.a).to.equal(10) + store.dispatch('check', 10) + Vue.nextTick(() => { expect(spy).to.have.been.called done() From 2e46bf98913e2fce69a6e97b68259a0724a7eedb Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 11 Jul 2016 16:12:22 -0400 Subject: [PATCH 176/969] expose rootState in module getters and actions --- src/index.js | 5 +++-- test/unit/test.js | 10 ++++++++-- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/index.js b/src/index.js index 607c1b8ec..0c1dea9c2 100644 --- a/src/index.js +++ b/src/index.js @@ -120,7 +120,8 @@ class Store { dispatch, commit, getters: store.getters, - state: getNestedState(store.state, path) + state: getNestedState(store.state, path), + rootState: store.state }, payload, cb) if (!isPromise(res)) { res = Promise.resolve(res) @@ -276,7 +277,7 @@ function extractModuleGetters (getters = {}, modules = {}, path = []) { return } getters[getterKey] = function wrappedGetter (state) { - return rawGetter(getNestedState(state, modulePath)) + return rawGetter(getNestedState(state, modulePath), state) } }) } diff --git a/test/unit/test.js b/test/unit/test.js index dfd4c3bd7..ddacf8aa1 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -378,9 +378,10 @@ describe('Vuex', () => { let calls = 0 const makeAction = n => { return { - [TEST] ({ state }) { + [TEST] ({ state, rootState }) { calls++ expect(state.a).to.equal(n) + expect(rootState).to.equal(store.state) } } } @@ -424,7 +425,12 @@ describe('Vuex', () => { it('module: getters', function () { const makeGetter = n => ({ - [`getter${n}`]: state => state.a + [`getter${n}`]: (state, rootState) => { + if (rootState) { + expect(rootState).to.equal(store.state) + } + return state.a + } }) const store = new Vuex.Store({ state: { From 9b3aa5019e2036e31e4b2f6a899193cf8425c112 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 11 Jul 2016 16:24:11 -0400 Subject: [PATCH 177/969] add mapState & mapMutations --- src/helpers.js | 21 +++++++++++++++++ src/index.js | 4 +++- test/unit/test.js | 58 ++++++++++++++++++++++++++++++++++++++++++++++- 3 files changed, 81 insertions(+), 2 deletions(-) diff --git a/src/helpers.js b/src/helpers.js index 5c4f38194..be9313537 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -1,3 +1,24 @@ +export function mapState (map) { + const res = {} + Object.keys(map).forEach(key => { + const fn = map[key] + res[key] = function mappedState () { + return fn.call(this, this.$store.state) + } + }) + return res +} + +export function mapMutations (mutations) { + const res = {} + normalizeMap(mutations).forEach(({ key, val }) => { + res[key] = function mappedMutation (...args) { + return this.$store.commit(val, ...args) + } + }) + return res +} + export function mapGetters (getters) { const res = {} normalizeMap(getters).forEach(({ key, val }) => { diff --git a/src/index.js b/src/index.js index 0c1dea9c2..e74a18825 100644 --- a/src/index.js +++ b/src/index.js @@ -1,6 +1,6 @@ import devtoolPlugin from './plugins/devtool' import applyMixin from './mixin' -import { mapGetters, mapActions } from './helpers' +import { mapState, mapMutations, mapGetters, mapActions } from './helpers' let Vue // bind on install @@ -323,6 +323,8 @@ if (typeof window !== 'undefined' && window.Vue) { export default { Store, install, + mapState, + mapMutations, mapGetters, mapActions } diff --git a/test/unit/test.js b/test/unit/test.js index ddacf8aa1..f9b0dd227 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -3,7 +3,7 @@ import chai, { expect } from 'chai' import sinonChai from 'sinon-chai' import sinon from 'sinon' import Vue from 'vue' -import Vuex, { mapGetters, mapActions } from '../../build/dev-entry' +import Vuex, { mapState, mapMutations, mapGetters, mapActions } from '../../build/dev-entry' Vue.use(Vuex) chai.use(sinonChai) @@ -225,6 +225,62 @@ describe('Vuex', () => { expect(child.$store).to.equal(store) }) + it('helper: mapState', () => { + const store = new Vuex.Store({ + state: { + a: 1 + } + }) + const vm = new Vue({ + store, + computed: mapState({ + a: state => state.a + 1 + }) + }) + expect(vm.a).to.equal(2) + store.state.a++ + expect(vm.a).to.equal(3) + }) + + it('helper: mapMutations (array)', () => { + const store = new Vuex.Store({ + state: { count: 0 }, + mutations: { + inc: state => state.count++, + dec: state => state.count-- + } + }) + const vm = new Vue({ + store, + methods: mapMutations(['inc', 'dec']) + }) + vm.inc() + expect(store.state.count).to.equal(1) + vm.dec() + expect(store.state.count).to.equal(0) + }) + + it('helper: mapMutations (object)', () => { + const store = new Vuex.Store({ + state: { count: 0 }, + mutations: { + inc: state => state.count++, + dec: state => state.count-- + } + }) + const vm = new Vue({ + store, + methods: mapMutations({ + plus: 'inc', + minus: 'dec' + }) + }) + vm.plus() + expect(store.state.count).to.equal(1) + vm.minus() + expect(store.state.count).to.equal(0) + }) + it('helper: mapGetters (array)', () => { const store = new Vuex.Store({ state: { count: 0 }, From 19863a0617f335a6758105cb0ec34e28cfa7460c Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 11 Jul 2016 16:25:03 -0400 Subject: [PATCH 178/969] [build] 2.0.0-rc.2 --- dist/vuex.js | 145 +++++++++++++++++++++++++++++++++-------------- dist/vuex.min.js | 4 +- 2 files changed, 103 insertions(+), 46 deletions(-) diff --git a/dist/vuex.js b/dist/vuex.js index 6e41488e8..077382c9c 100644 --- a/dist/vuex.js +++ b/dist/vuex.js @@ -1,5 +1,5 @@ /*! - * Vuex v2.0.0-rc.1 + * Vuex v2.0.0-rc.2 * (c) 2016 Evan You * Released under the MIT License. */ @@ -9,19 +9,21 @@ (global.Vuex = factory()); }(this, function () { 'use strict'; - var hook = typeof window !== 'undefined' && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; + var devtoolHook = typeof window !== 'undefined' && window.__VUE_DEVTOOLS_GLOBAL_HOOK__; function devtoolPlugin(store) { - if (!hook) return; + if (!devtoolHook) return; - hook.emit('vuex:init', store); + store._devtoolHook = devtoolHook; - hook.on('vuex:travel-to-state', function (targetState) { + devtoolHook.emit('vuex:init', store); + + devtoolHook.on('vuex:travel-to-state', function (targetState) { store.replaceState(targetState); }); store.subscribe(function (mutation, state) { - hook.emit('vuex:mutation', mutation, state); + devtoolHook.emit('vuex:mutation', mutation, state); }); } @@ -60,12 +62,42 @@ } } - function mapGetters(getters) { + function mapState(map) { var res = {}; - normalizeMap(getters).forEach(function (_ref) { + Object.keys(map).forEach(function (key) { + var fn = map[key]; + res[key] = function mappedState() { + return fn.call(this, this.$store.state); + }; + }); + return res; + } + + function mapMutations(mutations) { + var res = {}; + normalizeMap(mutations).forEach(function (_ref) { var key = _ref.key; var val = _ref.val; + res[key] = function mappedMutation() { + var _$store; + + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { + args[_key] = arguments[_key]; + } + + return (_$store = this.$store).commit.apply(_$store, [val].concat(args)); + }; + }); + return res; + } + + function mapGetters(getters) { + var res = {}; + normalizeMap(getters).forEach(function (_ref2) { + var key = _ref2.key; + var val = _ref2.val; + res[key] = function mappedGetter() { if (!(val in this.$store.getters)) { console.error("[vuex] unknown getter: " + val); @@ -78,18 +110,18 @@ function mapActions(actions) { var res = {}; - normalizeMap(actions).forEach(function (_ref2) { - var key = _ref2.key; - var val = _ref2.val; + normalizeMap(actions).forEach(function (_ref3) { + var key = _ref3.key; + var val = _ref3.val; res[key] = function mappedAction() { - var _$store; + var _$store2; - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; + for (var _len2 = arguments.length, args = Array(_len2), _key2 = 0; _key2 < _len2; _key2++) { + args[_key2] = arguments[_key2]; } - return (_$store = this.$store).dispatch.apply(_$store, [val].concat(args)); + return (_$store2 = this.$store).dispatch.apply(_$store2, [val].concat(args)); }; }); return res; @@ -142,13 +174,8 @@ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0]; classCallCheck(this, Store); - if (!Vue) { - throw new Error('[vuex] must call Vue.use(Vuex) before creating a store instance.'); - } - - if (typeof Promise === 'undefined') { - throw new Error('[vuex] vuex requires a Promise polyfill in this browser.'); - } + assert(Vue, 'must call Vue.use(Vuex) before creating a store instance.'); + assert(typeof Promise !== 'undefined', 'vuex requires a Promise polyfill in this browser.'); var _options$state = options.state; var state = _options$state === undefined ? {} : _options$state; @@ -166,6 +193,7 @@ this._actions = Object.create(null); this._mutations = Object.create(null); this._subscribers = []; + this._pendingActions = []; // bind commit and dispatch to self var store = this; @@ -207,10 +235,9 @@ value: function module(path, _module, hot) { var _this2 = this; + this._committing = true; if (typeof path === 'string') path = [path]; - if (!Array.isArray(path)) { - throw new Error('[vuex] module path must be a string or an Array.'); - } + assert(Array.isArray(path), 'module path must be a string or an Array.'); var isRoot = !path.length; var state = _module.state; @@ -244,6 +271,7 @@ _this2.module(path.concat(key), modules[key], hot); }); } + this._committing = false; } }, { key: 'mutation', @@ -270,15 +298,20 @@ var res = handler({ dispatch: dispatch, commit: commit, - state: getNestedState(store.state, path) + state: getNestedState(store.state, path), + rootState: store.state }, payload, cb); if (!isPromise(res)) { res = Promise.resolve(res); } - return res.catch(function (err) { - console.error('[vuex] error in Promise returned from action "' + type + '":'); - console.error(err); - }); + if (store._devtoolHook) { + return res.catch(function (err) { + store._devtoolHook.emit('vuex:error', err); + throw err; + }); + } else { + return res; + } }); } }, { @@ -315,13 +348,23 @@ value: function dispatch(type, payload) { var entry = this._actions[type]; if (!entry) { - debugger; console.error('[vuex] unknown action type: ' + type); return; } - return entry.length > 1 ? Promise.all(entry.map(function (handler) { + var res = entry.length > 1 ? Promise.all(entry.map(function (handler) { return handler(payload); })) : entry[0](payload); + var pending = this._pendingActions; + pending.push(res); + return res.then(function (value) { + pending.splice(pending.indexOf(res), 1); + return value; + }); + } + }, { + key: 'onActionsResolved', + value: function onActionsResolved(cb) { + Promise.all(this._pendingActions).then(cb); } }, { key: 'subscribe', @@ -337,10 +380,20 @@ } }; } + }, { + key: 'watch', + value: function watch(getter, cb, options) { + var _this4 = this; + + assert(typeof getter === 'function', 'store.watch only accepts a function.'); + return this._vm.$watch(function () { + return getter(_this4.state); + }, cb, options); + } }, { key: 'hotUpdate', value: function hotUpdate(newOptions) { - var _this4 = this; + var _this5 = this; this._actions = Object.create(null); this._mutations = Object.create(null); @@ -362,16 +415,16 @@ var getters = extractModuleGetters(newOptions.getters, newOptions.modules); if (Object.keys(getters).length) { (function () { - var oldVm = _this4._vm; - initStoreState(_this4, _this4.state, getters); - if (_this4.strict) { - enableStrictMode(_this4); + var oldVm = _this5._vm; + initStoreState(_this5, _this5.state, getters); + if (_this5.strict) { + enableStrictMode(_this5); } // dispatch changes in all subscribed watchers // to force getter re-evaluation. - _this4._committing = true; + _this5._committing = true; oldVm.state = null; - _this4._committing = false; + _this5._committing = false; Vue.nextTick(function () { return oldVm.$destroy(); }); @@ -384,12 +437,16 @@ return this._vm.state; }, set: function set(v) { - throw new Error('[vuex] Use store.replaceState() to explicit replace store state.'); + assert(false, 'Use store.replaceState() to explicit replace store state.'); } }]); return Store; }(); + function assert(condition, msg) { + if (!condition) throw new Error('[vuex] ' + msg); + } + function initStoreState(store, state, getters) { // bind getters store.getters = {}; @@ -436,7 +493,7 @@ return; } getters[getterKey] = function wrappedGetter(state) { - return rawGetter(getNestedState(state, modulePath)); + return rawGetter(getNestedState(state, modulePath), state); }; }); } @@ -447,9 +504,7 @@ function enableStrictMode(store) { store._vm.$watch('state', function () { - if (!store._committing) { - throw new Error('[vuex] Do not mutate vuex store state outside mutation handlers.'); - } + assert(store._committing, 'Do not mutate vuex store state outside mutation handlers.'); }, { deep: true, sync: true }); } @@ -484,6 +539,8 @@ var index = { Store: Store, install: install, + mapState: mapState, + mapMutations: mapMutations, mapGetters: mapGetters, mapActions: mapActions }; diff --git a/dist/vuex.min.js b/dist/vuex.min.js index 19fe20eba..f244cef19 100644 --- a/dist/vuex.min.js +++ b/dist/vuex.min.js @@ -1,6 +1,6 @@ /*! - * Vuex v2.0.0-rc.1 + * Vuex v2.0.0-rc.2 * (c) 2016 Evan You * Released under the MIT License. */ -!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vuex=e()}(this,function(){"use strict";function t(t){v&&(v.emit("vuex:init",t),v.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){v.emit("vuex:mutation",t,e)}))}function e(t){function e(){var t=this.$options;t.store?this.$store=t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}var n=Number(t.version.split(".")[0]);if(n>=2){var o=t.config._lifecycleHooks.indexOf("init")>-1;t.mixin(o?{init:e}:{beforeCreate:e})}else!function(){var n=t.prototype._init;t.prototype._init=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];t.init=t.init?[e].concat(t.init):e,n.call(this,t)}}()}function n(t){var e={};return i(t).forEach(function(t){var n=t.key,o=t.val;e[n]=function(){return o in this.$store.getters||console.error("[vuex] unknown getter: "+o),this.$store.getters[o]}}),e}function o(t){var e={};return i(t).forEach(function(t){var n=t.key,o=t.val;e[n]=function(){for(var t,e=arguments.length,n=Array(e),i=0;i1?Promise.all(n.map(function(t){return t(e)})):n[0](e):void console.error("[vuex] unknown action type: "+t)}},{key:"subscribe",value:function(t){var e=this._subscribers;return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}},{key:"hotUpdate",value:function(t){var e=this;this._actions=Object.create(null),this._mutations=Object.create(null);var n=this._options;if(t.actions&&(n.actions=t.actions),t.mutations&&(n.mutations=t.mutations),t.modules)for(var o in t.modules)n.modules[o]=t.modules[o];this.module([],n,!0);var i=s(t.getters,t.modules);Object.keys(i).length&&!function(){var t=e._vm;r(e,e.state,i),e.strict&&u(e),e._committing=!0,t.state=null,e._committing=!1,y.nextTick(function(){return t.$destroy()})}()}},{key:"state",get:function(){return this._vm.state},set:function(t){throw new Error("[vuex] Use store.replaceState() to explicit replace store state.")}}]),e}();"undefined"!=typeof window&&window.Vue&&l(window.Vue);var g={Store:p,install:l,mapGetters:n,mapActions:o};return g}); \ No newline at end of file +!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):t.Vuex=e()}(this,function(){"use strict";function t(t){d&&(t._devtoolHook=d,d.emit("vuex:init",t),d.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){d.emit("vuex:mutation",t,e)}))}function e(t){function e(){var t=this.$options;t.store?this.$store=t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}var n=Number(t.version.split(".")[0]);if(n>=2){var i=t.config._lifecycleHooks.indexOf("init")>-1;t.mixin(i?{init:e}:{beforeCreate:e})}else!function(){var n=t.prototype._init;t.prototype._init=function(){var t=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];t.init=t.init?[e].concat(t.init):e,n.call(this,t)}}()}function n(t){var e={};return Object.keys(t).forEach(function(n){var i=t[n];e[n]=function(){return i.call(this,this.$store.state)}}),e}function i(t){var e={};return s(t).forEach(function(t){var n=t.key,i=t.val;e[n]=function(){for(var t,e=arguments.length,n=Array(e),o=0;o1?Promise.all(n.map(function(t){return t(e)})):n[0](e),o=this._pendingActions;return o.push(i),i.then(function(t){return o.splice(o.indexOf(i),1),t})}},{key:"onActionsResolved",value:function(t){Promise.all(this._pendingActions).then(t)}},{key:"subscribe",value:function(t){var e=this._subscribers;return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}},{key:"watch",value:function(t,e,n){var i=this;return u("function"==typeof t,"store.watch only accepts a function."),this._vm.$watch(function(){return t(i.state)},e,n)}},{key:"hotUpdate",value:function(t){var e=this;this._actions=Object.create(null),this._mutations=Object.create(null);var n=this._options;if(t.actions&&(n.actions=t.actions),t.mutations&&(n.mutations=t.mutations),t.modules)for(var i in t.modules)n.modules[i]=t.modules[i];this.module([],n,!0);var o=a(t.getters,t.modules);Object.keys(o).length&&!function(){var t=e._vm;c(e,e.state,o),e.strict&&f(e),e._committing=!0,t.state=null,e._committing=!1,_.nextTick(function(){return t.$destroy()})}()}},{key:"state",get:function(){return this._vm.state},set:function(t){u(!1,"Use store.replaceState() to explicit replace store state.")}}]),e}();"undefined"!=typeof window&&window.Vue&&m(window.Vue);var k={Store:b,install:m,mapState:n,mapMutations:i,mapGetters:o,mapActions:r};return k}); \ No newline at end of file From abce7b0b99bb7bd1bdb02cff09de736da1782b50 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 11 Jul 2016 16:25:04 -0400 Subject: [PATCH 179/969] [release] 2.0.0-rc.2 --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index ba5caf243..18e6c6ab1 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "vuex", - "version": "2.0.0-rc.1", + "version": "2.0.0-rc.2", "description": "state management for Vue.js", "main": "dist/vuex.js", "files": [ From 870bdc52d525bc1e37ccd6928759414531c2c58b Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 11 Jul 2016 16:36:45 -0400 Subject: [PATCH 180/969] also expose getters in mapState --- src/helpers.js | 2 +- test/unit/test.js | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/helpers.js b/src/helpers.js index be9313537..fdd0eb2cf 100644 --- a/src/helpers.js +++ b/src/helpers.js @@ -3,7 +3,7 @@ export function mapState (map) { Object.keys(map).forEach(key => { const fn = map[key] res[key] = function mappedState () { - return fn.call(this, this.$store.state) + return fn.call(this, this.$store.state, this.$store.getters) } }) return res diff --git a/test/unit/test.js b/test/unit/test.js index f9b0dd227..a7c4340af 100644 --- a/test/unit/test.js +++ b/test/unit/test.js @@ -229,17 +229,22 @@ describe('Vuex', () => { const store = new Vuex.Store({ state: { a: 1 + }, + getters: { + b: () => 2 } }) const vm = new Vue({ store, computed: mapState({ - a: state => state.a + 1 + a: (state, getters) => { + return state.a + getters.b + } }) }) - expect(vm.a).to.equal(2) - store.state.a++ expect(vm.a).to.equal(3) + store.state.a++ + expect(vm.a).to.equal(4) }) it('helper: mapMutations (array)', () => { From de2070dcbff797a17f11cdccfba434fe12646c87 Mon Sep 17 00:00:00 2001 From: Evan You Date: Mon, 11 Jul 2016 17:00:01 -0400 Subject: [PATCH 181/969] also expose getters inside getters --- examples/counter/Counter.vue | 4 ++-- examples/counter/store.js | 12 ++++++----- src/index.js | 41 ++++++++++++++++++++++++------------ test/unit/test.js | 12 ++++++----- 4 files changed, 44 insertions(+), 25 deletions(-) diff --git a/examples/counter/Counter.vue b/examples/counter/Counter.vue index 5adb0ff01..d95b39340 100644 --- a/examples/counter/Counter.vue +++ b/examples/counter/Counter.vue @@ -1,6 +1,6 @@ diff --git a/examples/shopping-cart/components/ShoppingCart.vue b/examples/shopping-cart/components/ShoppingCart.vue index b5eabd497..88b98a07b 100644 --- a/examples/shopping-cart/components/ShoppingCart.vue +++ b/examples/shopping-cart/components/ShoppingCart.vue @@ -14,19 +14,21 @@ + +``` + +### NPM + +``` bash +npm install vuex --save +``` + +### Yarn + +``` bash +yarn add vuex +``` + +Quando usado com um sistema de módulos, você deve instalar o Vuex obrigatóriamente via `Vue.use()`: + +``` js +import Vue from 'vue' +import Vuex from 'vuex' + +Vue.use(Vuex) +``` + +Você não precisa fazer isso se for incluir o `vuex` via tags script. + +### Promise + +Vuex requer [Promise](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Using_promises). Se os seus navegadores não implementarem o _Promise_ (e.g. IE), você pode usar uma biblioteca _polyfill_, como a [es6-promise](https://github.com/stefanpenner/es6-promise). + +Você pode incluí-la via CDN: + +``` html + +``` + +Então o `window.Promise` estará disponível automaticamente. + +Se você preferir usar um gerenciador de pacotes como NPM ou Yarn, instale-o com os seguintes comandos: + +``` bash +npm install es6-promise --save # NPM +yarn add es6-promise # Yarn +``` + +Além disso, adicione a linha abaixo em qualquer lugar no seu código antes de usar o Vuex: + +``` js +import 'es6-promise/auto' +``` + +### Dev Build + +Você terá que clonar diretamente do GitHub e fazer o _build_ do `vuex` se +quiser usar a compilação mais recente do dev. + +``` bash +git clone https://github.com/vuejs/vuex.git node_modules/vuex +cd node_modules/vuex +npm install +npm run build +``` From d1b5c66961ab53e0172cbc706ff616227bcb5c77 Mon Sep 17 00:00:00 2001 From: Sue Date: Thu, 19 Jul 2018 00:11:07 +0900 Subject: [PATCH 641/969] fix(types): add type annotation for the context of actions (#1322) * feat(types): add type annotation for the context of actions and mutations * fix(types): remove this annotation from mutations --- types/index.d.ts | 4 ++-- types/test/index.ts | 19 +++++++++++++++++-- 2 files changed, 19 insertions(+), 4 deletions(-) diff --git a/types/index.d.ts b/types/index.d.ts index 585b7d6b0..4c4e43e64 100644 --- a/types/index.d.ts +++ b/types/index.d.ts @@ -86,7 +86,7 @@ export interface StoreOptions { strict?: boolean; } -export type ActionHandler = (injectee: ActionContext, payload: any) => any; +export type ActionHandler = (this: Store, injectee: ActionContext, payload: any) => any; export interface ActionObject { root?: boolean; handler: ActionHandler; @@ -129,5 +129,5 @@ export interface ModuleTree { declare const _default: { Store: typeof Store; install: typeof install; -} +}; export default _default; diff --git a/types/test/index.ts b/types/test/index.ts index 0253e5df8..ca03458d9 100644 --- a/types/test/index.ts +++ b/types/test/index.ts @@ -59,6 +59,7 @@ namespace RootModule { }, actions: { foo ({ state, getters, dispatch, commit }, payload) { + this.state.value; state.value; getters.count; dispatch("bar", {}); @@ -83,6 +84,7 @@ namespace RootDefaultModule { }, actions: { foo ({ state, getters, dispatch, commit }, payload) { + this.state.value; state.value; getters.count; dispatch("bar", {}); @@ -107,7 +109,10 @@ namespace NestedModules { }; d: { value: number; - }; + }, + e: { + value: number; + } }; } @@ -145,7 +150,17 @@ namespace NestedModules { b: { modules: { c: module, - d: module + d: module, + e: { + state: { + value: 0 + }, + actions: { + foo(context: ActionStore, payload) { + this.state.a; + } + } + } } } } From 3a5e530470c52209209b5e9c6ffdff902e8bbf17 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=BE=E4=B8=89=E8=82=A1=E5=9B=9B?= Date: Mon, 23 Jul 2018 15:02:01 +0800 Subject: [PATCH 642/969] docs(zh): update (#1352) --- docs/zh/README.md | 2 +- docs/zh/guide/core-concepts.md | 12 ------------ 2 files changed, 1 insertion(+), 13 deletions(-) delete mode 100644 docs/zh/guide/core-concepts.md diff --git a/docs/zh/README.md b/docs/zh/README.md index 5294e6d9e..bc0e73ba9 100644 --- a/docs/zh/README.md +++ b/docs/zh/README.md @@ -58,6 +58,6 @@ new Vue({ 虽然 Vuex 可以帮助我们管理共享状态,但也附带了更多的概念和框架。这需要对短期和长期效益进行权衡。 -如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的 [global event bus](https://cn.vuejs.org/v2/guide/state-management.html#简单状态管理起步使用) 就足够您所需了。但是,如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。引用 Redux 的作者 Dan Abramov 的话说就是: +如果您不打算开发大型单页应用,使用 Vuex 可能是繁琐冗余的。确实是如此——如果您的应用够简单,您最好不要使用 Vuex。一个简单的 [store 模式](https://cn.vuejs.org/v2/guide/state-management.html#简单状态管理起步使用)就足够您所需了。但是,如果您需要构建一个中大型单页应用,您很可能会考虑如何更好地在组件外部管理状态,Vuex 将会成为自然而然的选择。引用 Redux 的作者 Dan Abramov 的话说就是: > Flux 架构就像眼镜:您自会知道什么时候需要它。 diff --git a/docs/zh/guide/core-concepts.md b/docs/zh/guide/core-concepts.md deleted file mode 100644 index 7a105edf1..000000000 --- a/docs/zh/guide/core-concepts.md +++ /dev/null @@ -1,12 +0,0 @@ -# 核心概念 - -在这一章,我们将会学到 Vuex 的这些核心概念。他们是: - - [State](state.md) - - [Getter](getters.md) - - [Mutation](mutations.md) - - [Action](actions.md) - - [Module](modules.md) - -深入理解所有的概念对于使用 Vuex 来说是必要的。 - -让我们开始吧。 From ea58140d8ef60dfb2404297b5472c77520e1ccf7 Mon Sep 17 00:00:00 2001 From: Denis Karabaza Date: Sat, 4 Aug 2018 06:05:08 +0200 Subject: [PATCH 643/969] docs: Clarify example with namespaced actions (#1361) --- docs/guide/modules.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/guide/modules.md b/docs/guide/modules.md index 1ba8fb07c..818cccab0 100644 --- a/docs/guide/modules.md +++ b/docs/guide/modules.md @@ -209,8 +209,8 @@ computed: { }, methods: { ...mapActions([ - 'some/nested/module/foo', - 'some/nested/module/bar' + 'some/nested/module/foo', // -> this['some/nested/module/foo']() + 'some/nested/module/bar' // -> this['some/nested/module/bar']() ]) } ``` @@ -226,8 +226,8 @@ computed: { }, methods: { ...mapActions('some/nested/module', [ - 'foo', - 'bar' + 'foo', // -> this.foo() + 'bar' // -> this.bar() ]) } ``` From f626da2a764368be77c71579686c694dc4dde1f9 Mon Sep 17 00:00:00 2001 From: Alexander Sokolov Date: Sat, 4 Aug 2018 15:53:40 +0300 Subject: [PATCH 644/969] [RU] Translation update (#1366) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * structure.md исправлена опечатка * actions.md мелкие правки * api.md мелкие правки * intro.md мелкие правки * state.md мелкие правки * strict.md мелкие правки * testing.md мелкие правки * actions.md правки * testing.md правки * Fix typos. ru * SUMMARY.md правки заголовков * Минусы на тире * [RU] Moved to VuePress * Fix & single quotes * [RU] Update * Remove settings.json * fix link * fix images links * translated ru image and ai sources * Localized images * README.md исправлена ссылка * api: formatting example * api: fix links * docs: remove core-concepts.md * modules.md правка примеров --- docs/ru/guide/core-concepts.md | 13 ------------- docs/ru/guide/modules.md | 8 ++++---- 2 files changed, 4 insertions(+), 17 deletions(-) delete mode 100644 docs/ru/guide/core-concepts.md diff --git a/docs/ru/guide/core-concepts.md b/docs/ru/guide/core-concepts.md deleted file mode 100644 index eebadfdb1..000000000 --- a/docs/ru/guide/core-concepts.md +++ /dev/null @@ -1,13 +0,0 @@ -# Основные понятия - -В этих главах мы изучим основные понятия Vuex: - -* [Состояние](state.md) -* [Геттеры](getters.md) -* [Мутации](mutations.md) -* [Действия](actions.md) -* [Модули](modules.md) - -Для использования vuex необходимо глубокое понимание всех этих понятий. - -Давайте начнём. diff --git a/docs/ru/guide/modules.md b/docs/ru/guide/modules.md index 15b3020b6..b4f53cd10 100644 --- a/docs/ru/guide/modules.md +++ b/docs/ru/guide/modules.md @@ -209,8 +209,8 @@ computed: { }, methods: { ...mapActions([ - 'some/nested/module/foo', - 'some/nested/module/bar' + 'some/nested/module/foo', // -> this['some/nested/module/foo']() + 'some/nested/module/bar' // -> this['some/nested/module/bar']() ]) } ``` @@ -226,8 +226,8 @@ computed: { }, methods: { ...mapActions('some/nested/module', [ - 'foo', - 'bar' + 'foo', // -> this.foo() + 'bar' // -> this.bar() ]) } ``` From de9636ccf50916f0f953655dde91f0b0d3867fde Mon Sep 17 00:00:00 2001 From: Evan You Date: Fri, 10 Aug 2018 10:40:12 -0400 Subject: [PATCH 645/969] docs: bump vuepress --- docs/kr/guide/README.md | 2 +- docs/ru/guide/getting-started.md | 2 +- package.json | 4 +- yarn.lock | 195 ++++++++++++++++++++----------- 4 files changed, 129 insertions(+), 74 deletions(-) diff --git a/docs/kr/guide/README.md b/docs/kr/guide/README.md index b17c0a029..4de68dc68 100644 --- a/docs/kr/guide/README.md +++ b/docs/kr/guide/README.md @@ -9,7 +9,7 @@ > **참고:** 모든 예제는 ES2015 문법을 사용합니다. 사용하고 있지 않은 경우 [꼭 사용해야 합니다!](https://babeljs.io/docs/learn-es2015/) -Vuex를 [설치](installation.md)한 후 저장소를 만들어 봅시다. 매우 간단합니다. 초기 상태 객체와 일부 변이를 제공하십시오. +Vuex를 [설치](../installation.md)한 후 저장소를 만들어 봅시다. 매우 간단합니다. 초기 상태 객체와 일부 변이를 제공하십시오. ``` js // 모듈 시스템을 사용하는 경우 Vue.use(Vuex)를 먼저 호출해야합니다. diff --git a/docs/ru/guide/getting-started.md b/docs/ru/guide/getting-started.md index 5a8fc667a..6c1267685 100644 --- a/docs/ru/guide/getting-started.md +++ b/docs/ru/guide/getting-started.md @@ -10,7 +10,7 @@ > **ПРИМЕЧАНИЕ:** Мы будем использовать синтаксис ES2015 для примеров кода на всём протяжении этой документации. Если вы с ним ещё не разобрались, [сейчас самое время](https://babeljs.io/docs/learn-es2015/)! -После [установки](installation.md) Vuex, давайте создадим хранилище. Всё довольно просто: нужно лишь указать исходное состояние и мутации: +После [установки](../installation.md) Vuex, давайте создадим хранилище. Всё довольно просто: нужно лишь указать исходное состояние и мутации: ```js // Удостоверьтесь, что вызвали Vue.use(Vuex) в коде до этого, если используете модульный сборщик diff --git a/package.json b/package.json index 7438074ce..5cca1a6ee 100644 --- a/package.json +++ b/package.json @@ -66,8 +66,8 @@ "vue": "^2.5.16", "vue-loader": "^15.2.1", "vue-template-compiler": "^2.5.16", - "vuepress": "^0.10.0", - "vuepress-theme-vue": "^1.0.3", + "vuepress": "^0.14.1", + "vuepress-theme-vue": "^1.1.0", "webpack": "^4.8.3", "webpack-dev-middleware": "^1.10.0", "webpack-hot-middleware": "^2.19.1" diff --git a/yarn.lock b/yarn.lock index 1e1f11aec..e683bbc5c 100644 --- a/yarn.lock +++ b/yarn.lock @@ -696,6 +696,20 @@ source-map "^0.5.6" vue-template-es2015-compiler "^1.6.0" +"@vue/component-compiler-utils@^2.0.0": + version "2.1.2" + resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-2.1.2.tgz#75e7cc8496baecbb0994dc8783571d9ff07737fe" + dependencies: + consolidate "^0.15.1" + hash-sum "^1.0.2" + lru-cache "^4.1.2" + merge-source-map "^1.1.0" + postcss "^6.0.20" + postcss-selector-parser "^3.1.1" + prettier "1.13.7" + source-map "^0.5.6" + vue-template-es2015-compiler "^1.6.0" + "@webassemblyjs/ast@1.4.3": version "1.4.3" resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.4.3.tgz#3b3f6fced944d8660273347533e6d4d315b5934a" @@ -812,6 +826,31 @@ "@webassemblyjs/wast-parser" "1.4.3" long "^3.2.0" +"@webpack-contrib/config-loader@^1.1.1": + version "1.2.1" + resolved "https://registry.yarnpkg.com/@webpack-contrib/config-loader/-/config-loader-1.2.1.tgz#5b3dd474e207437939d294d200c68b7b00008e04" + dependencies: + "@webpack-contrib/schema-utils" "^1.0.0-beta.0" + chalk "^2.1.0" + cosmiconfig "^5.0.2" + is-plain-obj "^1.1.0" + loud-rejection "^1.6.0" + merge-options "^1.0.1" + minimist "^1.2.0" + resolve "^1.6.0" + webpack-log "^1.1.2" + +"@webpack-contrib/schema-utils@^1.0.0-beta.0": + version "1.0.0-beta.0" + resolved "https://registry.yarnpkg.com/@webpack-contrib/schema-utils/-/schema-utils-1.0.0-beta.0.tgz#bf9638c9464d177b48209e84209e23bee2eb4f65" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + chalk "^2.3.2" + strip-ansi "^4.0.0" + text-table "^0.2.0" + webpack-log "^1.1.2" + abbrev@1: version "1.1.1" resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" @@ -2363,14 +2402,13 @@ cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: parse-json "^2.2.0" require-from-string "^1.1.0" -cosmiconfig@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-4.0.0.tgz#760391549580bbd2df1e562bc177b13c290972dc" +cosmiconfig@^5.0.2: + version "5.0.6" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.0.6.tgz#dca6cf680a0bd03589aff684700858c81abeeb39" dependencies: is-directory "^0.3.1" js-yaml "^3.9.0" parse-json "^4.0.0" - require-from-string "^2.0.1" create-ecdh@^4.0.0: version "4.0.3" @@ -4619,6 +4657,12 @@ koa-mount@^3.0.0: debug "^2.6.1" koa-compose "^3.2.1" +koa-range@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/koa-range/-/koa-range-0.3.0.tgz#3588e3496473a839a1bd264d2a42b1d85bd7feac" + dependencies: + stream-slice "^0.1.2" + koa-send@^4.1.3: version "4.1.3" resolved "https://registry.yarnpkg.com/koa-send/-/koa-send-4.1.3.tgz#0822207bbf5253a414c8f1765ebc29fa41353cb6" @@ -4635,14 +4679,14 @@ koa-static@^4.0.2: debug "^3.1.0" koa-send "^4.1.3" -koa-webpack@^3.0.1: - version "3.0.2" - resolved "https://registry.yarnpkg.com/koa-webpack/-/koa-webpack-3.0.2.tgz#5a0604d476ec5ab3f12f02fd5bf8406a77b49ed2" +koa-webpack@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/koa-webpack/-/koa-webpack-4.0.0.tgz#1d9b83c109db106d8ef65db376f910a45ba964c7" dependencies: app-root-path "^2.0.1" merge-options "^1.0.0" webpack-dev-middleware "^3.0.0" - webpack-hot-client "^2.0.0" + webpack-hot-client "^3.0.0" webpack-log "^1.1.1" koa@^2.4.1: @@ -4807,10 +4851,6 @@ lodash._stack@^4.0.0: version "4.1.3" resolved "https://registry.yarnpkg.com/lodash._stack/-/lodash._stack-4.1.3.tgz#751aa76c1b964b047e76d14fc72a093fcb5e2dd0" -lodash.assign@~4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" - lodash.camelcase@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" @@ -4998,11 +5038,9 @@ map-visit@^1.0.0: dependencies: object-visit "^1.0.0" -markdown-it-anchor@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-4.0.0.tgz#e87fb5543e01965adf71506c6bf7b0491841b7e3" - dependencies: - string "^3.3.3" +markdown-it-anchor@^5.0.2: + version "5.0.2" + resolved "https://registry.yarnpkg.com/markdown-it-anchor/-/markdown-it-anchor-5.0.2.tgz#cdd917a05b7bf92fb736a6dae3385c6d0d0fa552" markdown-it-container@^2.0.0: version "2.0.0" @@ -5012,12 +5050,9 @@ markdown-it-emoji@^1.4.0: version "1.4.0" resolved "https://registry.yarnpkg.com/markdown-it-emoji/-/markdown-it-emoji-1.4.0.tgz#9bee0e9a990a963ba96df6980c4fddb05dfb4dcc" -markdown-it-table-of-contents@^0.3.3: - version "0.3.3" - resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.3.3.tgz#b62e943c32de2c4a27d3e7c83cd63acbc2a9c4a2" - dependencies: - lodash.assign "~4.2.0" - string "~3.3.3" +markdown-it-table-of-contents@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/markdown-it-table-of-contents/-/markdown-it-table-of-contents-0.4.0.tgz#950541bec9a365a75265f5265a09dc0cb5935909" markdown-it@^8.4.1: version "8.4.1" @@ -5059,25 +5094,25 @@ memory-fs@^0.4.0, memory-fs@~0.4.1: errno "^0.1.3" readable-stream "^2.0.1" -meow@^4.0.0: - version "4.0.1" - resolved "https://registry.yarnpkg.com/meow/-/meow-4.0.1.tgz#d48598f6f4b1472f35bf6317a95945ace347f975" +meow@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-5.0.0.tgz#dfc73d63a9afc714a5e371760eb5c88b91078aa4" dependencies: camelcase-keys "^4.0.0" decamelize-keys "^1.0.0" loud-rejection "^1.0.0" - minimist "^1.1.3" minimist-options "^3.0.1" normalize-package-data "^2.3.4" read-pkg-up "^3.0.0" redent "^2.0.0" trim-newlines "^2.0.0" + yargs-parser "^10.0.0" merge-descriptors@1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" -merge-options@^1.0.0: +merge-options@^1.0.0, merge-options@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/merge-options/-/merge-options-1.0.1.tgz#2a64b24457becd4e4dc608283247e94ce589aa32" dependencies: @@ -5172,10 +5207,11 @@ min-document@^2.19.0: dependencies: dom-walk "^0.1.0" -mini-css-extract-plugin@^0.4.0: - version "0.4.0" - resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.0.tgz#ff3bf08bee96e618e177c16ca6131bfecef707f9" +mini-css-extract-plugin@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/mini-css-extract-plugin/-/mini-css-extract-plugin-0.4.1.tgz#d2bcf77bb2596b8e4bd9257e43d3f9164c2e86cb" dependencies: + "@webpack-contrib/schema-utils" "^1.0.0-beta.0" loader-utils "^1.1.0" webpack-sources "^1.1.0" @@ -5210,7 +5246,7 @@ minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" -minimist@^1.1.3, minimist@^1.2.0: +minimist@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" @@ -6208,6 +6244,10 @@ preserve@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" +prettier@1.13.7: + version "1.13.7" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.13.7.tgz#850f3b8af784a49a6ea2d2eaa7ed1428a34b7281" + prettier@^1.11.1: version "1.12.1" resolved "https://registry.yarnpkg.com/prettier/-/prettier-1.12.1.tgz#c1ad20e803e7749faf905a409d2367e06bbe7325" @@ -6579,9 +6619,9 @@ regexpu-core@^4.1.3, regexpu-core@^4.1.4: unicode-match-property-ecmascript "^1.0.3" unicode-match-property-value-ecmascript "^1.0.1" -register-service-worker@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.2.0.tgz#c0472dcc856e391ba7a87c0aa96c4f6cf1aec67c" +register-service-worker@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/register-service-worker/-/register-service-worker-1.4.1.tgz#4b4c9b4200fc697942c6ae7d611349587b992b2f" registry-auth-token@^3.0.1: version "3.3.2" @@ -6687,10 +6727,6 @@ require-from-string@^1.1.0: version "1.2.1" resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" -require-from-string@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" - require-relative@0.8.7: version "0.8.7" resolved "https://registry.yarnpkg.com/require-relative/-/require-relative-0.8.7.tgz#7999539fc9e047a37928fa196f8e1563dabd36de" @@ -7183,6 +7219,10 @@ stream-shift@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" +stream-slice@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/stream-slice/-/stream-slice-0.1.2.tgz#2dc4f4e1b936fb13f3eb39a2def1932798d07a4b" + strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" @@ -7202,10 +7242,6 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string@^3.3.3, string@~3.3.3: - version "3.3.3" - resolved "https://registry.yarnpkg.com/string/-/string-3.3.3.tgz#5ea211cd92d228e184294990a6cc97b366a77cb0" - string_decoder@^1.0.0, string_decoder@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" @@ -7345,7 +7381,7 @@ term-size@^1.2.0: dependencies: execa "^0.7.0" -text-table@~0.2.0: +text-table@^0.2.0, text-table@~0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4" @@ -7728,9 +7764,9 @@ uuid@^3.1.0: version "3.2.1" resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" -v8-compile-cache@^1.1.0: - version "1.1.2" - resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-1.1.2.tgz#8d32e4f16974654657e676e0e467a348e89b0dc4" +v8-compile-cache@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.0.2.tgz#a428b28bb26790734c4fc8bc9fa106fccebf6a6c" validate-npm-package-license@^3.0.1: version "3.0.3" @@ -7783,6 +7819,16 @@ vue-loader@^15.2.1: vue-hot-reload-api "^2.3.0" vue-style-loader "^4.1.0" +vue-loader@^15.2.4: + version "15.3.0" + resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.3.0.tgz#b474d10a4e93d934a78c147fc3e314b370e9fc54" + dependencies: + "@vue/component-compiler-utils" "^2.0.0" + hash-sum "^1.0.2" + loader-utils "^1.1.0" + vue-hot-reload-api "^2.3.0" + vue-style-loader "^4.1.0" + vue-router@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.0.1.tgz#d9b05ad9c7420ba0f626d6500d693e60092cc1e9" @@ -7834,13 +7880,13 @@ vuepress-html-webpack-plugin@^3.2.0: toposort "^1.0.0" util.promisify "1.0.0" -vuepress-theme-vue@^1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/vuepress-theme-vue/-/vuepress-theme-vue-1.0.3.tgz#8465434401bc99325de53ba038e1eed2d2ec84b9" +vuepress-theme-vue@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/vuepress-theme-vue/-/vuepress-theme-vue-1.1.0.tgz#8b109e3db8cad7b18459f4d77076808110c2bcaa" -vuepress@^0.10.0: - version "0.10.0" - resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-0.10.0.tgz#8b5c5e8c457d56c0108831567d1cf69293e49044" +vuepress@^0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/vuepress/-/vuepress-0.14.1.tgz#4b3fc46601ce2fd8ff2265a2e39098b9f9580c58" dependencies: "@babel/core" "7.0.0-beta.47" "@vue/babel-preset-app" "3.0.0-beta.11" @@ -7864,29 +7910,30 @@ vuepress@^0.10.0: js-yaml "^3.11.0" koa-connect "^2.0.1" koa-mount "^3.0.0" + koa-range "^0.3.0" koa-static "^4.0.2" loader-utils "^1.1.0" lodash.throttle "^4.1.1" lru-cache "^4.1.2" markdown-it "^8.4.1" - markdown-it-anchor "^4.0.0" + markdown-it-anchor "^5.0.2" markdown-it-container "^2.0.0" markdown-it-emoji "^1.4.0" - markdown-it-table-of-contents "^0.3.3" - mini-css-extract-plugin "^0.4.0" + markdown-it-table-of-contents "^0.4.0" + mini-css-extract-plugin "^0.4.1" nprogress "^0.2.0" optimize-css-assets-webpack-plugin "^4.0.0" portfinder "^1.0.13" postcss-loader "^2.1.5" prismjs "^1.13.0" - register-service-worker "^1.2.0" + register-service-worker "^1.4.1" semver "^5.5.0" stylus "^0.54.5" stylus-loader "^3.0.2" toml "^2.3.3" url-loader "^1.0.1" vue "^2.5.16" - vue-loader "^15.2.1" + vue-loader "^15.2.4" vue-router "^3.0.1" vue-server-renderer "^2.5.16" vue-template-compiler "^2.5.16" @@ -7894,7 +7941,7 @@ vuepress@^0.10.0: webpack "^4.8.1" webpack-chain "^4.6.0" webpack-merge "^4.1.2" - webpack-serve "^0.3.2" + webpack-serve "^1.0.2" webpackbar "^2.6.1" workbox-build "^3.1.0" @@ -7945,12 +7992,13 @@ webpack-dev-middleware@^3.0.0: url-join "^4.0.0" webpack-log "^1.0.1" -webpack-hot-client@^2.0.0, webpack-hot-client@^2.2.0: - version "2.2.2" - resolved "https://registry.yarnpkg.com/webpack-hot-client/-/webpack-hot-client-2.2.2.tgz#4a97c513fc22d132573a0cb66ba7f525ff5fc036" +webpack-hot-client@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/webpack-hot-client/-/webpack-hot-client-3.0.0.tgz#b714f257a264001275bc1491741685779cde12f2" dependencies: json-stringify-safe "^5.0.1" loglevelnext "^1.0.2" + strip-ansi "^4.0.0" uuid "^3.1.0" webpack-log "^1.1.1" ws "^4.0.0" @@ -7979,32 +8027,33 @@ webpack-merge@^4.1.2: dependencies: lodash "^4.17.5" -webpack-serve@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/webpack-serve/-/webpack-serve-0.3.2.tgz#9cfd823dd570438d8cf362e70586bc54af1f0c92" +webpack-serve@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/webpack-serve/-/webpack-serve-1.0.4.tgz#d1c83955926969ba195e5032f978da92ef07829c" dependencies: "@shellscape/koa-static" "^4.0.4" + "@webpack-contrib/config-loader" "^1.1.1" chalk "^2.3.0" clipboardy "^1.2.2" - cosmiconfig "^4.0.0" + cosmiconfig "^5.0.2" debug "^3.1.0" find-up "^2.1.0" get-port "^3.2.0" import-local "^1.0.0" killable "^1.0.0" koa "^2.4.1" - koa-webpack "^3.0.1" + koa-webpack "^4.0.0" lodash "^4.17.5" loud-rejection "^1.6.0" - meow "^4.0.0" + meow "^5.0.0" nanobus "^4.3.1" opn "^5.1.0" resolve "^1.6.0" time-fix-plugin "^2.0.0" update-notifier "^2.3.0" url-join "3.0.0" - v8-compile-cache "^1.1.0" - webpack-hot-client "^2.2.0" + v8-compile-cache "^2.0.0" + webpack-hot-client "^3.0.0" webpack-log "^1.1.2" webpack-sources@^1.0.1, webpack-sources@^1.1.0: @@ -8247,6 +8296,12 @@ yallist@^3.0.0, yallist@^3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.0.2.tgz#8452b4bb7e83c7c188d8041c1a837c773d6d8bb9" +yargs-parser@^10.0.0: + version "10.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-10.1.0.tgz#7202265b89f7e9e9f2e5765e0fe735a905edbaa8" + dependencies: + camelcase "^4.1.0" + yauzl@2.4.1: version "2.4.1" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.4.1.tgz#9528f442dab1b2284e58b4379bb194e22e0c4005" From 78ff9833048ee2d599f21c06d881a93aecb1f152 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8B=BE=E4=B8=89=E8=82=A1=E5=9B=9B?= Date: Tue, 14 Aug 2018 16:39:00 +0800 Subject: [PATCH 646/969] applied #1361 to all languages (#1375) --- docs/ja/guide/modules.md | 8 ++++---- docs/kr/guide/modules.md | 8 ++++---- docs/ptbr/guide/modules.md | 8 ++++---- docs/zh/guide/modules.md | 8 ++++---- 4 files changed, 16 insertions(+), 16 deletions(-) diff --git a/docs/ja/guide/modules.md b/docs/ja/guide/modules.md index 13acf26b6..4ca231c65 100644 --- a/docs/ja/guide/modules.md +++ b/docs/ja/guide/modules.md @@ -183,8 +183,8 @@ computed: { }, methods: { ...mapActions([ - 'some/nested/module/foo', - 'some/nested/module/bar' + 'some/nested/module/foo', // -> this['some/nested/module/foo']() + 'some/nested/module/bar' // -> this['some/nested/module/bar']() ]) } ``` @@ -200,8 +200,8 @@ computed: { }, methods: { ...mapActions('some/nested/module', [ - 'foo', - 'bar' + 'foo', // -> this.foo() + 'bar' // -> this.bar() ]) } ``` diff --git a/docs/kr/guide/modules.md b/docs/kr/guide/modules.md index f5c67f280..70a00267b 100644 --- a/docs/kr/guide/modules.md +++ b/docs/kr/guide/modules.md @@ -209,8 +209,8 @@ computed: { }, methods: { ...mapActions([ - 'some/nested/module/foo', - 'some/nested/module/bar' + 'some/nested/module/foo', // -> this['some/nested/module/foo']() + 'some/nested/module/bar' // -> this['some/nested/module/bar']() ]) } ``` @@ -226,8 +226,8 @@ computed: { }, methods: { ...mapActions('some/nested/module', [ - 'foo', - 'bar' + 'foo', // -> this.foo() + 'bar' // -> this.bar() ]) } ``` diff --git a/docs/ptbr/guide/modules.md b/docs/ptbr/guide/modules.md index c47eff439..2e05e3308 100644 --- a/docs/ptbr/guide/modules.md +++ b/docs/ptbr/guide/modules.md @@ -209,8 +209,8 @@ computed: { }, methods: { ...mapActions([ - 'some/nested/module/foo', - 'some/nested/module/bar' + 'some/nested/module/foo', // -> this['some/nested/module/foo']() + 'some/nested/module/bar' // -> this['some/nested/module/bar']() ]) } ``` @@ -226,8 +226,8 @@ computed: { }, methods: { ...mapActions('some/nested/module', [ - 'foo', - 'bar' + 'foo', // -> this.foo() + 'bar' // -> this.bar() ]) } ``` diff --git a/docs/zh/guide/modules.md b/docs/zh/guide/modules.md index e024fd6ac..c210d3c66 100644 --- a/docs/zh/guide/modules.md +++ b/docs/zh/guide/modules.md @@ -209,8 +209,8 @@ computed: { }, methods: { ...mapActions([ - 'some/nested/module/foo', - 'some/nested/module/bar' + 'some/nested/module/foo', // -> this['some/nested/module/foo']() + 'some/nested/module/bar' // -> this['some/nested/module/bar']() ]) } ``` @@ -226,8 +226,8 @@ computed: { }, methods: { ...mapActions('some/nested/module', [ - 'foo', - 'bar' + 'foo', // -> this.foo() + 'bar' // -> this.bar() ]) } ``` From ba4f6d4e5503da1707dac562c7a4c9abcf90953b Mon Sep 17 00:00:00 2001 From: huming <100huming@gmail.com> Date: Sat, 25 Aug 2018 16:59:52 +0800 Subject: [PATCH 647/969] Update logger.d.ts (#1380) --- dist/logger.d.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/dist/logger.d.ts b/dist/logger.d.ts index 9863e850a..ec52e727e 100644 --- a/dist/logger.d.ts +++ b/dist/logger.d.ts @@ -12,4 +12,4 @@ export interface LoggerOption { mutationTransformer?:

(mutation: P) => any; } -export default function createLogger(option: LoggerOption): Plugin; +export default function createLogger(option?: LoggerOption): Plugin; From 7558cc21e3aeb8e243109bfd7b41f2d730328bbe Mon Sep 17 00:00:00 2001 From: Alexander Sokolov Date: Sat, 25 Aug 2018 12:00:17 +0300 Subject: [PATCH 648/969] docs: [RU] Translation fixes (#1376) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * structure.md исправлена опечатка * actions.md мелкие правки * api.md мелкие правки * intro.md мелкие правки * state.md мелкие правки * strict.md мелкие правки * testing.md мелкие правки * actions.md правки * testing.md правки * Fix typos. ru * SUMMARY.md правки заголовков * Минусы на тире * [RU] Moved to VuePress * Fix & single quotes * [RU] Update * Remove settings.json * fix link * fix images links * translated ru image and ai sources * Localized images * README.md исправлена ссылка * api: formatting example * api: fix links * docs: remove core-concepts.md * modules.md правка примеров * docs: [RU] fix links anchors --- docs/ru/api/README.md | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/docs/ru/api/README.md b/docs/ru/api/README.md index ccd1b51e7..73d09868b 100644 --- a/docs/ru/api/README.md +++ b/docs/ru/api/README.md @@ -20,7 +20,7 @@ const store = new Vuex.Store({ ...options }); Корневой объект состояния хранилища Vuex. [Подробнее](../guide/state.md) - Если вы передаёте функцию, возвращающую объект, то возвращаемый объект будет использован в качестве корневого состояния. Это может быть полезным, если вы хотите повторно использовать объект состояния, особенно при повторном использовании модулей. [Подробнее](../guide/modules.md#повторное-использование-модулей) + Если вы передаёте функцию, возвращающую объект, то возвращаемый объект будет использован в качестве корневого состояния. Это может быть полезным, если вы хотите повторно использовать объект состояния, особенно при повторном использовании модулей. [Подробнее](../guide/modules.md#повторное-испоnьзование-модуnей) ### mutations @@ -200,7 +200,7 @@ store.subscribeAction((action, state) => { * `registerModule(path: string | Array, module: Module, options?: Object)` -Регистрирует динамический модуль. [Подробнее](../guide/modules.md#динамическая-регистрация-модулей) +Регистрирует динамический модуль. [Подробнее](../guide/modules.md#динамическая-регистрация-модуnей) `options` может иметь опцию `preserveState: true`, что позволяет сохранить предыдущее состояние. Полезно с рендерингом на стороне сервера. @@ -208,7 +208,7 @@ store.subscribeAction((action, state) => { * `unregisterModule(path: string | Array)` -Разрегистрирует динамический модуль. [Подробнее](../guide/modules.md#динамическая-регистрация-модулей) +Разрегистрирует динамический модуль. [Подробнее](../guide/modules.md#динамическая-регистрация-модуnей) ### hotUpdate @@ -222,9 +222,9 @@ store.subscribeAction((action, state) => { * `mapState(namespace?: string, map: Array | Object): Object` -Создаёт проксирующие вычисляемые свойства компонента, возвращающие поддерево state'а хранилища Vuex [Подробнее](../guide/state.md#вспомогательная-функция-mapstate) +Создаёт проксирующие вычисляемые свойства компонента, возвращающие поддерево state'а хранилища Vuex [Подробнее](../guide/state.md#вспомогатеnьная-функция-mapstate) -Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) +Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подкnючение-с-помощью-вспомогатеnьных-функций-к-пространству-имён) Второй аргумент вместо объекта может быть функцией. `function(state: any)` @@ -232,9 +232,9 @@ store.subscribeAction((action, state) => { * `mapGetters(namespace?: string, map: Array | Object): Object` -Создаёт проксирующие вычисляемые свойства компонента, проксирующие доступ к геттерам. [Подробнее](../guide/getters.md#вспомогательная-функция-mapgetters) +Создаёт проксирующие вычисляемые свойства компонента, проксирующие доступ к геттерам. [Подробнее](../guide/getters.md#вспомогатеnьная-функция-mapgetters) -Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) +Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подкnючение-с-помощью-вспомогатеnьных-функций-к-пространству-имён) ### mapActions @@ -242,7 +242,7 @@ store.subscribeAction((action, state) => { Создаёт проксирующие методы компонента, позволяющие диспетчеризировать действия. [Подробнее](../guide/actions.md#диспетчеризация-действий-в-компонентах) -Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) +Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подкnючение-с-помощью-вспомогатеnьных-функций-к-пространству-имён) Второй аргумент вместо объекта может быть функцией. `function(dispatch: function, ...args: any[])` @@ -252,7 +252,7 @@ store.subscribeAction((action, state) => { Создаёт проксирующие методы компонента, позволяющие инициировать мутации. [Подробнее](../guide/mutations.md#вызов-мутаций-в-компонентах) -Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) +Первый аргумент опционально может быть строкой с указанным namespace. [Подробнее](../guide/modules.md#подкnючение-с-помощью-вспомогатеnьных-функций-к-пространству-имён) Второй аргумент вместо объекта может быть функцией. `function(commit: function, ...args: any[])` @@ -260,4 +260,4 @@ store.subscribeAction((action, state) => { * `createNamespacedHelpers(namespace: string): Object` -Создаёт вспомогательные функции для связывания с компонентами для указанного пространства имён. Возвращаемый объект содержит `mapState`, `mapGetters`, `mapActions` и `mapMutations`, которые связаны с указанным пространством имён. [Подробнее](../guide/modules.md#подключение-с-помощью-вспомогательных-функций-к-пространству-имён) +Создаёт вспомогательные функции для связывания с компонентами для указанного пространства имён. Возвращаемый объект содержит `mapState`, `mapGetters`, `mapActions` и `mapMutations`, которые связаны с указанным пространством имён. [Подробнее](../guide/modules.md#подкnючение-с-помощью-вспомогатеnьных-функций-к-пространству-имён) From 0a04c4698248d798cef414689b94fc77beefb920 Mon Sep 17 00:00:00 2001 From: Denis Karabaza Date: Sat, 1 Sep 2018 07:06:06 +0300 Subject: [PATCH 649/969] test: fix running on windows (#1371) --- package.json | 3 ++- test/e2e/nightwatch.config.js | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 5cca1a6ee..8c03af5ef 100644 --- a/package.json +++ b/package.json @@ -22,7 +22,7 @@ "test": "npm run lint && npm run test:types && npm run test:unit && npm run test:ssr && npm run test:e2e", "test:unit": "rollup -c build/rollup.dev.config.js && jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", "test:e2e": "node test/e2e/runner.js", - "test:ssr": "rollup -c build/rollup.dev.config.js && VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", + "test:ssr": "rollup -c build/rollup.dev.config.js && cross-env VUE_ENV=server jasmine JASMINE_CONFIG_PATH=test/unit/jasmine.json", "test:types": "tsc -p types/test", "release": "bash build/release.sh", "docs": "vuepress dev docs", @@ -45,6 +45,7 @@ "babel-polyfill": "^6.22.0", "babel-preset-env": "^1.5.1", "chromedriver": "^2.32.3", + "cross-env": "^5.2.0", "cross-spawn": "^5.0.1", "css-loader": "^0.28.7", "eslint": "^3.19.0", diff --git a/test/e2e/nightwatch.config.js b/test/e2e/nightwatch.config.js index 1bcb39af5..1962197cf 100644 --- a/test/e2e/nightwatch.config.js +++ b/test/e2e/nightwatch.config.js @@ -40,7 +40,8 @@ module.exports = { 'desiredCapabilities': { 'browserName': 'phantomjs', 'javascriptEnabled': true, - 'acceptSslCerts': true + 'acceptSslCerts': true, + 'phantomjs.binary.path': require('phantomjs-prebuilt').path } } } From a9bd047ea147cacfcb4003946aeebccd2c5e1e4e Mon Sep 17 00:00:00 2001 From: keng0o Date: Sat, 1 Sep 2018 13:06:32 +0900 Subject: [PATCH 650/969] fix: Add key to v-for (#1369) --- examples/shopping-cart/components/ProductList.vue | 4 +++- examples/shopping-cart/components/ShoppingCart.vue | 4 +++- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/examples/shopping-cart/components/ProductList.vue b/examples/shopping-cart/components/ProductList.vue index 551d7b6bf..a6d5fca57 100644 --- a/examples/shopping-cart/components/ProductList.vue +++ b/examples/shopping-cart/components/ProductList.vue @@ -1,6 +1,8 @@

q$mPyDl=pBVc>A93ICJ(TydYU8n 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 z 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