@datorama/akita
Version:
State Management Tailored-Made for JS Applications
212 lines • 11.4 kB
JavaScript
/**
* @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==