Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

@ngxs/store

Package Overview
Dependencies
Maintainers
2
Versions
1360
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@ngxs/store - npm Package Compare versions

Comparing version 2.0.0-dev.af22aaf to 2.0.0-dev.b37ec92

218

bundles/ngxs-store.umd.js
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/BehaviorSubject'), require('rxjs/Observable'), require('rxjs/operators'), require('rxjs/observable/forkJoin'), require('rxjs/operators/map'), require('rxjs/observable/fromPromise'), require('rxjs/observable/of')) :
typeof define === 'function' && define.amd ? define('@ngxs/store', ['exports', '@angular/core', 'rxjs/BehaviorSubject', 'rxjs/Observable', 'rxjs/operators', 'rxjs/observable/forkJoin', 'rxjs/operators/map', 'rxjs/observable/fromPromise', 'rxjs/observable/of'], factory) :
(factory((global.ngxs = global.ngxs || {}, global.ngxs.store = {}),global.ng.core,global.Rx,global.Rx,global.Rx.Observable.prototype,global.Rx.Observable,global.Rx.Observable.prototype,global.Rx.Observable,global.Rx.Observable));
}(this, (function (exports,core,BehaviorSubject,Observable,operators,forkJoin,map,fromPromise,of) { 'use strict';
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@angular/core'), require('rxjs/Subject'), require('rxjs/BehaviorSubject'), require('rxjs/Observable'), require('rxjs/operators'), require('rxjs/observable/forkJoin'), require('rxjs/operators/map'), require('rxjs/observable/fromPromise'), require('rxjs/observable/of')) :
typeof define === 'function' && define.amd ? define('@ngxs/store', ['exports', '@angular/core', 'rxjs/Subject', 'rxjs/BehaviorSubject', 'rxjs/Observable', 'rxjs/operators', 'rxjs/observable/forkJoin', 'rxjs/operators/map', 'rxjs/observable/fromPromise', 'rxjs/observable/of'], factory) :
(factory((global.ngxs = global.ngxs || {}, global.ngxs.store = {}),global.ng.core,global.Rx,global.Rx,global.Rx,global.Rx.Observable.prototype,global.Rx.Observable,global.Rx.Observable.prototype,global.Rx.Observable,global.Rx.Observable));
}(this, (function (exports,core,Subject,BehaviorSubject,Observable,operators,forkJoin,map,fromPromise,of) { 'use strict';

@@ -281,74 +281,96 @@ /*! *****************************************************************************

};
StateFactory.prototype.addAndReturnDefaults = function (stores) {
return this.add(stores).reduce(function (result, meta) { return setValue(result, meta.depth, meta.defaults); }, {});
StateFactory.prototype.addAndReturnDefaults = function (stateKlasses) {
if (stateKlasses) {
var states = this.add(stateKlasses);
var defaults = states.reduce(function (result, meta) { return setValue(result, meta.depth, meta.defaults); }, {});
return { defaults: defaults, states: states };
}
};
StateFactory.prototype.invokeInit = function (getState, setState, dispatch, stateMetadatas) {
try {
for (var stateMetadatas_1 = __values(stateMetadatas), stateMetadatas_1_1 = stateMetadatas_1.next(); !stateMetadatas_1_1.done; stateMetadatas_1_1 = stateMetadatas_1.next()) {
var metadata = stateMetadatas_1_1.value;
if (metadata.instance.onInit) {
var stateContext = this.createStateContext(getState, setState, dispatch, metadata);
metadata.instance.onInit(stateContext);
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (stateMetadatas_1_1 && !stateMetadatas_1_1.done && (_a = stateMetadatas_1.return)) _a.call(stateMetadatas_1);
}
finally { if (e_2) throw e_2.error; }
}
var e_2, _a;
};
StateFactory.prototype.invokeActions = function (getState, setState, dispatch, action) {
var results = [];
var _loop_2 = function (metadata) {
var name = getActionTypeFromInstance(action);
var actionMetas = metadata.actions[name];
if (actionMetas) {
try {
for (var actionMetas_1 = __values(actionMetas), actionMetas_1_1 = actionMetas_1.next(); !actionMetas_1_1.done; actionMetas_1_1 = actionMetas_1.next()) {
var actionMeta = actionMetas_1_1.value;
var stateContext = {
getState: function () {
var state = getState();
return getValue(state, metadata.depth);
},
patchState: function (val) {
if (Array.isArray(val)) {
throw new Error('Patching arrays is not supported.');
}
var state = getState();
var local = getValue(state, metadata.depth);
for (var k in val) {
local[k] = val[k];
}
state = setValue(state, metadata.depth, Object.assign({}, local));
setState(state);
return state;
},
setState: function (val) {
var state = getState();
state = setValue(state, metadata.depth, val);
setState(state);
return state;
},
dispatch: function (actions) {
return dispatch(actions);
try {
for (var _a = __values(this.states), _b = _a.next(); !_b.done; _b = _a.next()) {
var metadata = _b.value;
var name = getActionTypeFromInstance(action);
var actionMetas = metadata.actions[name];
if (actionMetas) {
try {
for (var actionMetas_1 = __values(actionMetas), actionMetas_1_1 = actionMetas_1.next(); !actionMetas_1_1.done; actionMetas_1_1 = actionMetas_1.next()) {
var actionMeta = actionMetas_1_1.value;
var stateContext = this.createStateContext(getState, setState, dispatch, metadata);
var result = metadata.instance[actionMeta.fn](stateContext, action);
if (result) {
results.push(result);
}
};
var result = metadata.instance[actionMeta.fn](stateContext, action);
if (result) {
results.push(result);
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (actionMetas_1_1 && !actionMetas_1_1.done && (_a = actionMetas_1.return)) _a.call(actionMetas_1);
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (actionMetas_1_1 && !actionMetas_1_1.done && (_c = actionMetas_1.return)) _c.call(actionMetas_1);
}
finally { if (e_3) throw e_3.error; }
}
finally { if (e_2) throw e_2.error; }
}
}
var e_2, _a;
};
try {
for (var _a = __values(this.states), _b = _a.next(); !_b.done; _b = _a.next()) {
var metadata = _b.value;
_loop_2(metadata);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
}
finally { if (e_3) throw e_3.error; }
finally { if (e_4) throw e_4.error; }
}
return results;
var e_3, _c;
var e_4, _d, e_3, _c;
};
StateFactory.prototype.createStateContext = function (getState, setState, dispatch, metadata) {
return {
getState: function () {
var state = getState();
return getValue(state, metadata.depth);
},
patchState: function (val) {
if (Array.isArray(val)) {
throw new Error('Patching arrays is not supported.');
}
var state = getState();
var local = getValue(state, metadata.depth);
for (var k in val) {
local[k] = val[k];
}
state = setValue(state, metadata.depth, Object.assign({}, local));
setState(state);
return state;
},
setState: function (val) {
var state = getState();
state = setValue(state, metadata.depth, val);
setState(state);
return state;
},
dispatch: function (actions) {
return dispatch(actions);
}
};
};
return StateFactory;

@@ -366,3 +388,3 @@ }());

function Actions(parent) {
var _this = _super.call(this, {}) || this;
var _this = _super.call(this) || this;
if (parent) {

@@ -374,3 +396,3 @@ Object.assign(_this, parent);

return Actions;
}(BehaviorSubject.BehaviorSubject));
}(Subject.Subject));
Actions.decorators = [

@@ -475,3 +497,8 @@ { type: core.Injectable },

}
return this._stateStream.pipe(map.map(selector), operators.distinctUntilChanged());
return this._stateStream.pipe(map.map(selector), operators.catchError(function (err) {
if (err instanceof TypeError) {
return of.of(undefined);
}
throw err;
}), operators.distinctUntilChanged());
};

@@ -516,3 +543,3 @@ Store.prototype.selectOnce = function (selector) {

}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {

@@ -522,6 +549,6 @@ try {

}
finally { if (e_4) throw e_4.error; }
finally { if (e_5) throw e_5.error; }
}
return results;
var e_4, _a;
var e_5, _a;
};

@@ -614,15 +641,13 @@ return Store;

var NgxsRootModule = /** @class */ (function () {
function NgxsRootModule(_factory, _stateStream, store, select, states) {
this._factory = _factory;
this._stateStream = _stateStream;
this.initStates(states);
function NgxsRootModule(factory, stateStream, store, select, states) {
var results = factory.addAndReturnDefaults(states);
if (results) {
var cur = stateStream.getValue();
stateStream.next(Object.assign({}, cur, results.defaults));
}
store.dispatch(new InitState());
if (results) {
factory.invokeInit(function () { return stateStream.getValue(); }, function (newState) { return stateStream.next(newState); }, function (actions) { return store.dispatch(actions); }, results.states);
}
}
NgxsRootModule.prototype.initStates = function (states) {
if (states) {
var init = this._factory.addAndReturnDefaults(states);
var cur = this._stateStream.getValue();
this._stateStream.next(Object.assign({}, cur, init));
}
};
return NgxsRootModule;

@@ -641,16 +666,14 @@ }());

var NgxsFeatureModule = /** @class */ (function () {
function NgxsFeatureModule(root, store, _stateStream, _factory, states) {
this._stateStream = _stateStream;
this._factory = _factory;
function NgxsFeatureModule(store, stateStream, factory, states) {
var flattenedStates = (([])).concat.apply((([])), __spread(states));
this.initStates(flattenedStates);
var results = factory.addAndReturnDefaults(flattenedStates);
if (results) {
var cur = stateStream.getValue();
stateStream.next(Object.assign({}, cur, results.defaults));
}
store.dispatch(new UpdateState());
if (results) {
factory.invokeInit(function () { return stateStream.getValue(); }, function (newState) { return stateStream.next(newState); }, function (actions) { return store.dispatch(actions); }, results.states);
}
}
NgxsFeatureModule.prototype.initStates = function (stores) {
if (stores) {
var init = this._factory.addAndReturnDefaults(stores);
var cur = this._stateStream.getValue();
this._stateStream.next(Object.assign({}, cur, init));
}
};
return NgxsFeatureModule;

@@ -662,3 +685,2 @@ }());

NgxsFeatureModule.ctorParameters = function () { return [
{ type: NgxsRootModule, },
{ type: Store, },

@@ -731,3 +753,3 @@ { type: StateStream, },

}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {

@@ -737,5 +759,5 @@ try {

}
finally { if (e_5) throw e_5.error; }
finally { if (e_6) throw e_6.error; }
}
var e_5, _a;
var e_6, _a;
};

@@ -793,3 +815,3 @@ }

return function (target, key, descriptor) {
var metadata = target[META_KEY];
var metadata = ensureStoreMetadata(target);
if (descriptor.value !== null) {

@@ -799,3 +821,11 @@ var prev_1 = descriptor.value;

var local = getValue(state, metadata.path);
return prev_1(local);
try {
return prev_1(local);
}
catch (ex) {
if (ex instanceof TypeError) {
return undefined;
}
throw ex;
}
};

@@ -802,0 +832,0 @@ return {

@@ -1,2 +0,2 @@

!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/core"),require("rxjs/BehaviorSubject"),require("rxjs/Observable"),require("rxjs/operators"),require("rxjs/observable/forkJoin"),require("rxjs/operators/map"),require("rxjs/observable/fromPromise"),require("rxjs/observable/of")):"function"==typeof define&&define.amd?define("@ngxs/store",["exports","@angular/core","rxjs/BehaviorSubject","rxjs/Observable","rxjs/operators","rxjs/observable/forkJoin","rxjs/operators/map","rxjs/observable/fromPromise","rxjs/observable/of"],r):r((t.ngxs=t.ngxs||{},t.ngxs.store={}),t.ng.core,t.Rx,t.Rx,t.Rx.Observable.prototype,t.Rx.Observable,t.Rx.Observable.prototype,t.Rx.Observable,t.Rx.Observable)}(this,function(t,r,e,u,o,n,a,c,i){"use strict";var s=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])};function p(t,r){function e(){this.constructor=t}s(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}function m(t){var r="function"==typeof Symbol&&t[Symbol.iterator],e=0;return r?r.call(t):{next:function(){return t&&e>=t.length&&(t=void 0),{value:t&&t[e++],done:!t}}}}function f(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var n,o,a=e.call(t),i=[];try{for(;(void 0===r||0<r--)&&!(n=a.next()).done;)i.push(n.value)}catch(s){o={error:s}}finally{try{n&&!n.done&&(e=a["return"])&&e.call(a)}finally{if(o)throw o.error}}return i}function S(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(f(arguments[r]));return t}var l=new r.InjectionToken("ROOT_STATE_TOKEN"),h=new r.InjectionToken("FEATURE_STATE_TOKEN"),j="NGXS_META",y=new r.InjectionToken("NGXS_PLUGINS");function d(t){if(!t.hasOwnProperty(j)){Object.defineProperty(t,j,{value:{name:null,actions:{},defaults:{},path:null,children:[]}})}return t[j]}function v(t){for(var r=t,e="store."+r[0],n=0,o=r.length,a=e;++n<o;)a=a+" && "+(e=e+"."+r[n]);return new Function("store","return "+a+";")}function b(t){return t.constructor.type?t.constructor.type:t.constructor.name?t.constructor.name:t.type?t.type:void 0}var g=function(t,r,e){t=Object.assign({},t);var n=r.split("."),o=n[n.length-1];return n.reduce(function(t,r){return t[r]=r===o?e:Object.assign({},t[r]),t&&t[r]},t),t},_=function(t,r){return r.split(".").reduce(function(t,r){return t&&t[r]},t)},x=function(){function t(t,r){this._injector=t,this._parentFactory=r,this._states=[]}return Object.defineProperty(t.prototype,"states",{get:function(){return this._parentFactory?this._parentFactory.states:this._states},enumerable:!0,configurable:!0}),t.prototype.add=function(t){Array.isArray(t)||(t=[t]);var e,a,n,o,i,s,r,u,c,p=(a=function(r){var t=e.find(function(t){return t===r});if(!t)throw new Error("Child state not found: "+r);if(!t[j])throw new Error("States must be decorated with @State() decorator");return t[j].name},(e=t).reduce(function(t,r){if(!r[j])throw new Error("States must be decorated with @State() decorator");var e=r[j],n=e.name,o=e.children;return t[n]=(o||[]).map(a),t},{})),f=(n=p,o=[],i={},s=function(r,e){void 0===e&&(e=[]),Array.isArray(e)||(e=[]),e.push(r),i[r]=!0,n[r].forEach(function(t){if(0<=e.indexOf(t))throw new Error("Circular dependency '"+t+"' is required by '"+r+"': "+e.join(" -> "));i[t]||s(t,e.slice(0))}),o.indexOf(r)<0&&o.push(r)},Object.keys(n).forEach(function(t){return s(t)}),o.reverse()),l=function(t,r){void 0===r&&(r={});var o=function(t,r){for(var e in t)if(t.hasOwnProperty(e)&&0<=t[e].indexOf(r)){var n=o(t,e);return null!==n?n+"."+e:e}return null};for(var e in t)if(t.hasOwnProperty(e)){var n=o(t,e);r[e]=n?n+"."+e:e}return r}(p),h=t.reduce(function(t,r){if(!r[j])throw new Error("States must be decorated with @State() decorator");return t[r[j].name]=r,t},{}),y=[],d=function(r){var t=h[r];if(!t[j])throw new Error("States must be decorated with @State() decorator");var e,n=l[r],o=t[j].actions,a=t[j].defaults;if(t[j].path=n,v.states.find(function(t){return t.name===r}))throw new Error("Store has already been added: "+r);Array.isArray(a)?a=S(a):"object"==typeof(e=a)&&null!==e||"function"==typeof e?a=Object.assign({},a):a===undefined&&(a={});var i=v._injector.get(t);y.push({actions:o,instance:i,defaults:a,name:r,depth:n})},v=this;try{for(var b=m(f),g=b.next();!g.done;g=b.next()){d(g.value)}}catch(_){r={error:_}}finally{try{g&&!g.done&&(u=b["return"])&&u.call(b)}finally{if(r)throw r.error}}return(c=this.states).push.apply(c,S(y)),y},t.prototype.addAndReturnDefaults=function(t){return this.add(t).reduce(function(t,r){return g(t,r.depth,r.defaults)},{})},t.prototype.invokeActions=function(f,l,h,y){var t,r,d=[],e=function(o){var t,r,e=b(y),n=o.actions[e];if(n)try{for(var a=m(n),i=a.next();!i.done;i=a.next()){var s=i.value,u={getState:function(){var t=f();return _(t,o.depth)},patchState:function(t){if(Array.isArray(t))throw new Error("Patching arrays is not supported.");var r=f(),e=_(r,o.depth);for(var n in t)e[n]=t[n];return r=g(r,o.depth,Object.assign({},e)),l(r),r},setState:function(t){var r=f();return r=g(r,o.depth,t),l(r),r},dispatch:function(t){return h(t)}},c=o.instance[s.fn](u,y);c&&d.push(c)}}catch(p){t={error:p}}finally{try{i&&!i.done&&(r=a["return"])&&r.call(a)}finally{if(t)throw t.error}}};try{for(var n=m(this.states),o=n.next();!o.done;o=n.next()){e(o.value)}}catch(a){t={error:a}}finally{try{o&&!o.done&&(r=n["return"])&&r.call(n)}finally{if(t)throw t.error}}return d},t}();x.decorators=[{type:r.Injectable}],x.ctorParameters=function(){return[{type:r.Injector},{type:x,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var w=function(e){function t(t){var r=e.call(this,{})||this;return t&&Object.assign(r,t),r}return p(t,e),t}(e.BehaviorSubject);w.decorators=[{type:r.Injectable}],w.ctorParameters=function(){return[{type:w,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var O=function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.shift().apply(void 0,S(t,[function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return O(e).apply(void 0,S(t))}]))}},A=function(e){function t(t){var r=e.call(this,{})||this;return t&&Object.assign(r,t),r}return p(t,e),t}(e.BehaviorSubject);A.decorators=[{type:r.Injectable}],A.ctorParameters=function(){return[{type:A,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var P=function(){function t(t,r){this._parentManager=t,this._plugins=r,this.plugins=[],this.register()}return t.prototype.register=function(){var t;this._plugins&&(this.plugins=this._plugins.map(function(t){return t.handle?t.handle.bind(t):t}),this._parentManager&&(t=this._parentManager.plugins).push.apply(t,S(this.plugins)))},t}();P.decorators=[{type:r.Injectable}],P.ctorParameters=function(){return[{type:P,decorators:[{type:r.Optional},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Inject,args:[y]},{type:r.Optional}]}]};var E=function(){function t(t,r,e,n,o){this._errorHandler=t,this._actions=r,this._storeFactory=e,this._pluginManager=n,this._stateStream=o}return t.prototype.dispatch=function(t){var r,e=this;return(r=Array.isArray(t)?n.forkJoin(t.map(function(t){return e._dispatch(t)})):this._dispatch(t)).pipe(o.catchError(function(t){return e._errorHandler.handleError(t),i.of(t)})),r.subscribe(),r},t.prototype.select=function(t){if(t[j]&&t[j].path){var r=v(t[j].path.split("."));return this._stateStream.pipe(a.map(r),o.distinctUntilChanged())}return this._stateStream.pipe(a.map(t),o.distinctUntilChanged())},t.prototype.selectOnce=function(t){return this.select(t).pipe(o.take(1))},t.prototype.subscribe=function(t){return this._stateStream.subscribe(t)},t.prototype._dispatch=function(t){var e=this,n=this._stateStream.getValue(),r=this._pluginManager.plugins;return O(S(r,[function(t,r){return t!==n&&e._stateStream.next(t),e._actions.next(r),e._dispatchActions(r).pipe(a.map(function(){return e._stateStream.getValue()}))}]))(n,t).pipe(o.shareReplay())},t.prototype._dispatchActions=function(t){var r=this,e=this._storeFactory.invokeActions(function(){return r._stateStream.getValue()},function(t){return r._stateStream.next(t)},function(t){return r.dispatch(t)},t);return(e.length?n.forkJoin(this._handleNesting(e)):i.of({})).pipe(o.shareReplay())},t.prototype._handleNesting=function(t){var r,e,n=[];try{for(var o=m(t),a=o.next();!a.done;a=o.next()){var i=a.value;i instanceof Promise&&(i=c.fromPromise(i)),i instanceof u.Observable&&n.push(i)}}catch(s){r={error:s}}finally{try{a&&!a.done&&(e=o["return"])&&e.call(o)}finally{if(r)throw r.error}}return n},t}();E.decorators=[{type:r.Injectable}],E.ctorParameters=function(){return[{type:r.ErrorHandler},{type:w},{type:x},{type:P},{type:A}]};var I=function(t){};I.store=undefined,I.decorators=[{type:r.Injectable}],I.ctorParameters=function(){return[{type:E}]};var k=function(){};k.type="@@INIT";var T=function(){};T.type="@@UPDATE_STATE";var R=function(){function t(t,r,e,n,o){this._factory=t,this._stateStream=r,this.initStates(o),e.dispatch(new k)}return t.prototype.initStates=function(t){if(t){var r=this._factory.addAndReturnDefaults(t),e=this._stateStream.getValue();this._stateStream.next(Object.assign({},e,r))}},t}();R.decorators=[{type:r.NgModule}],R.ctorParameters=function(){return[{type:x},{type:A},{type:E},{type:I},{type:Array,decorators:[{type:r.Optional},{type:r.Inject,args:[l]}]}]};var M=function(){function t(t,r,e,n,o){this._stateStream=e,this._factory=n;var a=[].concat.apply([],S(o));this.initStates(a),r.dispatch(new T)}return t.prototype.initStates=function(t){if(t){var r=this._factory.addAndReturnDefaults(t),e=this._stateStream.getValue();this._stateStream.next(Object.assign({},e,r))}},t}();M.decorators=[{type:r.NgModule,args:[{}]}],M.ctorParameters=function(){return[{type:R},{type:E},{type:A},{type:x},{type:Array,decorators:[{type:r.Optional},{type:r.Inject,args:[h]}]}]};var N=function(){function t(){}return t.forRoot=function(t){return void 0===t&&(t=[]),{ngModule:R,providers:S([x,w,E,A,I,P],t,[{provide:l,useValue:t}])}},t.forFeature=function(t){return{ngModule:M,providers:S([x,P],t,[{provide:h,multi:!0,useValue:t}])}},t}();N.decorators=[{type:r.NgModule,args:[{}]}],N.ctorParameters=function(){return[]},t.NgxsModule=N,t.Action=function(l){return function(t,r,e){var n,o,a,i=d(t.constructor);Array.isArray(l)||(l=[l]);try{for(var s=m(l),u=s.next();!u.done;u=s.next()){var c=u.value,p=(n=c).type?n.type:n.name?n.name:void 0;i.actions[p]||(i.actions[p]=[]),i.actions[p].push({fn:r,type:p})}}catch(f){o={error:f}}finally{try{u&&!u.done&&(a=s["return"])&&a.call(s)}finally{if(o)throw o.error}}}},t.Store=E,t.State=function(n){return function(t){var r=d(t);if(t.__proto__.hasOwnProperty(j)){var e=t.__proto__[j];r.actions=Object.assign({},r.actions,e.actions)}if(r.children=n.children,r.defaults=n.defaults,r.name=n.name,!n.name)throw new Error("States must register a 'name' property")}},t.Select=function(n){for(var o=[],t=1;t<arguments.length;t++)o[t-1]=arguments[t];return function(t,r){var e="__"+r+"__selector";if(n||(n=r.lastIndexOf("$")===r.length-1?r.substring(0,r.length-1):r),t[e])throw new Error("You cannot use @Select decorator and a "+e+" property.");delete t[r]&&(Object.defineProperty(t,e,{writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,r,{get:function(){return this[e]||(this[e]=function(t){var r=I.store;if(!r)throw new Error("SelectFactory not connected to store!");return r.select(t)}.apply(this,["string"==typeof n?v(o.length?S([n],o):n.split(".")):n[j]&&n[j].path?v(n[j].path.split(".")):n]))},enumerable:!0,configurable:!0}))}},t.Actions=w,t.ofAction=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e={};return t.forEach(function(t){return e[t.type||t.name]=!0}),o.filter(function(t){return e[t.constructor.type||t.constructor.name]})},t.Selector=function(){for(var i=[],t=0;t<arguments.length;t++)i[t]=arguments[t];return function(t,r,e){var n=t[j];if(null!==e.value){var o=e.value,a=function(t){var r=_(t,n.path);return o(r)};return{configurable:!0,get:function(){return function(a,i){var s=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=i?i.apply(this,t):t[0],n=s.cache;if(n.has(e))return n.get(e);var o=a.apply(this,t);return s.cache=n.set(e,o)||n,o};return s.cache=new WeakMap,s}.apply(null,S([a],i))}}}throw new Error("Selectors only work on methods")}},t.getActionTypeFromInstance=b,t.NGXS_PLUGINS=y,t.StateStream=A,t.setValue=g,t.getValue=_,t.InitState=k,t.UpdateState=T,t.ɵb=M,t.ɵa=R,t.ɵg=P,t.ɵc=I,t.ɵf=x,t.ɵe=h,t.ɵd=l,Object.defineProperty(t,"__esModule",{value:!0})});
!function(t,r){"object"==typeof exports&&"undefined"!=typeof module?r(exports,require("@angular/core"),require("rxjs/Subject"),require("rxjs/BehaviorSubject"),require("rxjs/Observable"),require("rxjs/operators"),require("rxjs/observable/forkJoin"),require("rxjs/operators/map"),require("rxjs/observable/fromPromise"),require("rxjs/observable/of")):"function"==typeof define&&define.amd?define("@ngxs/store",["exports","@angular/core","rxjs/Subject","rxjs/BehaviorSubject","rxjs/Observable","rxjs/operators","rxjs/observable/forkJoin","rxjs/operators/map","rxjs/observable/fromPromise","rxjs/observable/of"],r):r((t.ngxs=t.ngxs||{},t.ngxs.store={}),t.ng.core,t.Rx,t.Rx,t.Rx,t.Rx.Observable.prototype,t.Rx.Observable,t.Rx.Observable.prototype,t.Rx.Observable,t.Rx.Observable)}(this,function(t,r,e,n,c,o,a,i,s,u){"use strict";var f=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(t,r){t.__proto__=r}||function(t,r){for(var e in r)r.hasOwnProperty(e)&&(t[e]=r[e])};function p(t,r){function e(){this.constructor=t}f(t,r),t.prototype=null===r?Object.create(r):(e.prototype=r.prototype,new e)}function S(t){var r="function"==typeof Symbol&&t[Symbol.iterator],e=0;return r?r.call(t):{next:function(){return t&&e>=t.length&&(t=void 0),{value:t&&t[e++],done:!t}}}}function l(t,r){var e="function"==typeof Symbol&&t[Symbol.iterator];if(!e)return t;var n,o,a=e.call(t),i=[];try{for(;(void 0===r||0<r--)&&!(n=a.next()).done;)i.push(n.value)}catch(u){o={error:u}}finally{try{n&&!n.done&&(e=a["return"])&&e.call(a)}finally{if(o)throw o.error}}return i}function _(){for(var t=[],r=0;r<arguments.length;r++)t=t.concat(l(arguments[r]));return t}var y=new r.InjectionToken("ROOT_STATE_TOKEN"),d=new r.InjectionToken("FEATURE_STATE_TOKEN"),x="NGXS_META",h=new r.InjectionToken("NGXS_PLUGINS");function v(t){if(!t.hasOwnProperty(x)){Object.defineProperty(t,x,{value:{name:null,actions:{},defaults:{},path:null,children:[]}})}return t[x]}function b(t){for(var r=t,e="store."+r[0],n=0,o=r.length,a=e;++n<o;)a=a+" && "+(e=e+"."+r[n]);return new Function("store","return "+a+";")}function j(t){return t.constructor.type?t.constructor.type:t.constructor.name?t.constructor.name:t.type?t.type:void 0}var g=function(t,r,e){t=Object.assign({},t);var n=r.split("."),o=n[n.length-1];return n.reduce(function(t,r){return t[r]=r===o?e:Object.assign({},t[r]),t&&t[r]},t),t},m=function(t,r){return r.split(".").reduce(function(t,r){return t&&t[r]},t)},w=function(){function t(t,r){this._injector=t,this._parentFactory=r,this._states=[]}return Object.defineProperty(t.prototype,"states",{get:function(){return this._parentFactory?this._parentFactory.states:this._states},enumerable:!0,configurable:!0}),t.prototype.add=function(t){Array.isArray(t)||(t=[t]);var e,a,n,o,i,u,r,c,s,f=(a=function(r){var t=e.find(function(t){return t===r});if(!t)throw new Error("Child state not found: "+r);if(!t[x])throw new Error("States must be decorated with @State() decorator");return t[x].name},(e=t).reduce(function(t,r){if(!r[x])throw new Error("States must be decorated with @State() decorator");var e=r[x],n=e.name,o=e.children;return t[n]=(o||[]).map(a),t},{})),p=(n=f,o=[],i={},u=function(r,e){void 0===e&&(e=[]),Array.isArray(e)||(e=[]),e.push(r),i[r]=!0,n[r].forEach(function(t){if(0<=e.indexOf(t))throw new Error("Circular dependency '"+t+"' is required by '"+r+"': "+e.join(" -> "));i[t]||u(t,e.slice(0))}),o.indexOf(r)<0&&o.push(r)},Object.keys(n).forEach(function(t){return u(t)}),o.reverse()),l=function(t,r){void 0===r&&(r={});var o=function(t,r){for(var e in t)if(t.hasOwnProperty(e)&&0<=t[e].indexOf(r)){var n=o(t,e);return null!==n?n+"."+e:e}return null};for(var e in t)if(t.hasOwnProperty(e)){var n=o(t,e);r[e]=n?n+"."+e:e}return r}(f),y=t.reduce(function(t,r){if(!r[x])throw new Error("States must be decorated with @State() decorator");return t[r[x].name]=r,t},{}),d=[],h=function(r){var t=y[r];if(!t[x])throw new Error("States must be decorated with @State() decorator");var e,n=l[r],o=t[x].actions,a=t[x].defaults;if(t[x].path=n,v.states.find(function(t){return t.name===r}))throw new Error("Store has already been added: "+r);Array.isArray(a)?a=_(a):"object"==typeof(e=a)&&null!==e||"function"==typeof e?a=Object.assign({},a):a===undefined&&(a={});var i=v._injector.get(t);d.push({actions:o,instance:i,defaults:a,name:r,depth:n})},v=this;try{for(var b=S(p),g=b.next();!g.done;g=b.next()){h(g.value)}}catch(m){r={error:m}}finally{try{g&&!g.done&&(c=b["return"])&&c.call(b)}finally{if(r)throw r.error}}return(s=this.states).push.apply(s,_(d)),d},t.prototype.addAndReturnDefaults=function(t){if(t){var r=this.add(t);return{defaults:r.reduce(function(t,r){return g(t,r.depth,r.defaults)},{}),states:r}}},t.prototype.invokeInit=function(t,r,e,n){try{for(var o=S(n),a=o.next();!a.done;a=o.next()){var i=a.value;if(i.instance.onInit){var u=this.createStateContext(t,r,e,i);i.instance.onInit(u)}}}catch(f){c={error:f}}finally{try{a&&!a.done&&(s=o["return"])&&s.call(o)}finally{if(c)throw c.error}}var c,s},t.prototype.invokeActions=function(t,r,e,n){var o,a,i,u,c=[];try{for(var s=S(this.states),f=s.next();!f.done;f=s.next()){var p=f.value,l=j(n),y=p.actions[l];if(y)try{for(var d=S(y),h=d.next();!h.done;h=d.next()){var v=h.value,b=this.createStateContext(t,r,e,p),g=p.instance[v.fn](b,n);g&&c.push(g)}}catch(m){i={error:m}}finally{try{h&&!h.done&&(u=d["return"])&&u.call(d)}finally{if(i)throw i.error}}}}catch(_){o={error:_}}finally{try{f&&!f.done&&(a=s["return"])&&a.call(s)}finally{if(o)throw o.error}}return c},t.prototype.createStateContext=function(o,a,r,i){return{getState:function(){var t=o();return m(t,i.depth)},patchState:function(t){if(Array.isArray(t))throw new Error("Patching arrays is not supported.");var r=o(),e=m(r,i.depth);for(var n in t)e[n]=t[n];return r=g(r,i.depth,Object.assign({},e)),a(r),r},setState:function(t){var r=o();return r=g(r,i.depth,t),a(r),r},dispatch:function(t){return r(t)}}},t}();w.decorators=[{type:r.Injectable}],w.ctorParameters=function(){return[{type:r.Injector},{type:w,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var O=function(e){function t(t){var r=e.call(this)||this;return t&&Object.assign(r,t),r}return p(t,e),t}(e.Subject);O.decorators=[{type:r.Injectable}],O.ctorParameters=function(){return[{type:O,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var A=function(e){return function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return e.shift().apply(void 0,_(t,[function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];return A(e).apply(void 0,_(t))}]))}},E=function(e){function t(t){var r=e.call(this,{})||this;return t&&Object.assign(r,t),r}return p(t,e),t}(n.BehaviorSubject);E.decorators=[{type:r.Injectable}],E.ctorParameters=function(){return[{type:E,decorators:[{type:r.Optional},{type:r.SkipSelf}]}]};var P=function(){function t(t,r){this._parentManager=t,this._plugins=r,this.plugins=[],this.register()}return t.prototype.register=function(){var t;this._plugins&&(this.plugins=this._plugins.map(function(t){return t.handle?t.handle.bind(t):t}),this._parentManager&&(t=this._parentManager.plugins).push.apply(t,_(this.plugins)))},t}();P.decorators=[{type:r.Injectable}],P.ctorParameters=function(){return[{type:P,decorators:[{type:r.Optional},{type:r.SkipSelf}]},{type:Array,decorators:[{type:r.Inject,args:[h]},{type:r.Optional}]}]};var I=function(){function t(t,r,e,n,o){this._errorHandler=t,this._actions=r,this._storeFactory=e,this._pluginManager=n,this._stateStream=o}return t.prototype.dispatch=function(t){var r,e=this;return(r=Array.isArray(t)?a.forkJoin(t.map(function(t){return e._dispatch(t)})):this._dispatch(t)).pipe(o.catchError(function(t){return e._errorHandler.handleError(t),u.of(t)})),r.subscribe(),r},t.prototype.select=function(t){if(t[x]&&t[x].path){var r=b(t[x].path.split("."));return this._stateStream.pipe(i.map(r),o.distinctUntilChanged())}return this._stateStream.pipe(i.map(t),o.catchError(function(t){if(t instanceof TypeError)return u.of(undefined);throw t}),o.distinctUntilChanged())},t.prototype.selectOnce=function(t){return this.select(t).pipe(o.take(1))},t.prototype.subscribe=function(t){return this._stateStream.subscribe(t)},t.prototype._dispatch=function(t){var e=this,n=this._stateStream.getValue(),r=this._pluginManager.plugins;return A(_(r,[function(t,r){return t!==n&&e._stateStream.next(t),e._actions.next(r),e._dispatchActions(r).pipe(i.map(function(){return e._stateStream.getValue()}))}]))(n,t).pipe(o.shareReplay())},t.prototype._dispatchActions=function(t){var r=this,e=this._storeFactory.invokeActions(function(){return r._stateStream.getValue()},function(t){return r._stateStream.next(t)},function(t){return r.dispatch(t)},t);return(e.length?a.forkJoin(this._handleNesting(e)):u.of({})).pipe(o.shareReplay())},t.prototype._handleNesting=function(t){var r,e,n=[];try{for(var o=S(t),a=o.next();!a.done;a=o.next()){var i=a.value;i instanceof Promise&&(i=s.fromPromise(i)),i instanceof c.Observable&&n.push(i)}}catch(u){r={error:u}}finally{try{a&&!a.done&&(e=o["return"])&&e.call(o)}finally{if(r)throw r.error}}return n},t}();I.decorators=[{type:r.Injectable}],I.ctorParameters=function(){return[{type:r.ErrorHandler},{type:O},{type:w},{type:P},{type:E}]};var k=function(t){};k.store=undefined,k.decorators=[{type:r.Injectable}],k.ctorParameters=function(){return[{type:I}]};var T=function(){};T.type="@@INIT";var R=function(){};R.type="@@UPDATE_STATE";var M=function(t,r,e,n,o){var a=t.addAndReturnDefaults(o);if(a){var i=r.getValue();r.next(Object.assign({},i,a.defaults))}e.dispatch(new T),a&&t.invokeInit(function(){return r.getValue()},function(t){return r.next(t)},function(t){return e.dispatch(t)},a.states)};M.decorators=[{type:r.NgModule}],M.ctorParameters=function(){return[{type:w},{type:E},{type:I},{type:k},{type:Array,decorators:[{type:r.Optional},{type:r.Inject,args:[y]}]}]};var N=function(r,e,t,n){var o=[].concat.apply([],_(n)),a=t.addAndReturnDefaults(o);if(a){var i=e.getValue();e.next(Object.assign({},i,a.defaults))}r.dispatch(new R),a&&t.invokeInit(function(){return e.getValue()},function(t){return e.next(t)},function(t){return r.dispatch(t)},a.states)};N.decorators=[{type:r.NgModule,args:[{}]}],N.ctorParameters=function(){return[{type:I},{type:E},{type:w},{type:Array,decorators:[{type:r.Optional},{type:r.Inject,args:[d]}]}]};var V=function(){function t(){}return t.forRoot=function(t){return void 0===t&&(t=[]),{ngModule:M,providers:_([w,O,I,E,k,P],t,[{provide:y,useValue:t}])}},t.forFeature=function(t){return{ngModule:N,providers:_([w,P],t,[{provide:d,multi:!0,useValue:t}])}},t}();V.decorators=[{type:r.NgModule,args:[{}]}],V.ctorParameters=function(){return[]},t.NgxsModule=V,t.Action=function(l){return function(t,r,e){var n,o,a,i=v(t.constructor);Array.isArray(l)||(l=[l]);try{for(var u=S(l),c=u.next();!c.done;c=u.next()){var s=c.value,f=(n=s).type?n.type:n.name?n.name:void 0;i.actions[f]||(i.actions[f]=[]),i.actions[f].push({fn:r,type:f})}}catch(p){o={error:p}}finally{try{c&&!c.done&&(a=u["return"])&&a.call(u)}finally{if(o)throw o.error}}}},t.Store=I,t.State=function(n){return function(t){var r=v(t);if(t.__proto__.hasOwnProperty(x)){var e=t.__proto__[x];r.actions=Object.assign({},r.actions,e.actions)}if(r.children=n.children,r.defaults=n.defaults,r.name=n.name,!n.name)throw new Error("States must register a 'name' property")}},t.Select=function(n){for(var o=[],t=1;t<arguments.length;t++)o[t-1]=arguments[t];return function(t,r){var e="__"+r+"__selector";if(n||(n=r.lastIndexOf("$")===r.length-1?r.substring(0,r.length-1):r),t[e])throw new Error("You cannot use @Select decorator and a "+e+" property.");delete t[r]&&(Object.defineProperty(t,e,{writable:!0,enumerable:!1,configurable:!0}),Object.defineProperty(t,r,{get:function(){return this[e]||(this[e]=function(t){var r=k.store;if(!r)throw new Error("SelectFactory not connected to store!");return r.select(t)}.apply(this,["string"==typeof n?b(o.length?_([n],o):n.split(".")):n[x]&&n[x].path?b(n[x].path.split(".")):n]))},enumerable:!0,configurable:!0}))}},t.Actions=O,t.ofAction=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e={};return t.forEach(function(t){return e[t.type||t.name]=!0}),o.filter(function(t){return e[t.constructor.type||t.constructor.name]})},t.Selector=function(){for(var i=[],t=0;t<arguments.length;t++)i[t]=arguments[t];return function(t,r,e){var n=v(t);if(null!==e.value){var o=e.value,a=function(t){var r=m(t,n.path);try{return o(r)}catch(e){if(e instanceof TypeError)return undefined;throw e}};return{configurable:!0,get:function(){return function(a,i){var u=function(){for(var t=[],r=0;r<arguments.length;r++)t[r]=arguments[r];var e=i?i.apply(this,t):t[0],n=u.cache;if(n.has(e))return n.get(e);var o=a.apply(this,t);return u.cache=n.set(e,o)||n,o};return u.cache=new WeakMap,u}.apply(null,_([a],i))}}}throw new Error("Selectors only work on methods")}},t.getActionTypeFromInstance=j,t.NGXS_PLUGINS=h,t.StateStream=E,t.setValue=g,t.getValue=m,t.InitState=T,t.UpdateState=R,t.ɵb=N,t.ɵa=M,t.ɵg=P,t.ɵc=k,t.ɵf=w,t.ɵe=d,t.ɵd=y,Object.defineProperty(t,"__esModule",{value:!0})});
//# sourceMappingURL=ngxs-store.umd.min.js.map
import { InjectionToken, Injector, Injectable, SkipSelf, Optional, Inject, ErrorHandler, NgModule } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';

@@ -370,7 +371,11 @@ import { Observable } from 'rxjs/Observable';

/**
* @param {?} stores
* @param {?} stateKlasses
* @return {?}
*/
addAndReturnDefaults(stores) {
return this.add(stores).reduce((result, meta) => setValue(result, meta.depth, meta.defaults), {});
addAndReturnDefaults(stateKlasses) {
if (stateKlasses) {
const /** @type {?} */ states = this.add(stateKlasses);
const /** @type {?} */ defaults = states.reduce((result, meta) => setValue(result, meta.depth, meta.defaults), {});
return { defaults, states };
}
}

@@ -381,2 +386,17 @@ /**

* @param {?} dispatch
* @param {?} stateMetadatas
* @return {?}
*/
invokeInit(getState, setState, dispatch, stateMetadatas) {
for (const /** @type {?} */ metadata of stateMetadatas) {
if (metadata.instance.onInit) {
const /** @type {?} */ stateContext = this.createStateContext(getState, setState, dispatch, metadata);
metadata.instance.onInit(stateContext);
}
}
}
/**
* @param {?} getState
* @param {?} setState
* @param {?} dispatch
* @param {?} action

@@ -392,45 +412,3 @@ * @return {?}

for (const /** @type {?} */ actionMeta of actionMetas) {
const /** @type {?} */ stateContext = {
/**
* @return {?}
*/
getState() {
const /** @type {?} */ state = getState();
return getValue(state, metadata.depth);
},
/**
* @param {?} val
* @return {?}
*/
patchState(val) {
if (Array.isArray(val)) {
throw new Error('Patching arrays is not supported.');
}
let /** @type {?} */ state = getState();
const /** @type {?} */ local = getValue(state, metadata.depth);
for (const /** @type {?} */ k in val) {
local[k] = val[k];
}
state = setValue(state, metadata.depth, Object.assign({}, local));
setState(state);
return state;
},
/**
* @param {?} val
* @return {?}
*/
setState(val) {
let /** @type {?} */ state = getState();
state = setValue(state, metadata.depth, val);
setState(state);
return state;
},
/**
* @param {?} actions
* @return {?}
*/
dispatch(actions) {
return dispatch(actions);
}
};
const /** @type {?} */ stateContext = this.createStateContext(getState, setState, dispatch, metadata);
const /** @type {?} */ result = metadata.instance[actionMeta.fn](stateContext, action);

@@ -445,2 +423,54 @@ if (result) {

}
/**
* @param {?} getState
* @param {?} setState
* @param {?} dispatch
* @param {?} metadata
* @return {?}
*/
createStateContext(getState, setState, dispatch, metadata) {
return {
/**
* @return {?}
*/
getState() {
const /** @type {?} */ state = getState();
return getValue(state, metadata.depth);
},
/**
* @param {?} val
* @return {?}
*/
patchState(val) {
if (Array.isArray(val)) {
throw new Error('Patching arrays is not supported.');
}
let /** @type {?} */ state = getState();
const /** @type {?} */ local = getValue(state, metadata.depth);
for (const /** @type {?} */ k in val) {
local[k] = val[k];
}
state = setValue(state, metadata.depth, Object.assign({}, local));
setState(state);
return state;
},
/**
* @param {?} val
* @return {?}
*/
setState(val) {
let /** @type {?} */ state = getState();
state = setValue(state, metadata.depth, val);
setState(state);
return state;
},
/**
* @param {?} actions
* @return {?}
*/
dispatch(actions) {
return dispatch(actions);
}
};
}
}

@@ -462,5 +492,6 @@ StateFactory.decorators = [

* Action stream that is emitted anytime an action is dispatched.
*
* You can listen to this in services to react without stores.
*/
class Actions extends BehaviorSubject {
class Actions extends Subject {
/**

@@ -470,3 +501,3 @@ * @param {?} parent

constructor(parent) {
super({});
super();
if (parent) {

@@ -632,3 +663,10 @@ Object.assign(this, parent);

}
return this._stateStream.pipe(map(selector), distinctUntilChanged());
return this._stateStream.pipe(map(selector), catchError(err => {
// if error is TypeError we swallow it to prevent usual errors with property access
if (err instanceof TypeError) {
return of(undefined);
}
// rethrow other errors
throw err;
}), distinctUntilChanged());
}

@@ -794,4 +832,4 @@ /**

/**
* @param {?} _factory
* @param {?} _stateStream
* @param {?} factory
* @param {?} stateStream
* @param {?} store

@@ -801,21 +839,15 @@ * @param {?} select

*/
constructor(_factory, _stateStream, store, select, states) {
this._factory = _factory;
this._stateStream = _stateStream;
this.initStates(states);
store.dispatch(new InitState());
}
/**
* @param {?} states
* @return {?}
*/
initStates(states) {
if (states) {
// add stores to the state graph and return their defaults
const /** @type {?} */ init = this._factory.addAndReturnDefaults(states);
constructor(factory, stateStream, store, select, states) {
// add stores to the state graph and return their defaults
const /** @type {?} */ results = factory.addAndReturnDefaults(states);
if (results) {
// get our current stream
const /** @type {?} */ cur = this._stateStream.getValue();
const /** @type {?} */ cur = stateStream.getValue();
// set the state to the current + new
this._stateStream.next(Object.assign({}, cur, init));
stateStream.next(Object.assign({}, cur, results.defaults));
}
store.dispatch(new InitState());
if (results) {
factory.invokeInit(() => stateStream.getValue(), newState => stateStream.next(newState), actions => store.dispatch(actions), results.states);
}
}

@@ -836,30 +868,23 @@ }

/**
* @param {?} root
* @param {?} store
* @param {?} _stateStream
* @param {?} _factory
* @param {?} stateStream
* @param {?} factory
* @param {?} states
*/
constructor(root, store, _stateStream, _factory, states) {
this._stateStream = _stateStream;
this._factory = _factory;
// since FEATURE_STATE_TOKEN is a multi token, we need to
constructor(store, stateStream, factory, states) {
// Since FEATURE_STATE_TOKEN is a multi token, we need to
// flatten it [[Feature1State, Feature2State], [Feature3State]]
const /** @type {?} */ flattenedStates = (/** @type {?} */ ([])).concat(...states);
this.initStates(flattenedStates);
store.dispatch(new UpdateState());
}
/**
* @param {?} stores
* @return {?}
*/
initStates(stores) {
if (stores) {
// bind the stores
const /** @type {?} */ init = this._factory.addAndReturnDefaults(stores);
// add stores to the state graph and return their defaults
const /** @type {?} */ results = factory.addAndReturnDefaults(flattenedStates);
if (results) {
// get our current stream
const /** @type {?} */ cur = this._stateStream.getValue();
const /** @type {?} */ cur = stateStream.getValue();
// set the state to the current + new
this._stateStream.next(Object.assign({}, cur, init));
stateStream.next(Object.assign({}, cur, results.defaults));
}
store.dispatch(new UpdateState());
if (results) {
factory.invokeInit(() => stateStream.getValue(), newState => stateStream.next(newState), actions => store.dispatch(actions), results.states);
}
}

@@ -872,3 +897,2 @@ }

NgxsFeatureModule.ctorParameters = () => [
{ type: NgxsRootModule, },
{ type: Store, },

@@ -1037,3 +1061,3 @@ { type: StateStream, },

return (target, key, descriptor) => {
const /** @type {?} */ metadata = target[META_KEY];
const /** @type {?} */ metadata = ensureStoreMetadata(target);
if (descriptor.value !== null) {

@@ -1043,3 +1067,13 @@ const /** @type {?} */ prev = descriptor.value;

const /** @type {?} */ local = getValue(state, metadata.path);
return prev(local);
// if the lambda tries to access a something on the state that doesn't exist, it will throw a TypeError.
// since this is quite usual behaviour, we simply return undefined if so.
try {
return prev(local);
}
catch (/** @type {?} */ ex) {
if (ex instanceof TypeError) {
return undefined;
}
throw ex;
}
};

@@ -1046,0 +1080,0 @@ return {

import { __spread, __values, __extends } from 'tslib';
import { InjectionToken, Injector, Injectable, SkipSelf, Optional, Inject, ErrorHandler, NgModule } from '@angular/core';
import { Subject } from 'rxjs/Subject';
import { BehaviorSubject } from 'rxjs/BehaviorSubject';

@@ -224,74 +225,96 @@ import { Observable } from 'rxjs/Observable';

};
StateFactory.prototype.addAndReturnDefaults = function (stores) {
return this.add(stores).reduce(function (result, meta) { return setValue(result, meta.depth, meta.defaults); }, {});
StateFactory.prototype.addAndReturnDefaults = function (stateKlasses) {
if (stateKlasses) {
var states = this.add(stateKlasses);
var defaults = states.reduce(function (result, meta) { return setValue(result, meta.depth, meta.defaults); }, {});
return { defaults: defaults, states: states };
}
};
StateFactory.prototype.invokeInit = function (getState, setState, dispatch, stateMetadatas) {
try {
for (var stateMetadatas_1 = __values(stateMetadatas), stateMetadatas_1_1 = stateMetadatas_1.next(); !stateMetadatas_1_1.done; stateMetadatas_1_1 = stateMetadatas_1.next()) {
var metadata = stateMetadatas_1_1.value;
if (metadata.instance.onInit) {
var stateContext = this.createStateContext(getState, setState, dispatch, metadata);
metadata.instance.onInit(stateContext);
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (stateMetadatas_1_1 && !stateMetadatas_1_1.done && (_a = stateMetadatas_1.return)) _a.call(stateMetadatas_1);
}
finally { if (e_2) throw e_2.error; }
}
var e_2, _a;
};
StateFactory.prototype.invokeActions = function (getState, setState, dispatch, action) {
var results = [];
var _loop_2 = function (metadata) {
var name = getActionTypeFromInstance(action);
var actionMetas = metadata.actions[name];
if (actionMetas) {
try {
for (var actionMetas_1 = __values(actionMetas), actionMetas_1_1 = actionMetas_1.next(); !actionMetas_1_1.done; actionMetas_1_1 = actionMetas_1.next()) {
var actionMeta = actionMetas_1_1.value;
var stateContext = {
getState: function () {
var state = getState();
return getValue(state, metadata.depth);
},
patchState: function (val) {
if (Array.isArray(val)) {
throw new Error('Patching arrays is not supported.');
}
var state = getState();
var local = getValue(state, metadata.depth);
for (var k in val) {
local[k] = val[k];
}
state = setValue(state, metadata.depth, Object.assign({}, local));
setState(state);
return state;
},
setState: function (val) {
var state = getState();
state = setValue(state, metadata.depth, val);
setState(state);
return state;
},
dispatch: function (actions) {
return dispatch(actions);
try {
for (var _a = __values(this.states), _b = _a.next(); !_b.done; _b = _a.next()) {
var metadata = _b.value;
var name = getActionTypeFromInstance(action);
var actionMetas = metadata.actions[name];
if (actionMetas) {
try {
for (var actionMetas_1 = __values(actionMetas), actionMetas_1_1 = actionMetas_1.next(); !actionMetas_1_1.done; actionMetas_1_1 = actionMetas_1.next()) {
var actionMeta = actionMetas_1_1.value;
var stateContext = this.createStateContext(getState, setState, dispatch, metadata);
var result = metadata.instance[actionMeta.fn](stateContext, action);
if (result) {
results.push(result);
}
};
var result = metadata.instance[actionMeta.fn](stateContext, action);
if (result) {
results.push(result);
}
}
}
catch (e_2_1) { e_2 = { error: e_2_1 }; }
finally {
try {
if (actionMetas_1_1 && !actionMetas_1_1.done && (_a = actionMetas_1.return)) _a.call(actionMetas_1);
catch (e_3_1) { e_3 = { error: e_3_1 }; }
finally {
try {
if (actionMetas_1_1 && !actionMetas_1_1.done && (_c = actionMetas_1.return)) _c.call(actionMetas_1);
}
finally { if (e_3) throw e_3.error; }
}
finally { if (e_2) throw e_2.error; }
}
}
var e_2, _a;
};
try {
for (var _a = __values(this.states), _b = _a.next(); !_b.done; _b = _a.next()) {
var metadata = _b.value;
_loop_2(metadata);
}
}
catch (e_3_1) { e_3 = { error: e_3_1 }; }
catch (e_4_1) { e_4 = { error: e_4_1 }; }
finally {
try {
if (_b && !_b.done && (_c = _a.return)) _c.call(_a);
if (_b && !_b.done && (_d = _a.return)) _d.call(_a);
}
finally { if (e_3) throw e_3.error; }
finally { if (e_4) throw e_4.error; }
}
return results;
var e_3, _c;
var e_4, _d, e_3, _c;
};
StateFactory.prototype.createStateContext = function (getState, setState, dispatch, metadata) {
return {
getState: function () {
var state = getState();
return getValue(state, metadata.depth);
},
patchState: function (val) {
if (Array.isArray(val)) {
throw new Error('Patching arrays is not supported.');
}
var state = getState();
var local = getValue(state, metadata.depth);
for (var k in val) {
local[k] = val[k];
}
state = setValue(state, metadata.depth, Object.assign({}, local));
setState(state);
return state;
},
setState: function (val) {
var state = getState();
state = setValue(state, metadata.depth, val);
setState(state);
return state;
},
dispatch: function (actions) {
return dispatch(actions);
}
};
};
return StateFactory;

@@ -309,3 +332,3 @@ }());

function Actions(parent) {
var _this = _super.call(this, {}) || this;
var _this = _super.call(this) || this;
if (parent) {

@@ -317,3 +340,3 @@ Object.assign(_this, parent);

return Actions;
}(BehaviorSubject));
}(Subject));
Actions.decorators = [

@@ -418,3 +441,8 @@ { type: Injectable },

}
return this._stateStream.pipe(map(selector), distinctUntilChanged());
return this._stateStream.pipe(map(selector), catchError(function (err) {
if (err instanceof TypeError) {
return of(undefined);
}
throw err;
}), distinctUntilChanged());
};

@@ -459,3 +487,3 @@ Store.prototype.selectOnce = function (selector) {

}
catch (e_4_1) { e_4 = { error: e_4_1 }; }
catch (e_5_1) { e_5 = { error: e_5_1 }; }
finally {

@@ -465,6 +493,6 @@ try {

}
finally { if (e_4) throw e_4.error; }
finally { if (e_5) throw e_5.error; }
}
return results;
var e_4, _a;
var e_5, _a;
};

@@ -557,15 +585,13 @@ return Store;

var NgxsRootModule = /** @class */ (function () {
function NgxsRootModule(_factory, _stateStream, store, select, states) {
this._factory = _factory;
this._stateStream = _stateStream;
this.initStates(states);
function NgxsRootModule(factory, stateStream, store, select, states) {
var results = factory.addAndReturnDefaults(states);
if (results) {
var cur = stateStream.getValue();
stateStream.next(Object.assign({}, cur, results.defaults));
}
store.dispatch(new InitState());
if (results) {
factory.invokeInit(function () { return stateStream.getValue(); }, function (newState) { return stateStream.next(newState); }, function (actions) { return store.dispatch(actions); }, results.states);
}
}
NgxsRootModule.prototype.initStates = function (states) {
if (states) {
var init = this._factory.addAndReturnDefaults(states);
var cur = this._stateStream.getValue();
this._stateStream.next(Object.assign({}, cur, init));
}
};
return NgxsRootModule;

@@ -584,16 +610,14 @@ }());

var NgxsFeatureModule = /** @class */ (function () {
function NgxsFeatureModule(root, store, _stateStream, _factory, states) {
this._stateStream = _stateStream;
this._factory = _factory;
function NgxsFeatureModule(store, stateStream, factory, states) {
var flattenedStates = (([])).concat.apply((([])), __spread(states));
this.initStates(flattenedStates);
var results = factory.addAndReturnDefaults(flattenedStates);
if (results) {
var cur = stateStream.getValue();
stateStream.next(Object.assign({}, cur, results.defaults));
}
store.dispatch(new UpdateState());
if (results) {
factory.invokeInit(function () { return stateStream.getValue(); }, function (newState) { return stateStream.next(newState); }, function (actions) { return store.dispatch(actions); }, results.states);
}
}
NgxsFeatureModule.prototype.initStates = function (stores) {
if (stores) {
var init = this._factory.addAndReturnDefaults(stores);
var cur = this._stateStream.getValue();
this._stateStream.next(Object.assign({}, cur, init));
}
};
return NgxsFeatureModule;

@@ -605,3 +629,2 @@ }());

NgxsFeatureModule.ctorParameters = function () { return [
{ type: NgxsRootModule, },
{ type: Store, },

@@ -674,3 +697,3 @@ { type: StateStream, },

}
catch (e_5_1) { e_5 = { error: e_5_1 }; }
catch (e_6_1) { e_6 = { error: e_6_1 }; }
finally {

@@ -680,5 +703,5 @@ try {

}
finally { if (e_5) throw e_5.error; }
finally { if (e_6) throw e_6.error; }
}
var e_5, _a;
var e_6, _a;
};

@@ -736,3 +759,3 @@ }

return function (target, key, descriptor) {
var metadata = target[META_KEY];
var metadata = ensureStoreMetadata(target);
if (descriptor.value !== null) {

@@ -742,3 +765,11 @@ var prev_1 = descriptor.value;

var local = getValue(state, metadata.path);
return prev_1(local);
try {
return prev_1(local);
}
catch (ex) {
if (ex instanceof TypeError) {
return undefined;
}
throw ex;
}
};

@@ -745,0 +776,0 @@ return {

@@ -1,1 +0,1 @@

{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"StateStream"},{"__symbolic":"reference","name":"Store"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}],"initStates":[{"__symbolic":"method"}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":40,"character":1},"arguments":[{}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":47,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":48,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵa"},{"__symbolic":"reference","name":"Store"},{"__symbolic":"reference","name":"StateStream"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}],"initStates":[{"__symbolic":"method"}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Store"}]}]},"statics":{"store":{"__symbolic":"reference","name":"undefined"}}},"ɵd":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":36},"arguments":["ROOT_STATE_TOKEN"]},"ɵe":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":39},"arguments":["FEATURE_STATE_TOKEN"]},"NgxsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":72,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["states"],"defaults":[[]],"value":{"ngModule":{"__symbolic":"reference","name":"ɵa"},"providers":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"Actions"},{"__symbolic":"reference","name":"Store"},{"__symbolic":"reference","name":"StateStream"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"states"}},{"provide":{"__symbolic":"reference","name":"ɵd"},"useValue":{"__symbolic":"reference","name":"states"}}]}},"forFeature":{"__symbolic":"function","parameters":["states"],"value":{"ngModule":{"__symbolic":"reference","name":"ɵb"},"providers":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"states"}},{"provide":{"__symbolic":"reference","name":"ɵe"},"multi":true,"useValue":{"__symbolic":"reference","name":"states"}}]}}}},"Action":{"__symbolic":"function","parameters":["actions"],"value":{"__symbolic":"error","message":"Lambda not supported","line":6,"character":9,"module":"./src/action"}},"Store":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":20,"character":27},{"__symbolic":"reference","name":"Actions"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"StateStream"}]}],"dispatch":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"selectOnce":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"_dispatch":[{"__symbolic":"method"}],"_dispatchActions":[{"__symbolic":"method"}],"_handleNesting":[{"__symbolic":"method"}]}},"State":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":9,"module":"./src/state"}},"Select":{"__symbolic":"function","parameters":["selectorOrFeature","paths"],"value":{"__symbolic":"error","message":"Lambda not supported","line":18,"character":9,"module":"./src/select"}},"Actions":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs/BehaviorSubject","name":"BehaviorSubject","line":8,"character":29},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":7,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":10,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":11,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"Actions"}]}]}},"ofAction":{"__symbolic":"function"},"NgxsPlugin":{"__symbolic":"interface"},"NgxsPluginFn":{"__symbolic":"interface"},"StateContext":{"__symbolic":"interface"},"Selector":{"__symbolic":"function","parameters":["args"],"value":{"__symbolic":"error","message":"Lambda not supported","line":8,"character":9,"module":"./src/selector"}},"getActionTypeFromInstance":{"__symbolic":"function"},"NGXS_PLUGINS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":44,"character":32},"arguments":["NGXS_PLUGINS"]},"StateStream":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs/BehaviorSubject","name":"BehaviorSubject","line":7,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":9,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":10,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"StateStream"}]}]}},"setValue":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":24,"module":"./src/utils"},"getValue":{"__symbolic":"error","message":"Lambda not supported","line":47,"character":24,"module":"./src/utils"},"InitState":{"__symbolic":"class","members":{},"statics":{"type":"@@INIT"}},"UpdateState":{"__symbolic":"class","members":{},"statics":{"type":"@@UPDATE_STATE"}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":19,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":28,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":29,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":27,"character":23},{"__symbolic":"reference","name":"ɵf"}]}],"add":[{"__symbolic":"method"}],"addAndReturnDefaults":[{"__symbolic":"method"}],"invokeActions":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":8,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":9,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":11,"character":5},"arguments":[{"__symbolic":"reference","name":"NGXS_PLUGINS"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":12,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"NgxsPlugin"}]}]}],"register":[{"__symbolic":"method"}]}}},"origins":{"ɵa":"./src/module","ɵb":"./src/module","ɵc":"./src/select","ɵd":"./src/symbols","ɵe":"./src/symbols","NgxsModule":"./src/module","Action":"./src/action","Store":"./src/store","State":"./src/state","Select":"./src/select","Actions":"./src/actions-stream","ofAction":"./src/of-action","NgxsPlugin":"./src/symbols","NgxsPluginFn":"./src/symbols","StateContext":"./src/symbols","Selector":"./src/selector","getActionTypeFromInstance":"./src/utils","NGXS_PLUGINS":"./src/symbols","StateStream":"./src/state-stream","setValue":"./src/utils","getValue":"./src/utils","InitState":"./src/actions","UpdateState":"./src/actions","ɵf":"./src/state-factory","ɵg":"./src/plugin-manager"},"importAs":"@ngxs/store"}
{"__symbolic":"module","version":4,"metadata":{"ɵa":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":11,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":18,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":19,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵd"}]}]],"parameters":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"StateStream"},{"__symbolic":"reference","name":"Store"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}},"ɵb":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":45,"character":1},"arguments":[{}]}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,null,null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":51,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":52,"character":5},"arguments":[{"__symbolic":"reference","name":"ɵe"}]}]],"parameters":[{"__symbolic":"reference","name":"Store"},{"__symbolic":"reference","name":"StateStream"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"any"}]}]}]}]}},"ɵc":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","name":"Store"}]}]},"statics":{"store":{"__symbolic":"reference","name":"undefined"}}},"ɵd":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":3,"character":36},"arguments":["ROOT_STATE_TOKEN"]},"ɵe":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":4,"character":39},"arguments":["FEATURE_STATE_TOKEN"]},"NgxsModule":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"NgModule","line":82,"character":1},"arguments":[{}]}],"members":{},"statics":{"forRoot":{"__symbolic":"function","parameters":["states"],"defaults":[[]],"value":{"ngModule":{"__symbolic":"reference","name":"ɵa"},"providers":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"Actions"},{"__symbolic":"reference","name":"Store"},{"__symbolic":"reference","name":"StateStream"},{"__symbolic":"reference","name":"ɵc"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"states"}},{"provide":{"__symbolic":"reference","name":"ɵd"},"useValue":{"__symbolic":"reference","name":"states"}}]}},"forFeature":{"__symbolic":"function","parameters":["states"],"value":{"ngModule":{"__symbolic":"reference","name":"ɵb"},"providers":[{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"spread","expression":{"__symbolic":"reference","name":"states"}},{"provide":{"__symbolic":"reference","name":"ɵe"},"multi":true,"useValue":{"__symbolic":"reference","name":"states"}}]}}}},"Action":{"__symbolic":"function","parameters":["actions"],"value":{"__symbolic":"error","message":"Lambda not supported","line":6,"character":9,"module":"./src/action"}},"Store":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":17,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameters":[{"__symbolic":"reference","module":"@angular/core","name":"ErrorHandler","line":20,"character":27},{"__symbolic":"reference","name":"Actions"},{"__symbolic":"reference","name":"ɵf"},{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"StateStream"}]}],"dispatch":[{"__symbolic":"method"}],"select":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"selectOnce":[{"__symbolic":"method"},{"__symbolic":"method"},{"__symbolic":"method"}],"subscribe":[{"__symbolic":"method"}],"_dispatch":[{"__symbolic":"method"}],"_dispatchActions":[{"__symbolic":"method"}],"_handleNesting":[{"__symbolic":"method"}]}},"State":{"__symbolic":"function","parameters":["options"],"value":{"__symbolic":"error","message":"Lambda not supported","line":7,"character":9,"module":"./src/state"}},"Select":{"__symbolic":"function","parameters":["selectorOrFeature","paths"],"value":{"__symbolic":"error","message":"Lambda not supported","line":18,"character":9,"module":"./src/select"}},"Actions":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs/Subject","name":"Subject","line":9,"character":29},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":11,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":12,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"Actions"}]}]}},"ofAction":{"__symbolic":"function"},"NgxsPlugin":{"__symbolic":"interface"},"NgxsPluginFn":{"__symbolic":"interface"},"StateContext":{"__symbolic":"interface"},"Selector":{"__symbolic":"function","parameters":["args"],"value":{"__symbolic":"error","message":"Lambda not supported","line":8,"character":9,"module":"./src/selector"}},"getActionTypeFromInstance":{"__symbolic":"function"},"NGXS_PLUGINS":{"__symbolic":"new","expression":{"__symbolic":"reference","module":"@angular/core","name":"InjectionToken","line":44,"character":32},"arguments":["NGXS_PLUGINS"]},"StateStream":{"__symbolic":"class","extends":{"__symbolic":"reference","module":"rxjs/BehaviorSubject","name":"BehaviorSubject","line":7,"character":33},"decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":6,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":9,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":10,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"StateStream"}]}]}},"setValue":{"__symbolic":"error","message":"Lambda not supported","line":22,"character":24,"module":"./src/utils"},"getValue":{"__symbolic":"error","message":"Lambda not supported","line":47,"character":24,"module":"./src/utils"},"InitState":{"__symbolic":"class","members":{},"statics":{"type":"@@INIT"}},"UpdateState":{"__symbolic":"class","members":{},"statics":{"type":"@@UPDATE_STATE"}},"ɵf":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":8,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[null,[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":17,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":18,"character":5}}]],"parameters":[{"__symbolic":"reference","module":"@angular/core","name":"Injector","line":16,"character":23},{"__symbolic":"reference","name":"ɵf"}]}],"add":[{"__symbolic":"method"}],"addAndReturnDefaults":[{"__symbolic":"method"}],"invokeInit":[{"__symbolic":"method"}],"invokeActions":[{"__symbolic":"method"}],"createStateContext":[{"__symbolic":"method"}]}},"ɵg":{"__symbolic":"class","decorators":[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Injectable","line":3,"character":1}}],"members":{"__ctor__":[{"__symbolic":"constructor","parameterDecorators":[[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":8,"character":5}},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"SkipSelf","line":9,"character":5}}],[{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Inject","line":11,"character":5},"arguments":[{"__symbolic":"reference","name":"NGXS_PLUGINS"}]},{"__symbolic":"call","expression":{"__symbolic":"reference","module":"@angular/core","name":"Optional","line":12,"character":5}}]],"parameters":[{"__symbolic":"reference","name":"ɵg"},{"__symbolic":"reference","name":"Array","arguments":[{"__symbolic":"reference","name":"NgxsPlugin"}]}]}],"register":[{"__symbolic":"method"}]}}},"origins":{"ɵa":"./src/module","ɵb":"./src/module","ɵc":"./src/select","ɵd":"./src/symbols","ɵe":"./src/symbols","NgxsModule":"./src/module","Action":"./src/action","Store":"./src/store","State":"./src/state","Select":"./src/select","Actions":"./src/actions-stream","ofAction":"./src/of-action","NgxsPlugin":"./src/symbols","NgxsPluginFn":"./src/symbols","StateContext":"./src/symbols","Selector":"./src/selector","getActionTypeFromInstance":"./src/utils","NGXS_PLUGINS":"./src/symbols","StateStream":"./src/state-stream","setValue":"./src/utils","getValue":"./src/utils","InitState":"./src/actions","UpdateState":"./src/actions","ɵf":"./src/state-factory","ɵg":"./src/plugin-manager"},"importAs":"@ngxs/store"}
{
"name": "@ngxs/store",
"version": "2.0.0-dev.af22aaf",
"version": "2.0.0-dev.b37ec92",
"license": "MIT",

@@ -5,0 +5,0 @@ "peerDependencies": {

@@ -1,8 +0,9 @@

import { BehaviorSubject } from 'rxjs/BehaviorSubject';
import { Subject } from 'rxjs/Subject';
/**
* Action stream that is emitted anytime an action is dispatched.
*
* You can listen to this in services to react without stores.
*/
export declare class Actions extends BehaviorSubject<any> {
export declare class Actions extends Subject<any> {
constructor(parent: Actions);
}

@@ -7,12 +7,6 @@ import { ModuleWithProviders } from '@angular/core';

export declare class NgxsRootModule {
private _factory;
private _stateStream;
constructor(_factory: StateFactory, _stateStream: StateStream, store: Store, select: SelectFactory, states: any[]);
initStates(states: any): void;
constructor(factory: StateFactory, stateStream: StateStream, store: Store, select: SelectFactory, states: any[]);
}
export declare class NgxsFeatureModule {
private _stateStream;
private _factory;
constructor(root: NgxsRootModule, store: Store, _stateStream: StateStream, _factory: StateFactory, states: any[][]);
initStates(stores: any): void;
constructor(store: Store, stateStream: StateStream, factory: StateFactory, states: any[][]);
}

@@ -19,0 +13,0 @@ export declare class NgxsModule {

import { Injector } from '@angular/core';
import { Observable } from 'rxjs/Observable';
export declare class StateFactory {

@@ -9,4 +10,14 @@ private _injector;

add(states: any | any[]): any[];
addAndReturnDefaults(stores: any[]): any;
addAndReturnDefaults(stateKlasses: any[]): {
defaults: any;
states: any[];
};
invokeInit(getState: any, setState: any, dispatch: any, stateMetadatas: any): void;
invokeActions(getState: any, setState: any, dispatch: any, action: any): any[];
createStateContext(getState: any, setState: any, dispatch: any, metadata: any): {
getState(): any;
patchState(val: any): void;
setState(val: any): any;
dispatch(actions: any): Observable<any>;
};
}

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

Sorry, the diff of this file is not supported yet

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc