"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.scanInternals = void 0; var OperatorSubscriber_1 = require("./OperatorSubscriber"); function scanInternals(accumulator, seed, hasSeed, emitOnNext, emitBeforeComplete) { return function (source, subscriber) { var hasState = hasSeed; var state = seed; var index = 0; source.subscribe(OperatorSubscriber_1.createOperatorSubscriber(subscriber, function (value) { var i = index++; state = hasState ? accumulator(state, value, i) : ((hasState = true), value); emitOnNext && subscriber.next(state); }, emitBeforeComplete && (function () { hasState && subscriber.next(state); subscriber.complete(); }))); }; } exports.scanInternals = scanInternals; //# sourceMappingURL=scanInternals.js.map