aboutsummaryrefslogtreecommitdiff
path: root/sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js
diff options
context:
space:
mode:
authorNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
committerNevena Bojovic <nenabojov@gmail.com>2022-03-01 20:05:50 +0100
commit291803c31f829fe0d32bb3207bc11def95a7408c (patch)
treec7d43107d79291b19d8c9eceefbe91c9f9a52acf /sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js
parent1fa69862057db4db53cfda5be9c24b4228ef63f7 (diff)
Urađena test aplikacija. Povezan front i back.
Diffstat (limited to 'sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js')
-rw-r--r--sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js196
1 files changed, 196 insertions, 0 deletions
diff --git a/sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js b/sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js
new file mode 100644
index 00000000..116ddab8
--- /dev/null
+++ b/sandbox/testAppNevena/Front/node_modules/rxjs/internal/operators/groupBy.js
@@ -0,0 +1,196 @@
+"use strict";
+var __extends = (this && this.__extends) || (function () {
+ var extendStatics = function (d, b) {
+ extendStatics = Object.setPrototypeOf ||
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
+ function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
+ return extendStatics(d, b);
+ }
+ return function (d, b) {
+ extendStatics(d, b);
+ function __() { this.constructor = d; }
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
+ };
+})();
+Object.defineProperty(exports, "__esModule", { value: true });
+var Subscriber_1 = require("../Subscriber");
+var Subscription_1 = require("../Subscription");
+var Observable_1 = require("../Observable");
+var Subject_1 = require("../Subject");
+function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {
+ return function (source) {
+ return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));
+ };
+}
+exports.groupBy = groupBy;
+var GroupByOperator = (function () {
+ function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {
+ this.keySelector = keySelector;
+ this.elementSelector = elementSelector;
+ this.durationSelector = durationSelector;
+ this.subjectSelector = subjectSelector;
+ }
+ GroupByOperator.prototype.call = function (subscriber, source) {
+ return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));
+ };
+ return GroupByOperator;
+}());
+var GroupBySubscriber = (function (_super) {
+ __extends(GroupBySubscriber, _super);
+ function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {
+ var _this = _super.call(this, destination) || this;
+ _this.keySelector = keySelector;
+ _this.elementSelector = elementSelector;
+ _this.durationSelector = durationSelector;
+ _this.subjectSelector = subjectSelector;
+ _this.groups = null;
+ _this.attemptedToUnsubscribe = false;
+ _this.count = 0;
+ return _this;
+ }
+ GroupBySubscriber.prototype._next = function (value) {
+ var key;
+ try {
+ key = this.keySelector(value);
+ }
+ catch (err) {
+ this.error(err);
+ return;
+ }
+ this._group(value, key);
+ };
+ GroupBySubscriber.prototype._group = function (value, key) {
+ var groups = this.groups;
+ if (!groups) {
+ groups = this.groups = new Map();
+ }
+ var group = groups.get(key);
+ var element;
+ if (this.elementSelector) {
+ try {
+ element = this.elementSelector(value);
+ }
+ catch (err) {
+ this.error(err);
+ }
+ }
+ else {
+ element = value;
+ }
+ if (!group) {
+ group = (this.subjectSelector ? this.subjectSelector() : new Subject_1.Subject());
+ groups.set(key, group);
+ var groupedObservable = new GroupedObservable(key, group, this);
+ this.destination.next(groupedObservable);
+ if (this.durationSelector) {
+ var duration = void 0;
+ try {
+ duration = this.durationSelector(new GroupedObservable(key, group));
+ }
+ catch (err) {
+ this.error(err);
+ return;
+ }
+ this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));
+ }
+ }
+ if (!group.closed) {
+ group.next(element);
+ }
+ };
+ GroupBySubscriber.prototype._error = function (err) {
+ var groups = this.groups;
+ if (groups) {
+ groups.forEach(function (group, key) {
+ group.error(err);
+ });
+ groups.clear();
+ }
+ this.destination.error(err);
+ };
+ GroupBySubscriber.prototype._complete = function () {
+ var groups = this.groups;
+ if (groups) {
+ groups.forEach(function (group, key) {
+ group.complete();
+ });
+ groups.clear();
+ }
+ this.destination.complete();
+ };
+ GroupBySubscriber.prototype.removeGroup = function (key) {
+ this.groups.delete(key);
+ };
+ GroupBySubscriber.prototype.unsubscribe = function () {
+ if (!this.closed) {
+ this.attemptedToUnsubscribe = true;
+ if (this.count === 0) {
+ _super.prototype.unsubscribe.call(this);
+ }
+ }
+ };
+ return GroupBySubscriber;
+}(Subscriber_1.Subscriber));
+var GroupDurationSubscriber = (function (_super) {
+ __extends(GroupDurationSubscriber, _super);
+ function GroupDurationSubscriber(key, group, parent) {
+ var _this = _super.call(this, group) || this;
+ _this.key = key;
+ _this.group = group;
+ _this.parent = parent;
+ return _this;
+ }
+ GroupDurationSubscriber.prototype._next = function (value) {
+ this.complete();
+ };
+ GroupDurationSubscriber.prototype._unsubscribe = function () {
+ var _a = this, parent = _a.parent, key = _a.key;
+ this.key = this.parent = null;
+ if (parent) {
+ parent.removeGroup(key);
+ }
+ };
+ return GroupDurationSubscriber;
+}(Subscriber_1.Subscriber));
+var GroupedObservable = (function (_super) {
+ __extends(GroupedObservable, _super);
+ function GroupedObservable(key, groupSubject, refCountSubscription) {
+ var _this = _super.call(this) || this;
+ _this.key = key;
+ _this.groupSubject = groupSubject;
+ _this.refCountSubscription = refCountSubscription;
+ return _this;
+ }
+ GroupedObservable.prototype._subscribe = function (subscriber) {
+ var subscription = new Subscription_1.Subscription();
+ var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;
+ if (refCountSubscription && !refCountSubscription.closed) {
+ subscription.add(new InnerRefCountSubscription(refCountSubscription));
+ }
+ subscription.add(groupSubject.subscribe(subscriber));
+ return subscription;
+ };
+ return GroupedObservable;
+}(Observable_1.Observable));
+exports.GroupedObservable = GroupedObservable;
+var InnerRefCountSubscription = (function (_super) {
+ __extends(InnerRefCountSubscription, _super);
+ function InnerRefCountSubscription(parent) {
+ var _this = _super.call(this) || this;
+ _this.parent = parent;
+ parent.count++;
+ return _this;
+ }
+ InnerRefCountSubscription.prototype.unsubscribe = function () {
+ var parent = this.parent;
+ if (!parent.closed && !this.closed) {
+ _super.prototype.unsubscribe.call(this);
+ parent.count -= 1;
+ if (parent.count === 0 && parent.attemptedToUnsubscribe) {
+ parent.unsubscribe();
+ }
+ }
+ };
+ return InnerRefCountSubscription;
+}(Subscription_1.Subscription));
+//# sourceMappingURL=groupBy.js.map \ No newline at end of file