source: trip-planner-front/node_modules/rxjs/internal/operators/windowCount.js@ 8d391a1

Last change on this file since 8d391a1 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 3.5 KB
Line 
1"use strict";
2var __extends = (this && this.__extends) || (function () {
3 var extendStatics = function (d, b) {
4 extendStatics = Object.setPrototypeOf ||
5 ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
6 function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
7 return extendStatics(d, b);
8 }
9 return function (d, b) {
10 extendStatics(d, b);
11 function __() { this.constructor = d; }
12 d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
13 };
14})();
15Object.defineProperty(exports, "__esModule", { value: true });
16var Subscriber_1 = require("../Subscriber");
17var Subject_1 = require("../Subject");
18function windowCount(windowSize, startWindowEvery) {
19 if (startWindowEvery === void 0) { startWindowEvery = 0; }
20 return function windowCountOperatorFunction(source) {
21 return source.lift(new WindowCountOperator(windowSize, startWindowEvery));
22 };
23}
24exports.windowCount = windowCount;
25var WindowCountOperator = (function () {
26 function WindowCountOperator(windowSize, startWindowEvery) {
27 this.windowSize = windowSize;
28 this.startWindowEvery = startWindowEvery;
29 }
30 WindowCountOperator.prototype.call = function (subscriber, source) {
31 return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));
32 };
33 return WindowCountOperator;
34}());
35var WindowCountSubscriber = (function (_super) {
36 __extends(WindowCountSubscriber, _super);
37 function WindowCountSubscriber(destination, windowSize, startWindowEvery) {
38 var _this = _super.call(this, destination) || this;
39 _this.destination = destination;
40 _this.windowSize = windowSize;
41 _this.startWindowEvery = startWindowEvery;
42 _this.windows = [new Subject_1.Subject()];
43 _this.count = 0;
44 destination.next(_this.windows[0]);
45 return _this;
46 }
47 WindowCountSubscriber.prototype._next = function (value) {
48 var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;
49 var destination = this.destination;
50 var windowSize = this.windowSize;
51 var windows = this.windows;
52 var len = windows.length;
53 for (var i = 0; i < len && !this.closed; i++) {
54 windows[i].next(value);
55 }
56 var c = this.count - windowSize + 1;
57 if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {
58 windows.shift().complete();
59 }
60 if (++this.count % startWindowEvery === 0 && !this.closed) {
61 var window_1 = new Subject_1.Subject();
62 windows.push(window_1);
63 destination.next(window_1);
64 }
65 };
66 WindowCountSubscriber.prototype._error = function (err) {
67 var windows = this.windows;
68 if (windows) {
69 while (windows.length > 0 && !this.closed) {
70 windows.shift().error(err);
71 }
72 }
73 this.destination.error(err);
74 };
75 WindowCountSubscriber.prototype._complete = function () {
76 var windows = this.windows;
77 if (windows) {
78 while (windows.length > 0 && !this.closed) {
79 windows.shift().complete();
80 }
81 }
82 this.destination.complete();
83 };
84 WindowCountSubscriber.prototype._unsubscribe = function () {
85 this.count = 0;
86 this.windows = null;
87 };
88 return WindowCountSubscriber;
89}(Subscriber_1.Subscriber));
90//# sourceMappingURL=windowCount.js.map
Note: See TracBrowser for help on using the repository browser.