{"version":3,"file":"publishReplay.js","sourceRoot":"","sources":["../../src/operators/publishReplay.ts"],"names":[],"mappings":";AACA,8BAA8B,kBAAkB,CAAC,CAAA;AAEjD,0BAA0B,aAAa,CAAC,CAAA;AAQxC,mCAAmC;AAEnC,uBAAoC,UAAmB,EACnB,UAAmB,EACnB,mBAAyD,EACzD,SAAsB;IAExD,EAAE,CAAC,CAAC,mBAAmB,IAAI,OAAO,mBAAmB,KAAK,UAAU,CAAC,CAAC,CAAC;QACrE,SAAS,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAM,QAAQ,GAAG,OAAO,mBAAmB,KAAK,UAAU,GAAG,mBAAmB,GAAG,SAAS,CAAC;IAC7F,IAAM,OAAO,GAAG,IAAI,6BAAa,CAAI,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;IAExE,MAAM,CAAC,UAAC,MAAqB,IAAK,OAAA,qBAAS,CAAC,cAAM,OAAA,OAAO,EAAP,CAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,CAA6C,EAAtF,CAAsF,CAAC;AAC3H,CAAC;AAbe,qBAAa,gBAa5B,CAAA","sourcesContent":["import { Observable } from '../Observable';\nimport { ReplaySubject } from '../ReplaySubject';\nimport { IScheduler } from '../Scheduler';\nimport { multicast } from './multicast';\nimport { ConnectableObservable } from '../observable/ConnectableObservable';\nimport { UnaryFunction, MonoTypeOperatorFunction, OperatorFunction } from '../interfaces';\n\n/* tslint:disable:max-line-length */\nexport function publishReplay(bufferSize?: number, windowTime?: number, scheduler?: IScheduler): UnaryFunction, ConnectableObservable>;\nexport function publishReplay(bufferSize?: number, windowTime?: number, selector?: MonoTypeOperatorFunction, scheduler?: IScheduler): MonoTypeOperatorFunction;\nexport function publishReplay(bufferSize?: number, windowTime?: number, selector?: OperatorFunction, scheduler?: IScheduler): OperatorFunction;\n/* tslint:enable:max-line-length */\n\nexport function publishReplay(bufferSize?: number,\n windowTime?: number,\n selectorOrScheduler?: IScheduler | OperatorFunction,\n scheduler?: IScheduler): UnaryFunction, ConnectableObservable | Observable> {\n\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n\n const selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n const subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n\n return (source: Observable) => multicast(() => subject, selector)(source) as Observable | ConnectableObservable;\n}\n"]}