Actualizacion maquina principal
[dotfiles/.git] / .config / coc / extensions / node_modules / coc-prettier / node_modules / rxjs / _esm2015 / internal / operators / window.js
1 import { Subject } from '../Subject';
2 import { OuterSubscriber } from '../OuterSubscriber';
3 import { subscribeToResult } from '../util/subscribeToResult';
4 export function window(windowBoundaries) {
5     return function windowOperatorFunction(source) {
6         return source.lift(new WindowOperator(windowBoundaries));
7     };
8 }
9 class WindowOperator {
10     constructor(windowBoundaries) {
11         this.windowBoundaries = windowBoundaries;
12     }
13     call(subscriber, source) {
14         const windowSubscriber = new WindowSubscriber(subscriber);
15         const sourceSubscription = source.subscribe(windowSubscriber);
16         if (!sourceSubscription.closed) {
17             windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));
18         }
19         return sourceSubscription;
20     }
21 }
22 class WindowSubscriber extends OuterSubscriber {
23     constructor(destination) {
24         super(destination);
25         this.window = new Subject();
26         destination.next(this.window);
27     }
28     notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {
29         this.openWindow();
30     }
31     notifyError(error, innerSub) {
32         this._error(error);
33     }
34     notifyComplete(innerSub) {
35         this._complete();
36     }
37     _next(value) {
38         this.window.next(value);
39     }
40     _error(err) {
41         this.window.error(err);
42         this.destination.error(err);
43     }
44     _complete() {
45         this.window.complete();
46         this.destination.complete();
47     }
48     _unsubscribe() {
49         this.window = null;
50     }
51     openWindow() {
52         const prevWindow = this.window;
53         if (prevWindow) {
54             prevWindow.complete();
55         }
56         const destination = this.destination;
57         const newWindow = this.window = new Subject();
58         destination.next(newWindow);
59     }
60 }
61 //# sourceMappingURL=window.js.map