function Store (options) {
  var this$1 = this;
  if ( options === void 0 ) options = {};

  // Auto install if it is not done yet and `window` has `Vue`.
  // To allow users to avoid auto-installation in some cases,
  // this code should be placed here. See #731
  if (!Vue && typeof window !== 'undefined' && window.Vue) {
    install(window.Vue);
  }

  if (process.env.NODE_ENV !== 'production') {
    assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
    assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
    assert(this instanceof Store, "store must be called with the new operator.");
  }

  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
  var strict = options.strict; if ( strict === void 0 ) strict = false;

  // store internal state
  this._committing = false;
  this._actions = Object.create(null);
  this._actionSubscribers = [];
  this._mutations = Object.create(null);
  this._wrappedGetters = Object.create(null);
  this._modules = new ModuleCollection(options);
  this._modulesNamespaceMap = Object.create(null);
  this._subscribers = [];
  this._watcherVM = new Vue();

  // bind commit and dispatch to self
  var store = this;
  var ref = this;
  var dispatch = ref.dispatch;
  var commit = ref.commit;
  this.dispatch = function boundDispatch (type, payload) {
    return dispatch.call(store, type, payload)
  };
  this.commit = function boundCommit (type, payload, options) {
    return commit.call(store, type, payload, options)
  };

  // strict mode
  this.strict = strict;

  var state = this._modules.root.state;

  // init root module.
  // this also recursively registers all sub-modules
  // and collects all module getters inside this._wrappedGetters
  installModule(this, state, [], this._modules.root);

  // initialize the store vm, which is responsible for the reactivity
  // (also registers _wrappedGetters as computed properties)
  resetStoreVM(this, state);

  // apply plugins
  plugins.forEach(function (plugin) { return plugin(this$1); });

  var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;
  if (useDevtools) {
    devtoolPlugin(this);
  }
}
function Store (options) {
  var this$1 = this;
  if ( options === void 0 ) options = {};

  // Auto install if it is not done yet and `window` has `Vue`.
  // To allow users to avoid auto-installation in some cases,
  // this code should be placed here. See #731
  if (!Vue && typeof window !== 'undefined' && window.Vue) {
    install(window.Vue);
  }

  if (process.env.NODE_ENV !== 'production') {
    assert(Vue, "must call Vue.use(Vuex) before creating a store instance.");
    assert(typeof Promise !== 'undefined', "vuex requires a Promise polyfill in this browser.");
    assert(this instanceof Store, "store must be called with the new operator.");
  }

  var plugins = options.plugins; if ( plugins === void 0 ) plugins = [];
  var strict = options.strict; if ( strict === void 0 ) strict = false;

  // store internal state
  this._committing = false;
  this._actions = Object.create(null);
  this._actionSubscribers = [];
  this._mutations = Object.create(null);
  this._wrappedGetters = Object.create(null);
  this._modules = new ModuleCollection(options);
  this._modulesNamespaceMap = Object.create(null);
  this._subscribers = [];
  this._watcherVM = new Vue();

  // bind commit and dispatch to self
  var store = this;
  var ref = this;
  var dispatch = ref.dispatch;
  var commit = ref.commit;
  this.dispatch = function boundDispatch (type, payload) {
    return dispatch.call(store, type, payload)
  };
  this.commit = function boundCommit (type, payload, options) {
    return commit.call(store, type, payload, options)
  };

  // strict mode
  this.strict = strict;

  var state = this._modules.root.state;

  // init root module.
  // this also recursively registers all sub-modules
  // and collects all module getters inside this._wrappedGetters
  installModule(this, state, [], this._modules.root);

  // initialize the store vm, which is responsible for the reactivity
  // (also registers _wrappedGetters as computed properties)
  resetStoreVM(this, state);

  // apply plugins
  plugins.forEach(function (plugin) { return plugin(this$1); });

  var useDevtools = options.devtools !== undefined ? options.devtools : Vue.config.devtools;
  if (useDevtools) {
    devtoolPlugin(this);
  }
}
function Store ( options ) { var this$1 = this ; if ( options === void 0 ) options = { } ; // Auto install if it is not done yet and `window` has `Vue`. // To allow users to avoid auto-installation in some cases, // this code should be placed here. See #731 if ( ! Vue && typeof window !== 'undefined' && window . Vue ) { install ( window . Vue ) ; } if ( process . env . NODE_ENV !== 'production' ) { assert ( Vue , "must call Vue.use(Vuex) before creating a store instance." ) ; assert ( typeof Promise !== 'undefined' , "vuex requires a Promise polyfill in this browser." ) ; assert ( this instanceof Store , "store must be called with the new operator." ) ; } var plugins = options . plugins ; if ( plugins === void 0 ) plugins = [ ] ; var strict = options . strict ; if ( strict === void 0 ) strict = false ; // store internal state this . _committing = false ; this . _actions = Object . create ( null ) ; this . _actionSubscribers = [ ] ; this . _mutations = Object . create ( null ) ; this . _wrappedGetters = Object . create ( null ) ; this . _modules = new ModuleCollection ( options ) ; this . _modulesNamespaceMap = Object . create ( null ) ; this . _subscribers = [ ] ; this . _watcherVM = new Vue ( ) ; // bind commit and dispatch to self var store = this ; var ref = this ; var dispatch = ref . dispatch ; var commit = ref . commit ; this . dispatch = function boundDispatch ( type , payload ) { return dispatch . call ( store , type , payload ) } ; this . commit = function boundCommit ( type , payload , options ) { return commit . call ( store , type , payload , options ) } ; // strict mode this . strict = strict ; var state = this . _modules . root . state ; // init root module. // this also recursively registers all sub-modules // and collects all module getters inside this._wrappedGetters installModule ( this , state , [ ] , this . _modules . root ) ; // initialize the store vm, which is responsible for the reactivity // (also registers _wrappedGetters as computed properties) resetStoreVM ( this , state ) ; // apply plugins plugins . forEach ( function ( plugin ) { return plugin ( this$1 ) ; } ) ; var useDevtools = options . devtools !== undefined ? options . devtools : Vue . config . devtools ; if ( useDevtools ) { devtoolPlugin ( this ) ; } }
bind on install
bind on install
A store that can be used to store mutations and getters.