UNPKG

@datorama/akita

Version:

State Management Tailored-Made for JS Applications

212 lines 11.4 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import * as tslib_1 from "tslib"; import { StateHistoryPlugin } from './stateHistoryPlugin'; import { toBoolean } from '../../toBoolean'; import { skip } from 'rxjs/operators'; import { EntityCollectionPlugin } from '../entityCollectionPlugin'; /** * @record * @template IDType */ export function StateHistoryEntityParams() { } if (false) { /** @type {?|undefined} */ StateHistoryEntityParams.prototype.entityIds; } /** * @template State, P */ var /** * @template State, P */ EntityStateHistoryPlugin = /** @class */ (function (_super) { tslib_1.__extends(EntityStateHistoryPlugin, _super); function EntityStateHistoryPlugin(query, params) { if (params === void 0) { params = {}; } var _this = _super.call(this, query, params.entityIds) || this; _this.query = query; _this.params = params; params.maxAge = toBoolean(params.maxAge) ? params.maxAge : 10; _this.activate(); _this.selectIds() .pipe(skip(1)) .subscribe((/** * @param {?} ids * @return {?} */ function (ids) { return _this.activate(ids); })); return _this; } /** * @param {?=} ids * @return {?} */ EntityStateHistoryPlugin.prototype.redo = /** * @param {?=} ids * @return {?} */ function (ids) { this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.redo(); })); }; /** * @param {?=} ids * @return {?} */ EntityStateHistoryPlugin.prototype.undo = /** * @param {?=} ids * @return {?} */ function (ids) { this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.undo(); })); }; /** * @param {?} id * @return {?} */ EntityStateHistoryPlugin.prototype.hasPast = /** * @param {?} id * @return {?} */ function (id) { if (this.hasEntity(id)) { return this.getEntity(id).hasPast; } }; /** * @param {?} id * @return {?} */ EntityStateHistoryPlugin.prototype.hasFuture = /** * @param {?} id * @return {?} */ function (id) { if (this.hasEntity(id)) { return this.getEntity(id).hasFuture; } }; /** * @param {?} ids * @param {?} index * @return {?} */ EntityStateHistoryPlugin.prototype.jumpToFuture = /** * @param {?} ids * @param {?} index * @return {?} */ function (ids, index) { this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.jumpToFuture(index); })); }; /** * @param {?} ids * @param {?} index * @return {?} */ EntityStateHistoryPlugin.prototype.jumpToPast = /** * @param {?} ids * @param {?} index * @return {?} */ function (ids, index) { this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.jumpToPast(index); })); }; /** * @param {?=} ids * @return {?} */ EntityStateHistoryPlugin.prototype.clear = /** * @param {?=} ids * @return {?} */ function (ids) { this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.clear(); })); }; /** * @param {?=} ids * @param {?=} clearHistory * @return {?} */ EntityStateHistoryPlugin.prototype.destroy = /** * @param {?=} ids * @param {?=} clearHistory * @return {?} */ function (ids, clearHistory) { if (clearHistory === void 0) { clearHistory = false; } this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.destroy(clearHistory); })); }; /** * @param {?=} ids * @return {?} */ EntityStateHistoryPlugin.prototype.ignoreNext = /** * @param {?=} ids * @return {?} */ function (ids) { this.forEachId(ids, (/** * @param {?} e * @return {?} */ function (e) { return e.ignoreNext(); })); }; /** * @protected * @param {?} id * @return {?} */ EntityStateHistoryPlugin.prototype.instantiatePlugin = /** * @protected * @param {?} id * @return {?} */ function (id) { return (/** @type {?} */ (new StateHistoryPlugin(this.query, this.params, id))); }; return EntityStateHistoryPlugin; }(EntityCollectionPlugin)); /** * @template State, P */ export { EntityStateHistoryPlugin }; if (false) { /** * @type {?} * @protected */ EntityStateHistoryPlugin.prototype.query; /** * @type {?} * @protected */ EntityStateHistoryPlugin.prototype.params; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW50aXR5U3RhdGVIaXN0b3J5UGx1Z2luLmpzIiwic291cmNlUm9vdCI6Im5nOi8vQGRhdG9yYW1hL2FraXRhLyIsInNvdXJjZXMiOlsic3JjL3BsdWdpbnMvc3RhdGVIaXN0b3J5L2VudGl0eVN0YXRlSGlzdG9yeVBsdWdpbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUVBLE9BQU8sRUFBc0Isa0JBQWtCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM5RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7OztBQUVuRSw4Q0FFQzs7O0lBREMsNkNBQTRCOzs7OztBQUc5Qjs7OztJQUFnSixvREFBZ0M7SUFDOUssa0NBQXNCLEtBQXlCLEVBQXFCLE1BQXVEO1FBQXZELHVCQUFBLEVBQUEsV0FBdUQ7UUFBM0gsWUFDRSxrQkFBTSxLQUFLLEVBQUUsTUFBTSxDQUFDLFNBQVMsQ0FBQyxTQU0vQjtRQVBxQixXQUFLLEdBQUwsS0FBSyxDQUFvQjtRQUFxQixZQUFNLEdBQU4sTUFBTSxDQUFpRDtRQUV6SCxNQUFNLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUM5RCxLQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDaEIsS0FBSSxDQUFDLFNBQVMsRUFBRTthQUNiLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7YUFDYixTQUFTOzs7O1FBQUMsVUFBQSxHQUFHLElBQUksT0FBQSxLQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFsQixDQUFrQixFQUFDLENBQUM7O0lBQzFDLENBQUM7Ozs7O0lBRUQsdUNBQUk7Ozs7SUFBSixVQUFLLEdBQStCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRzs7OztRQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFSLENBQVEsRUFBQyxDQUFDO0lBQ3JDLENBQUM7Ozs7O0lBRUQsdUNBQUk7Ozs7SUFBSixVQUFLLEdBQStCO1FBQ2xDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRzs7OztRQUFFLFVBQUEsQ0FBQyxJQUFJLE9BQUEsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFSLENBQVEsRUFBQyxDQUFDO0lBQ3JDLENBQUM7Ozs7O0lBRUQsMENBQU87Ozs7SUFBUCxVQUFRLEVBQW9CO1FBQzFCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ25DO0lBQ0gsQ0FBQzs7Ozs7SUFFRCw0Q0FBUzs7OztJQUFULFVBQVUsRUFBb0I7UUFDNUIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsQ0FBQyxFQUFFO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUM7U0FDckM7SUFDSCxDQUFDOzs7Ozs7SUFFRCwrQ0FBWTs7Ozs7SUFBWixVQUFhLEdBQThCLEVBQUUsS0FBYTtRQUN4RCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7Ozs7UUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLEVBQXJCLENBQXFCLEVBQUMsQ0FBQztJQUNsRCxDQUFDOzs7Ozs7SUFFRCw2Q0FBVTs7Ozs7SUFBVixVQUFXLEdBQThCLEVBQUUsS0FBYTtRQUN0RCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7Ozs7UUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEVBQW5CLENBQW1CLEVBQUMsQ0FBQztJQUNoRCxDQUFDOzs7OztJQUVELHdDQUFLOzs7O0lBQUwsVUFBTSxHQUErQjtRQUNuQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUc7Ozs7UUFBRSxVQUFBLENBQUMsSUFBSSxPQUFBLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBVCxDQUFTLEVBQUMsQ0FBQztJQUN0QyxDQUFDOzs7Ozs7SUFFRCwwQ0FBTzs7Ozs7SUFBUCxVQUFRLEdBQStCLEVBQUUsWUFBb0I7UUFBcEIsNkJBQUEsRUFBQSxvQkFBb0I7UUFDM0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHOzs7O1FBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxFQUF2QixDQUF1QixFQUFDLENBQUM7SUFDcEQsQ0FBQzs7Ozs7SUFFRCw2Q0FBVTs7OztJQUFWLFVBQVcsR0FBK0I7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHOzs7O1FBQUUsVUFBQSxDQUFDLElBQUksT0FBQSxDQUFDLENBQUMsVUFBVSxFQUFFLEVBQWQsQ0FBYyxFQUFDLENBQUM7SUFDM0MsQ0FBQzs7Ozs7O0lBRVMsb0RBQWlCOzs7OztJQUEzQixVQUE0QixFQUFvQjtRQUM5QyxPQUFPLG1CQUFBLElBQUksa0JBQWtCLENBQVEsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxFQUFLLENBQUM7SUFDekUsQ0FBQztJQUNILCtCQUFDO0FBQUQsQ0FBQyxBQXJERCxDQUFnSixzQkFBc0IsR0FxRHJLOzs7Ozs7Ozs7O0lBcERhLHlDQUFtQzs7Ozs7SUFBRSwwQ0FBMEUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFbnRpdHlTdGF0ZSwgT3JBcnJheSwgZ2V0SURUeXBlIH0gZnJvbSAnLi4vLi4vdHlwZXMnO1xuaW1wb3J0IHsgUXVlcnlFbnRpdHkgfSBmcm9tICcuLi8uLi9xdWVyeUVudGl0eSc7XG5pbXBvcnQgeyBTdGF0ZUhpc3RvcnlQYXJhbXMsIFN0YXRlSGlzdG9yeVBsdWdpbiB9IGZyb20gJy4vc3RhdGVIaXN0b3J5UGx1Z2luJztcbmltcG9ydCB7IHRvQm9vbGVhbiB9IGZyb20gJy4uLy4uL3RvQm9vbGVhbic7XG5pbXBvcnQgeyBza2lwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgRW50aXR5Q29sbGVjdGlvblBsdWdpbiB9IGZyb20gJy4uL2VudGl0eUNvbGxlY3Rpb25QbHVnaW4nO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YXRlSGlzdG9yeUVudGl0eVBhcmFtczxJRFR5cGU+IGV4dGVuZHMgU3RhdGVIaXN0b3J5UGFyYW1zIHtcbiAgZW50aXR5SWRzPzogT3JBcnJheTxJRFR5cGU+O1xufVxuXG5leHBvcnQgY2xhc3MgRW50aXR5U3RhdGVIaXN0b3J5UGx1Z2luPFN0YXRlIGV4dGVuZHMgRW50aXR5U3RhdGUgPSBhbnksIFAgZXh0ZW5kcyBTdGF0ZUhpc3RvcnlQbHVnaW48U3RhdGU+ID0gU3RhdGVIaXN0b3J5UGx1Z2luPFN0YXRlPj4gZXh0ZW5kcyBFbnRpdHlDb2xsZWN0aW9uUGx1Z2luPFN0YXRlLCBQPiB7XG4gIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBxdWVyeTogUXVlcnlFbnRpdHk8U3RhdGU+LCBwcm90ZWN0ZWQgcmVhZG9ubHkgcGFyYW1zOiBTdGF0ZUhpc3RvcnlFbnRpdHlQYXJhbXM8Z2V0SURUeXBlPFN0YXRlPj4gPSB7fSkge1xuICAgIHN1cGVyKHF1ZXJ5LCBwYXJhbXMuZW50aXR5SWRzKTtcbiAgICBwYXJhbXMubWF4QWdlID0gdG9Cb29sZWFuKHBhcmFtcy5tYXhBZ2UpID8gcGFyYW1zLm1heEFnZSA6IDEwO1xuICAgIHRoaXMuYWN0aXZhdGUoKTtcbiAgICB0aGlzLnNlbGVjdElkcygpXG4gICAgICAucGlwZShza2lwKDEpKVxuICAgICAgLnN1YnNjcmliZShpZHMgPT4gdGhpcy5hY3RpdmF0ZShpZHMpKTtcbiAgfVxuXG4gIHJlZG8oaWRzPzogT3JBcnJheTxnZXRJRFR5cGU8U3RhdGU+Pikge1xuICAgIHRoaXMuZm9yRWFjaElkKGlkcywgZSA9PiBlLnJlZG8oKSk7XG4gIH1cblxuICB1bmRvKGlkcz86IE9yQXJyYXk8Z2V0SURUeXBlPFN0YXRlPj4pIHtcbiAgICB0aGlzLmZvckVhY2hJZChpZHMsIGUgPT4gZS51bmRvKCkpO1xuICB9XG5cbiAgaGFzUGFzdChpZDogZ2V0SURUeXBlPFN0YXRlPikge1xuICAgIGlmICh0aGlzLmhhc0VudGl0eShpZCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmdldEVudGl0eShpZCkuaGFzUGFzdDtcbiAgICB9XG4gIH1cblxuICBoYXNGdXR1cmUoaWQ6IGdldElEVHlwZTxTdGF0ZT4pIHtcbiAgICBpZiAodGhpcy5oYXNFbnRpdHkoaWQpKSB7XG4gICAgICByZXR1cm4gdGhpcy5nZXRFbnRpdHkoaWQpLmhhc0Z1dHVyZTtcbiAgICB9XG4gIH1cblxuICBqdW1wVG9GdXR1cmUoaWRzOiBPckFycmF5PGdldElEVHlwZTxTdGF0ZT4+LCBpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5mb3JFYWNoSWQoaWRzLCBlID0+IGUuanVtcFRvRnV0dXJlKGluZGV4KSk7XG4gIH1cblxuICBqdW1wVG9QYXN0KGlkczogT3JBcnJheTxnZXRJRFR5cGU8U3RhdGU+PiwgaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuZm9yRWFjaElkKGlkcywgZSA9PiBlLmp1bXBUb1Bhc3QoaW5kZXgpKTtcbiAgfVxuXG4gIGNsZWFyKGlkcz86IE9yQXJyYXk8Z2V0SURUeXBlPFN0YXRlPj4pIHtcbiAgICB0aGlzLmZvckVhY2hJZChpZHMsIGUgPT4gZS5jbGVhcigpKTtcbiAgfVxuXG4gIGRlc3Ryb3koaWRzPzogT3JBcnJheTxnZXRJRFR5cGU8U3RhdGU+PiwgY2xlYXJIaXN0b3J5ID0gZmFsc2UpIHtcbiAgICB0aGlzLmZvckVhY2hJZChpZHMsIGUgPT4gZS5kZXN0cm95KGNsZWFySGlzdG9yeSkpO1xuICB9XG5cbiAgaWdub3JlTmV4dChpZHM/OiBPckFycmF5PGdldElEVHlwZTxTdGF0ZT4+KSB7XG4gICAgdGhpcy5mb3JFYWNoSWQoaWRzLCBlID0+IGUuaWdub3JlTmV4dCgpKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpbnN0YW50aWF0ZVBsdWdpbihpZDogZ2V0SURUeXBlPFN0YXRlPikge1xuICAgIHJldHVybiBuZXcgU3RhdGVIaXN0b3J5UGx1Z2luPFN0YXRlPih0aGlzLnF1ZXJ5LCB0aGlzLnBhcmFtcywgaWQpIGFzIFA7XG4gIH1cbn1cbiJdfQ==