1 import { Subject } from '../Subject';
2 import { SimpleOuterSubscriber, innerSubscribe, SimpleInnerSubscriber } from '../innerSubscribe';
3 export function window(windowBoundaries) {
4 return function windowOperatorFunction(source) {
5 return source.lift(new WindowOperator(windowBoundaries));
9 constructor(windowBoundaries) {
10 this.windowBoundaries = windowBoundaries;
12 call(subscriber, source) {
13 const windowSubscriber = new WindowSubscriber(subscriber);
14 const sourceSubscription = source.subscribe(windowSubscriber);
15 if (!sourceSubscription.closed) {
16 windowSubscriber.add(innerSubscribe(this.windowBoundaries, new SimpleInnerSubscriber(windowSubscriber)));
18 return sourceSubscription;
21 class WindowSubscriber extends SimpleOuterSubscriber {
22 constructor(destination) {
24 this.window = new Subject();
25 destination.next(this.window);
37 this.window.next(value);
40 this.window.error(err);
41 this.destination.error(err);
44 this.window.complete();
45 this.destination.complete();
51 const prevWindow = this.window;
53 prevWindow.complete();
55 const destination = this.destination;
56 const newWindow = this.window = new Subject();
57 destination.next(newWindow);
60 //# sourceMappingURL=window.js.map