@angular-redux/store
Version:
Angular bindings for Redux
148 lines • 11.5 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import * as tslib_1 from "tslib";
import { ReplaySubject } from 'rxjs';
import { distinctUntilChanged } from 'rxjs/operators';
/**
* @hidden
* @record
*/
export function SelectorStubRecord() { }
if (false) {
/** @type {?} */
SelectorStubRecord.prototype.subject;
/** @type {?} */
SelectorStubRecord.prototype.comparator;
}
/**
* @hidden
* @record
*/
export function SelectorStubMap() { }
/**
* @hidden
* @record
*/
export function SubStoreStubMap() { }
/**
* @hidden
* @template State
*/
var /**
* @hidden
* @template State
*/
MockObservableStore = /** @class */ (function () {
function MockObservableStore() {
var _this = this;
this.selections = {};
this.subStores = {};
this.getSelectorStub = function (selector, comparator) {
return _this.initSelectorStub(selector, comparator).subject;
};
this.reset = function () {
Object.keys(_this.subStores).forEach(function (k) { return _this.subStores[k].reset(); });
_this.selections = {};
_this.subStores = {};
};
this.dispatch = function (action) { return action; };
this.replaceReducer = function () { return null; };
this.getState = function () { return ({}); };
this.subscribe = function () { return function () { return null; }; };
this.select = function (selector, comparator) {
/** @type {?} */
var stub = _this.initSelectorStub(selector, comparator);
return stub.comparator
? stub.subject.pipe(distinctUntilChanged(stub.comparator))
: stub.subject;
};
this.configureSubStore = function (basePath, _) { return _this.initSubStore(basePath); };
this.getSubStore = function () {
var pathSelectors = [];
for (var _i = 0; _i < arguments.length; _i++) {
pathSelectors[_i] = arguments[_i];
}
var _a;
var _b = tslib_1.__read(pathSelectors), first = _b[0], rest = _b.slice(1);
return (/** @type {?} */ ((first
? (_a = _this.initSubStore(first)).getSubStore.apply(_a, tslib_1.__spread(rest)) : _this)));
};
}
/**
* @private
* @template SubState
* @param {?} basePath
* @return {?}
*/
MockObservableStore.prototype.initSubStore = /**
* @private
* @template SubState
* @param {?} basePath
* @return {?}
*/
function (basePath) {
/** @type {?} */
var result = this.subStores[JSON.stringify(basePath)] ||
new MockObservableStore();
this.subStores[JSON.stringify(basePath)] = result;
return result;
};
/**
* @private
* @template SelectedState
* @param {?=} selector
* @param {?=} comparator
* @return {?}
*/
MockObservableStore.prototype.initSelectorStub = /**
* @private
* @template SelectedState
* @param {?=} selector
* @param {?=} comparator
* @return {?}
*/
function (selector, comparator) {
/** @type {?} */
var key = selector ? selector.toString() : '';
/** @type {?} */
var record = this.selections[key] || {
subject: new ReplaySubject(),
comparator: comparator,
};
this.selections[key] = record;
return record;
};
return MockObservableStore;
}());
/**
* @hidden
* @template State
*/
export { MockObservableStore };
if (false) {
/** @type {?} */
MockObservableStore.prototype.selections;
/** @type {?} */
MockObservableStore.prototype.subStores;
/** @type {?} */
MockObservableStore.prototype.getSelectorStub;
/** @type {?} */
MockObservableStore.prototype.reset;
/** @type {?} */
MockObservableStore.prototype.dispatch;
/** @type {?} */
MockObservableStore.prototype.replaceReducer;
/** @type {?} */
MockObservableStore.prototype.getState;
/** @type {?} */
MockObservableStore.prototype.subscribe;
/** @type {?} */
MockObservableStore.prototype.select;
/** @type {?} */
MockObservableStore.prototype.configureSubStore;
/** @type {?} */
MockObservableStore.prototype.getSubStore;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib2JzZXJ2YWJsZS1zdG9yZS5tb2NrLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGFuZ3VsYXItcmVkdXgvc3RvcmUvdGVzdGluZy8iLCJzb3VyY2VzIjpbIm9ic2VydmFibGUtc3RvcmUubW9jay50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUlBLE9BQU8sRUFBYyxhQUFhLEVBQVcsTUFBTSxNQUFNLENBQUM7QUFDMUQsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBR3RELHdDQUdDOzs7SUFGQyxxQ0FBc0I7O0lBQ3RCLHdDQUF1Qjs7Ozs7O0FBSXpCLHFDQUVDOzs7OztBQUdELHFDQUVDOzs7OztBQUdEOzs7OztJQUFBO1FBQUEsaUJBa0VDO1FBakVDLGVBQVUsR0FBb0IsRUFBRSxDQUFDO1FBQ2pDLGNBQVMsR0FBb0IsRUFBRSxDQUFDO1FBRWhDLG9CQUFlLEdBQUcsVUFDaEIsUUFBeUMsRUFDekMsVUFBdUI7WUFFdkIsT0FBQSxLQUFJLENBQUMsZ0JBQWdCLENBQWdCLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxPQUFPO1FBQWxFLENBQWtFLENBQUM7UUFFckUsVUFBSyxHQUFHO1lBQ04sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsT0FBTyxDQUFDLFVBQUEsQ0FBQyxJQUFJLE9BQUEsS0FBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBekIsQ0FBeUIsQ0FBQyxDQUFDO1lBQ3BFLEtBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1lBQ3JCLEtBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCLENBQUMsQ0FBQztRQUVGLGFBQVEsR0FBd0IsVUFBQSxNQUFNLElBQUksT0FBQSxNQUFNLEVBQU4sQ0FBTSxDQUFDO1FBQ2pELG1CQUFjLEdBQUcsY0FBTSxPQUFBLElBQUksRUFBSixDQUFJLENBQUM7UUFDNUIsYUFBUSxHQUFHLGNBQU0sT0FBQSxDQUFDLEVBQUUsQ0FBQyxFQUFKLENBQUksQ0FBQztRQUN0QixjQUFTLEdBQUcsY0FBTSxPQUFBLGNBQU0sT0FBQSxJQUFJLEVBQUosQ0FBSSxFQUFWLENBQVUsQ0FBQztRQUU3QixXQUFNLEdBQUcsVUFDUCxRQUF1QyxFQUN2QyxVQUF1Qjs7Z0JBRWpCLElBQUksR0FBRyxLQUFJLENBQUMsZ0JBQWdCLENBQWdCLFFBQVEsRUFBRSxVQUFVLENBQUM7WUFDdkUsT0FBTyxJQUFJLENBQUMsVUFBVTtnQkFDcEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztnQkFDMUQsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDbkIsQ0FBQyxDQUFDO1FBRUYsc0JBQWlCLEdBQUcsVUFDbEIsUUFBc0IsRUFDdEIsQ0FBK0IsSUFDRyxPQUFBLEtBQUksQ0FBQyxZQUFZLENBQVcsUUFBUSxDQUFDLEVBQXJDLENBQXFDLENBQUM7UUFFMUUsZ0JBQVcsR0FBRztZQUNaLHVCQUFnQztpQkFBaEMsVUFBZ0MsRUFBaEMscUJBQWdDLEVBQWhDLElBQWdDO2dCQUFoQyxrQ0FBZ0M7OztZQUUxQixJQUFBLGtDQUFnQyxFQUEvQixhQUFLLEVBQUUsa0JBQXdCO1lBQ3RDLE9BQU8sbUJBQUEsQ0FBQyxLQUFLO2dCQUNYLENBQUMsQ0FBQyxDQUFBLEtBQUEsS0FBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQSxDQUFDLFdBQVcsNEJBQUksSUFBSSxHQUM5QyxDQUFDLENBQUMsS0FBSSxDQUFDLEVBQWlDLENBQUM7UUFDN0MsQ0FBQyxDQUFDO0lBdUJKLENBQUM7Ozs7Ozs7SUFyQlMsMENBQVk7Ozs7OztJQUFwQixVQUErQixRQUFzQjs7WUFDN0MsTUFBTSxHQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN4QyxJQUFJLG1CQUFtQixFQUFZO1FBQ3JDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUNsRCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDOzs7Ozs7OztJQUVPLDhDQUFnQjs7Ozs7OztJQUF4QixVQUNFLFFBQXlDLEVBQ3pDLFVBQXVCOztZQUVqQixHQUFHLEdBQUcsUUFBUSxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7O1lBQ3pDLE1BQU0sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJO1lBQ3JDLE9BQU8sRUFBRSxJQUFJLGFBQWEsRUFBaUI7WUFDM0MsVUFBVSxZQUFBO1NBQ1g7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxHQUFHLE1BQU0sQ0FBQztRQUM5QixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBQ0gsMEJBQUM7QUFBRCxDQUFDLEFBbEVELElBa0VDOzs7Ozs7OztJQWpFQyx5Q0FBaUM7O0lBQ2pDLHdDQUFnQzs7SUFFaEMsOENBSXFFOztJQUVyRSxvQ0FJRTs7SUFFRix1Q0FBaUQ7O0lBQ2pELDZDQUE0Qjs7SUFDNUIsdUNBQXNCOztJQUN0Qix3Q0FBNkI7O0lBRTdCLHFDQVFFOztJQUVGLGdEQUcwRTs7SUFFMUUsMENBT0UiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBUT0RPOiBTZWUgaWYgdGhpcyBsaW50aW5nIHJ1bGUgY2FuIGJlIGVuYWJsZWQgd2l0aCBuZXcgYnVpbGQgcHJvY2VzcyAobmctcGFja2Fncilcbi8vIHRzbGludDpkaXNhYmxlOm5vLWltcGxpY2l0LWRlcGVuZGVuY2llc1xuaW1wb3J0IHsgQ29tcGFyYXRvciwgUGF0aFNlbGVjdG9yLCBTZWxlY3RvciB9IGZyb20gJ0Bhbmd1bGFyLXJlZHV4L3N0b3JlJztcbmltcG9ydCB7IEFueUFjdGlvbiwgRGlzcGF0Y2gsIFJlZHVjZXIgfSBmcm9tICdyZWR1eCc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBkaXN0aW5jdFVudGlsQ2hhbmdlZCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZWN0b3JTdHViUmVjb3JkIHtcbiAgc3ViamVjdDogU3ViamVjdDxhbnk+O1xuICBjb21wYXJhdG9yOiBDb21wYXJhdG9yO1xufVxuXG4vKiogQGhpZGRlbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxlY3RvclN0dWJNYXAge1xuICBbc2VsZWN0b3I6IHN0cmluZ106IFNlbGVjdG9yU3R1YlJlY29yZDtcbn1cblxuLyoqIEBoaWRkZW4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3ViU3RvcmVTdHViTWFwIHtcbiAgW2Jhc2VQYXRoOiBzdHJpbmddOiBNb2NrT2JzZXJ2YWJsZVN0b3JlPGFueT47XG59XG5cbi8qKiBAaGlkZGVuICovXG5leHBvcnQgY2xhc3MgTW9ja09ic2VydmFibGVTdG9yZTxTdGF0ZT4ge1xuICBzZWxlY3Rpb25zOiBTZWxlY3RvclN0dWJNYXAgPSB7fTtcbiAgc3ViU3RvcmVzOiBTdWJTdG9yZVN0dWJNYXAgPSB7fTtcblxuICBnZXRTZWxlY3RvclN0dWIgPSA8U2VsZWN0ZWRTdGF0ZT4oXG4gICAgc2VsZWN0b3I/OiBTZWxlY3RvcjxTdGF0ZSwgU2VsZWN0ZWRTdGF0ZT4sXG4gICAgY29tcGFyYXRvcj86IENvbXBhcmF0b3IsXG4gICk6IFN1YmplY3Q8U2VsZWN0ZWRTdGF0ZT4gPT5cbiAgICB0aGlzLmluaXRTZWxlY3RvclN0dWI8U2VsZWN0ZWRTdGF0ZT4oc2VsZWN0b3IsIGNvbXBhcmF0b3IpLnN1YmplY3Q7XG5cbiAgcmVzZXQgPSAoKSA9PiB7XG4gICAgT2JqZWN0LmtleXModGhpcy5zdWJTdG9yZXMpLmZvckVhY2goayA9PiB0aGlzLnN1YlN0b3Jlc1trXS5yZXNldCgpKTtcbiAgICB0aGlzLnNlbGVjdGlvbnMgPSB7fTtcbiAgICB0aGlzLnN1YlN0b3JlcyA9IHt9O1xuICB9O1xuXG4gIGRpc3BhdGNoOiBEaXNwYXRjaDxBbnlBY3Rpb24+ID0gYWN0aW9uID0+IGFjdGlvbjtcbiAgcmVwbGFjZVJlZHVjZXIgPSAoKSA9PiBudWxsO1xuICBnZXRTdGF0ZSA9ICgpID0+ICh7fSk7XG4gIHN1YnNjcmliZSA9ICgpID0+ICgpID0+IG51bGw7XG5cbiAgc2VsZWN0ID0gPFNlbGVjdGVkU3RhdGU+KFxuICAgIHNlbGVjdG9yPzogU2VsZWN0b3I8YW55LCBTZWxlY3RlZFN0YXRlPixcbiAgICBjb21wYXJhdG9yPzogQ29tcGFyYXRvcixcbiAgKTogT2JzZXJ2YWJsZTxhbnk+ID0+IHtcbiAgICBjb25zdCBzdHViID0gdGhpcy5pbml0U2VsZWN0b3JTdHViPFNlbGVjdGVkU3RhdGU+KHNlbGVjdG9yLCBjb21wYXJhdG9yKTtcbiAgICByZXR1cm4gc3R1Yi5jb21wYXJhdG9yXG4gICAgICA/IHN0dWIuc3ViamVjdC5waXBlKGRpc3RpbmN0VW50aWxDaGFuZ2VkKHN0dWIuY29tcGFyYXRvcikpXG4gICAgICA6IHN0dWIuc3ViamVjdDtcbiAgfTtcblxuICBjb25maWd1cmVTdWJTdG9yZSA9IDxTdWJTdGF0ZT4oXG4gICAgYmFzZVBhdGg6IFBhdGhTZWxlY3RvcixcbiAgICBfOiBSZWR1Y2VyPFN1YlN0YXRlLCBBbnlBY3Rpb24+LFxuICApOiBNb2NrT2JzZXJ2YWJsZVN0b3JlPFN1YlN0YXRlPiA9PiB0aGlzLmluaXRTdWJTdG9yZTxTdWJTdGF0ZT4oYmFzZVBhdGgpO1xuXG4gIGdldFN1YlN0b3JlID0gPFN1YlN0YXRlPihcbiAgICAuLi5wYXRoU2VsZWN0b3JzOiBQYXRoU2VsZWN0b3JbXVxuICApOiBNb2NrT2JzZXJ2YWJsZVN0b3JlPGFueT4gPT4ge1xuICAgIGNvbnN0IFtmaXJzdCwgLi4ucmVzdF0gPSBwYXRoU2VsZWN0b3JzO1xuICAgIHJldHVybiAoZmlyc3RcbiAgICAgID8gdGhpcy5pbml0U3ViU3RvcmUoZmlyc3QpLmdldFN1YlN0b3JlKC4uLnJlc3QpXG4gICAgICA6IHRoaXMpIGFzIE1vY2tPYnNlcnZhYmxlU3RvcmU8U3ViU3RhdGU+O1xuICB9O1xuXG4gIHByaXZhdGUgaW5pdFN1YlN0b3JlPFN1YlN0YXRlPihiYXNlUGF0aDogUGF0aFNlbGVjdG9yKSB7XG4gICAgY29uc3QgcmVzdWx0ID1cbiAgICAgIHRoaXMuc3ViU3RvcmVzW0pTT04uc3RyaW5naWZ5KGJhc2VQYXRoKV0gfHxcbiAgICAgIG5ldyBNb2NrT2JzZXJ2YWJsZVN0b3JlPFN1YlN0YXRlPigpO1xuICAgIHRoaXMuc3ViU3RvcmVzW0pTT04uc3RyaW5naWZ5KGJhc2VQYXRoKV0gPSByZXN1bHQ7XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFNlbGVjdG9yU3R1YjxTZWxlY3RlZFN0YXRlPihcbiAgICBzZWxlY3Rvcj86IFNlbGVjdG9yPFN0YXRlLCBTZWxlY3RlZFN0YXRlPixcbiAgICBjb21wYXJhdG9yPzogQ29tcGFyYXRvcixcbiAgKTogU2VsZWN0b3JTdHViUmVjb3JkIHtcbiAgICBjb25zdCBrZXkgPSBzZWxlY3RvciA/IHNlbGVjdG9yLnRvU3RyaW5nKCkgOiAnJztcbiAgICBjb25zdCByZWNvcmQgPSB0aGlzLnNlbGVjdGlvbnNba2V5XSB8fCB7XG4gICAgICBzdWJqZWN0OiBuZXcgUmVwbGF5U3ViamVjdDxTZWxlY3RlZFN0YXRlPigpLFxuICAgICAgY29tcGFyYXRvcixcbiAgICB9O1xuXG4gICAgdGhpcy5zZWxlY3Rpb25zW2tleV0gPSByZWNvcmQ7XG4gICAgcmV0dXJuIHJlY29yZDtcbiAgfVxufVxuIl19