f47fcca835187f9851cf83d3b3f336b109068c096288760268636339c85e2d37.json 1.8 KB

1
  1. {"ast":null,"code":"import { Subject } from '../Subject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function window(windowBoundaries) {\n return function windowOperatorFunction(source) {\n return source.lift(new WindowOperator(windowBoundaries));\n };\n}\nclass WindowOperator {\n constructor(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n call(subscriber, source) {\n const windowSubscriber = new WindowSubscriber(subscriber);\n const sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n }\n}\nclass WindowSubscriber extends OuterSubscriber {\n constructor(destination) {\n super(destination);\n this.window = new Subject();\n destination.next(this.window);\n }\n notifyNext(outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n }\n notifyError(error, innerSub) {\n this._error(error);\n }\n notifyComplete(innerSub) {\n this._complete();\n }\n _next(value) {\n this.window.next(value);\n }\n _error(err) {\n this.window.error(err);\n this.destination.error(err);\n }\n _complete() {\n this.window.complete();\n this.destination.complete();\n }\n _unsubscribe() {\n this.window = null;\n }\n openWindow() {\n const prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n const destination = this.destination;\n const newWindow = this.window = new Subject();\n destination.next(newWindow);\n }\n}\n//# sourceMappingURL=window.js.map","map":null,"metadata":{},"sourceType":"module","externalDependencies":[]}