UNPKG

enome

Version:

A genome generation and evolution library.

178 lines 14.2 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); var rxjs_1 = require("rxjs"); var index_1 = require("./index"); var _ = require("lodash"); var ReactiveCollection = (function () { function ReactiveCollection(value) { if (value === void 0) { value = []; } var _this = this; this.pushed = new rxjs_1.ReplaySubject(1); this.popped = new rxjs_1.ReplaySubject(1); this.shifted = new rxjs_1.ReplaySubject(1); this.unshifted = new rxjs_1.ReplaySubject(1); this.removed = new rxjs_1.ReplaySubject(1); this.rotated = new rxjs_1.ReplaySubject(1); this.array = new index_1.ReactiveProperty(value); this.subs = [ this.subscribeToPush(function (pushed) { var v = _this.value; v.push(pushed); _this.value = v; }), this.subscribeToUnshift(function (unshifted) { var v = _this.value; v.unshift(unshifted); _this.value = v; }), ]; } Object.defineProperty(ReactiveCollection.prototype, "value", { get: function () { return this.array.value; }, set: function (value) { this.array.value = value; }, enumerable: true, configurable: true }); ReactiveCollection.prototype.dispose = function () { this.subs.forEach(function (sub) { return sub.unsubscribe(); }); }; ReactiveCollection.prototype.subscribeToPush = function (observer) { return this.pushed .observeOn(rxjs_1.Scheduler.asap) .subscribeOn(rxjs_1.Scheduler.asap) .subscribe(observer); }; ReactiveCollection.prototype.subscribeToPop = function (observer) { return this.popped .observeOn(rxjs_1.Scheduler.asap) .subscribeOn(rxjs_1.Scheduler.asap) .subscribe(observer); }; ReactiveCollection.prototype.subscribeToShift = function (observer) { return this.shifted .observeOn(rxjs_1.Scheduler.asap) .subscribeOn(rxjs_1.Scheduler.asap) .subscribe(observer); }; ReactiveCollection.prototype.subscribeToUnshift = function (observer) { return this.unshifted .observeOn(rxjs_1.Scheduler.asap) .subscribeOn(rxjs_1.Scheduler.asap) .subscribe(observer); }; ReactiveCollection.prototype.subscribeToRemove = function (observer) { return this.removed .observeOn(rxjs_1.Scheduler.asap) .subscribeOn(rxjs_1.Scheduler.asap) .subscribe(observer); }; ReactiveCollection.prototype.subscribeToRotate = function (observer) { return this.rotated .observeOn(rxjs_1.Scheduler.asap) .subscribeOn(rxjs_1.Scheduler.asap) .subscribe(observer); }; ReactiveCollection.prototype.push = function (value) { this.pushed.next(value); return this; }; ReactiveCollection.prototype.pop = function (value) { var v = this.value; var popped = v.pop(); this.popped.next(popped); this.value = v; return popped; }; ReactiveCollection.prototype.shift = function () { var v = this.value; var shifted = v.shift(); this.shifted.next(shifted); this.value = v; return shifted; }; ReactiveCollection.prototype.unshift = function (value) { this.unshifted.next(value); return this; }; ReactiveCollection.prototype.remove = function (value) { var v = this.value; var removed = v.splice(v.indexOf(value)); this.value = v; this.removed.next(removed[0]); return this; }; ReactiveCollection.prototype.removeAt = function (i) { this.remove(this.value[i]); return this; }; ReactiveCollection.prototype.rotate = function () { var value = this.value; var shifted = value.shift(); value.push(shifted); this.rotated.next(shifted); this.value = value; return shifted; }; ReactiveCollection.prototype.rotateEach = function (action) { var _this = this; _.range(this.value.length).forEach(function (i) { action(_this.rotate()); }); }; ReactiveCollection.prototype.mapCollection = function (selector) { return new ReactiveCollection(this.value.map(selector)); }; ReactiveCollection.prototype.filterCollection = function (selector) { return new ReactiveCollection(this.value.filter(selector)); }; ReactiveCollection.prototype.forEach = function (action) { this.value.forEach(action); return this; }; ReactiveCollection.prototype.subscribe = function (observer) { return this.array.subscribe(observer); }; ReactiveCollection.prototype.filter = function (selector) { return this.array.filter(selector); }; ReactiveCollection.prototype.map = function (selector) { return this.array.map(selector); }; ReactiveCollection.prototype.debounceWithTimeout = function (dueTime, scheduler) { return this.array.throttleTime(dueTime, scheduler); }; ReactiveCollection.prototype.debounceWithSelector = function (selector) { return this.array.throttle(selector); }; ReactiveCollection.prototype.bufferTime = function (timeSpan, scheduler) { return this.array.bufferTime(timeSpan, scheduler); }; ReactiveCollection.prototype.bufferCount = function (count, skip) { return this.array.bufferCount(count, skip); }; ReactiveCollection.prototype.bufferTimeCount = function (timeSpan, count, skip, scheduler) { return this.array.bufferTimeCount(timeSpan, count, skip, scheduler); }; ReactiveCollection.prototype.zip = function (other) { return this.array.zip(other); }; ReactiveCollection.prototype.asObservable = function () { return this.array.asObservable(); }; ReactiveCollection.prototype.asObserver = function () { return this.array.asObserver(); }; ReactiveCollection.prototype.asSubject = function () { return this.array.asSubject(); }; ReactiveCollection.prototype.asBehaviourSubject = function () { return this.array.asBehaviourSubject(); }; return ReactiveCollection; }()); exports.ReactiveCollection = ReactiveCollection; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVhY3RpdmUtY29sbGVjdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9yZWFjdGl2ZS1jb2xsZWN0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsNkJBUWM7QUFHZCxpQ0FBMkM7QUFFM0MsMEJBQTRCO0FBRTVCO0lBb0JFLDRCQUFZLEtBQWU7UUFBZixzQkFBQSxFQUFBLFVBQWU7UUFBM0IsaUJBZUM7UUFsQ08sV0FBTSxHQUFxQixJQUFJLG9CQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsV0FBTSxHQUFxQixJQUFJLG9CQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7UUFDbkQsWUFBTyxHQUFxQixJQUFJLG9CQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEQsY0FBUyxHQUFxQixJQUFJLG9CQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7UUFDdEQsWUFBTyxHQUFxQixJQUFJLG9CQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7UUFDcEQsWUFBTyxHQUFxQixJQUFJLG9CQUFhLENBQUksQ0FBQyxDQUFDLENBQUM7UUFlMUQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLHdCQUFnQixDQUFNLEtBQUssQ0FBQyxDQUFDO1FBRTlDLElBQUksQ0FBQyxJQUFJLEdBQUc7WUFDVixJQUFJLENBQUMsZUFBZSxDQUFDLFVBQUEsTUFBTTtnQkFDekIsSUFBTSxDQUFDLEdBQUcsS0FBSSxDQUFDLEtBQUssQ0FBQztnQkFDckIsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztnQkFDZixLQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNqQixDQUFDLENBQUM7WUFDRixJQUFJLENBQUMsa0JBQWtCLENBQUMsVUFBQSxTQUFTO2dCQUMvQixJQUFNLENBQUMsR0FBRyxLQUFJLENBQUMsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDO2dCQUNyQixLQUFJLENB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