Ohm-Management - Projektarbeit B-ME
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rxjs.umd.js.map 652KB

1
  1. {"version":3,"file":null,"sources":["../tslib/tslib.es6.js","../internal/util/isFunction.js","../internal/config.js","../internal/util/hostReportError.js","../internal/Observer.js","../internal/util/isArray.js","../internal/util/isObject.js","../internal/util/errorObject.js","../internal/util/tryCatch.js","../internal/util/UnsubscriptionError.js","../internal/Subscription.js","../internal/symbol/rxSubscriber.js","../internal/Subscriber.js","../internal/util/canReportError.js","../internal/util/toSubscriber.js","../internal/symbol/observable.js","../internal/util/noop.js","../internal/util/pipe.js","../internal/Observable.js","../internal/util/ObjectUnsubscribedError.js","../internal/SubjectSubscription.js","../internal/Subject.js","../internal/operators/refCount.js","../internal/observable/ConnectableObservable.js","../internal/operators/groupBy.js","../internal/BehaviorSubject.js","../internal/scheduler/Action.js","../internal/scheduler/AsyncAction.js","../internal/scheduler/QueueAction.js","../internal/Scheduler.js","../internal/scheduler/AsyncScheduler.js","../internal/scheduler/QueueScheduler.js","../internal/scheduler/queue.js","../internal/observable/empty.js","../internal/util/isScheduler.js","../internal/util/subscribeToArray.js","../internal/observable/fromArray.js","../internal/observable/scalar.js","../internal/observable/of.js","../internal/observable/throwError.js","../internal/Notification.js","../internal/operators/observeOn.js","../internal/ReplaySubject.js","../internal/AsyncSubject.js","../internal/util/Immediate.js","../internal/scheduler/AsapAction.js","../internal/scheduler/AsapScheduler.js","../internal/scheduler/asap.js","../internal/scheduler/async.js","../internal/scheduler/AnimationFrameAction.js","../internal/scheduler/AnimationFrameScheduler.js","../internal/scheduler/animationFrame.js","../internal/scheduler/VirtualTimeScheduler.js","../internal/util/identity.js","../internal/util/isObservable.js","../internal/util/ArgumentOutOfRangeError.js","../internal/util/EmptyError.js","../internal/util/TimeoutError.js","../internal/operators/map.js","../internal/observable/bindCallback.js","../internal/observable/bindNodeCallback.js","../internal/OuterSubscriber.js","../internal/InnerSubscriber.js","../internal/util/subscribeToPromise.js","../internal/symbol/iterator.js","../internal/util/subscribeToIterable.js","../internal/util/subscribeToObservable.js","../internal/util/isArrayLike.js","../internal/util/isPromise.js","../internal/util/subscribeTo.js","../internal/util/subscribeToResult.js","../internal/observable/combineLatest.js","../internal/util/isInteropObservable.js","../internal/util/isIterable.js","../internal/observable/fromPromise.js","../internal/observable/fromIterable.js","../internal/observable/fromObservable.js","../internal/observable/from.js","../internal/operators/mergeMap.js","../internal/operators/mergeAll.js","../internal/operators/concatAll.js","../internal/observable/concat.js","../internal/observable/defer.js","../internal/observable/forkJoin.js","../internal/observable/fromEvent.js","../internal/observable/fromEventPattern.js","../internal/observable/generate.js","../internal/observable/iif.js","../internal/util/isNumeric.js","../internal/observable/interval.js","../internal/observable/merge.js","../internal/observable/never.js","../internal/observable/onErrorResumeNext.js","../internal/observable/pairs.js","../internal/observable/race.js","../internal/observable/range.js","../internal/observable/timer.js","../internal/observable/using.js","../internal/observable/zip.js","../internal/operators/audit.js","../internal/operators/auditTime.js","../internal/operators/buffer.js","../internal/operators/bufferCount.js","../internal/operators/bufferTime.js","../internal/operators/bufferToggle.js","../internal/operators/bufferWhen.js","../internal/operators/catchError.js","../internal/operators/combineAll.js","../internal/operators/combineLatest.js","../internal/operators/concat.js","../internal/operators/concatMap.js","../internal/operators/concatMapTo.js","../internal/operators/count.js","../internal/operators/debounce.js","../internal/operators/debounceTime.js","../internal/operators/defaultIfEmpty.js","../internal/util/isDate.js","../internal/operators/delay.js","../internal/operators/delayWhen.js","../internal/operators/dematerialize.js","../internal/operators/distinct.js","../internal/operators/distinctUntilChanged.js","../internal/operators/distinctUntilKeyChanged.js","../internal/operators/filter.js","../internal/operators/tap.js","../internal/operators/throwIfEmpty.js","../internal/operators/take.js","../internal/operators/elementAt.js","../internal/operators/endWith.js","../internal/operators/every.js","../internal/operators/exhaust.js","../internal/operators/exhaustMap.js","../internal/operators/expand.js","../internal/operators/finalize.js","../internal/operators/find.js","../internal/operators/findIndex.js","../internal/operators/first.js","../internal/operators/ignoreElements.js","../internal/operators/isEmpty.js","../internal/operators/takeLast.js","../internal/operators/last.js","../internal/operators/mapTo.js","../internal/operators/materialize.js","../internal/operators/scan.js","../internal/operators/reduce.js","../internal/operators/max.js","../internal/operators/merge.js","../internal/operators/mergeMapTo.js","../internal/operators/mergeScan.js","../internal/operators/min.js","../internal/operators/multicast.js","../internal/operators/onErrorResumeNext.js","../internal/operators/pairwise.js","../internal/util/not.js","../internal/operators/partition.js","../internal/operators/pluck.js","../internal/operators/publish.js","../internal/operators/publishBehavior.js","../internal/operators/publishLast.js","../internal/operators/publishReplay.js","../internal/operators/race.js","../internal/operators/repeat.js","../internal/operators/repeatWhen.js","../internal/operators/retry.js","../internal/operators/retryWhen.js","../internal/operators/sample.js","../internal/operators/sampleTime.js","../internal/operators/sequenceEqual.js","../internal/operators/share.js","../internal/operators/shareReplay.js","../internal/operators/single.js","../internal/operators/skip.js","../internal/operators/skipLast.js","../internal/operators/skipUntil.js","../internal/operators/skipWhile.js","../internal/operators/startWith.js","../internal/observable/SubscribeOnObservable.js","../internal/operators/subscribeOn.js","../internal/operators/switchMap.js","../internal/operators/switchAll.js","../internal/operators/switchMapTo.js","../internal/operators/takeUntil.js","../internal/operators/takeWhile.js","../internal/operators/throttle.js","../internal/operators/throttleTime.js","../internal/operators/timeInterval.js","../internal/operators/timeoutWith.js","../internal/operators/timeout.js","../internal/operators/timestamp.js","../internal/operators/toArray.js","../internal/operators/window.js","../internal/operators/windowCount.js","../internal/operators/windowTime.js","../internal/operators/windowToggle.js","../internal/operators/windowWhen.js","../internal/operators/withLatestFrom.js","../internal/operators/zip.js","../internal/operators/zipAll.js","../internal/testing/SubscriptionLog.js","../internal/testing/SubscriptionLoggable.js","../internal/util/applyMixins.js","../internal/testing/ColdObservable.js","../internal/testing/HotObservable.js","../internal/testing/TestScheduler.js","../internal/util/root.js","../internal/observable/dom/AjaxObservable.js","../internal/observable/dom/ajax.js","../internal/observable/dom/WebSocketSubject.js","../internal/observable/dom/webSocket.js","../internal/umd.js"],"sourcesContent":["/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation. All rights reserved.\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\nthis file except in compliance with the License. You may obtain a copy of the\r\nLicense at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nTHIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\nKIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\nWARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\nMERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\nSee the Apache Version 2.0 License for specific language governing permissions\r\nand limitations under the License.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) if (e.indexOf(p[i]) < 0)\r\n t[p[i]] = s[p[i]];\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = y[op[0] & 2 ? \"return\" : op[0] ? \"throw\" : \"next\"]) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [0, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator], i = 0;\r\n if (m) return m.call(o);\r\n return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { if (o[n]) i[n] = function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; }; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator];\r\n return m ? m.call(o) : typeof __values === \"function\" ? __values(o) : o[Symbol.iterator]();\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n","export function isFunction(x) {\n return typeof x === 'function';\n}\n//# sourceMappingURL=isFunction.js.map","var _enable_super_gross_mode_that_will_cause_bad_things = false;\nexport var config = {\n Promise: undefined,\n set useDeprecatedSynchronousErrorHandling(value) {\n if (value) {\n var error = new Error();\n console.warn('DEPRECATED! RxJS was set to use deprecated synchronous error handling behavior by code at: \\n' + error.stack);\n }\n else if (_enable_super_gross_mode_that_will_cause_bad_things) {\n console.log('RxJS: Back to a better error behavior. Thank you. <3');\n }\n _enable_super_gross_mode_that_will_cause_bad_things = value;\n },\n get useDeprecatedSynchronousErrorHandling() {\n return _enable_super_gross_mode_that_will_cause_bad_things;\n },\n};\n//# sourceMappingURL=config.js.map","export function hostReportError(err) {\n setTimeout(function () { throw err; });\n}\n//# sourceMappingURL=hostReportError.js.map","import { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nexport var empty = {\n closed: true,\n next: function (value) { },\n error: function (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n },\n complete: function () { }\n};\n//# sourceMappingURL=Observer.js.map","export var isArray = Array.isArray || (function (x) { return x && typeof x.length === 'number'; });\n//# sourceMappingURL=isArray.js.map","export function isObject(x) {\n return x != null && typeof x === 'object';\n}\n//# sourceMappingURL=isObject.js.map","export var errorObject = { e: {} };\n//# sourceMappingURL=errorObject.js.map","import { errorObject } from './errorObject';\nvar tryCatchTarget;\nfunction tryCatcher() {\n try {\n return tryCatchTarget.apply(this, arguments);\n }\n catch (e) {\n errorObject.e = e;\n return errorObject;\n }\n}\nexport function tryCatch(fn) {\n tryCatchTarget = fn;\n return tryCatcher;\n}\n//# sourceMappingURL=tryCatch.js.map","function UnsubscriptionErrorImpl(errors) {\n Error.call(this);\n this.message = errors ?\n errors.length + \" errors occurred during unsubscription:\\n\" + errors.map(function (err, i) { return i + 1 + \") \" + err.toString(); }).join('\\n ') : '';\n this.name = 'UnsubscriptionError';\n this.errors = errors;\n return this;\n}\nUnsubscriptionErrorImpl.prototype = Object.create(Error.prototype);\nexport var UnsubscriptionError = UnsubscriptionErrorImpl;\n//# sourceMappingURL=UnsubscriptionError.js.map","import { isArray } from './util/isArray';\nimport { isObject } from './util/isObject';\nimport { isFunction } from './util/isFunction';\nimport { tryCatch } from './util/tryCatch';\nimport { errorObject } from './util/errorObject';\nimport { UnsubscriptionError } from './util/UnsubscriptionError';\nvar Subscription = (function () {\n function Subscription(unsubscribe) {\n this.closed = false;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n if (unsubscribe) {\n this._unsubscribe = unsubscribe;\n }\n }\n Subscription.prototype.unsubscribe = function () {\n var hasErrors = false;\n var errors;\n if (this.closed) {\n return;\n }\n var _a = this, _parent = _a._parent, _parents = _a._parents, _unsubscribe = _a._unsubscribe, _subscriptions = _a._subscriptions;\n this.closed = true;\n this._parent = null;\n this._parents = null;\n this._subscriptions = null;\n var index = -1;\n var len = _parents ? _parents.length : 0;\n while (_parent) {\n _parent.remove(this);\n _parent = ++index < len && _parents[index] || null;\n }\n if (isFunction(_unsubscribe)) {\n var trial = tryCatch(_unsubscribe).call(this);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || (errorObject.e instanceof UnsubscriptionError ?\n flattenUnsubscriptionErrors(errorObject.e.errors) : [errorObject.e]);\n }\n }\n if (isArray(_subscriptions)) {\n index = -1;\n len = _subscriptions.length;\n while (++index < len) {\n var sub = _subscriptions[index];\n if (isObject(sub)) {\n var trial = tryCatch(sub.unsubscribe).call(sub);\n if (trial === errorObject) {\n hasErrors = true;\n errors = errors || [];\n var err = errorObject.e;\n if (err instanceof UnsubscriptionError) {\n errors = errors.concat(flattenUnsubscriptionErrors(err.errors));\n }\n else {\n errors.push(err);\n }\n }\n }\n }\n }\n if (hasErrors) {\n throw new UnsubscriptionError(errors);\n }\n };\n Subscription.prototype.add = function (teardown) {\n if (!teardown || (teardown === Subscription.EMPTY)) {\n return Subscription.EMPTY;\n }\n if (teardown === this) {\n return this;\n }\n var subscription = teardown;\n switch (typeof teardown) {\n case 'function':\n subscription = new Subscription(teardown);\n case 'object':\n if (subscription.closed || typeof subscription.unsubscribe !== 'function') {\n return subscription;\n }\n else if (this.closed) {\n subscription.unsubscribe();\n return subscription;\n }\n else if (typeof subscription._addParent !== 'function') {\n var tmp = subscription;\n subscription = new Subscription();\n subscription._subscriptions = [tmp];\n }\n break;\n default:\n throw new Error('unrecognized teardown ' + teardown + ' added to Subscription.');\n }\n var subscriptions = this._subscriptions || (this._subscriptions = []);\n subscriptions.push(subscription);\n subscription._addParent(this);\n return subscription;\n };\n Subscription.prototype.remove = function (subscription) {\n var subscriptions = this._subscriptions;\n if (subscriptions) {\n var subscriptionIndex = subscriptions.indexOf(subscription);\n if (subscriptionIndex !== -1) {\n subscriptions.splice(subscriptionIndex, 1);\n }\n }\n };\n Subscription.prototype._addParent = function (parent) {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n if (!_parent || _parent === parent) {\n this._parent = parent;\n }\n else if (!_parents) {\n this._parents = [parent];\n }\n else if (_parents.indexOf(parent) === -1) {\n _parents.push(parent);\n }\n };\n Subscription.EMPTY = (function (empty) {\n empty.closed = true;\n return empty;\n }(new Subscription()));\n return Subscription;\n}());\nexport { Subscription };\nfunction flattenUnsubscriptionErrors(errors) {\n return errors.reduce(function (errs, err) { return errs.concat((err instanceof UnsubscriptionError) ? err.errors : err); }, []);\n}\n//# sourceMappingURL=Subscription.js.map","export var rxSubscriber = typeof Symbol === 'function'\n ? Symbol('rxSubscriber')\n : '@@rxSubscriber_' + Math.random();\nexport var $$rxSubscriber = rxSubscriber;\n//# sourceMappingURL=rxSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { isFunction } from './util/isFunction';\nimport { empty as emptyObserver } from './Observer';\nimport { Subscription } from './Subscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nimport { config } from './config';\nimport { hostReportError } from './util/hostReportError';\nvar Subscriber = (function (_super) {\n tslib_1.__extends(Subscriber, _super);\n function Subscriber(destinationOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this.syncErrorValue = null;\n _this.syncErrorThrown = false;\n _this.syncErrorThrowable = false;\n _this.isStopped = false;\n _this._parentSubscription = null;\n switch (arguments.length) {\n case 0:\n _this.destination = emptyObserver;\n break;\n case 1:\n if (!destinationOrNext) {\n _this.destination = emptyObserver;\n break;\n }\n if (typeof destinationOrNext === 'object') {\n if (destinationOrNext instanceof Subscriber) {\n _this.syncErrorThrowable = destinationOrNext.syncErrorThrowable;\n _this.destination = destinationOrNext;\n destinationOrNext.add(_this);\n }\n else {\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext);\n }\n break;\n }\n default:\n _this.syncErrorThrowable = true;\n _this.destination = new SafeSubscriber(_this, destinationOrNext, error, complete);\n break;\n }\n return _this;\n }\n Subscriber.prototype[rxSubscriberSymbol] = function () { return this; };\n Subscriber.create = function (next, error, complete) {\n var subscriber = new Subscriber(next, error, complete);\n subscriber.syncErrorThrowable = false;\n return subscriber;\n };\n Subscriber.prototype.next = function (value) {\n if (!this.isStopped) {\n this._next(value);\n }\n };\n Subscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n this.isStopped = true;\n this._error(err);\n }\n };\n Subscriber.prototype.complete = function () {\n if (!this.isStopped) {\n this.isStopped = true;\n this._complete();\n }\n };\n Subscriber.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.isStopped = true;\n _super.prototype.unsubscribe.call(this);\n };\n Subscriber.prototype._next = function (value) {\n this.destination.next(value);\n };\n Subscriber.prototype._error = function (err) {\n this.destination.error(err);\n this.unsubscribe();\n };\n Subscriber.prototype._complete = function () {\n this.destination.complete();\n this.unsubscribe();\n };\n Subscriber.prototype._unsubscribeAndRecycle = function () {\n var _a = this, _parent = _a._parent, _parents = _a._parents;\n this._parent = null;\n this._parents = null;\n this.unsubscribe();\n this.closed = false;\n this.isStopped = false;\n this._parent = _parent;\n this._parents = _parents;\n this._parentSubscription = null;\n return this;\n };\n return Subscriber;\n}(Subscription));\nexport { Subscriber };\nvar SafeSubscriber = (function (_super) {\n tslib_1.__extends(SafeSubscriber, _super);\n function SafeSubscriber(_parentSubscriber, observerOrNext, error, complete) {\n var _this = _super.call(this) || this;\n _this._parentSubscriber = _parentSubscriber;\n var next;\n var context = _this;\n if (isFunction(observerOrNext)) {\n next = observerOrNext;\n }\n else if (observerOrNext) {\n next = observerOrNext.next;\n error = observerOrNext.error;\n complete = observerOrNext.complete;\n if (observerOrNext !== emptyObserver) {\n context = Object.create(observerOrNext);\n if (isFunction(context.unsubscribe)) {\n _this.add(context.unsubscribe.bind(context));\n }\n context.unsubscribe = _this.unsubscribe.bind(_this);\n }\n }\n _this._context = context;\n _this._next = next;\n _this._error = error;\n _this._complete = complete;\n return _this;\n }\n SafeSubscriber.prototype.next = function (value) {\n if (!this.isStopped && this._next) {\n var _parentSubscriber = this._parentSubscriber;\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._next, value);\n }\n else if (this.__tryOrSetError(_parentSubscriber, this._next, value)) {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n var useDeprecatedSynchronousErrorHandling = config.useDeprecatedSynchronousErrorHandling;\n if (this._error) {\n if (!useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(this._error, err);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, this._error, err);\n this.unsubscribe();\n }\n }\n else if (!_parentSubscriber.syncErrorThrowable) {\n this.unsubscribe();\n if (useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n hostReportError(err);\n }\n else {\n if (useDeprecatedSynchronousErrorHandling) {\n _parentSubscriber.syncErrorValue = err;\n _parentSubscriber.syncErrorThrown = true;\n }\n else {\n hostReportError(err);\n }\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.complete = function () {\n var _this = this;\n if (!this.isStopped) {\n var _parentSubscriber = this._parentSubscriber;\n if (this._complete) {\n var wrappedComplete = function () { return _this._complete.call(_this._context); };\n if (!config.useDeprecatedSynchronousErrorHandling || !_parentSubscriber.syncErrorThrowable) {\n this.__tryOrUnsub(wrappedComplete);\n this.unsubscribe();\n }\n else {\n this.__tryOrSetError(_parentSubscriber, wrappedComplete);\n this.unsubscribe();\n }\n }\n else {\n this.unsubscribe();\n }\n }\n };\n SafeSubscriber.prototype.__tryOrUnsub = function (fn, value) {\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n this.unsubscribe();\n if (config.useDeprecatedSynchronousErrorHandling) {\n throw err;\n }\n else {\n hostReportError(err);\n }\n }\n };\n SafeSubscriber.prototype.__tryOrSetError = function (parent, fn, value) {\n if (!config.useDeprecatedSynchronousErrorHandling) {\n throw new Error('bad call');\n }\n try {\n fn.call(this._context, value);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n parent.syncErrorValue = err;\n parent.syncErrorThrown = true;\n return true;\n }\n else {\n hostReportError(err);\n return true;\n }\n }\n return false;\n };\n SafeSubscriber.prototype._unsubscribe = function () {\n var _parentSubscriber = this._parentSubscriber;\n this._context = null;\n this._parentSubscriber = null;\n _parentSubscriber.unsubscribe();\n };\n return SafeSubscriber;\n}(Subscriber));\nexport { SafeSubscriber };\n//# sourceMappingURL=Subscriber.js.map","import { Subscriber } from '../Subscriber';\nexport function canReportError(observer) {\n while (observer) {\n var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped;\n if (closed_1 || isStopped) {\n return false;\n }\n else if (destination && destination instanceof Subscriber) {\n observer = destination;\n }\n else {\n observer = null;\n }\n }\n return true;\n}\n//# sourceMappingURL=canReportError.js.map","import { Subscriber } from '../Subscriber';\nimport { rxSubscriber as rxSubscriberSymbol } from '../symbol/rxSubscriber';\nimport { empty as emptyObserver } from '../Observer';\nexport function toSubscriber(nextOrObserver, error, complete) {\n if (nextOrObserver) {\n if (nextOrObserver instanceof Subscriber) {\n return nextOrObserver;\n }\n if (nextOrObserver[rxSubscriberSymbol]) {\n return nextOrObserver[rxSubscriberSymbol]();\n }\n }\n if (!nextOrObserver && !error && !complete) {\n return new Subscriber(emptyObserver);\n }\n return new Subscriber(nextOrObserver, error, complete);\n}\n//# sourceMappingURL=toSubscriber.js.map","export var observable = typeof Symbol === 'function' && Symbol.observable || '@@observable';\n//# sourceMappingURL=observable.js.map","export function noop() { }\n//# sourceMappingURL=noop.js.map","import { noop } from './noop';\nexport function pipe() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return pipeFromArray(fns);\n}\nexport function pipeFromArray(fns) {\n if (!fns) {\n return noop;\n }\n if (fns.length === 1) {\n return fns[0];\n }\n return function piped(input) {\n return fns.reduce(function (prev, fn) { return fn(prev); }, input);\n };\n}\n//# sourceMappingURL=pipe.js.map","import { canReportError } from './util/canReportError';\nimport { toSubscriber } from './util/toSubscriber';\nimport { observable as Symbol_observable } from '../internal/symbol/observable';\nimport { pipeFromArray } from './util/pipe';\nimport { config } from './config';\nvar Observable = (function () {\n function Observable(subscribe) {\n this._isScalar = false;\n if (subscribe) {\n this._subscribe = subscribe;\n }\n }\n Observable.prototype.lift = function (operator) {\n var observable = new Observable();\n observable.source = this;\n observable.operator = operator;\n return observable;\n };\n Observable.prototype.subscribe = function (observerOrNext, error, complete) {\n var operator = this.operator;\n var sink = toSubscriber(observerOrNext, error, complete);\n if (operator) {\n operator.call(sink, this.source);\n }\n else {\n sink.add(this.source || (config.useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ?\n this._subscribe(sink) :\n this._trySubscribe(sink));\n }\n if (config.useDeprecatedSynchronousErrorHandling) {\n if (sink.syncErrorThrowable) {\n sink.syncErrorThrowable = false;\n if (sink.syncErrorThrown) {\n throw sink.syncErrorValue;\n }\n }\n }\n return sink;\n };\n Observable.prototype._trySubscribe = function (sink) {\n try {\n return this._subscribe(sink);\n }\n catch (err) {\n if (config.useDeprecatedSynchronousErrorHandling) {\n sink.syncErrorThrown = true;\n sink.syncErrorValue = err;\n }\n if (canReportError(sink)) {\n sink.error(err);\n }\n else {\n console.warn(err);\n }\n }\n };\n Observable.prototype.forEach = function (next, promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var subscription;\n subscription = _this.subscribe(function (value) {\n try {\n next(value);\n }\n catch (err) {\n reject(err);\n if (subscription) {\n subscription.unsubscribe();\n }\n }\n }, reject, resolve);\n });\n };\n Observable.prototype._subscribe = function (subscriber) {\n var source = this.source;\n return source && source.subscribe(subscriber);\n };\n Observable.prototype[Symbol_observable] = function () {\n return this;\n };\n Observable.prototype.pipe = function () {\n var operations = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n operations[_i] = arguments[_i];\n }\n if (operations.length === 0) {\n return this;\n }\n return pipeFromArray(operations)(this);\n };\n Observable.prototype.toPromise = function (promiseCtor) {\n var _this = this;\n promiseCtor = getPromiseCtor(promiseCtor);\n return new promiseCtor(function (resolve, reject) {\n var value;\n _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); });\n });\n };\n Observable.create = function (subscribe) {\n return new Observable(subscribe);\n };\n return Observable;\n}());\nexport { Observable };\nfunction getPromiseCtor(promiseCtor) {\n if (!promiseCtor) {\n promiseCtor = config.Promise || Promise;\n }\n if (!promiseCtor) {\n throw new Error('no Promise impl found');\n }\n return promiseCtor;\n}\n//# sourceMappingURL=Observable.js.map","function ObjectUnsubscribedErrorImpl() {\n Error.call(this);\n this.message = 'object unsubscribed';\n this.name = 'ObjectUnsubscribedError';\n return this;\n}\nObjectUnsubscribedErrorImpl.prototype = Object.create(Error.prototype);\nexport var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl;\n//# sourceMappingURL=ObjectUnsubscribedError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from './Subscription';\nvar SubjectSubscription = (function (_super) {\n tslib_1.__extends(SubjectSubscription, _super);\n function SubjectSubscription(subject, subscriber) {\n var _this = _super.call(this) || this;\n _this.subject = subject;\n _this.subscriber = subscriber;\n _this.closed = false;\n return _this;\n }\n SubjectSubscription.prototype.unsubscribe = function () {\n if (this.closed) {\n return;\n }\n this.closed = true;\n var subject = this.subject;\n var observers = subject.observers;\n this.subject = null;\n if (!observers || observers.length === 0 || subject.isStopped || subject.closed) {\n return;\n }\n var subscriberIndex = observers.indexOf(this.subscriber);\n if (subscriberIndex !== -1) {\n observers.splice(subscriberIndex, 1);\n }\n };\n return SubjectSubscription;\n}(Subscription));\nexport { SubjectSubscription };\n//# sourceMappingURL=SubjectSubscription.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from './Observable';\nimport { Subscriber } from './Subscriber';\nimport { Subscription } from './Subscription';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nimport { rxSubscriber as rxSubscriberSymbol } from '../internal/symbol/rxSubscriber';\nvar SubjectSubscriber = (function (_super) {\n tslib_1.__extends(SubjectSubscriber, _super);\n function SubjectSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n return _this;\n }\n return SubjectSubscriber;\n}(Subscriber));\nexport { SubjectSubscriber };\nvar Subject = (function (_super) {\n tslib_1.__extends(Subject, _super);\n function Subject() {\n var _this = _super.call(this) || this;\n _this.observers = [];\n _this.closed = false;\n _this.isStopped = false;\n _this.hasError = false;\n _this.thrownError = null;\n return _this;\n }\n Subject.prototype[rxSubscriberSymbol] = function () {\n return new SubjectSubscriber(this);\n };\n Subject.prototype.lift = function (operator) {\n var subject = new AnonymousSubject(this, this);\n subject.operator = operator;\n return subject;\n };\n Subject.prototype.next = function (value) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n if (!this.isStopped) {\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].next(value);\n }\n }\n };\n Subject.prototype.error = function (err) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.hasError = true;\n this.thrownError = err;\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].error(err);\n }\n this.observers.length = 0;\n };\n Subject.prototype.complete = function () {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n this.isStopped = true;\n var observers = this.observers;\n var len = observers.length;\n var copy = observers.slice();\n for (var i = 0; i < len; i++) {\n copy[i].complete();\n }\n this.observers.length = 0;\n };\n Subject.prototype.unsubscribe = function () {\n this.isStopped = true;\n this.closed = true;\n this.observers = null;\n };\n Subject.prototype._trySubscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return _super.prototype._trySubscribe.call(this, subscriber);\n }\n };\n Subject.prototype._subscribe = function (subscriber) {\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.isStopped) {\n subscriber.complete();\n return Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n return new SubjectSubscription(this, subscriber);\n }\n };\n Subject.prototype.asObservable = function () {\n var observable = new Observable();\n observable.source = this;\n return observable;\n };\n Subject.create = function (destination, source) {\n return new AnonymousSubject(destination, source);\n };\n return Subject;\n}(Observable));\nexport { Subject };\nvar AnonymousSubject = (function (_super) {\n tslib_1.__extends(AnonymousSubject, _super);\n function AnonymousSubject(destination, source) {\n var _this = _super.call(this) || this;\n _this.destination = destination;\n _this.source = source;\n return _this;\n }\n AnonymousSubject.prototype.next = function (value) {\n var destination = this.destination;\n if (destination && destination.next) {\n destination.next(value);\n }\n };\n AnonymousSubject.prototype.error = function (err) {\n var destination = this.destination;\n if (destination && destination.error) {\n this.destination.error(err);\n }\n };\n AnonymousSubject.prototype.complete = function () {\n var destination = this.destination;\n if (destination && destination.complete) {\n this.destination.complete();\n }\n };\n AnonymousSubject.prototype._subscribe = function (subscriber) {\n var source = this.source;\n if (source) {\n return this.source.subscribe(subscriber);\n }\n else {\n return Subscription.EMPTY;\n }\n };\n return AnonymousSubject;\n}(Subject));\nexport { AnonymousSubject };\n//# sourceMappingURL=Subject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function refCount() {\n return function refCountOperatorFunction(source) {\n return source.lift(new RefCountOperator(source));\n };\n}\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=refCount.js.map","import * as tslib_1 from \"tslib\";\nimport { SubjectSubscriber } from '../Subject';\nimport { Observable } from '../Observable';\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { refCount as higherOrderRefCount } from '../operators/refCount';\nvar ConnectableObservable = (function (_super) {\n tslib_1.__extends(ConnectableObservable, _super);\n function ConnectableObservable(source, subjectFactory) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subjectFactory = subjectFactory;\n _this._refCount = 0;\n _this._isComplete = false;\n return _this;\n }\n ConnectableObservable.prototype._subscribe = function (subscriber) {\n return this.getSubject().subscribe(subscriber);\n };\n ConnectableObservable.prototype.getSubject = function () {\n var subject = this._subject;\n if (!subject || subject.isStopped) {\n this._subject = this.subjectFactory();\n }\n return this._subject;\n };\n ConnectableObservable.prototype.connect = function () {\n var connection = this._connection;\n if (!connection) {\n this._isComplete = false;\n connection = this._connection = new Subscription();\n connection.add(this.source\n .subscribe(new ConnectableSubscriber(this.getSubject(), this)));\n if (connection.closed) {\n this._connection = null;\n connection = Subscription.EMPTY;\n }\n else {\n this._connection = connection;\n }\n }\n return connection;\n };\n ConnectableObservable.prototype.refCount = function () {\n return higherOrderRefCount()(this);\n };\n return ConnectableObservable;\n}(Observable));\nexport { ConnectableObservable };\nvar connectableProto = ConnectableObservable.prototype;\nexport var connectableObservableDescriptor = {\n operator: { value: null },\n _refCount: { value: 0, writable: true },\n _subject: { value: null, writable: true },\n _connection: { value: null, writable: true },\n _subscribe: { value: connectableProto._subscribe },\n _isComplete: { value: connectableProto._isComplete, writable: true },\n getSubject: { value: connectableProto.getSubject },\n connect: { value: connectableProto.connect },\n refCount: { value: connectableProto.refCount }\n};\nvar ConnectableSubscriber = (function (_super) {\n tslib_1.__extends(ConnectableSubscriber, _super);\n function ConnectableSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n ConnectableSubscriber.prototype._error = function (err) {\n this._unsubscribe();\n _super.prototype._error.call(this, err);\n };\n ConnectableSubscriber.prototype._complete = function () {\n this.connectable._isComplete = true;\n this._unsubscribe();\n _super.prototype._complete.call(this);\n };\n ConnectableSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (connectable) {\n this.connectable = null;\n var connection = connectable._connection;\n connectable._refCount = 0;\n connectable._subject = null;\n connectable._connection = null;\n if (connection) {\n connection.unsubscribe();\n }\n }\n };\n return ConnectableSubscriber;\n}(SubjectSubscriber));\nvar RefCountOperator = (function () {\n function RefCountOperator(connectable) {\n this.connectable = connectable;\n }\n RefCountOperator.prototype.call = function (subscriber, source) {\n var connectable = this.connectable;\n connectable._refCount++;\n var refCounter = new RefCountSubscriber(subscriber, connectable);\n var subscription = source.subscribe(refCounter);\n if (!refCounter.closed) {\n refCounter.connection = connectable.connect();\n }\n return subscription;\n };\n return RefCountOperator;\n}());\nvar RefCountSubscriber = (function (_super) {\n tslib_1.__extends(RefCountSubscriber, _super);\n function RefCountSubscriber(destination, connectable) {\n var _this = _super.call(this, destination) || this;\n _this.connectable = connectable;\n return _this;\n }\n RefCountSubscriber.prototype._unsubscribe = function () {\n var connectable = this.connectable;\n if (!connectable) {\n this.connection = null;\n return;\n }\n this.connectable = null;\n var refCount = connectable._refCount;\n if (refCount <= 0) {\n this.connection = null;\n return;\n }\n connectable._refCount = refCount - 1;\n if (refCount > 1) {\n this.connection = null;\n return;\n }\n var connection = this.connection;\n var sharedConnection = connectable._connection;\n this.connection = null;\n if (sharedConnection && (!connection || sharedConnection === connection)) {\n sharedConnection.unsubscribe();\n }\n };\n return RefCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ConnectableObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nimport { Observable } from '../Observable';\nimport { Subject } from '../Subject';\nexport function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) {\n return function (source) {\n return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector));\n };\n}\nvar GroupByOperator = (function () {\n function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) {\n this.keySelector = keySelector;\n this.elementSelector = elementSelector;\n this.durationSelector = durationSelector;\n this.subjectSelector = subjectSelector;\n }\n GroupByOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector));\n };\n return GroupByOperator;\n}());\nvar GroupBySubscriber = (function (_super) {\n tslib_1.__extends(GroupBySubscriber, _super);\n function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.elementSelector = elementSelector;\n _this.durationSelector = durationSelector;\n _this.subjectSelector = subjectSelector;\n _this.groups = null;\n _this.attemptedToUnsubscribe = false;\n _this.count = 0;\n return _this;\n }\n GroupBySubscriber.prototype._next = function (value) {\n var key;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n this.error(err);\n return;\n }\n this._group(value, key);\n };\n GroupBySubscriber.prototype._group = function (value, key) {\n var groups = this.groups;\n if (!groups) {\n groups = this.groups = new Map();\n }\n var group = groups.get(key);\n var element;\n if (this.elementSelector) {\n try {\n element = this.elementSelector(value);\n }\n catch (err) {\n this.error(err);\n }\n }\n else {\n element = value;\n }\n if (!group) {\n group = (this.subjectSelector ? this.subjectSelector() : new Subject());\n groups.set(key, group);\n var groupedObservable = new GroupedObservable(key, group, this);\n this.destination.next(groupedObservable);\n if (this.durationSelector) {\n var duration = void 0;\n try {\n duration = this.durationSelector(new GroupedObservable(key, group));\n }\n catch (err) {\n this.error(err);\n return;\n }\n this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this)));\n }\n }\n if (!group.closed) {\n group.next(element);\n }\n };\n GroupBySubscriber.prototype._error = function (err) {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.error(err);\n });\n groups.clear();\n }\n this.destination.error(err);\n };\n GroupBySubscriber.prototype._complete = function () {\n var groups = this.groups;\n if (groups) {\n groups.forEach(function (group, key) {\n group.complete();\n });\n groups.clear();\n }\n this.destination.complete();\n };\n GroupBySubscriber.prototype.removeGroup = function (key) {\n this.groups.delete(key);\n };\n GroupBySubscriber.prototype.unsubscribe = function () {\n if (!this.closed) {\n this.attemptedToUnsubscribe = true;\n if (this.count === 0) {\n _super.prototype.unsubscribe.call(this);\n }\n }\n };\n return GroupBySubscriber;\n}(Subscriber));\nvar GroupDurationSubscriber = (function (_super) {\n tslib_1.__extends(GroupDurationSubscriber, _super);\n function GroupDurationSubscriber(key, group, parent) {\n var _this = _super.call(this, group) || this;\n _this.key = key;\n _this.group = group;\n _this.parent = parent;\n return _this;\n }\n GroupDurationSubscriber.prototype._next = function (value) {\n this.complete();\n };\n GroupDurationSubscriber.prototype._unsubscribe = function () {\n var _a = this, parent = _a.parent, key = _a.key;\n this.key = this.parent = null;\n if (parent) {\n parent.removeGroup(key);\n }\n };\n return GroupDurationSubscriber;\n}(Subscriber));\nvar GroupedObservable = (function (_super) {\n tslib_1.__extends(GroupedObservable, _super);\n function GroupedObservable(key, groupSubject, refCountSubscription) {\n var _this = _super.call(this) || this;\n _this.key = key;\n _this.groupSubject = groupSubject;\n _this.refCountSubscription = refCountSubscription;\n return _this;\n }\n GroupedObservable.prototype._subscribe = function (subscriber) {\n var subscription = new Subscription();\n var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject;\n if (refCountSubscription && !refCountSubscription.closed) {\n subscription.add(new InnerRefCountSubscription(refCountSubscription));\n }\n subscription.add(groupSubject.subscribe(subscriber));\n return subscription;\n };\n return GroupedObservable;\n}(Observable));\nexport { GroupedObservable };\nvar InnerRefCountSubscription = (function (_super) {\n tslib_1.__extends(InnerRefCountSubscription, _super);\n function InnerRefCountSubscription(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n parent.count++;\n return _this;\n }\n InnerRefCountSubscription.prototype.unsubscribe = function () {\n var parent = this.parent;\n if (!parent.closed && !this.closed) {\n _super.prototype.unsubscribe.call(this);\n parent.count -= 1;\n if (parent.count === 0 && parent.attemptedToUnsubscribe) {\n parent.unsubscribe();\n }\n }\n };\n return InnerRefCountSubscription;\n}(Subscription));\n//# sourceMappingURL=groupBy.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nvar BehaviorSubject = (function (_super) {\n tslib_1.__extends(BehaviorSubject, _super);\n function BehaviorSubject(_value) {\n var _this = _super.call(this) || this;\n _this._value = _value;\n return _this;\n }\n Object.defineProperty(BehaviorSubject.prototype, \"value\", {\n get: function () {\n return this.getValue();\n },\n enumerable: true,\n configurable: true\n });\n BehaviorSubject.prototype._subscribe = function (subscriber) {\n var subscription = _super.prototype._subscribe.call(this, subscriber);\n if (subscription && !subscription.closed) {\n subscriber.next(this._value);\n }\n return subscription;\n };\n BehaviorSubject.prototype.getValue = function () {\n if (this.hasError) {\n throw this.thrownError;\n }\n else if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else {\n return this._value;\n }\n };\n BehaviorSubject.prototype.next = function (value) {\n _super.prototype.next.call(this, this._value = value);\n };\n return BehaviorSubject;\n}(Subject));\nexport { BehaviorSubject };\n//# sourceMappingURL=BehaviorSubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nvar Action = (function (_super) {\n tslib_1.__extends(Action, _super);\n function Action(scheduler, work) {\n return _super.call(this) || this;\n }\n Action.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n return this;\n };\n return Action;\n}(Subscription));\nexport { Action };\n//# sourceMappingURL=Action.js.map","import * as tslib_1 from \"tslib\";\nimport { Action } from './Action';\nvar AsyncAction = (function (_super) {\n tslib_1.__extends(AsyncAction, _super);\n function AsyncAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.pending = false;\n return _this;\n }\n AsyncAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (this.closed) {\n return this;\n }\n this.state = state;\n var id = this.id;\n var scheduler = this.scheduler;\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, delay);\n }\n this.pending = true;\n this.delay = delay;\n this.id = this.id || this.requestAsyncId(scheduler, this.id, delay);\n return this;\n };\n AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return setInterval(scheduler.flush.bind(scheduler, this), delay);\n };\n AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && this.delay === delay && this.pending === false) {\n return id;\n }\n clearInterval(id);\n };\n AsyncAction.prototype.execute = function (state, delay) {\n if (this.closed) {\n return new Error('executing a cancelled action');\n }\n this.pending = false;\n var error = this._execute(state, delay);\n if (error) {\n return error;\n }\n else if (this.pending === false && this.id != null) {\n this.id = this.recycleAsyncId(this.scheduler, this.id, null);\n }\n };\n AsyncAction.prototype._execute = function (state, delay) {\n var errored = false;\n var errorValue = undefined;\n try {\n this.work(state);\n }\n catch (e) {\n errored = true;\n errorValue = !!e && e || new Error(e);\n }\n if (errored) {\n this.unsubscribe();\n return errorValue;\n }\n };\n AsyncAction.prototype._unsubscribe = function () {\n var id = this.id;\n var scheduler = this.scheduler;\n var actions = scheduler.actions;\n var index = actions.indexOf(this);\n this.work = null;\n this.state = null;\n this.pending = false;\n this.scheduler = null;\n if (index !== -1) {\n actions.splice(index, 1);\n }\n if (id != null) {\n this.id = this.recycleAsyncId(scheduler, id, null);\n }\n this.delay = null;\n };\n return AsyncAction;\n}(Action));\nexport { AsyncAction };\n//# sourceMappingURL=AsyncAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar QueueAction = (function (_super) {\n tslib_1.__extends(QueueAction, _super);\n function QueueAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n QueueAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay > 0) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.delay = delay;\n this.state = state;\n this.scheduler.flush(this);\n return this;\n };\n QueueAction.prototype.execute = function (state, delay) {\n return (delay > 0 || this.closed) ?\n _super.prototype.execute.call(this, state, delay) :\n this._execute(state, delay);\n };\n QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n return scheduler.flush(this);\n };\n return QueueAction;\n}(AsyncAction));\nexport { QueueAction };\n//# sourceMappingURL=QueueAction.js.map","var Scheduler = (function () {\n function Scheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n this.SchedulerAction = SchedulerAction;\n this.now = now;\n }\n Scheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n return new this.SchedulerAction(this, work).schedule(state, delay);\n };\n Scheduler.now = function () { return Date.now(); };\n return Scheduler;\n}());\nexport { Scheduler };\n//# sourceMappingURL=Scheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { Scheduler } from '../Scheduler';\nvar AsyncScheduler = (function (_super) {\n tslib_1.__extends(AsyncScheduler, _super);\n function AsyncScheduler(SchedulerAction, now) {\n if (now === void 0) { now = Scheduler.now; }\n var _this = _super.call(this, SchedulerAction, function () {\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) {\n return AsyncScheduler.delegate.now();\n }\n else {\n return now();\n }\n }) || this;\n _this.actions = [];\n _this.active = false;\n _this.scheduled = undefined;\n return _this;\n }\n AsyncScheduler.prototype.schedule = function (work, delay, state) {\n if (delay === void 0) { delay = 0; }\n if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) {\n return AsyncScheduler.delegate.schedule(work, delay, state);\n }\n else {\n return _super.prototype.schedule.call(this, work, delay, state);\n }\n };\n AsyncScheduler.prototype.flush = function (action) {\n var actions = this.actions;\n if (this.active) {\n actions.push(action);\n return;\n }\n var error;\n this.active = true;\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (action = actions.shift());\n this.active = false;\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsyncScheduler;\n}(Scheduler));\nexport { AsyncScheduler };\n//# sourceMappingURL=AsyncScheduler.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar QueueScheduler = (function (_super) {\n tslib_1.__extends(QueueScheduler, _super);\n function QueueScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return QueueScheduler;\n}(AsyncScheduler));\nexport { QueueScheduler };\n//# sourceMappingURL=QueueScheduler.js.map","import { QueueAction } from './QueueAction';\nimport { QueueScheduler } from './QueueScheduler';\nexport var queue = new QueueScheduler(QueueAction);\n//# sourceMappingURL=queue.js.map","import { Observable } from '../Observable';\nexport var EMPTY = new Observable(function (subscriber) { return subscriber.complete(); });\nexport function empty(scheduler) {\n return scheduler ? emptyScheduled(scheduler) : EMPTY;\n}\nexport function emptyScheduled(scheduler) {\n return new Observable(function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); });\n}\n//# sourceMappingURL=empty.js.map","export function isScheduler(value) {\n return value && typeof value.schedule === 'function';\n}\n//# sourceMappingURL=isScheduler.js.map","export var subscribeToArray = function (array) { return function (subscriber) {\n for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) {\n subscriber.next(array[i]);\n }\n if (!subscriber.closed) {\n subscriber.complete();\n }\n}; };\n//# sourceMappingURL=subscribeToArray.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToArray } from '../util/subscribeToArray';\nexport function fromArray(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToArray(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var i = 0;\n sub.add(scheduler.schedule(function () {\n if (i === input.length) {\n subscriber.complete();\n return;\n }\n subscriber.next(input[i++]);\n if (!subscriber.closed) {\n sub.add(this.schedule());\n }\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromArray.js.map","import { Observable } from '../Observable';\nexport function scalar(value) {\n var result = new Observable(function (subscriber) {\n subscriber.next(value);\n subscriber.complete();\n });\n result._isScalar = true;\n result.value = value;\n return result;\n}\n//# sourceMappingURL=scalar.js.map","import { isScheduler } from '../util/isScheduler';\nimport { fromArray } from './fromArray';\nimport { empty } from './empty';\nimport { scalar } from './scalar';\nexport function of() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var scheduler = args[args.length - 1];\n if (isScheduler(scheduler)) {\n args.pop();\n }\n else {\n scheduler = undefined;\n }\n switch (args.length) {\n case 0:\n return empty(scheduler);\n case 1:\n return scheduler ? fromArray(args, scheduler) : scalar(args[0]);\n default:\n return fromArray(args, scheduler);\n }\n}\n//# sourceMappingURL=of.js.map","import { Observable } from '../Observable';\nexport function throwError(error, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) { return subscriber.error(error); });\n }\n else {\n return new Observable(function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); });\n }\n}\nfunction dispatch(_a) {\n var error = _a.error, subscriber = _a.subscriber;\n subscriber.error(error);\n}\n//# sourceMappingURL=throwError.js.map","import { empty } from './observable/empty';\nimport { of } from './observable/of';\nimport { throwError } from './observable/throwError';\nvar Notification = (function () {\n function Notification(kind, value, error) {\n this.kind = kind;\n this.value = value;\n this.error = error;\n this.hasValue = kind === 'N';\n }\n Notification.prototype.observe = function (observer) {\n switch (this.kind) {\n case 'N':\n return observer.next && observer.next(this.value);\n case 'E':\n return observer.error && observer.error(this.error);\n case 'C':\n return observer.complete && observer.complete();\n }\n };\n Notification.prototype.do = function (next, error, complete) {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return next && next(this.value);\n case 'E':\n return error && error(this.error);\n case 'C':\n return complete && complete();\n }\n };\n Notification.prototype.accept = function (nextOrObserver, error, complete) {\n if (nextOrObserver && typeof nextOrObserver.next === 'function') {\n return this.observe(nextOrObserver);\n }\n else {\n return this.do(nextOrObserver, error, complete);\n }\n };\n Notification.prototype.toObservable = function () {\n var kind = this.kind;\n switch (kind) {\n case 'N':\n return of(this.value);\n case 'E':\n return throwError(this.error);\n case 'C':\n return empty();\n }\n throw new Error('unexpected notification kind value');\n };\n Notification.createNext = function (value) {\n if (typeof value !== 'undefined') {\n return new Notification('N', value);\n }\n return Notification.undefinedValueNotification;\n };\n Notification.createError = function (err) {\n return new Notification('E', undefined, err);\n };\n Notification.createComplete = function () {\n return Notification.completeNotification;\n };\n Notification.completeNotification = new Notification('C');\n Notification.undefinedValueNotification = new Notification('N', undefined);\n return Notification;\n}());\nexport { Notification };\n//# sourceMappingURL=Notification.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function observeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function observeOnOperatorFunction(source) {\n return source.lift(new ObserveOnOperator(scheduler, delay));\n };\n}\nvar ObserveOnOperator = (function () {\n function ObserveOnOperator(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n this.scheduler = scheduler;\n this.delay = delay;\n }\n ObserveOnOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay));\n };\n return ObserveOnOperator;\n}());\nexport { ObserveOnOperator };\nvar ObserveOnSubscriber = (function (_super) {\n tslib_1.__extends(ObserveOnSubscriber, _super);\n function ObserveOnSubscriber(destination, scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n var _this = _super.call(this, destination) || this;\n _this.scheduler = scheduler;\n _this.delay = delay;\n return _this;\n }\n ObserveOnSubscriber.dispatch = function (arg) {\n var notification = arg.notification, destination = arg.destination;\n notification.observe(destination);\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype.scheduleMessage = function (notification) {\n var destination = this.destination;\n destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination)));\n };\n ObserveOnSubscriber.prototype._next = function (value) {\n this.scheduleMessage(Notification.createNext(value));\n };\n ObserveOnSubscriber.prototype._error = function (err) {\n this.scheduleMessage(Notification.createError(err));\n this.unsubscribe();\n };\n ObserveOnSubscriber.prototype._complete = function () {\n this.scheduleMessage(Notification.createComplete());\n this.unsubscribe();\n };\n return ObserveOnSubscriber;\n}(Subscriber));\nexport { ObserveOnSubscriber };\nvar ObserveOnMessage = (function () {\n function ObserveOnMessage(notification, destination) {\n this.notification = notification;\n this.destination = destination;\n }\n return ObserveOnMessage;\n}());\nexport { ObserveOnMessage };\n//# sourceMappingURL=observeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { queue } from './scheduler/queue';\nimport { Subscription } from './Subscription';\nimport { ObserveOnSubscriber } from './operators/observeOn';\nimport { ObjectUnsubscribedError } from './util/ObjectUnsubscribedError';\nimport { SubjectSubscription } from './SubjectSubscription';\nvar ReplaySubject = (function (_super) {\n tslib_1.__extends(ReplaySubject, _super);\n function ReplaySubject(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this) || this;\n _this.scheduler = scheduler;\n _this._events = [];\n _this._infiniteTimeWindow = false;\n _this._bufferSize = bufferSize < 1 ? 1 : bufferSize;\n _this._windowTime = windowTime < 1 ? 1 : windowTime;\n if (windowTime === Number.POSITIVE_INFINITY) {\n _this._infiniteTimeWindow = true;\n _this.next = _this.nextInfiniteTimeWindow;\n }\n else {\n _this.next = _this.nextTimeWindow;\n }\n return _this;\n }\n ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) {\n var _events = this._events;\n _events.push(value);\n if (_events.length > this._bufferSize) {\n _events.shift();\n }\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype.nextTimeWindow = function (value) {\n this._events.push(new ReplayEvent(this._getNow(), value));\n this._trimBufferThenGetEvents();\n _super.prototype.next.call(this, value);\n };\n ReplaySubject.prototype._subscribe = function (subscriber) {\n var _infiniteTimeWindow = this._infiniteTimeWindow;\n var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents();\n var scheduler = this.scheduler;\n var len = _events.length;\n var subscription;\n if (this.closed) {\n throw new ObjectUnsubscribedError();\n }\n else if (this.isStopped || this.hasError) {\n subscription = Subscription.EMPTY;\n }\n else {\n this.observers.push(subscriber);\n subscription = new SubjectSubscription(this, subscriber);\n }\n if (scheduler) {\n subscriber.add(subscriber = new ObserveOnSubscriber(subscriber, scheduler));\n }\n if (_infiniteTimeWindow) {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i]);\n }\n }\n else {\n for (var i = 0; i < len && !subscriber.closed; i++) {\n subscriber.next(_events[i].value);\n }\n }\n if (this.hasError) {\n subscriber.error(this.thrownError);\n }\n else if (this.isStopped) {\n subscriber.complete();\n }\n return subscription;\n };\n ReplaySubject.prototype._getNow = function () {\n return (this.scheduler || queue).now();\n };\n ReplaySubject.prototype._trimBufferThenGetEvents = function () {\n var now = this._getNow();\n var _bufferSize = this._bufferSize;\n var _windowTime = this._windowTime;\n var _events = this._events;\n var eventsCount = _events.length;\n var spliceCount = 0;\n while (spliceCount < eventsCount) {\n if ((now - _events[spliceCount].time) < _windowTime) {\n break;\n }\n spliceCount++;\n }\n if (eventsCount > _bufferSize) {\n spliceCount = Math.max(spliceCount, eventsCount - _bufferSize);\n }\n if (spliceCount > 0) {\n _events.splice(0, spliceCount);\n }\n return _events;\n };\n return ReplaySubject;\n}(Subject));\nexport { ReplaySubject };\nvar ReplayEvent = (function () {\n function ReplayEvent(time, value) {\n this.time = time;\n this.value = value;\n }\n return ReplayEvent;\n}());\n//# sourceMappingURL=ReplaySubject.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from './Subject';\nimport { Subscription } from './Subscription';\nvar AsyncSubject = (function (_super) {\n tslib_1.__extends(AsyncSubject, _super);\n function AsyncSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.value = null;\n _this.hasNext = false;\n _this.hasCompleted = false;\n return _this;\n }\n AsyncSubject.prototype._subscribe = function (subscriber) {\n if (this.hasError) {\n subscriber.error(this.thrownError);\n return Subscription.EMPTY;\n }\n else if (this.hasCompleted && this.hasNext) {\n subscriber.next(this.value);\n subscriber.complete();\n return Subscription.EMPTY;\n }\n return _super.prototype._subscribe.call(this, subscriber);\n };\n AsyncSubject.prototype.next = function (value) {\n if (!this.hasCompleted) {\n this.value = value;\n this.hasNext = true;\n }\n };\n AsyncSubject.prototype.error = function (error) {\n if (!this.hasCompleted) {\n _super.prototype.error.call(this, error);\n }\n };\n AsyncSubject.prototype.complete = function () {\n this.hasCompleted = true;\n if (this.hasNext) {\n _super.prototype.next.call(this, this.value);\n }\n _super.prototype.complete.call(this);\n };\n return AsyncSubject;\n}(Subject));\nexport { AsyncSubject };\n//# sourceMappingURL=AsyncSubject.js.map","var nextHandle = 1;\nvar tasksByHandle = {};\nfunction runIfPresent(handle) {\n var cb = tasksByHandle[handle];\n if (cb) {\n cb();\n }\n}\nexport var Immediate = {\n setImmediate: function (cb) {\n var handle = nextHandle++;\n tasksByHandle[handle] = cb;\n Promise.resolve().then(function () { return runIfPresent(handle); });\n return handle;\n },\n clearImmediate: function (handle) {\n delete tasksByHandle[handle];\n },\n};\n//# sourceMappingURL=Immediate.js.map","import * as tslib_1 from \"tslib\";\nimport { Immediate } from '../util/Immediate';\nimport { AsyncAction } from './AsyncAction';\nvar AsapAction = (function (_super) {\n tslib_1.__extends(AsapAction, _super);\n function AsapAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = Immediate.setImmediate(scheduler.flush.bind(scheduler, null)));\n };\n AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n Immediate.clearImmediate(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AsapAction;\n}(AsyncAction));\nexport { AsapAction };\n//# sourceMappingURL=AsapAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AsapScheduler = (function (_super) {\n tslib_1.__extends(AsapScheduler, _super);\n function AsapScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AsapScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AsapScheduler;\n}(AsyncScheduler));\nexport { AsapScheduler };\n//# sourceMappingURL=AsapScheduler.js.map","import { AsapAction } from './AsapAction';\nimport { AsapScheduler } from './AsapScheduler';\nexport var asap = new AsapScheduler(AsapAction);\n//# sourceMappingURL=asap.js.map","import { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nexport var async = new AsyncScheduler(AsyncAction);\n//# sourceMappingURL=async.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nvar AnimationFrameAction = (function (_super) {\n tslib_1.__extends(AnimationFrameAction, _super);\n function AnimationFrameAction(scheduler, work) {\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n return _this;\n }\n AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if (delay !== null && delay > 0) {\n return _super.prototype.requestAsyncId.call(this, scheduler, id, delay);\n }\n scheduler.actions.push(this);\n return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); }));\n };\n AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) {\n return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay);\n }\n if (scheduler.actions.length === 0) {\n cancelAnimationFrame(id);\n scheduler.scheduled = undefined;\n }\n return undefined;\n };\n return AnimationFrameAction;\n}(AsyncAction));\nexport { AnimationFrameAction };\n//# sourceMappingURL=AnimationFrameAction.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncScheduler } from './AsyncScheduler';\nvar AnimationFrameScheduler = (function (_super) {\n tslib_1.__extends(AnimationFrameScheduler, _super);\n function AnimationFrameScheduler() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AnimationFrameScheduler.prototype.flush = function (action) {\n this.active = true;\n this.scheduled = undefined;\n var actions = this.actions;\n var error;\n var index = -1;\n var count = actions.length;\n action = action || actions.shift();\n do {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n } while (++index < count && (action = actions.shift()));\n this.active = false;\n if (error) {\n while (++index < count && (action = actions.shift())) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n return AnimationFrameScheduler;\n}(AsyncScheduler));\nexport { AnimationFrameScheduler };\n//# sourceMappingURL=AnimationFrameScheduler.js.map","import { AnimationFrameAction } from './AnimationFrameAction';\nimport { AnimationFrameScheduler } from './AnimationFrameScheduler';\nexport var animationFrame = new AnimationFrameScheduler(AnimationFrameAction);\n//# sourceMappingURL=animationFrame.js.map","import * as tslib_1 from \"tslib\";\nimport { AsyncAction } from './AsyncAction';\nimport { AsyncScheduler } from './AsyncScheduler';\nvar VirtualTimeScheduler = (function (_super) {\n tslib_1.__extends(VirtualTimeScheduler, _super);\n function VirtualTimeScheduler(SchedulerAction, maxFrames) {\n if (SchedulerAction === void 0) { SchedulerAction = VirtualAction; }\n if (maxFrames === void 0) { maxFrames = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this;\n _this.maxFrames = maxFrames;\n _this.frame = 0;\n _this.index = -1;\n return _this;\n }\n VirtualTimeScheduler.prototype.flush = function () {\n var _a = this, actions = _a.actions, maxFrames = _a.maxFrames;\n var error, action;\n while ((action = actions.shift()) && (this.frame = action.delay) <= maxFrames) {\n if (error = action.execute(action.state, action.delay)) {\n break;\n }\n }\n if (error) {\n while (action = actions.shift()) {\n action.unsubscribe();\n }\n throw error;\n }\n };\n VirtualTimeScheduler.frameTimeFactor = 10;\n return VirtualTimeScheduler;\n}(AsyncScheduler));\nexport { VirtualTimeScheduler };\nvar VirtualAction = (function (_super) {\n tslib_1.__extends(VirtualAction, _super);\n function VirtualAction(scheduler, work, index) {\n if (index === void 0) { index = scheduler.index += 1; }\n var _this = _super.call(this, scheduler, work) || this;\n _this.scheduler = scheduler;\n _this.work = work;\n _this.index = index;\n _this.active = true;\n _this.index = scheduler.index = index;\n return _this;\n }\n VirtualAction.prototype.schedule = function (state, delay) {\n if (delay === void 0) { delay = 0; }\n if (!this.id) {\n return _super.prototype.schedule.call(this, state, delay);\n }\n this.active = false;\n var action = new VirtualAction(this.scheduler, this.work);\n this.add(action);\n return action.schedule(state, delay);\n };\n VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n this.delay = scheduler.frame + delay;\n var actions = scheduler.actions;\n actions.push(this);\n actions.sort(VirtualAction.sortActions);\n return true;\n };\n VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) {\n if (delay === void 0) { delay = 0; }\n return undefined;\n };\n VirtualAction.prototype._execute = function (state, delay) {\n if (this.active === true) {\n return _super.prototype._execute.call(this, state, delay);\n }\n };\n VirtualAction.sortActions = function (a, b) {\n if (a.delay === b.delay) {\n if (a.index === b.index) {\n return 0;\n }\n else if (a.index > b.index) {\n return 1;\n }\n else {\n return -1;\n }\n }\n else if (a.delay > b.delay) {\n return 1;\n }\n else {\n return -1;\n }\n };\n return VirtualAction;\n}(AsyncAction));\nexport { VirtualAction };\n//# sourceMappingURL=VirtualTimeScheduler.js.map","export function identity(x) {\n return x;\n}\n//# sourceMappingURL=identity.js.map","import { Observable } from '../Observable';\nexport function isObservable(obj) {\n return !!obj && (obj instanceof Observable || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function'));\n}\n//# sourceMappingURL=isObservable.js.map","function ArgumentOutOfRangeErrorImpl() {\n Error.call(this);\n this.message = 'argument out of range';\n this.name = 'ArgumentOutOfRangeError';\n return this;\n}\nArgumentOutOfRangeErrorImpl.prototype = Object.create(Error.prototype);\nexport var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl;\n//# sourceMappingURL=ArgumentOutOfRangeError.js.map","function EmptyErrorImpl() {\n Error.call(this);\n this.message = 'no elements in sequence';\n this.name = 'EmptyError';\n return this;\n}\nEmptyErrorImpl.prototype = Object.create(Error.prototype);\nexport var EmptyError = EmptyErrorImpl;\n//# sourceMappingURL=EmptyError.js.map","function TimeoutErrorImpl() {\n Error.call(this);\n this.message = 'Timeout has occurred';\n this.name = 'TimeoutError';\n return this;\n}\nTimeoutErrorImpl.prototype = Object.create(Error.prototype);\nexport var TimeoutError = TimeoutErrorImpl;\n//# sourceMappingURL=TimeoutError.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function map(project, thisArg) {\n return function mapOperation(source) {\n if (typeof project !== 'function') {\n throw new TypeError('argument is not a function. Are you looking for `mapTo()`?');\n }\n return source.lift(new MapOperator(project, thisArg));\n };\n}\nvar MapOperator = (function () {\n function MapOperator(project, thisArg) {\n this.project = project;\n this.thisArg = thisArg;\n }\n MapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapSubscriber(subscriber, this.project, this.thisArg));\n };\n return MapOperator;\n}());\nexport { MapOperator };\nvar MapSubscriber = (function (_super) {\n tslib_1.__extends(MapSubscriber, _super);\n function MapSubscriber(destination, project, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.count = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n MapSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.project.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return MapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=map.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isArray } from '../util/isArray';\nimport { isScheduler } from '../util/isScheduler';\nexport function bindCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var subject;\n var params = {\n context: context,\n subject: subject,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n };\n return new Observable(function (subscriber) {\n if (!scheduler) {\n if (!subject) {\n subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n var state = {\n args: args, subscriber: subscriber, params: params,\n };\n return scheduler.schedule(dispatch, 0, state);\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var self = this;\n var args = state.args, subscriber = state.subscriber, params = state.params;\n var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n subject.error(err);\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(state) {\n var value = state.value, subject = state.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(state) {\n var err = state.err, subject = state.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindCallback.js.map","import { Observable } from '../Observable';\nimport { AsyncSubject } from '../AsyncSubject';\nimport { map } from '../operators/map';\nimport { canReportError } from '../util/canReportError';\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nexport function bindNodeCallback(callbackFunc, resultSelector, scheduler) {\n if (resultSelector) {\n if (isScheduler(resultSelector)) {\n scheduler = resultSelector;\n }\n else {\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n };\n }\n }\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var params = {\n subject: undefined,\n args: args,\n callbackFunc: callbackFunc,\n scheduler: scheduler,\n context: this,\n };\n return new Observable(function (subscriber) {\n var context = params.context;\n var subject = params.subject;\n if (!scheduler) {\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n subject.error(err);\n return;\n }\n subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs);\n subject.complete();\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n if (canReportError(subject)) {\n subject.error(err);\n }\n else {\n console.warn(err);\n }\n }\n }\n return subject.subscribe(subscriber);\n }\n else {\n return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context });\n }\n });\n };\n}\nfunction dispatch(state) {\n var _this = this;\n var params = state.params, subscriber = state.subscriber, context = state.context;\n var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler;\n var subject = params.subject;\n if (!subject) {\n subject = params.subject = new AsyncSubject();\n var handler = function () {\n var innerArgs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n innerArgs[_i] = arguments[_i];\n }\n var err = innerArgs.shift();\n if (err) {\n _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n else {\n var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs;\n _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject }));\n }\n };\n try {\n callbackFunc.apply(context, args.concat([handler]));\n }\n catch (err) {\n this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject }));\n }\n }\n this.add(subject.subscribe(subscriber));\n}\nfunction dispatchNext(arg) {\n var value = arg.value, subject = arg.subject;\n subject.next(value);\n subject.complete();\n}\nfunction dispatchError(arg) {\n var err = arg.err, subject = arg.subject;\n subject.error(err);\n}\n//# sourceMappingURL=bindNodeCallback.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar OuterSubscriber = (function (_super) {\n tslib_1.__extends(OuterSubscriber, _super);\n function OuterSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n OuterSubscriber.prototype.notifyError = function (error, innerSub) {\n this.destination.error(error);\n };\n OuterSubscriber.prototype.notifyComplete = function (innerSub) {\n this.destination.complete();\n };\n return OuterSubscriber;\n}(Subscriber));\nexport { OuterSubscriber };\n//# sourceMappingURL=OuterSubscriber.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from './Subscriber';\nvar InnerSubscriber = (function (_super) {\n tslib_1.__extends(InnerSubscriber, _super);\n function InnerSubscriber(parent, outerValue, outerIndex) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.outerValue = outerValue;\n _this.outerIndex = outerIndex;\n _this.index = 0;\n return _this;\n }\n InnerSubscriber.prototype._next = function (value) {\n this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this);\n };\n InnerSubscriber.prototype._error = function (error) {\n this.parent.notifyError(error, this);\n this.unsubscribe();\n };\n InnerSubscriber.prototype._complete = function () {\n this.parent.notifyComplete(this);\n this.unsubscribe();\n };\n return InnerSubscriber;\n}(Subscriber));\nexport { InnerSubscriber };\n//# sourceMappingURL=InnerSubscriber.js.map","import { hostReportError } from './hostReportError';\nexport var subscribeToPromise = function (promise) { return function (subscriber) {\n promise.then(function (value) {\n if (!subscriber.closed) {\n subscriber.next(value);\n subscriber.complete();\n }\n }, function (err) { return subscriber.error(err); })\n .then(null, hostReportError);\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToPromise.js.map","export function getSymbolIterator() {\n if (typeof Symbol !== 'function' || !Symbol.iterator) {\n return '@@iterator';\n }\n return Symbol.iterator;\n}\nexport var iterator = getSymbolIterator();\nexport var $$iterator = iterator;\n//# sourceMappingURL=iterator.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport var subscribeToIterable = function (iterable) { return function (subscriber) {\n var iterator = iterable[Symbol_iterator]();\n do {\n var item = iterator.next();\n if (item.done) {\n subscriber.complete();\n break;\n }\n subscriber.next(item.value);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n if (typeof iterator.return === 'function') {\n subscriber.add(function () {\n if (iterator.return) {\n iterator.return();\n }\n });\n }\n return subscriber;\n}; };\n//# sourceMappingURL=subscribeToIterable.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeToObservable = function (obj) { return function (subscriber) {\n var obs = obj[Symbol_observable]();\n if (typeof obs.subscribe !== 'function') {\n throw new TypeError('Provided object does not correctly implement Symbol.observable');\n }\n else {\n return obs.subscribe(subscriber);\n }\n}; };\n//# sourceMappingURL=subscribeToObservable.js.map","export var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; });\n//# sourceMappingURL=isArrayLike.js.map","export function isPromise(value) {\n return value && typeof value.subscribe !== 'function' && typeof value.then === 'function';\n}\n//# sourceMappingURL=isPromise.js.map","import { Observable } from '../Observable';\nimport { subscribeToArray } from './subscribeToArray';\nimport { subscribeToPromise } from './subscribeToPromise';\nimport { subscribeToIterable } from './subscribeToIterable';\nimport { subscribeToObservable } from './subscribeToObservable';\nimport { isArrayLike } from './isArrayLike';\nimport { isPromise } from './isPromise';\nimport { isObject } from './isObject';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { observable as Symbol_observable } from '../symbol/observable';\nexport var subscribeTo = function (result) {\n if (result instanceof Observable) {\n return function (subscriber) {\n if (result._isScalar) {\n subscriber.next(result.value);\n subscriber.complete();\n return undefined;\n }\n else {\n return result.subscribe(subscriber);\n }\n };\n }\n else if (result && typeof result[Symbol_observable] === 'function') {\n return subscribeToObservable(result);\n }\n else if (isArrayLike(result)) {\n return subscribeToArray(result);\n }\n else if (isPromise(result)) {\n return subscribeToPromise(result);\n }\n else if (result && typeof result[Symbol_iterator] === 'function') {\n return subscribeToIterable(result);\n }\n else {\n var value = isObject(result) ? 'an invalid object' : \"'\" + result + \"'\";\n var msg = \"You provided \" + value + \" where a stream was expected.\"\n + ' You can provide an Observable, Promise, Array, or Iterable.';\n throw new TypeError(msg);\n }\n};\n//# sourceMappingURL=subscribeTo.js.map","import { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeTo } from './subscribeTo';\nexport function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) {\n if (destination === void 0) { destination = new InnerSubscriber(outerSubscriber, outerValue, outerIndex); }\n if (destination.closed) {\n return;\n }\n return subscribeTo(result)(destination);\n}\n//# sourceMappingURL=subscribeToResult.js.map","import * as tslib_1 from \"tslib\";\nimport { isScheduler } from '../util/isScheduler';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { fromArray } from './fromArray';\nvar NONE = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = null;\n var scheduler = null;\n if (isScheduler(observables[observables.length - 1])) {\n scheduler = observables.pop();\n }\n if (typeof observables[observables.length - 1] === 'function') {\n resultSelector = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return fromArray(observables, scheduler).lift(new CombineLatestOperator(resultSelector));\n}\nvar CombineLatestOperator = (function () {\n function CombineLatestOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n CombineLatestOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector));\n };\n return CombineLatestOperator;\n}());\nexport { CombineLatestOperator };\nvar CombineLatestSubscriber = (function (_super) {\n tslib_1.__extends(CombineLatestSubscriber, _super);\n function CombineLatestSubscriber(destination, resultSelector) {\n var _this = _super.call(this, destination) || this;\n _this.resultSelector = resultSelector;\n _this.active = 0;\n _this.values = [];\n _this.observables = [];\n return _this;\n }\n CombineLatestSubscriber.prototype._next = function (observable) {\n this.values.push(NONE);\n this.observables.push(observable);\n };\n CombineLatestSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n this.active = len;\n this.toRespond = len;\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n this.add(subscribeToResult(this, observable, observable, i));\n }\n }\n };\n CombineLatestSubscriber.prototype.notifyComplete = function (unused) {\n if ((this.active -= 1) === 0) {\n this.destination.complete();\n }\n };\n CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var values = this.values;\n var oldVal = values[outerIndex];\n var toRespond = !this.toRespond\n ? 0\n : oldVal === NONE ? --this.toRespond : this.toRespond;\n values[outerIndex] = innerValue;\n if (toRespond === 0) {\n if (this.resultSelector) {\n this._tryResultSelector(values);\n }\n else {\n this.destination.next(values.slice());\n }\n }\n };\n CombineLatestSubscriber.prototype._tryResultSelector = function (values) {\n var result;\n try {\n result = this.resultSelector.apply(this, values);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return CombineLatestSubscriber;\n}(OuterSubscriber));\nexport { CombineLatestSubscriber };\n//# sourceMappingURL=combineLatest.js.map","import { observable as Symbol_observable } from '../symbol/observable';\nexport function isInteropObservable(input) {\n return input && typeof input[Symbol_observable] === 'function';\n}\n//# sourceMappingURL=isInteropObservable.js.map","import { iterator as Symbol_iterator } from '../symbol/iterator';\nexport function isIterable(input) {\n return input && typeof input[Symbol_iterator] === 'function';\n}\n//# sourceMappingURL=isIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { subscribeToPromise } from '../util/subscribeToPromise';\nexport function fromPromise(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToPromise(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () { return input.then(function (value) {\n sub.add(scheduler.schedule(function () {\n subscriber.next(value);\n sub.add(scheduler.schedule(function () { return subscriber.complete(); }));\n }));\n }, function (err) {\n sub.add(scheduler.schedule(function () { return subscriber.error(err); }));\n }); }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromPromise.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { iterator as Symbol_iterator } from '../symbol/iterator';\nimport { subscribeToIterable } from '../util/subscribeToIterable';\nexport function fromIterable(input, scheduler) {\n if (!input) {\n throw new Error('Iterable cannot be null');\n }\n if (!scheduler) {\n return new Observable(subscribeToIterable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n var iterator;\n sub.add(function () {\n if (iterator && typeof iterator.return === 'function') {\n iterator.return();\n }\n });\n sub.add(scheduler.schedule(function () {\n iterator = input[Symbol_iterator]();\n sub.add(scheduler.schedule(function () {\n if (subscriber.closed) {\n return;\n }\n var value;\n var done;\n try {\n var result = iterator.next();\n value = result.value;\n done = result.done;\n }\n catch (err) {\n subscriber.error(err);\n return;\n }\n if (done) {\n subscriber.complete();\n }\n else {\n subscriber.next(value);\n this.schedule();\n }\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromIterable.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { observable as Symbol_observable } from '../symbol/observable';\nimport { subscribeToObservable } from '../util/subscribeToObservable';\nexport function fromObservable(input, scheduler) {\n if (!scheduler) {\n return new Observable(subscribeToObservable(input));\n }\n else {\n return new Observable(function (subscriber) {\n var sub = new Subscription();\n sub.add(scheduler.schedule(function () {\n var observable = input[Symbol_observable]();\n sub.add(observable.subscribe({\n next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); },\n error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); },\n complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); },\n }));\n }));\n return sub;\n });\n }\n}\n//# sourceMappingURL=fromObservable.js.map","import { Observable } from '../Observable';\nimport { isPromise } from '../util/isPromise';\nimport { isArrayLike } from '../util/isArrayLike';\nimport { isInteropObservable } from '../util/isInteropObservable';\nimport { isIterable } from '../util/isIterable';\nimport { fromArray } from './fromArray';\nimport { fromPromise } from './fromPromise';\nimport { fromIterable } from './fromIterable';\nimport { fromObservable } from './fromObservable';\nimport { subscribeTo } from '../util/subscribeTo';\nexport function from(input, scheduler) {\n if (!scheduler) {\n if (input instanceof Observable) {\n return input;\n }\n return new Observable(subscribeTo(input));\n }\n if (input != null) {\n if (isInteropObservable(input)) {\n return fromObservable(input, scheduler);\n }\n else if (isPromise(input)) {\n return fromPromise(input, scheduler);\n }\n else if (isArrayLike(input)) {\n return fromArray(input, scheduler);\n }\n else if (isIterable(input) || typeof input === 'string') {\n return fromIterable(input, scheduler);\n }\n }\n throw new TypeError((input !== null && typeof input || input) + ' is not observable');\n}\n//# sourceMappingURL=from.js.map","import * as tslib_1 from \"tslib\";\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function mergeMap(project, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(mergeMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); };\n }\n else if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); };\n}\nvar MergeMapOperator = (function () {\n function MergeMapOperator(project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n this.project = project;\n this.concurrent = concurrent;\n }\n MergeMapOperator.prototype.call = function (observer, source) {\n return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent));\n };\n return MergeMapOperator;\n}());\nexport { MergeMapOperator };\nvar MergeMapSubscriber = (function (_super) {\n tslib_1.__extends(MergeMapSubscriber, _super);\n function MergeMapSubscriber(destination, project, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeMapSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n this._tryNext(value);\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeMapSubscriber.prototype._tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.active++;\n this._innerSub(result, value, index);\n };\n MergeMapSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n MergeMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n this.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n this.destination.complete();\n }\n };\n return MergeMapSubscriber;\n}(OuterSubscriber));\nexport { MergeMapSubscriber };\n//# sourceMappingURL=mergeMap.js.map","import { mergeMap } from './mergeMap';\nimport { identity } from '../util/identity';\nexport function mergeAll(concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return mergeMap(identity, concurrent);\n}\n//# sourceMappingURL=mergeAll.js.map","import { mergeAll } from './mergeAll';\nexport function concatAll() {\n return mergeAll(1);\n}\n//# sourceMappingURL=concatAll.js.map","import { isScheduler } from '../util/isScheduler';\nimport { of } from './of';\nimport { from } from './from';\nimport { concatAll } from '../operators/concatAll';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1 || (observables.length === 2 && isScheduler(observables[1]))) {\n return from(observables[0]);\n }\n return concatAll()(of.apply(void 0, observables));\n}\n//# sourceMappingURL=concat.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { empty } from './empty';\nexport function defer(observableFactory) {\n return new Observable(function (subscriber) {\n var input;\n try {\n input = observableFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = input ? from(input) : empty();\n return source.subscribe(subscriber);\n });\n}\n//# sourceMappingURL=defer.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { map } from '../operators/map';\nexport function forkJoin() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n var resultSelector;\n if (typeof sources[sources.length - 1] === 'function') {\n resultSelector = sources.pop();\n }\n if (sources.length === 1 && isArray(sources[0])) {\n sources = sources[0];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n if (resultSelector) {\n return forkJoin(sources).pipe(map(function (args) { return resultSelector.apply(void 0, args); }));\n }\n return new Observable(function (subscriber) {\n return new ForkJoinSubscriber(subscriber, sources);\n });\n}\nvar ForkJoinSubscriber = (function (_super) {\n tslib_1.__extends(ForkJoinSubscriber, _super);\n function ForkJoinSubscriber(destination, sources) {\n var _this = _super.call(this, destination) || this;\n _this.sources = sources;\n _this.completed = 0;\n _this.haveValues = 0;\n var len = sources.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n var source = sources[i];\n var innerSubscription = subscribeToResult(_this, source, null, i);\n if (innerSubscription) {\n _this.add(innerSubscription);\n }\n }\n return _this;\n }\n ForkJoinSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n if (!innerSub._hasValue) {\n innerSub._hasValue = true;\n this.haveValues++;\n }\n };\n ForkJoinSubscriber.prototype.notifyComplete = function (innerSub) {\n var _a = this, destination = _a.destination, haveValues = _a.haveValues, values = _a.values;\n var len = values.length;\n if (!innerSub._hasValue) {\n destination.complete();\n return;\n }\n this.completed++;\n if (this.completed !== len) {\n return;\n }\n if (haveValues === len) {\n destination.next(values);\n }\n destination.complete();\n };\n return ForkJoinSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=forkJoin.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nvar toString = Object.prototype.toString;\nexport function fromEvent(target, eventName, options, resultSelector) {\n if (isFunction(options)) {\n resultSelector = options;\n options = undefined;\n }\n if (resultSelector) {\n return fromEvent(target, eventName, options).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n function handler(e) {\n if (arguments.length > 1) {\n subscriber.next(Array.prototype.slice.call(arguments));\n }\n else {\n subscriber.next(e);\n }\n }\n setupSubscription(target, eventName, handler, subscriber, options);\n });\n}\nfunction setupSubscription(sourceObj, eventName, handler, subscriber, options) {\n var unsubscribe;\n if (isEventTarget(sourceObj)) {\n var source_1 = sourceObj;\n sourceObj.addEventListener(eventName, handler, options);\n unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); };\n }\n else if (isJQueryStyleEventEmitter(sourceObj)) {\n var source_2 = sourceObj;\n sourceObj.on(eventName, handler);\n unsubscribe = function () { return source_2.off(eventName, handler); };\n }\n else if (isNodeStyleEventEmitter(sourceObj)) {\n var source_3 = sourceObj;\n sourceObj.addListener(eventName, handler);\n unsubscribe = function () { return source_3.removeListener(eventName, handler); };\n }\n else if (sourceObj && sourceObj.length) {\n for (var i = 0, len = sourceObj.length; i < len; i++) {\n setupSubscription(sourceObj[i], eventName, handler, subscriber, options);\n }\n }\n else {\n throw new TypeError('Invalid event target');\n }\n subscriber.add(unsubscribe);\n}\nfunction isNodeStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function';\n}\nfunction isJQueryStyleEventEmitter(sourceObj) {\n return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function';\n}\nfunction isEventTarget(sourceObj) {\n return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function';\n}\n//# sourceMappingURL=fromEvent.js.map","import { Observable } from '../Observable';\nimport { isArray } from '../util/isArray';\nimport { isFunction } from '../util/isFunction';\nimport { map } from '../operators/map';\nexport function fromEventPattern(addHandler, removeHandler, resultSelector) {\n if (resultSelector) {\n return fromEventPattern(addHandler, removeHandler).pipe(map(function (args) { return isArray(args) ? resultSelector.apply(void 0, args) : resultSelector(args); }));\n }\n return new Observable(function (subscriber) {\n var handler = function () {\n var e = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n e[_i] = arguments[_i];\n }\n return subscriber.next(e.length === 1 ? e[0] : e);\n };\n var retValue;\n try {\n retValue = addHandler(handler);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!isFunction(removeHandler)) {\n return undefined;\n }\n return function () { return removeHandler(handler, retValue); };\n });\n}\n//# sourceMappingURL=fromEventPattern.js.map","import { Observable } from '../Observable';\nimport { identity } from '../util/identity';\nimport { isScheduler } from '../util/isScheduler';\nexport function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) {\n var resultSelector;\n var initialState;\n if (arguments.length == 1) {\n var options = initialStateOrOptions;\n initialState = options.initialState;\n condition = options.condition;\n iterate = options.iterate;\n resultSelector = options.resultSelector || identity;\n scheduler = options.scheduler;\n }\n else if (resultSelectorOrObservable === undefined || isScheduler(resultSelectorOrObservable)) {\n initialState = initialStateOrOptions;\n resultSelector = identity;\n scheduler = resultSelectorOrObservable;\n }\n else {\n initialState = initialStateOrOptions;\n resultSelector = resultSelectorOrObservable;\n }\n return new Observable(function (subscriber) {\n var state = initialState;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n subscriber: subscriber,\n iterate: iterate,\n condition: condition,\n resultSelector: resultSelector,\n state: state\n });\n }\n do {\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n break;\n }\n }\n var value = void 0;\n try {\n value = resultSelector(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n break;\n }\n try {\n state = iterate(state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n } while (true);\n return undefined;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, condition = state.condition;\n if (subscriber.closed) {\n return undefined;\n }\n if (state.needIterate) {\n try {\n state.state = state.iterate(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n }\n else {\n state.needIterate = true;\n }\n if (condition) {\n var conditionResult = void 0;\n try {\n conditionResult = condition(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (!conditionResult) {\n subscriber.complete();\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n }\n var value;\n try {\n value = state.resultSelector(state.state);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n if (subscriber.closed) {\n return undefined;\n }\n subscriber.next(value);\n if (subscriber.closed) {\n return undefined;\n }\n return this.schedule(state);\n}\n//# sourceMappingURL=generate.js.map","import { defer } from './defer';\nimport { EMPTY } from './empty';\nexport function iif(condition, trueResult, falseResult) {\n if (trueResult === void 0) { trueResult = EMPTY; }\n if (falseResult === void 0) { falseResult = EMPTY; }\n return defer(function () { return condition() ? trueResult : falseResult; });\n}\n//# sourceMappingURL=iif.js.map","import { isArray } from './isArray';\nexport function isNumeric(val) {\n return !isArray(val) && (val - parseFloat(val) + 1) >= 0;\n}\n//# sourceMappingURL=isNumeric.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nexport function interval(period, scheduler) {\n if (period === void 0) { period = 0; }\n if (scheduler === void 0) { scheduler = async; }\n if (!isNumeric(period) || period < 0) {\n period = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period }));\n return subscriber;\n });\n}\nfunction dispatch(state) {\n var subscriber = state.subscriber, counter = state.counter, period = state.period;\n subscriber.next(counter);\n this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period);\n}\n//# sourceMappingURL=interval.js.map","import { Observable } from '../Observable';\nimport { isScheduler } from '../util/isScheduler';\nimport { mergeAll } from '../operators/mergeAll';\nimport { fromArray } from './fromArray';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var concurrent = Number.POSITIVE_INFINITY;\n var scheduler = null;\n var last = observables[observables.length - 1];\n if (isScheduler(last)) {\n scheduler = observables.pop();\n if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') {\n concurrent = observables.pop();\n }\n }\n else if (typeof last === 'number') {\n concurrent = observables.pop();\n }\n if (scheduler === null && observables.length === 1 && observables[0] instanceof Observable) {\n return observables[0];\n }\n return mergeAll(concurrent)(fromArray(observables, scheduler));\n}\n//# sourceMappingURL=merge.js.map","import { Observable } from '../Observable';\nimport { noop } from '../util/noop';\nexport var NEVER = new Observable(noop);\nexport function never() {\n return NEVER;\n}\n//# sourceMappingURL=never.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { isArray } from '../util/isArray';\nimport { EMPTY } from './empty';\nexport function onErrorResumeNext() {\n var sources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n sources[_i] = arguments[_i];\n }\n if (sources.length === 0) {\n return EMPTY;\n }\n var first = sources[0], remainder = sources.slice(1);\n if (sources.length === 1 && isArray(first)) {\n return onErrorResumeNext.apply(void 0, first);\n }\n return new Observable(function (subscriber) {\n var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); };\n return from(first).subscribe({\n next: function (value) { subscriber.next(value); },\n error: subNext,\n complete: subNext,\n });\n });\n}\n//# sourceMappingURL=onErrorResumeNext.js.map","import { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nexport function pairs(obj, scheduler) {\n if (!scheduler) {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n for (var i = 0; i < keys.length && !subscriber.closed; i++) {\n var key = keys[i];\n if (obj.hasOwnProperty(key)) {\n subscriber.next([key, obj[key]]);\n }\n }\n subscriber.complete();\n });\n }\n else {\n return new Observable(function (subscriber) {\n var keys = Object.keys(obj);\n var subscription = new Subscription();\n subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj }));\n return subscription;\n });\n }\n}\nexport function dispatch(state) {\n var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj;\n if (!subscriber.closed) {\n if (index < keys.length) {\n var key = keys[index];\n subscriber.next([key, obj[key]]);\n subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj }));\n }\n else {\n subscriber.complete();\n }\n }\n}\n//# sourceMappingURL=pairs.js.map","import * as tslib_1 from \"tslib\";\nimport { isArray } from '../util/isArray';\nimport { fromArray } from './fromArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n if (observables.length === 1) {\n if (isArray(observables[0])) {\n observables = observables[0];\n }\n else {\n return observables[0];\n }\n }\n return fromArray(observables, undefined).lift(new RaceOperator());\n}\nvar RaceOperator = (function () {\n function RaceOperator() {\n }\n RaceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RaceSubscriber(subscriber));\n };\n return RaceOperator;\n}());\nexport { RaceOperator };\nvar RaceSubscriber = (function (_super) {\n tslib_1.__extends(RaceSubscriber, _super);\n function RaceSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasFirst = false;\n _this.observables = [];\n _this.subscriptions = [];\n return _this;\n }\n RaceSubscriber.prototype._next = function (observable) {\n this.observables.push(observable);\n };\n RaceSubscriber.prototype._complete = function () {\n var observables = this.observables;\n var len = observables.length;\n if (len === 0) {\n this.destination.complete();\n }\n else {\n for (var i = 0; i < len && !this.hasFirst; i++) {\n var observable = observables[i];\n var subscription = subscribeToResult(this, observable, observable, i);\n if (this.subscriptions) {\n this.subscriptions.push(subscription);\n }\n this.add(subscription);\n }\n this.observables = null;\n }\n };\n RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (!this.hasFirst) {\n this.hasFirst = true;\n for (var i = 0; i < this.subscriptions.length; i++) {\n if (i !== outerIndex) {\n var subscription = this.subscriptions[i];\n subscription.unsubscribe();\n this.remove(subscription);\n }\n }\n this.subscriptions = null;\n }\n this.destination.next(innerValue);\n };\n return RaceSubscriber;\n}(OuterSubscriber));\nexport { RaceSubscriber };\n//# sourceMappingURL=race.js.map","import { Observable } from '../Observable';\nexport function range(start, count, scheduler) {\n if (start === void 0) { start = 0; }\n if (count === void 0) { count = 0; }\n return new Observable(function (subscriber) {\n var index = 0;\n var current = start;\n if (scheduler) {\n return scheduler.schedule(dispatch, 0, {\n index: index, count: count, start: start, subscriber: subscriber\n });\n }\n else {\n do {\n if (index++ >= count) {\n subscriber.complete();\n break;\n }\n subscriber.next(current++);\n if (subscriber.closed) {\n break;\n }\n } while (true);\n }\n return undefined;\n });\n}\nexport function dispatch(state) {\n var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber;\n if (index >= count) {\n subscriber.complete();\n return;\n }\n subscriber.next(start);\n if (subscriber.closed) {\n return;\n }\n state.index = index + 1;\n state.start = start + 1;\n this.schedule(state);\n}\n//# sourceMappingURL=range.js.map","import { Observable } from '../Observable';\nimport { async } from '../scheduler/async';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function timer(dueTime, periodOrScheduler, scheduler) {\n if (dueTime === void 0) { dueTime = 0; }\n var period = -1;\n if (isNumeric(periodOrScheduler)) {\n period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler);\n }\n else if (isScheduler(periodOrScheduler)) {\n scheduler = periodOrScheduler;\n }\n if (!isScheduler(scheduler)) {\n scheduler = async;\n }\n return new Observable(function (subscriber) {\n var due = isNumeric(dueTime)\n ? dueTime\n : (+dueTime - scheduler.now());\n return scheduler.schedule(dispatch, due, {\n index: 0, period: period, subscriber: subscriber\n });\n });\n}\nfunction dispatch(state) {\n var index = state.index, period = state.period, subscriber = state.subscriber;\n subscriber.next(index);\n if (subscriber.closed) {\n return;\n }\n else if (period === -1) {\n return subscriber.complete();\n }\n state.index = index + 1;\n this.schedule(state, period);\n}\n//# sourceMappingURL=timer.js.map","import { Observable } from '../Observable';\nimport { from } from './from';\nimport { EMPTY } from './empty';\nexport function using(resourceFactory, observableFactory) {\n return new Observable(function (subscriber) {\n var resource;\n try {\n resource = resourceFactory();\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var result;\n try {\n result = observableFactory(resource);\n }\n catch (err) {\n subscriber.error(err);\n return undefined;\n }\n var source = result ? from(result) : EMPTY;\n var subscription = source.subscribe(subscriber);\n return function () {\n subscription.unsubscribe();\n if (resource) {\n resource.unsubscribe();\n }\n };\n });\n}\n//# sourceMappingURL=using.js.map","import * as tslib_1 from \"tslib\";\nimport { fromArray } from './fromArray';\nimport { isArray } from '../util/isArray';\nimport { Subscriber } from '../Subscriber';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { iterator as Symbol_iterator } from '../../internal/symbol/iterator';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var resultSelector = observables[observables.length - 1];\n if (typeof resultSelector === 'function') {\n observables.pop();\n }\n return fromArray(observables, undefined).lift(new ZipOperator(resultSelector));\n}\nvar ZipOperator = (function () {\n function ZipOperator(resultSelector) {\n this.resultSelector = resultSelector;\n }\n ZipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector));\n };\n return ZipOperator;\n}());\nexport { ZipOperator };\nvar ZipSubscriber = (function (_super) {\n tslib_1.__extends(ZipSubscriber, _super);\n function ZipSubscriber(destination, resultSelector, values) {\n if (values === void 0) { values = Object.create(null); }\n var _this = _super.call(this, destination) || this;\n _this.iterators = [];\n _this.active = 0;\n _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null;\n _this.values = values;\n return _this;\n }\n ZipSubscriber.prototype._next = function (value) {\n var iterators = this.iterators;\n if (isArray(value)) {\n iterators.push(new StaticArrayIterator(value));\n }\n else if (typeof value[Symbol_iterator] === 'function') {\n iterators.push(new StaticIterator(value[Symbol_iterator]()));\n }\n else {\n iterators.push(new ZipBufferIterator(this.destination, this, value));\n }\n };\n ZipSubscriber.prototype._complete = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n this.unsubscribe();\n if (len === 0) {\n this.destination.complete();\n return;\n }\n this.active = len;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (iterator.stillUnsubscribed) {\n var destination = this.destination;\n destination.add(iterator.subscribe(iterator, i));\n }\n else {\n this.active--;\n }\n }\n };\n ZipSubscriber.prototype.notifyInactive = function () {\n this.active--;\n if (this.active === 0) {\n this.destination.complete();\n }\n };\n ZipSubscriber.prototype.checkIterators = function () {\n var iterators = this.iterators;\n var len = iterators.length;\n var destination = this.destination;\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) {\n return;\n }\n }\n var shouldComplete = false;\n var args = [];\n for (var i = 0; i < len; i++) {\n var iterator = iterators[i];\n var result = iterator.next();\n if (iterator.hasCompleted()) {\n shouldComplete = true;\n }\n if (result.done) {\n destination.complete();\n return;\n }\n args.push(result.value);\n }\n if (this.resultSelector) {\n this._tryresultSelector(args);\n }\n else {\n destination.next(args);\n }\n if (shouldComplete) {\n destination.complete();\n }\n };\n ZipSubscriber.prototype._tryresultSelector = function (args) {\n var result;\n try {\n result = this.resultSelector.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return ZipSubscriber;\n}(Subscriber));\nexport { ZipSubscriber };\nvar StaticIterator = (function () {\n function StaticIterator(iterator) {\n this.iterator = iterator;\n this.nextResult = iterator.next();\n }\n StaticIterator.prototype.hasValue = function () {\n return true;\n };\n StaticIterator.prototype.next = function () {\n var result = this.nextResult;\n this.nextResult = this.iterator.next();\n return result;\n };\n StaticIterator.prototype.hasCompleted = function () {\n var nextResult = this.nextResult;\n return nextResult && nextResult.done;\n };\n return StaticIterator;\n}());\nvar StaticArrayIterator = (function () {\n function StaticArrayIterator(array) {\n this.array = array;\n this.index = 0;\n this.length = 0;\n this.length = array.length;\n }\n StaticArrayIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n StaticArrayIterator.prototype.next = function (value) {\n var i = this.index++;\n var array = this.array;\n return i < this.length ? { value: array[i], done: false } : { value: null, done: true };\n };\n StaticArrayIterator.prototype.hasValue = function () {\n return this.array.length > this.index;\n };\n StaticArrayIterator.prototype.hasCompleted = function () {\n return this.array.length === this.index;\n };\n return StaticArrayIterator;\n}());\nvar ZipBufferIterator = (function (_super) {\n tslib_1.__extends(ZipBufferIterator, _super);\n function ZipBufferIterator(destination, parent, observable) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n _this.observable = observable;\n _this.stillUnsubscribed = true;\n _this.buffer = [];\n _this.isComplete = false;\n return _this;\n }\n ZipBufferIterator.prototype[Symbol_iterator] = function () {\n return this;\n };\n ZipBufferIterator.prototype.next = function () {\n var buffer = this.buffer;\n if (buffer.length === 0 && this.isComplete) {\n return { value: null, done: true };\n }\n else {\n return { value: buffer.shift(), done: false };\n }\n };\n ZipBufferIterator.prototype.hasValue = function () {\n return this.buffer.length > 0;\n };\n ZipBufferIterator.prototype.hasCompleted = function () {\n return this.buffer.length === 0 && this.isComplete;\n };\n ZipBufferIterator.prototype.notifyComplete = function () {\n if (this.buffer.length > 0) {\n this.isComplete = true;\n this.parent.notifyInactive();\n }\n else {\n this.destination.complete();\n }\n };\n ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.buffer.push(innerValue);\n this.parent.checkIterators();\n };\n ZipBufferIterator.prototype.subscribe = function (value, index) {\n return subscribeToResult(this, this.observable, this, index);\n };\n return ZipBufferIterator;\n}(OuterSubscriber));\n//# sourceMappingURL=zip.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function audit(durationSelector) {\n return function auditOperatorFunction(source) {\n return source.lift(new AuditOperator(durationSelector));\n };\n}\nvar AuditOperator = (function () {\n function AuditOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n AuditOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector));\n };\n return AuditOperator;\n}());\nvar AuditSubscriber = (function (_super) {\n tslib_1.__extends(AuditSubscriber, _super);\n function AuditSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n return _this;\n }\n AuditSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n if (!this.throttled) {\n var duration = tryCatch(this.durationSelector)(value);\n if (duration === errorObject) {\n this.destination.error(errorObject.e);\n }\n else {\n var innerSubscription = subscribeToResult(this, duration);\n if (!innerSubscription || innerSubscription.closed) {\n this.clearThrottle();\n }\n else {\n this.add(this.throttled = innerSubscription);\n }\n }\n }\n };\n AuditSubscriber.prototype.clearThrottle = function () {\n var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled;\n if (throttled) {\n this.remove(throttled);\n this.throttled = null;\n throttled.unsubscribe();\n }\n if (hasValue) {\n this.value = null;\n this.hasValue = false;\n this.destination.next(value);\n }\n };\n AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) {\n this.clearThrottle();\n };\n AuditSubscriber.prototype.notifyComplete = function () {\n this.clearThrottle();\n };\n return AuditSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=audit.js.map","import { async } from '../scheduler/async';\nimport { audit } from './audit';\nimport { timer } from '../observable/timer';\nexport function auditTime(duration, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return audit(function () { return timer(duration, scheduler); });\n}\n//# sourceMappingURL=auditTime.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function buffer(closingNotifier) {\n return function bufferOperatorFunction(source) {\n return source.lift(new BufferOperator(closingNotifier));\n };\n}\nvar BufferOperator = (function () {\n function BufferOperator(closingNotifier) {\n this.closingNotifier = closingNotifier;\n }\n BufferOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier));\n };\n return BufferOperator;\n}());\nvar BufferSubscriber = (function (_super) {\n tslib_1.__extends(BufferSubscriber, _super);\n function BufferSubscriber(destination, closingNotifier) {\n var _this = _super.call(this, destination) || this;\n _this.buffer = [];\n _this.add(subscribeToResult(_this, closingNotifier));\n return _this;\n }\n BufferSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var buffer = this.buffer;\n this.buffer = [];\n this.destination.next(buffer);\n };\n return BufferSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=buffer.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function bufferCount(bufferSize, startBufferEvery) {\n if (startBufferEvery === void 0) { startBufferEvery = null; }\n return function bufferCountOperatorFunction(source) {\n return source.lift(new BufferCountOperator(bufferSize, startBufferEvery));\n };\n}\nvar BufferCountOperator = (function () {\n function BufferCountOperator(bufferSize, startBufferEvery) {\n this.bufferSize = bufferSize;\n this.startBufferEvery = startBufferEvery;\n if (!startBufferEvery || bufferSize === startBufferEvery) {\n this.subscriberClass = BufferCountSubscriber;\n }\n else {\n this.subscriberClass = BufferSkipCountSubscriber;\n }\n }\n BufferCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery));\n };\n return BufferCountOperator;\n}());\nvar BufferCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferCountSubscriber, _super);\n function BufferCountSubscriber(destination, bufferSize) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.buffer = [];\n return _this;\n }\n BufferCountSubscriber.prototype._next = function (value) {\n var buffer = this.buffer;\n buffer.push(value);\n if (buffer.length == this.bufferSize) {\n this.destination.next(buffer);\n this.buffer = [];\n }\n };\n BufferCountSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer.length > 0) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n return BufferCountSubscriber;\n}(Subscriber));\nvar BufferSkipCountSubscriber = (function (_super) {\n tslib_1.__extends(BufferSkipCountSubscriber, _super);\n function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) {\n var _this = _super.call(this, destination) || this;\n _this.bufferSize = bufferSize;\n _this.startBufferEvery = startBufferEvery;\n _this.buffers = [];\n _this.count = 0;\n return _this;\n }\n BufferSkipCountSubscriber.prototype._next = function (value) {\n var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count;\n this.count++;\n if (count % startBufferEvery === 0) {\n buffers.push([]);\n }\n for (var i = buffers.length; i--;) {\n var buffer = buffers[i];\n buffer.push(value);\n if (buffer.length === bufferSize) {\n buffers.splice(i, 1);\n this.destination.next(buffer);\n }\n }\n };\n BufferSkipCountSubscriber.prototype._complete = function () {\n var _a = this, buffers = _a.buffers, destination = _a.destination;\n while (buffers.length > 0) {\n var buffer = buffers.shift();\n if (buffer.length > 0) {\n destination.next(buffer);\n }\n }\n _super.prototype._complete.call(this);\n };\n return BufferSkipCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=bufferCount.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isScheduler } from '../util/isScheduler';\nexport function bufferTime(bufferTimeSpan) {\n var length = arguments.length;\n var scheduler = async;\n if (isScheduler(arguments[arguments.length - 1])) {\n scheduler = arguments[arguments.length - 1];\n length--;\n }\n var bufferCreationInterval = null;\n if (length >= 2) {\n bufferCreationInterval = arguments[1];\n }\n var maxBufferSize = Number.POSITIVE_INFINITY;\n if (length >= 3) {\n maxBufferSize = arguments[2];\n }\n return function bufferTimeOperatorFunction(source) {\n return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler));\n };\n}\nvar BufferTimeOperator = (function () {\n function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n this.bufferTimeSpan = bufferTimeSpan;\n this.bufferCreationInterval = bufferCreationInterval;\n this.maxBufferSize = maxBufferSize;\n this.scheduler = scheduler;\n }\n BufferTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler));\n };\n return BufferTimeOperator;\n}());\nvar Context = (function () {\n function Context() {\n this.buffer = [];\n }\n return Context;\n}());\nvar BufferTimeSubscriber = (function (_super) {\n tslib_1.__extends(BufferTimeSubscriber, _super);\n function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.bufferTimeSpan = bufferTimeSpan;\n _this.bufferCreationInterval = bufferCreationInterval;\n _this.maxBufferSize = maxBufferSize;\n _this.scheduler = scheduler;\n _this.contexts = [];\n var context = _this.openContext();\n _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0;\n if (_this.timespanOnly) {\n var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n else {\n var closeState = { subscriber: _this, context: context };\n var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState));\n }\n return _this;\n }\n BufferTimeSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n var filledBufferContext;\n for (var i = 0; i < len; i++) {\n var context_1 = contexts[i];\n var buffer = context_1.buffer;\n buffer.push(value);\n if (buffer.length == this.maxBufferSize) {\n filledBufferContext = context_1;\n }\n }\n if (filledBufferContext) {\n this.onBufferFull(filledBufferContext);\n }\n };\n BufferTimeSubscriber.prototype._error = function (err) {\n this.contexts.length = 0;\n _super.prototype._error.call(this, err);\n };\n BufferTimeSubscriber.prototype._complete = function () {\n var _a = this, contexts = _a.contexts, destination = _a.destination;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n destination.next(context_2.buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferTimeSubscriber.prototype._unsubscribe = function () {\n this.contexts = null;\n };\n BufferTimeSubscriber.prototype.onBufferFull = function (context) {\n this.closeContext(context);\n var closeAction = context.closeAction;\n closeAction.unsubscribe();\n this.remove(closeAction);\n if (!this.closed && this.timespanOnly) {\n context = this.openContext();\n var bufferTimeSpan = this.bufferTimeSpan;\n var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan };\n this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState));\n }\n };\n BufferTimeSubscriber.prototype.openContext = function () {\n var context = new Context();\n this.contexts.push(context);\n return context;\n };\n BufferTimeSubscriber.prototype.closeContext = function (context) {\n this.destination.next(context.buffer);\n var contexts = this.contexts;\n var spliceIndex = contexts ? contexts.indexOf(context) : -1;\n if (spliceIndex >= 0) {\n contexts.splice(contexts.indexOf(context), 1);\n }\n };\n return BufferTimeSubscriber;\n}(Subscriber));\nfunction dispatchBufferTimeSpanOnly(state) {\n var subscriber = state.subscriber;\n var prevContext = state.context;\n if (prevContext) {\n subscriber.closeContext(prevContext);\n }\n if (!subscriber.closed) {\n state.context = subscriber.openContext();\n state.context.closeAction = this.schedule(state, state.bufferTimeSpan);\n }\n}\nfunction dispatchBufferCreation(state) {\n var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler;\n var context = subscriber.openContext();\n var action = this;\n if (!subscriber.closed) {\n subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context }));\n action.schedule(state, bufferCreationInterval);\n }\n}\nfunction dispatchBufferClose(arg) {\n var subscriber = arg.subscriber, context = arg.context;\n subscriber.closeContext(context);\n}\n//# sourceMappingURL=bufferTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nexport function bufferToggle(openings, closingSelector) {\n return function bufferToggleOperatorFunction(source) {\n return source.lift(new BufferToggleOperator(openings, closingSelector));\n };\n}\nvar BufferToggleOperator = (function () {\n function BufferToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n BufferToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return BufferToggleOperator;\n}());\nvar BufferToggleSubscriber = (function (_super) {\n tslib_1.__extends(BufferToggleSubscriber, _super);\n function BufferToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(subscribeToResult(_this, openings));\n return _this;\n }\n BufferToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].buffer.push(value);\n }\n };\n BufferToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_1 = contexts.shift();\n context_1.subscription.unsubscribe();\n context_1.buffer = null;\n context_1.subscription = null;\n }\n this.contexts = null;\n _super.prototype._error.call(this, err);\n };\n BufferToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n while (contexts.length > 0) {\n var context_2 = contexts.shift();\n this.destination.next(context_2.buffer);\n context_2.subscription.unsubscribe();\n context_2.buffer = null;\n context_2.subscription = null;\n }\n this.contexts = null;\n _super.prototype._complete.call(this);\n };\n BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue);\n };\n BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) {\n this.closeBuffer(innerSub.context);\n };\n BufferToggleSubscriber.prototype.openBuffer = function (value) {\n try {\n var closingSelector = this.closingSelector;\n var closingNotifier = closingSelector.call(this, value);\n if (closingNotifier) {\n this.trySubscribe(closingNotifier);\n }\n }\n catch (err) {\n this._error(err);\n }\n };\n BufferToggleSubscriber.prototype.closeBuffer = function (context) {\n var contexts = this.contexts;\n if (contexts && context) {\n var buffer = context.buffer, subscription = context.subscription;\n this.destination.next(buffer);\n contexts.splice(contexts.indexOf(context), 1);\n this.remove(subscription);\n subscription.unsubscribe();\n }\n };\n BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) {\n var contexts = this.contexts;\n var buffer = [];\n var subscription = new Subscription();\n var context = { buffer: buffer, subscription: subscription };\n contexts.push(context);\n var innerSubscription = subscribeToResult(this, closingNotifier, context);\n if (!innerSubscription || innerSubscription.closed) {\n this.closeBuffer(context);\n }\n else {\n innerSubscription.context = context;\n this.add(innerSubscription);\n subscription.add(innerSubscription);\n }\n };\n return BufferToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function bufferWhen(closingSelector) {\n return function (source) {\n return source.lift(new BufferWhenOperator(closingSelector));\n };\n}\nvar BufferWhenOperator = (function () {\n function BufferWhenOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n BufferWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector));\n };\n return BufferWhenOperator;\n}());\nvar BufferWhenSubscriber = (function (_super) {\n tslib_1.__extends(BufferWhenSubscriber, _super);\n function BufferWhenSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.closingSelector = closingSelector;\n _this.subscribing = false;\n _this.openBuffer();\n return _this;\n }\n BufferWhenSubscriber.prototype._next = function (value) {\n this.buffer.push(value);\n };\n BufferWhenSubscriber.prototype._complete = function () {\n var buffer = this.buffer;\n if (buffer) {\n this.destination.next(buffer);\n }\n _super.prototype._complete.call(this);\n };\n BufferWhenSubscriber.prototype._unsubscribe = function () {\n this.buffer = null;\n this.subscribing = false;\n };\n BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openBuffer();\n };\n BufferWhenSubscriber.prototype.notifyComplete = function () {\n if (this.subscribing) {\n this.complete();\n }\n else {\n this.openBuffer();\n }\n };\n BufferWhenSubscriber.prototype.openBuffer = function () {\n var closingSubscription = this.closingSubscription;\n if (closingSubscription) {\n this.remove(closingSubscription);\n closingSubscription.unsubscribe();\n }\n var buffer = this.buffer;\n if (this.buffer) {\n this.destination.next(buffer);\n }\n this.buffer = [];\n var closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n this.error(errorObject.e);\n }\n else {\n closingSubscription = new Subscription();\n this.closingSubscription = closingSubscription;\n this.add(closingSubscription);\n this.subscribing = true;\n closingSubscription.add(subscribeToResult(this, closingNotifier));\n this.subscribing = false;\n }\n };\n return BufferWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=bufferWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function catchError(selector) {\n return function catchErrorOperatorFunction(source) {\n var operator = new CatchOperator(selector);\n var caught = source.lift(operator);\n return (operator.caught = caught);\n };\n}\nvar CatchOperator = (function () {\n function CatchOperator(selector) {\n this.selector = selector;\n }\n CatchOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught));\n };\n return CatchOperator;\n}());\nvar CatchSubscriber = (function (_super) {\n tslib_1.__extends(CatchSubscriber, _super);\n function CatchSubscriber(destination, selector, caught) {\n var _this = _super.call(this, destination) || this;\n _this.selector = selector;\n _this.caught = caught;\n return _this;\n }\n CatchSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var result = void 0;\n try {\n result = this.selector(err, this.caught);\n }\n catch (err2) {\n _super.prototype.error.call(this, err2);\n return;\n }\n this._unsubscribeAndRecycle();\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n this.add(innerSubscriber);\n subscribeToResult(this, result, undefined, undefined, innerSubscriber);\n }\n };\n return CatchSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=catchError.js.map","import { CombineLatestOperator } from '../observable/combineLatest';\nexport function combineAll(project) {\n return function (source) { return source.lift(new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineAll.js.map","import { isArray } from '../util/isArray';\nimport { CombineLatestOperator } from '../observable/combineLatest';\nimport { from } from '../observable/from';\nvar none = {};\nexport function combineLatest() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n var project = null;\n if (typeof observables[observables.length - 1] === 'function') {\n project = observables.pop();\n }\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0].slice();\n }\n return function (source) { return source.lift.call(from([source].concat(observables)), new CombineLatestOperator(project)); };\n}\n//# sourceMappingURL=combineLatest.js.map","import { concat as concatStatic } from '../observable/concat';\nexport function concat() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(concatStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=concat.js.map","import { mergeMap } from './mergeMap';\nexport function concatMap(project, resultSelector) {\n return mergeMap(project, resultSelector, 1);\n}\n//# sourceMappingURL=concatMap.js.map","import { concatMap } from './concatMap';\nexport function concatMapTo(innerObservable, resultSelector) {\n return concatMap(function () { return innerObservable; }, resultSelector);\n}\n//# sourceMappingURL=concatMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function count(predicate) {\n return function (source) { return source.lift(new CountOperator(predicate, source)); };\n}\nvar CountOperator = (function () {\n function CountOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n CountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source));\n };\n return CountOperator;\n}());\nvar CountSubscriber = (function (_super) {\n tslib_1.__extends(CountSubscriber, _super);\n function CountSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.count = 0;\n _this.index = 0;\n return _this;\n }\n CountSubscriber.prototype._next = function (value) {\n if (this.predicate) {\n this._tryPredicate(value);\n }\n else {\n this.count++;\n }\n };\n CountSubscriber.prototype._tryPredicate = function (value) {\n var result;\n try {\n result = this.predicate(value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.count++;\n }\n };\n CountSubscriber.prototype._complete = function () {\n this.destination.next(this.count);\n this.destination.complete();\n };\n return CountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=count.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function debounce(durationSelector) {\n return function (source) { return source.lift(new DebounceOperator(durationSelector)); };\n}\nvar DebounceOperator = (function () {\n function DebounceOperator(durationSelector) {\n this.durationSelector = durationSelector;\n }\n DebounceOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector));\n };\n return DebounceOperator;\n}());\nvar DebounceSubscriber = (function (_super) {\n tslib_1.__extends(DebounceSubscriber, _super);\n function DebounceSubscriber(destination, durationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.durationSelector = durationSelector;\n _this.hasValue = false;\n _this.durationSubscription = null;\n return _this;\n }\n DebounceSubscriber.prototype._next = function (value) {\n try {\n var result = this.durationSelector.call(this, value);\n if (result) {\n this._tryNext(value, result);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DebounceSubscriber.prototype._complete = function () {\n this.emitValue();\n this.destination.complete();\n };\n DebounceSubscriber.prototype._tryNext = function (value, duration) {\n var subscription = this.durationSubscription;\n this.value = value;\n this.hasValue = true;\n if (subscription) {\n subscription.unsubscribe();\n this.remove(subscription);\n }\n subscription = subscribeToResult(this, duration);\n if (subscription && !subscription.closed) {\n this.add(this.durationSubscription = subscription);\n }\n };\n DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n DebounceSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n DebounceSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n var value = this.value;\n var subscription = this.durationSubscription;\n if (subscription) {\n this.durationSubscription = null;\n subscription.unsubscribe();\n this.remove(subscription);\n }\n this.value = null;\n this.hasValue = false;\n _super.prototype._next.call(this, value);\n }\n };\n return DebounceSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=debounce.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function debounceTime(dueTime, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); };\n}\nvar DebounceTimeOperator = (function () {\n function DebounceTimeOperator(dueTime, scheduler) {\n this.dueTime = dueTime;\n this.scheduler = scheduler;\n }\n DebounceTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler));\n };\n return DebounceTimeOperator;\n}());\nvar DebounceTimeSubscriber = (function (_super) {\n tslib_1.__extends(DebounceTimeSubscriber, _super);\n function DebounceTimeSubscriber(destination, dueTime, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.dueTime = dueTime;\n _this.scheduler = scheduler;\n _this.debouncedSubscription = null;\n _this.lastValue = null;\n _this.hasValue = false;\n return _this;\n }\n DebounceTimeSubscriber.prototype._next = function (value) {\n this.clearDebounce();\n this.lastValue = value;\n this.hasValue = true;\n this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this));\n };\n DebounceTimeSubscriber.prototype._complete = function () {\n this.debouncedNext();\n this.destination.complete();\n };\n DebounceTimeSubscriber.prototype.debouncedNext = function () {\n this.clearDebounce();\n if (this.hasValue) {\n var lastValue = this.lastValue;\n this.lastValue = null;\n this.hasValue = false;\n this.destination.next(lastValue);\n }\n };\n DebounceTimeSubscriber.prototype.clearDebounce = function () {\n var debouncedSubscription = this.debouncedSubscription;\n if (debouncedSubscription !== null) {\n this.remove(debouncedSubscription);\n debouncedSubscription.unsubscribe();\n this.debouncedSubscription = null;\n }\n };\n return DebounceTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(subscriber) {\n subscriber.debouncedNext();\n}\n//# sourceMappingURL=debounceTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function defaultIfEmpty(defaultValue) {\n if (defaultValue === void 0) { defaultValue = null; }\n return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); };\n}\nvar DefaultIfEmptyOperator = (function () {\n function DefaultIfEmptyOperator(defaultValue) {\n this.defaultValue = defaultValue;\n }\n DefaultIfEmptyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue));\n };\n return DefaultIfEmptyOperator;\n}());\nvar DefaultIfEmptySubscriber = (function (_super) {\n tslib_1.__extends(DefaultIfEmptySubscriber, _super);\n function DefaultIfEmptySubscriber(destination, defaultValue) {\n var _this = _super.call(this, destination) || this;\n _this.defaultValue = defaultValue;\n _this.isEmpty = true;\n return _this;\n }\n DefaultIfEmptySubscriber.prototype._next = function (value) {\n this.isEmpty = false;\n this.destination.next(value);\n };\n DefaultIfEmptySubscriber.prototype._complete = function () {\n if (this.isEmpty) {\n this.destination.next(this.defaultValue);\n }\n this.destination.complete();\n };\n return DefaultIfEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=defaultIfEmpty.js.map","export function isDate(value) {\n return value instanceof Date && !isNaN(+value);\n}\n//# sourceMappingURL=isDate.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function delay(delay, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n var absoluteDelay = isDate(delay);\n var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay);\n return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); };\n}\nvar DelayOperator = (function () {\n function DelayOperator(delay, scheduler) {\n this.delay = delay;\n this.scheduler = scheduler;\n }\n DelayOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler));\n };\n return DelayOperator;\n}());\nvar DelaySubscriber = (function (_super) {\n tslib_1.__extends(DelaySubscriber, _super);\n function DelaySubscriber(destination, delay, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.delay = delay;\n _this.scheduler = scheduler;\n _this.queue = [];\n _this.active = false;\n _this.errored = false;\n return _this;\n }\n DelaySubscriber.dispatch = function (state) {\n var source = state.source;\n var queue = source.queue;\n var scheduler = state.scheduler;\n var destination = state.destination;\n while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) {\n queue.shift().notification.observe(destination);\n }\n if (queue.length > 0) {\n var delay_1 = Math.max(0, queue[0].time - scheduler.now());\n this.schedule(state, delay_1);\n }\n else {\n this.unsubscribe();\n source.active = false;\n }\n };\n DelaySubscriber.prototype._schedule = function (scheduler) {\n this.active = true;\n var destination = this.destination;\n destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, {\n source: this, destination: this.destination, scheduler: scheduler\n }));\n };\n DelaySubscriber.prototype.scheduleNotification = function (notification) {\n if (this.errored === true) {\n return;\n }\n var scheduler = this.scheduler;\n var message = new DelayMessage(scheduler.now() + this.delay, notification);\n this.queue.push(message);\n if (this.active === false) {\n this._schedule(scheduler);\n }\n };\n DelaySubscriber.prototype._next = function (value) {\n this.scheduleNotification(Notification.createNext(value));\n };\n DelaySubscriber.prototype._error = function (err) {\n this.errored = true;\n this.queue = [];\n this.destination.error(err);\n this.unsubscribe();\n };\n DelaySubscriber.prototype._complete = function () {\n this.scheduleNotification(Notification.createComplete());\n this.unsubscribe();\n };\n return DelaySubscriber;\n}(Subscriber));\nvar DelayMessage = (function () {\n function DelayMessage(time, notification) {\n this.time = time;\n this.notification = notification;\n }\n return DelayMessage;\n}());\n//# sourceMappingURL=delay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Observable } from '../Observable';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function delayWhen(delayDurationSelector, subscriptionDelay) {\n if (subscriptionDelay) {\n return function (source) {\n return new SubscriptionDelayObservable(source, subscriptionDelay)\n .lift(new DelayWhenOperator(delayDurationSelector));\n };\n }\n return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); };\n}\nvar DelayWhenOperator = (function () {\n function DelayWhenOperator(delayDurationSelector) {\n this.delayDurationSelector = delayDurationSelector;\n }\n DelayWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector));\n };\n return DelayWhenOperator;\n}());\nvar DelayWhenSubscriber = (function (_super) {\n tslib_1.__extends(DelayWhenSubscriber, _super);\n function DelayWhenSubscriber(destination, delayDurationSelector) {\n var _this = _super.call(this, destination) || this;\n _this.delayDurationSelector = delayDurationSelector;\n _this.completed = false;\n _this.delayNotifierSubscriptions = [];\n _this.index = 0;\n return _this;\n }\n DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(outerValue);\n this.removeSubscription(innerSub);\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n var value = this.removeSubscription(innerSub);\n if (value) {\n this.destination.next(value);\n }\n this.tryComplete();\n };\n DelayWhenSubscriber.prototype._next = function (value) {\n var index = this.index++;\n try {\n var delayNotifier = this.delayDurationSelector(value, index);\n if (delayNotifier) {\n this.tryDelay(delayNotifier, value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n DelayWhenSubscriber.prototype._complete = function () {\n this.completed = true;\n this.tryComplete();\n this.unsubscribe();\n };\n DelayWhenSubscriber.prototype.removeSubscription = function (subscription) {\n subscription.unsubscribe();\n var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription);\n if (subscriptionIdx !== -1) {\n this.delayNotifierSubscriptions.splice(subscriptionIdx, 1);\n }\n return subscription.outerValue;\n };\n DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) {\n var notifierSubscription = subscribeToResult(this, delayNotifier, value);\n if (notifierSubscription && !notifierSubscription.closed) {\n var destination = this.destination;\n destination.add(notifierSubscription);\n this.delayNotifierSubscriptions.push(notifierSubscription);\n }\n };\n DelayWhenSubscriber.prototype.tryComplete = function () {\n if (this.completed && this.delayNotifierSubscriptions.length === 0) {\n this.destination.complete();\n }\n };\n return DelayWhenSubscriber;\n}(OuterSubscriber));\nvar SubscriptionDelayObservable = (function (_super) {\n tslib_1.__extends(SubscriptionDelayObservable, _super);\n function SubscriptionDelayObservable(source, subscriptionDelay) {\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.subscriptionDelay = subscriptionDelay;\n return _this;\n }\n SubscriptionDelayObservable.prototype._subscribe = function (subscriber) {\n this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source));\n };\n return SubscriptionDelayObservable;\n}(Observable));\nvar SubscriptionDelaySubscriber = (function (_super) {\n tslib_1.__extends(SubscriptionDelaySubscriber, _super);\n function SubscriptionDelaySubscriber(parent, source) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.source = source;\n _this.sourceSubscribed = false;\n return _this;\n }\n SubscriptionDelaySubscriber.prototype._next = function (unused) {\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype._error = function (err) {\n this.unsubscribe();\n this.parent.error(err);\n };\n SubscriptionDelaySubscriber.prototype._complete = function () {\n this.unsubscribe();\n this.subscribeToSource();\n };\n SubscriptionDelaySubscriber.prototype.subscribeToSource = function () {\n if (!this.sourceSubscribed) {\n this.sourceSubscribed = true;\n this.unsubscribe();\n this.source.subscribe(this.parent);\n }\n };\n return SubscriptionDelaySubscriber;\n}(Subscriber));\n//# sourceMappingURL=delayWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function dematerialize() {\n return function dematerializeOperatorFunction(source) {\n return source.lift(new DeMaterializeOperator());\n };\n}\nvar DeMaterializeOperator = (function () {\n function DeMaterializeOperator() {\n }\n DeMaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DeMaterializeSubscriber(subscriber));\n };\n return DeMaterializeOperator;\n}());\nvar DeMaterializeSubscriber = (function (_super) {\n tslib_1.__extends(DeMaterializeSubscriber, _super);\n function DeMaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n DeMaterializeSubscriber.prototype._next = function (value) {\n value.observe(this.destination);\n };\n return DeMaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=dematerialize.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function distinct(keySelector, flushes) {\n return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); };\n}\nvar DistinctOperator = (function () {\n function DistinctOperator(keySelector, flushes) {\n this.keySelector = keySelector;\n this.flushes = flushes;\n }\n DistinctOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes));\n };\n return DistinctOperator;\n}());\nvar DistinctSubscriber = (function (_super) {\n tslib_1.__extends(DistinctSubscriber, _super);\n function DistinctSubscriber(destination, keySelector, flushes) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.values = new Set();\n if (flushes) {\n _this.add(subscribeToResult(_this, flushes));\n }\n return _this;\n }\n DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values.clear();\n };\n DistinctSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n DistinctSubscriber.prototype._next = function (value) {\n if (this.keySelector) {\n this._useKeySelector(value);\n }\n else {\n this._finalizeNext(value, value);\n }\n };\n DistinctSubscriber.prototype._useKeySelector = function (value) {\n var key;\n var destination = this.destination;\n try {\n key = this.keySelector(value);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this._finalizeNext(key, value);\n };\n DistinctSubscriber.prototype._finalizeNext = function (key, value) {\n var values = this.values;\n if (!values.has(key)) {\n values.add(key);\n this.destination.next(value);\n }\n };\n return DistinctSubscriber;\n}(OuterSubscriber));\nexport { DistinctSubscriber };\n//# sourceMappingURL=distinct.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nexport function distinctUntilChanged(compare, keySelector) {\n return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); };\n}\nvar DistinctUntilChangedOperator = (function () {\n function DistinctUntilChangedOperator(compare, keySelector) {\n this.compare = compare;\n this.keySelector = keySelector;\n }\n DistinctUntilChangedOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector));\n };\n return DistinctUntilChangedOperator;\n}());\nvar DistinctUntilChangedSubscriber = (function (_super) {\n tslib_1.__extends(DistinctUntilChangedSubscriber, _super);\n function DistinctUntilChangedSubscriber(destination, compare, keySelector) {\n var _this = _super.call(this, destination) || this;\n _this.keySelector = keySelector;\n _this.hasKey = false;\n if (typeof compare === 'function') {\n _this.compare = compare;\n }\n return _this;\n }\n DistinctUntilChangedSubscriber.prototype.compare = function (x, y) {\n return x === y;\n };\n DistinctUntilChangedSubscriber.prototype._next = function (value) {\n var keySelector = this.keySelector;\n var key = value;\n if (keySelector) {\n key = tryCatch(this.keySelector)(value);\n if (key === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n var result = false;\n if (this.hasKey) {\n result = tryCatch(this.compare)(this.key, key);\n if (result === errorObject) {\n return this.destination.error(errorObject.e);\n }\n }\n else {\n this.hasKey = true;\n }\n if (Boolean(result) === false) {\n this.key = key;\n this.destination.next(value);\n }\n };\n return DistinctUntilChangedSubscriber;\n}(Subscriber));\n//# sourceMappingURL=distinctUntilChanged.js.map","import { distinctUntilChanged } from './distinctUntilChanged';\nexport function distinctUntilKeyChanged(key, compare) {\n return distinctUntilChanged(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; });\n}\n//# sourceMappingURL=distinctUntilKeyChanged.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function filter(predicate, thisArg) {\n return function filterOperatorFunction(source) {\n return source.lift(new FilterOperator(predicate, thisArg));\n };\n}\nvar FilterOperator = (function () {\n function FilterOperator(predicate, thisArg) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n }\n FilterOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg));\n };\n return FilterOperator;\n}());\nvar FilterSubscriber = (function (_super) {\n tslib_1.__extends(FilterSubscriber, _super);\n function FilterSubscriber(destination, predicate, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.count = 0;\n return _this;\n }\n FilterSubscriber.prototype._next = function (value) {\n var result;\n try {\n result = this.predicate.call(this.thisArg, value, this.count++);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (result) {\n this.destination.next(value);\n }\n };\n return FilterSubscriber;\n}(Subscriber));\n//# sourceMappingURL=filter.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { noop } from '../util/noop';\nimport { isFunction } from '../util/isFunction';\nexport function tap(nextOrObserver, error, complete) {\n return function tapOperatorFunction(source) {\n return source.lift(new DoOperator(nextOrObserver, error, complete));\n };\n}\nvar DoOperator = (function () {\n function DoOperator(nextOrObserver, error, complete) {\n this.nextOrObserver = nextOrObserver;\n this.error = error;\n this.complete = complete;\n }\n DoOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete));\n };\n return DoOperator;\n}());\nvar TapSubscriber = (function (_super) {\n tslib_1.__extends(TapSubscriber, _super);\n function TapSubscriber(destination, observerOrNext, error, complete) {\n var _this = _super.call(this, destination) || this;\n _this._tapNext = noop;\n _this._tapError = noop;\n _this._tapComplete = noop;\n _this._tapError = error || noop;\n _this._tapComplete = complete || noop;\n if (isFunction(observerOrNext)) {\n _this._context = _this;\n _this._tapNext = observerOrNext;\n }\n else if (observerOrNext) {\n _this._context = observerOrNext;\n _this._tapNext = observerOrNext.next || noop;\n _this._tapError = observerOrNext.error || noop;\n _this._tapComplete = observerOrNext.complete || noop;\n }\n return _this;\n }\n TapSubscriber.prototype._next = function (value) {\n try {\n this._tapNext.call(this._context, value);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(value);\n };\n TapSubscriber.prototype._error = function (err) {\n try {\n this._tapError.call(this._context, err);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.error(err);\n };\n TapSubscriber.prototype._complete = function () {\n try {\n this._tapComplete.call(this._context);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n return this.destination.complete();\n };\n return TapSubscriber;\n}(Subscriber));\n//# sourceMappingURL=tap.js.map","import { tap } from './tap';\nimport { EmptyError } from '../util/EmptyError';\nexport var throwIfEmpty = function (errorFactory) {\n if (errorFactory === void 0) { errorFactory = defaultErrorFactory; }\n return tap({\n hasValue: false,\n next: function () { this.hasValue = true; },\n complete: function () {\n if (!this.hasValue) {\n throw errorFactory();\n }\n }\n });\n};\nfunction defaultErrorFactory() {\n return new EmptyError();\n}\n//# sourceMappingURL=throwIfEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function take(count) {\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeOperator(count));\n }\n };\n}\nvar TakeOperator = (function () {\n function TakeOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeSubscriber(subscriber, this.total));\n };\n return TakeOperator;\n}());\nvar TakeSubscriber = (function (_super) {\n tslib_1.__extends(TakeSubscriber, _super);\n function TakeSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n TakeSubscriber.prototype._next = function (value) {\n var total = this.total;\n var count = ++this.count;\n if (count <= total) {\n this.destination.next(value);\n if (count === total) {\n this.destination.complete();\n this.unsubscribe();\n }\n }\n };\n return TakeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=take.js.map","import { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { filter } from './filter';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { take } from './take';\nexport function elementAt(index, defaultValue) {\n if (index < 0) {\n throw new ArgumentOutOfRangeError();\n }\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(filter(function (v, i) { return i === index; }), take(1), hasDefaultValue\n ? defaultIfEmpty(defaultValue)\n : throwIfEmpty(function () { return new ArgumentOutOfRangeError(); })); };\n}\n//# sourceMappingURL=elementAt.js.map","import { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function endWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(source, scalar(array[0]));\n }\n else if (len > 0) {\n return concatStatic(source, fromArray(array, scheduler));\n }\n else {\n return concatStatic(source, empty(scheduler));\n }\n };\n}\n//# sourceMappingURL=endWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function every(predicate, thisArg) {\n return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); };\n}\nvar EveryOperator = (function () {\n function EveryOperator(predicate, thisArg, source) {\n this.predicate = predicate;\n this.thisArg = thisArg;\n this.source = source;\n }\n EveryOperator.prototype.call = function (observer, source) {\n return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source));\n };\n return EveryOperator;\n}());\nvar EverySubscriber = (function (_super) {\n tslib_1.__extends(EverySubscriber, _super);\n function EverySubscriber(destination, predicate, thisArg, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.thisArg = thisArg;\n _this.source = source;\n _this.index = 0;\n _this.thisArg = thisArg || _this;\n return _this;\n }\n EverySubscriber.prototype.notifyComplete = function (everyValueMatch) {\n this.destination.next(everyValueMatch);\n this.destination.complete();\n };\n EverySubscriber.prototype._next = function (value) {\n var result = false;\n try {\n result = this.predicate.call(this.thisArg, value, this.index++, this.source);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n if (!result) {\n this.notifyComplete(false);\n }\n };\n EverySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return EverySubscriber;\n}(Subscriber));\n//# sourceMappingURL=every.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function exhaust() {\n return function (source) { return source.lift(new SwitchFirstOperator()); };\n}\nvar SwitchFirstOperator = (function () {\n function SwitchFirstOperator() {\n }\n SwitchFirstOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchFirstSubscriber(subscriber));\n };\n return SwitchFirstOperator;\n}());\nvar SwitchFirstSubscriber = (function (_super) {\n tslib_1.__extends(SwitchFirstSubscriber, _super);\n function SwitchFirstSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasCompleted = false;\n _this.hasSubscription = false;\n return _this;\n }\n SwitchFirstSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.hasSubscription = true;\n this.add(subscribeToResult(this, value));\n }\n };\n SwitchFirstSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n };\n SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) {\n this.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return SwitchFirstSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaust.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function exhaustMap(project, resultSelector) {\n if (resultSelector) {\n return function (source) { return source.pipe(exhaustMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) {\n return source.lift(new ExhauseMapOperator(project));\n };\n}\nvar ExhauseMapOperator = (function () {\n function ExhauseMapOperator(project) {\n this.project = project;\n }\n ExhauseMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project));\n };\n return ExhauseMapOperator;\n}());\nvar ExhaustMapSubscriber = (function (_super) {\n tslib_1.__extends(ExhaustMapSubscriber, _super);\n function ExhaustMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.hasSubscription = false;\n _this.hasCompleted = false;\n _this.index = 0;\n return _this;\n }\n ExhaustMapSubscriber.prototype._next = function (value) {\n if (!this.hasSubscription) {\n this.tryNext(value);\n }\n };\n ExhaustMapSubscriber.prototype.tryNext = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.hasSubscription = true;\n this._innerSub(result, value, index);\n };\n ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, result, value, index, innerSubscriber);\n };\n ExhaustMapSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (!this.hasSubscription) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n ExhaustMapSubscriber.prototype.notifyError = function (err) {\n this.destination.error(err);\n };\n ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.hasSubscription = false;\n if (this.hasCompleted) {\n this.destination.complete();\n }\n };\n return ExhaustMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=exhaustMap.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function expand(project, concurrent, scheduler) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (scheduler === void 0) { scheduler = undefined; }\n concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent;\n return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); };\n}\nvar ExpandOperator = (function () {\n function ExpandOperator(project, concurrent, scheduler) {\n this.project = project;\n this.concurrent = concurrent;\n this.scheduler = scheduler;\n }\n ExpandOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler));\n };\n return ExpandOperator;\n}());\nexport { ExpandOperator };\nvar ExpandSubscriber = (function (_super) {\n tslib_1.__extends(ExpandSubscriber, _super);\n function ExpandSubscriber(destination, project, concurrent, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.concurrent = concurrent;\n _this.scheduler = scheduler;\n _this.index = 0;\n _this.active = 0;\n _this.hasCompleted = false;\n if (concurrent < Number.POSITIVE_INFINITY) {\n _this.buffer = [];\n }\n return _this;\n }\n ExpandSubscriber.dispatch = function (arg) {\n var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index;\n subscriber.subscribeToProjection(result, value, index);\n };\n ExpandSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (destination.closed) {\n this._complete();\n return;\n }\n var index = this.index++;\n if (this.active < this.concurrent) {\n destination.next(value);\n var result = tryCatch(this.project)(value, index);\n if (result === errorObject) {\n destination.error(errorObject.e);\n }\n else if (!this.scheduler) {\n this.subscribeToProjection(result, value, index);\n }\n else {\n var state = { subscriber: this, result: result, value: value, index: index };\n var destination_1 = this.destination;\n destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state));\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) {\n this.active++;\n var destination = this.destination;\n destination.add(subscribeToResult(this, result, value, index));\n };\n ExpandSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n this.unsubscribe();\n };\n ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this._next(innerValue);\n };\n ExpandSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer && buffer.length > 0) {\n this._next(buffer.shift());\n }\n if (this.hasCompleted && this.active === 0) {\n this.destination.complete();\n }\n };\n return ExpandSubscriber;\n}(OuterSubscriber));\nexport { ExpandSubscriber };\n//# sourceMappingURL=expand.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subscription } from '../Subscription';\nexport function finalize(callback) {\n return function (source) { return source.lift(new FinallyOperator(callback)); };\n}\nvar FinallyOperator = (function () {\n function FinallyOperator(callback) {\n this.callback = callback;\n }\n FinallyOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new FinallySubscriber(subscriber, this.callback));\n };\n return FinallyOperator;\n}());\nvar FinallySubscriber = (function (_super) {\n tslib_1.__extends(FinallySubscriber, _super);\n function FinallySubscriber(destination, callback) {\n var _this = _super.call(this, destination) || this;\n _this.add(new Subscription(callback));\n return _this;\n }\n return FinallySubscriber;\n}(Subscriber));\n//# sourceMappingURL=finalize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function find(predicate, thisArg) {\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate is not a function');\n }\n return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); };\n}\nvar FindValueOperator = (function () {\n function FindValueOperator(predicate, source, yieldIndex, thisArg) {\n this.predicate = predicate;\n this.source = source;\n this.yieldIndex = yieldIndex;\n this.thisArg = thisArg;\n }\n FindValueOperator.prototype.call = function (observer, source) {\n return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg));\n };\n return FindValueOperator;\n}());\nexport { FindValueOperator };\nvar FindValueSubscriber = (function (_super) {\n tslib_1.__extends(FindValueSubscriber, _super);\n function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.yieldIndex = yieldIndex;\n _this.thisArg = thisArg;\n _this.index = 0;\n return _this;\n }\n FindValueSubscriber.prototype.notifyComplete = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n this.unsubscribe();\n };\n FindValueSubscriber.prototype._next = function (value) {\n var _a = this, predicate = _a.predicate, thisArg = _a.thisArg;\n var index = this.index++;\n try {\n var result = predicate.call(thisArg || this, value, index, this.source);\n if (result) {\n this.notifyComplete(this.yieldIndex ? index : value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n FindValueSubscriber.prototype._complete = function () {\n this.notifyComplete(this.yieldIndex ? -1 : undefined);\n };\n return FindValueSubscriber;\n}(Subscriber));\nexport { FindValueSubscriber };\n//# sourceMappingURL=find.js.map","import { FindValueOperator } from '../operators/find';\nexport function findIndex(predicate, thisArg) {\n return function (source) { return source.lift(new FindValueOperator(predicate, source, true, thisArg)); };\n}\n//# sourceMappingURL=findIndex.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { take } from './take';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { identity } from '../util/identity';\nexport function first(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, take(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=first.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function ignoreElements() {\n return function ignoreElementsOperatorFunction(source) {\n return source.lift(new IgnoreElementsOperator());\n };\n}\nvar IgnoreElementsOperator = (function () {\n function IgnoreElementsOperator() {\n }\n IgnoreElementsOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new IgnoreElementsSubscriber(subscriber));\n };\n return IgnoreElementsOperator;\n}());\nvar IgnoreElementsSubscriber = (function (_super) {\n tslib_1.__extends(IgnoreElementsSubscriber, _super);\n function IgnoreElementsSubscriber() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n IgnoreElementsSubscriber.prototype._next = function (unused) {\n };\n return IgnoreElementsSubscriber;\n}(Subscriber));\n//# sourceMappingURL=ignoreElements.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function isEmpty() {\n return function (source) { return source.lift(new IsEmptyOperator()); };\n}\nvar IsEmptyOperator = (function () {\n function IsEmptyOperator() {\n }\n IsEmptyOperator.prototype.call = function (observer, source) {\n return source.subscribe(new IsEmptySubscriber(observer));\n };\n return IsEmptyOperator;\n}());\nvar IsEmptySubscriber = (function (_super) {\n tslib_1.__extends(IsEmptySubscriber, _super);\n function IsEmptySubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) {\n var destination = this.destination;\n destination.next(isEmpty);\n destination.complete();\n };\n IsEmptySubscriber.prototype._next = function (value) {\n this.notifyComplete(false);\n };\n IsEmptySubscriber.prototype._complete = function () {\n this.notifyComplete(true);\n };\n return IsEmptySubscriber;\n}(Subscriber));\n//# sourceMappingURL=isEmpty.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nimport { empty } from '../observable/empty';\nexport function takeLast(count) {\n return function takeLastOperatorFunction(source) {\n if (count === 0) {\n return empty();\n }\n else {\n return source.lift(new TakeLastOperator(count));\n }\n };\n}\nvar TakeLastOperator = (function () {\n function TakeLastOperator(total) {\n this.total = total;\n if (this.total < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n TakeLastOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeLastSubscriber(subscriber, this.total));\n };\n return TakeLastOperator;\n}());\nvar TakeLastSubscriber = (function (_super) {\n tslib_1.__extends(TakeLastSubscriber, _super);\n function TakeLastSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.ring = new Array();\n _this.count = 0;\n return _this;\n }\n TakeLastSubscriber.prototype._next = function (value) {\n var ring = this.ring;\n var total = this.total;\n var count = this.count++;\n if (ring.length < total) {\n ring.push(value);\n }\n else {\n var index = count % total;\n ring[index] = value;\n }\n };\n TakeLastSubscriber.prototype._complete = function () {\n var destination = this.destination;\n var count = this.count;\n if (count > 0) {\n var total = this.count >= this.total ? this.total : this.count;\n var ring = this.ring;\n for (var i = 0; i < total; i++) {\n var idx = (count++) % total;\n destination.next(ring[idx]);\n }\n }\n destination.complete();\n };\n return TakeLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeLast.js.map","import { EmptyError } from '../util/EmptyError';\nimport { filter } from './filter';\nimport { takeLast } from './takeLast';\nimport { throwIfEmpty } from './throwIfEmpty';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { identity } from '../util/identity';\nexport function last(predicate, defaultValue) {\n var hasDefaultValue = arguments.length >= 2;\n return function (source) { return source.pipe(predicate ? filter(function (v, i) { return predicate(v, i, source); }) : identity, takeLast(1), hasDefaultValue ? defaultIfEmpty(defaultValue) : throwIfEmpty(function () { return new EmptyError(); })); };\n}\n//# sourceMappingURL=last.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function mapTo(value) {\n return function (source) { return source.lift(new MapToOperator(value)); };\n}\nvar MapToOperator = (function () {\n function MapToOperator(value) {\n this.value = value;\n }\n MapToOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MapToSubscriber(subscriber, this.value));\n };\n return MapToOperator;\n}());\nvar MapToSubscriber = (function (_super) {\n tslib_1.__extends(MapToSubscriber, _super);\n function MapToSubscriber(destination, value) {\n var _this = _super.call(this, destination) || this;\n _this.value = value;\n return _this;\n }\n MapToSubscriber.prototype._next = function (x) {\n this.destination.next(this.value);\n };\n return MapToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=mapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Notification } from '../Notification';\nexport function materialize() {\n return function materializeOperatorFunction(source) {\n return source.lift(new MaterializeOperator());\n };\n}\nvar MaterializeOperator = (function () {\n function MaterializeOperator() {\n }\n MaterializeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MaterializeSubscriber(subscriber));\n };\n return MaterializeOperator;\n}());\nvar MaterializeSubscriber = (function (_super) {\n tslib_1.__extends(MaterializeSubscriber, _super);\n function MaterializeSubscriber(destination) {\n return _super.call(this, destination) || this;\n }\n MaterializeSubscriber.prototype._next = function (value) {\n this.destination.next(Notification.createNext(value));\n };\n MaterializeSubscriber.prototype._error = function (err) {\n var destination = this.destination;\n destination.next(Notification.createError(err));\n destination.complete();\n };\n MaterializeSubscriber.prototype._complete = function () {\n var destination = this.destination;\n destination.next(Notification.createComplete());\n destination.complete();\n };\n return MaterializeSubscriber;\n}(Subscriber));\n//# sourceMappingURL=materialize.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function scan(accumulator, seed) {\n var hasSeed = false;\n if (arguments.length >= 2) {\n hasSeed = true;\n }\n return function scanOperatorFunction(source) {\n return source.lift(new ScanOperator(accumulator, seed, hasSeed));\n };\n}\nvar ScanOperator = (function () {\n function ScanOperator(accumulator, seed, hasSeed) {\n if (hasSeed === void 0) { hasSeed = false; }\n this.accumulator = accumulator;\n this.seed = seed;\n this.hasSeed = hasSeed;\n }\n ScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed));\n };\n return ScanOperator;\n}());\nvar ScanSubscriber = (function (_super) {\n tslib_1.__extends(ScanSubscriber, _super);\n function ScanSubscriber(destination, accumulator, _seed, hasSeed) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this._seed = _seed;\n _this.hasSeed = hasSeed;\n _this.index = 0;\n return _this;\n }\n Object.defineProperty(ScanSubscriber.prototype, \"seed\", {\n get: function () {\n return this._seed;\n },\n set: function (value) {\n this.hasSeed = true;\n this._seed = value;\n },\n enumerable: true,\n configurable: true\n });\n ScanSubscriber.prototype._next = function (value) {\n if (!this.hasSeed) {\n this.seed = value;\n this.destination.next(value);\n }\n else {\n return this._tryNext(value);\n }\n };\n ScanSubscriber.prototype._tryNext = function (value) {\n var index = this.index++;\n var result;\n try {\n result = this.accumulator(this.seed, value, index);\n }\n catch (err) {\n this.destination.error(err);\n }\n this.seed = result;\n this.destination.next(result);\n };\n return ScanSubscriber;\n}(Subscriber));\n//# sourceMappingURL=scan.js.map","import { scan } from './scan';\nimport { takeLast } from './takeLast';\nimport { defaultIfEmpty } from './defaultIfEmpty';\nimport { pipe } from '../util/pipe';\nexport function reduce(accumulator, seed) {\n if (arguments.length >= 2) {\n return function reduceOperatorFunctionWithSeed(source) {\n return pipe(scan(accumulator, seed), takeLast(1), defaultIfEmpty(seed))(source);\n };\n }\n return function reduceOperatorFunction(source) {\n return pipe(scan(function (acc, value, index) { return accumulator(acc, value, index + 1); }), takeLast(1))(source);\n };\n}\n//# sourceMappingURL=reduce.js.map","import { reduce } from './reduce';\nexport function max(comparer) {\n var max = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) > 0 ? x : y; }\n : function (x, y) { return x > y ? x : y; };\n return reduce(max);\n}\n//# sourceMappingURL=max.js.map","import { merge as mergeStatic } from '../observable/merge';\nexport function merge() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function (source) { return source.lift.call(mergeStatic.apply(void 0, [source].concat(observables))); };\n}\n//# sourceMappingURL=merge.js.map","import { mergeMap } from './mergeMap';\nexport function mergeMapTo(innerObservable, resultSelector, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n if (typeof resultSelector === 'function') {\n return mergeMap(function () { return innerObservable; }, resultSelector, concurrent);\n }\n if (typeof resultSelector === 'number') {\n concurrent = resultSelector;\n }\n return mergeMap(function () { return innerObservable; }, concurrent);\n}\n//# sourceMappingURL=mergeMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nexport function mergeScan(accumulator, seed, concurrent) {\n if (concurrent === void 0) { concurrent = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); };\n}\nvar MergeScanOperator = (function () {\n function MergeScanOperator(accumulator, seed, concurrent) {\n this.accumulator = accumulator;\n this.seed = seed;\n this.concurrent = concurrent;\n }\n MergeScanOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent));\n };\n return MergeScanOperator;\n}());\nexport { MergeScanOperator };\nvar MergeScanSubscriber = (function (_super) {\n tslib_1.__extends(MergeScanSubscriber, _super);\n function MergeScanSubscriber(destination, accumulator, acc, concurrent) {\n var _this = _super.call(this, destination) || this;\n _this.accumulator = accumulator;\n _this.acc = acc;\n _this.concurrent = concurrent;\n _this.hasValue = false;\n _this.hasCompleted = false;\n _this.buffer = [];\n _this.active = 0;\n _this.index = 0;\n return _this;\n }\n MergeScanSubscriber.prototype._next = function (value) {\n if (this.active < this.concurrent) {\n var index = this.index++;\n var ish = tryCatch(this.accumulator)(this.acc, value);\n var destination = this.destination;\n if (ish === errorObject) {\n destination.error(errorObject.e);\n }\n else {\n this.active++;\n this._innerSub(ish, value, index);\n }\n }\n else {\n this.buffer.push(value);\n }\n };\n MergeScanSubscriber.prototype._innerSub = function (ish, value, index) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, ish, value, index, innerSubscriber);\n };\n MergeScanSubscriber.prototype._complete = function () {\n this.hasCompleted = true;\n if (this.active === 0 && this.buffer.length === 0) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n this.unsubscribe();\n };\n MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var destination = this.destination;\n this.acc = innerValue;\n this.hasValue = true;\n destination.next(innerValue);\n };\n MergeScanSubscriber.prototype.notifyComplete = function (innerSub) {\n var buffer = this.buffer;\n var destination = this.destination;\n destination.remove(innerSub);\n this.active--;\n if (buffer.length > 0) {\n this._next(buffer.shift());\n }\n else if (this.active === 0 && this.hasCompleted) {\n if (this.hasValue === false) {\n this.destination.next(this.acc);\n }\n this.destination.complete();\n }\n };\n return MergeScanSubscriber;\n}(OuterSubscriber));\nexport { MergeScanSubscriber };\n//# sourceMappingURL=mergeScan.js.map","import { reduce } from './reduce';\nexport function min(comparer) {\n var min = (typeof comparer === 'function')\n ? function (x, y) { return comparer(x, y) < 0 ? x : y; }\n : function (x, y) { return x < y ? x : y; };\n return reduce(min);\n}\n//# sourceMappingURL=min.js.map","import { connectableObservableDescriptor } from '../observable/ConnectableObservable';\nexport function multicast(subjectOrSubjectFactory, selector) {\n return function multicastOperatorFunction(source) {\n var subjectFactory;\n if (typeof subjectOrSubjectFactory === 'function') {\n subjectFactory = subjectOrSubjectFactory;\n }\n else {\n subjectFactory = function subjectFactory() {\n return subjectOrSubjectFactory;\n };\n }\n if (typeof selector === 'function') {\n return source.lift(new MulticastOperator(subjectFactory, selector));\n }\n var connectable = Object.create(source, connectableObservableDescriptor);\n connectable.source = source;\n connectable.subjectFactory = subjectFactory;\n return connectable;\n };\n}\nvar MulticastOperator = (function () {\n function MulticastOperator(subjectFactory, selector) {\n this.subjectFactory = subjectFactory;\n this.selector = selector;\n }\n MulticastOperator.prototype.call = function (subscriber, source) {\n var selector = this.selector;\n var subject = this.subjectFactory();\n var subscription = selector(subject).subscribe(subscriber);\n subscription.add(source.subscribe(subject));\n return subscription;\n };\n return MulticastOperator;\n}());\nexport { MulticastOperator };\n//# sourceMappingURL=multicast.js.map","import * as tslib_1 from \"tslib\";\nimport { from } from '../observable/from';\nimport { isArray } from '../util/isArray';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function onErrorResumeNext() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); };\n}\nexport function onErrorResumeNextStatic() {\n var nextSources = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n nextSources[_i] = arguments[_i];\n }\n var source = null;\n if (nextSources.length === 1 && isArray(nextSources[0])) {\n nextSources = nextSources[0];\n }\n source = nextSources.shift();\n return from(source, null).lift(new OnErrorResumeNextOperator(nextSources));\n}\nvar OnErrorResumeNextOperator = (function () {\n function OnErrorResumeNextOperator(nextSources) {\n this.nextSources = nextSources;\n }\n OnErrorResumeNextOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources));\n };\n return OnErrorResumeNextOperator;\n}());\nvar OnErrorResumeNextSubscriber = (function (_super) {\n tslib_1.__extends(OnErrorResumeNextSubscriber, _super);\n function OnErrorResumeNextSubscriber(destination, nextSources) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.nextSources = nextSources;\n return _this;\n }\n OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) {\n this.subscribeToNextSource();\n };\n OnErrorResumeNextSubscriber.prototype._error = function (err) {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype._complete = function () {\n this.subscribeToNextSource();\n this.unsubscribe();\n };\n OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () {\n var next = this.nextSources.shift();\n if (next) {\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n subscribeToResult(this, next, undefined, undefined, innerSubscriber);\n }\n else {\n this.destination.complete();\n }\n };\n return OnErrorResumeNextSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=onErrorResumeNext.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function pairwise() {\n return function (source) { return source.lift(new PairwiseOperator()); };\n}\nvar PairwiseOperator = (function () {\n function PairwiseOperator() {\n }\n PairwiseOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new PairwiseSubscriber(subscriber));\n };\n return PairwiseOperator;\n}());\nvar PairwiseSubscriber = (function (_super) {\n tslib_1.__extends(PairwiseSubscriber, _super);\n function PairwiseSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.hasPrev = false;\n return _this;\n }\n PairwiseSubscriber.prototype._next = function (value) {\n if (this.hasPrev) {\n this.destination.next([this.prev, value]);\n }\n else {\n this.hasPrev = true;\n }\n this.prev = value;\n };\n return PairwiseSubscriber;\n}(Subscriber));\n//# sourceMappingURL=pairwise.js.map","export function not(pred, thisArg) {\n function notPred() {\n return !(notPred.pred.apply(notPred.thisArg, arguments));\n }\n notPred.pred = pred;\n notPred.thisArg = thisArg;\n return notPred;\n}\n//# sourceMappingURL=not.js.map","import { not } from '../util/not';\nimport { filter } from './filter';\nexport function partition(predicate, thisArg) {\n return function (source) { return [\n filter(predicate, thisArg)(source),\n filter(not(predicate, thisArg))(source)\n ]; };\n}\n//# sourceMappingURL=partition.js.map","import { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map","import { Subject } from '../Subject';\nimport { multicast } from './multicast';\nexport function publish(selector) {\n return selector ?\n multicast(function () { return new Subject(); }, selector) :\n multicast(new Subject());\n}\n//# sourceMappingURL=publish.js.map","import { BehaviorSubject } from '../BehaviorSubject';\nimport { multicast } from './multicast';\nexport function publishBehavior(value) {\n return function (source) { return multicast(new BehaviorSubject(value))(source); };\n}\n//# sourceMappingURL=publishBehavior.js.map","import { AsyncSubject } from '../AsyncSubject';\nimport { multicast } from './multicast';\nexport function publishLast() {\n return function (source) { return multicast(new AsyncSubject())(source); };\n}\n//# sourceMappingURL=publishLast.js.map","import { ReplaySubject } from '../ReplaySubject';\nimport { multicast } from './multicast';\nexport function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) {\n if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') {\n scheduler = selectorOrScheduler;\n }\n var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined;\n var subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n return function (source) { return multicast(function () { return subject; }, selector)(source); };\n}\n//# sourceMappingURL=publishReplay.js.map","import { isArray } from '../util/isArray';\nimport { race as raceStatic } from '../observable/race';\nexport function race() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function raceOperatorFunction(source) {\n if (observables.length === 1 && isArray(observables[0])) {\n observables = observables[0];\n }\n return source.lift.call(raceStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=race.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { empty } from '../observable/empty';\nexport function repeat(count) {\n if (count === void 0) { count = -1; }\n return function (source) {\n if (count === 0) {\n return empty();\n }\n else if (count < 0) {\n return source.lift(new RepeatOperator(-1, source));\n }\n else {\n return source.lift(new RepeatOperator(count - 1, source));\n }\n };\n}\nvar RepeatOperator = (function () {\n function RepeatOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RepeatOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source));\n };\n return RepeatOperator;\n}());\nvar RepeatSubscriber = (function (_super) {\n tslib_1.__extends(RepeatSubscriber, _super);\n function RepeatSubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RepeatSubscriber.prototype.complete = function () {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.complete.call(this);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RepeatSubscriber;\n}(Subscriber));\n//# sourceMappingURL=repeat.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function repeatWhen(notifier) {\n return function (source) { return source.lift(new RepeatWhenOperator(notifier)); };\n}\nvar RepeatWhenOperator = (function () {\n function RepeatWhenOperator(notifier) {\n this.notifier = notifier;\n }\n RepeatWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source));\n };\n return RepeatWhenOperator;\n}());\nvar RepeatWhenSubscriber = (function (_super) {\n tslib_1.__extends(RepeatWhenSubscriber, _super);\n function RepeatWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n _this.sourceIsBeingSubscribedTo = true;\n return _this;\n }\n RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.sourceIsBeingSubscribedTo = true;\n this.source.subscribe(this);\n };\n RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) {\n if (this.sourceIsBeingSubscribedTo === false) {\n return _super.prototype.complete.call(this);\n }\n };\n RepeatWhenSubscriber.prototype.complete = function () {\n this.sourceIsBeingSubscribedTo = false;\n if (!this.isStopped) {\n if (!this.retries) {\n this.subscribeToRetries();\n }\n if (!this.retriesSubscription || this.retriesSubscription.closed) {\n return _super.prototype.complete.call(this);\n }\n this._unsubscribeAndRecycle();\n this.notifications.next();\n }\n };\n RepeatWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription;\n if (notifications) {\n notifications.unsubscribe();\n this.notifications = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n _super.prototype._unsubscribeAndRecycle.call(this);\n this._unsubscribe = _unsubscribe;\n return this;\n };\n RepeatWhenSubscriber.prototype.subscribeToRetries = function () {\n this.notifications = new Subject();\n var retries = tryCatch(this.notifier)(this.notifications);\n if (retries === errorObject) {\n return _super.prototype.complete.call(this);\n }\n this.retries = retries;\n this.retriesSubscription = subscribeToResult(this, retries);\n };\n return RepeatWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=repeatWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function retry(count) {\n if (count === void 0) { count = -1; }\n return function (source) { return source.lift(new RetryOperator(count, source)); };\n}\nvar RetryOperator = (function () {\n function RetryOperator(count, source) {\n this.count = count;\n this.source = source;\n }\n RetryOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source));\n };\n return RetryOperator;\n}());\nvar RetrySubscriber = (function (_super) {\n tslib_1.__extends(RetrySubscriber, _super);\n function RetrySubscriber(destination, count, source) {\n var _this = _super.call(this, destination) || this;\n _this.count = count;\n _this.source = source;\n return _this;\n }\n RetrySubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var _a = this, source = _a.source, count = _a.count;\n if (count === 0) {\n return _super.prototype.error.call(this, err);\n }\n else if (count > -1) {\n this.count = count - 1;\n }\n source.subscribe(this._unsubscribeAndRecycle());\n }\n };\n return RetrySubscriber;\n}(Subscriber));\n//# sourceMappingURL=retry.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function retryWhen(notifier) {\n return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); };\n}\nvar RetryWhenOperator = (function () {\n function RetryWhenOperator(notifier, source) {\n this.notifier = notifier;\n this.source = source;\n }\n RetryWhenOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source));\n };\n return RetryWhenOperator;\n}());\nvar RetryWhenSubscriber = (function (_super) {\n tslib_1.__extends(RetryWhenSubscriber, _super);\n function RetryWhenSubscriber(destination, notifier, source) {\n var _this = _super.call(this, destination) || this;\n _this.notifier = notifier;\n _this.source = source;\n return _this;\n }\n RetryWhenSubscriber.prototype.error = function (err) {\n if (!this.isStopped) {\n var errors = this.errors;\n var retries = this.retries;\n var retriesSubscription = this.retriesSubscription;\n if (!retries) {\n errors = new Subject();\n retries = tryCatch(this.notifier)(errors);\n if (retries === errorObject) {\n return _super.prototype.error.call(this, errorObject.e);\n }\n retriesSubscription = subscribeToResult(this, retries);\n }\n else {\n this.errors = null;\n this.retriesSubscription = null;\n }\n this._unsubscribeAndRecycle();\n this.errors = errors;\n this.retries = retries;\n this.retriesSubscription = retriesSubscription;\n errors.next(err);\n }\n };\n RetryWhenSubscriber.prototype._unsubscribe = function () {\n var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription;\n if (errors) {\n errors.unsubscribe();\n this.errors = null;\n }\n if (retriesSubscription) {\n retriesSubscription.unsubscribe();\n this.retriesSubscription = null;\n }\n this.retries = null;\n };\n RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n var _unsubscribe = this._unsubscribe;\n this._unsubscribe = null;\n this._unsubscribeAndRecycle();\n this._unsubscribe = _unsubscribe;\n this.source.subscribe(this);\n };\n return RetryWhenSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=retryWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function sample(notifier) {\n return function (source) { return source.lift(new SampleOperator(notifier)); };\n}\nvar SampleOperator = (function () {\n function SampleOperator(notifier) {\n this.notifier = notifier;\n }\n SampleOperator.prototype.call = function (subscriber, source) {\n var sampleSubscriber = new SampleSubscriber(subscriber);\n var subscription = source.subscribe(sampleSubscriber);\n subscription.add(subscribeToResult(sampleSubscriber, this.notifier));\n return subscription;\n };\n return SampleOperator;\n}());\nvar SampleSubscriber = (function (_super) {\n tslib_1.__extends(SampleSubscriber, _super);\n function SampleSubscriber() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.hasValue = false;\n return _this;\n }\n SampleSubscriber.prototype._next = function (value) {\n this.value = value;\n this.hasValue = true;\n };\n SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.emitValue();\n };\n SampleSubscriber.prototype.notifyComplete = function () {\n this.emitValue();\n };\n SampleSubscriber.prototype.emitValue = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.value);\n }\n };\n return SampleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=sample.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nexport function sampleTime(period, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); };\n}\nvar SampleTimeOperator = (function () {\n function SampleTimeOperator(period, scheduler) {\n this.period = period;\n this.scheduler = scheduler;\n }\n SampleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler));\n };\n return SampleTimeOperator;\n}());\nvar SampleTimeSubscriber = (function (_super) {\n tslib_1.__extends(SampleTimeSubscriber, _super);\n function SampleTimeSubscriber(destination, period, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.period = period;\n _this.scheduler = scheduler;\n _this.hasValue = false;\n _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period }));\n return _this;\n }\n SampleTimeSubscriber.prototype._next = function (value) {\n this.lastValue = value;\n this.hasValue = true;\n };\n SampleTimeSubscriber.prototype.notifyNext = function () {\n if (this.hasValue) {\n this.hasValue = false;\n this.destination.next(this.lastValue);\n }\n };\n return SampleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNotification(state) {\n var subscriber = state.subscriber, period = state.period;\n subscriber.notifyNext();\n this.schedule(state, period);\n}\n//# sourceMappingURL=sampleTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nexport function sequenceEqual(compareTo, comparor) {\n return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparor)); };\n}\nvar SequenceEqualOperator = (function () {\n function SequenceEqualOperator(compareTo, comparor) {\n this.compareTo = compareTo;\n this.comparor = comparor;\n }\n SequenceEqualOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparor));\n };\n return SequenceEqualOperator;\n}());\nexport { SequenceEqualOperator };\nvar SequenceEqualSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualSubscriber, _super);\n function SequenceEqualSubscriber(destination, compareTo, comparor) {\n var _this = _super.call(this, destination) || this;\n _this.compareTo = compareTo;\n _this.comparor = comparor;\n _this._a = [];\n _this._b = [];\n _this._oneComplete = false;\n _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this)));\n return _this;\n }\n SequenceEqualSubscriber.prototype._next = function (value) {\n if (this._oneComplete && this._b.length === 0) {\n this.emit(false);\n }\n else {\n this._a.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype._complete = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n this.unsubscribe();\n };\n SequenceEqualSubscriber.prototype.checkValues = function () {\n var _c = this, _a = _c._a, _b = _c._b, comparor = _c.comparor;\n while (_a.length > 0 && _b.length > 0) {\n var a = _a.shift();\n var b = _b.shift();\n var areEqual = false;\n if (comparor) {\n areEqual = tryCatch(comparor)(a, b);\n if (areEqual === errorObject) {\n this.destination.error(errorObject.e);\n }\n }\n else {\n areEqual = a === b;\n }\n if (!areEqual) {\n this.emit(false);\n }\n }\n };\n SequenceEqualSubscriber.prototype.emit = function (value) {\n var destination = this.destination;\n destination.next(value);\n destination.complete();\n };\n SequenceEqualSubscriber.prototype.nextB = function (value) {\n if (this._oneComplete && this._a.length === 0) {\n this.emit(false);\n }\n else {\n this._b.push(value);\n this.checkValues();\n }\n };\n SequenceEqualSubscriber.prototype.completeB = function () {\n if (this._oneComplete) {\n this.emit(this._a.length === 0 && this._b.length === 0);\n }\n else {\n this._oneComplete = true;\n }\n };\n return SequenceEqualSubscriber;\n}(Subscriber));\nexport { SequenceEqualSubscriber };\nvar SequenceEqualCompareToSubscriber = (function (_super) {\n tslib_1.__extends(SequenceEqualCompareToSubscriber, _super);\n function SequenceEqualCompareToSubscriber(destination, parent) {\n var _this = _super.call(this, destination) || this;\n _this.parent = parent;\n return _this;\n }\n SequenceEqualCompareToSubscriber.prototype._next = function (value) {\n this.parent.nextB(value);\n };\n SequenceEqualCompareToSubscriber.prototype._error = function (err) {\n this.parent.error(err);\n this.unsubscribe();\n };\n SequenceEqualCompareToSubscriber.prototype._complete = function () {\n this.parent.completeB();\n this.unsubscribe();\n };\n return SequenceEqualCompareToSubscriber;\n}(Subscriber));\n//# sourceMappingURL=sequenceEqual.js.map","import { multicast } from './multicast';\nimport { refCount } from './refCount';\nimport { Subject } from '../Subject';\nfunction shareSubjectFactory() {\n return new Subject();\n}\nexport function share() {\n return function (source) { return refCount()(multicast(shareSubjectFactory)(source)); };\n}\n//# sourceMappingURL=share.js.map","import { ReplaySubject } from '../ReplaySubject';\nexport function shareReplay(bufferSize, windowTime, scheduler) {\n if (bufferSize === void 0) { bufferSize = Number.POSITIVE_INFINITY; }\n if (windowTime === void 0) { windowTime = Number.POSITIVE_INFINITY; }\n return function (source) { return source.lift(shareReplayOperator(bufferSize, windowTime, scheduler)); };\n}\nfunction shareReplayOperator(bufferSize, windowTime, scheduler) {\n var subject;\n var refCount = 0;\n var subscription;\n var hasError = false;\n var isComplete = false;\n return function shareReplayOperation(source) {\n refCount++;\n if (!subject || hasError) {\n hasError = false;\n subject = new ReplaySubject(bufferSize, windowTime, scheduler);\n subscription = source.subscribe({\n next: function (value) { subject.next(value); },\n error: function (err) {\n hasError = true;\n subject.error(err);\n },\n complete: function () {\n isComplete = true;\n subject.complete();\n },\n });\n }\n var innerSub = subject.subscribe(this);\n return function () {\n refCount--;\n innerSub.unsubscribe();\n if (subscription && refCount === 0 && isComplete) {\n subscription.unsubscribe();\n }\n };\n };\n}\n//# sourceMappingURL=shareReplay.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { EmptyError } from '../util/EmptyError';\nexport function single(predicate) {\n return function (source) { return source.lift(new SingleOperator(predicate, source)); };\n}\nvar SingleOperator = (function () {\n function SingleOperator(predicate, source) {\n this.predicate = predicate;\n this.source = source;\n }\n SingleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source));\n };\n return SingleOperator;\n}());\nvar SingleSubscriber = (function (_super) {\n tslib_1.__extends(SingleSubscriber, _super);\n function SingleSubscriber(destination, predicate, source) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.source = source;\n _this.seenValue = false;\n _this.index = 0;\n return _this;\n }\n SingleSubscriber.prototype.applySingleValue = function (value) {\n if (this.seenValue) {\n this.destination.error('Sequence contains more than one element');\n }\n else {\n this.seenValue = true;\n this.singleValue = value;\n }\n };\n SingleSubscriber.prototype._next = function (value) {\n var index = this.index++;\n if (this.predicate) {\n this.tryNext(value, index);\n }\n else {\n this.applySingleValue(value);\n }\n };\n SingleSubscriber.prototype.tryNext = function (value, index) {\n try {\n if (this.predicate(value, index, this.source)) {\n this.applySingleValue(value);\n }\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n SingleSubscriber.prototype._complete = function () {\n var destination = this.destination;\n if (this.index > 0) {\n destination.next(this.seenValue ? this.singleValue : undefined);\n destination.complete();\n }\n else {\n destination.error(new EmptyError);\n }\n };\n return SingleSubscriber;\n}(Subscriber));\n//# sourceMappingURL=single.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skip(count) {\n return function (source) { return source.lift(new SkipOperator(count)); };\n}\nvar SkipOperator = (function () {\n function SkipOperator(total) {\n this.total = total;\n }\n SkipOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipSubscriber(subscriber, this.total));\n };\n return SkipOperator;\n}());\nvar SkipSubscriber = (function (_super) {\n tslib_1.__extends(SkipSubscriber, _super);\n function SkipSubscriber(destination, total) {\n var _this = _super.call(this, destination) || this;\n _this.total = total;\n _this.count = 0;\n return _this;\n }\n SkipSubscriber.prototype._next = function (x) {\n if (++this.count > this.total) {\n this.destination.next(x);\n }\n };\n return SkipSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skip.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { ArgumentOutOfRangeError } from '../util/ArgumentOutOfRangeError';\nexport function skipLast(count) {\n return function (source) { return source.lift(new SkipLastOperator(count)); };\n}\nvar SkipLastOperator = (function () {\n function SkipLastOperator(_skipCount) {\n this._skipCount = _skipCount;\n if (this._skipCount < 0) {\n throw new ArgumentOutOfRangeError;\n }\n }\n SkipLastOperator.prototype.call = function (subscriber, source) {\n if (this._skipCount === 0) {\n return source.subscribe(new Subscriber(subscriber));\n }\n else {\n return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount));\n }\n };\n return SkipLastOperator;\n}());\nvar SkipLastSubscriber = (function (_super) {\n tslib_1.__extends(SkipLastSubscriber, _super);\n function SkipLastSubscriber(destination, _skipCount) {\n var _this = _super.call(this, destination) || this;\n _this._skipCount = _skipCount;\n _this._count = 0;\n _this._ring = new Array(_skipCount);\n return _this;\n }\n SkipLastSubscriber.prototype._next = function (value) {\n var skipCount = this._skipCount;\n var count = this._count++;\n if (count < skipCount) {\n this._ring[count] = value;\n }\n else {\n var currentIndex = count % skipCount;\n var ring = this._ring;\n var oldValue = ring[currentIndex];\n ring[currentIndex] = value;\n this.destination.next(oldValue);\n }\n };\n return SkipLastSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipLast.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function skipUntil(notifier) {\n return function (source) { return source.lift(new SkipUntilOperator(notifier)); };\n}\nvar SkipUntilOperator = (function () {\n function SkipUntilOperator(notifier) {\n this.notifier = notifier;\n }\n SkipUntilOperator.prototype.call = function (destination, source) {\n return source.subscribe(new SkipUntilSubscriber(destination, this.notifier));\n };\n return SkipUntilOperator;\n}());\nvar SkipUntilSubscriber = (function (_super) {\n tslib_1.__extends(SkipUntilSubscriber, _super);\n function SkipUntilSubscriber(destination, notifier) {\n var _this = _super.call(this, destination) || this;\n _this.hasValue = false;\n var innerSubscriber = new InnerSubscriber(_this, undefined, undefined);\n _this.add(innerSubscriber);\n _this.innerSubscription = innerSubscriber;\n subscribeToResult(_this, notifier, undefined, undefined, innerSubscriber);\n return _this;\n }\n SkipUntilSubscriber.prototype._next = function (value) {\n if (this.hasValue) {\n _super.prototype._next.call(this, value);\n }\n };\n SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.hasValue = true;\n if (this.innerSubscription) {\n this.innerSubscription.unsubscribe();\n }\n };\n SkipUntilSubscriber.prototype.notifyComplete = function () {\n };\n return SkipUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=skipUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function skipWhile(predicate) {\n return function (source) { return source.lift(new SkipWhileOperator(predicate)); };\n}\nvar SkipWhileOperator = (function () {\n function SkipWhileOperator(predicate) {\n this.predicate = predicate;\n }\n SkipWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate));\n };\n return SkipWhileOperator;\n}());\nvar SkipWhileSubscriber = (function (_super) {\n tslib_1.__extends(SkipWhileSubscriber, _super);\n function SkipWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.skipping = true;\n _this.index = 0;\n return _this;\n }\n SkipWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n if (this.skipping) {\n this.tryCallPredicate(value);\n }\n if (!this.skipping) {\n destination.next(value);\n }\n };\n SkipWhileSubscriber.prototype.tryCallPredicate = function (value) {\n try {\n var result = this.predicate(value, this.index++);\n this.skipping = Boolean(result);\n }\n catch (err) {\n this.destination.error(err);\n }\n };\n return SkipWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=skipWhile.js.map","import { fromArray } from '../observable/fromArray';\nimport { scalar } from '../observable/scalar';\nimport { empty } from '../observable/empty';\nimport { concat as concatStatic } from '../observable/concat';\nimport { isScheduler } from '../util/isScheduler';\nexport function startWith() {\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n return function (source) {\n var scheduler = array[array.length - 1];\n if (isScheduler(scheduler)) {\n array.pop();\n }\n else {\n scheduler = null;\n }\n var len = array.length;\n if (len === 1 && !scheduler) {\n return concatStatic(scalar(array[0]), source);\n }\n else if (len > 0) {\n return concatStatic(fromArray(array, scheduler), source);\n }\n else {\n return concatStatic(empty(scheduler), source);\n }\n };\n}\n//# sourceMappingURL=startWith.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { asap } from '../scheduler/asap';\nimport { isNumeric } from '../util/isNumeric';\nvar SubscribeOnObservable = (function (_super) {\n tslib_1.__extends(SubscribeOnObservable, _super);\n function SubscribeOnObservable(source, delayTime, scheduler) {\n if (delayTime === void 0) { delayTime = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n var _this = _super.call(this) || this;\n _this.source = source;\n _this.delayTime = delayTime;\n _this.scheduler = scheduler;\n if (!isNumeric(delayTime) || delayTime < 0) {\n _this.delayTime = 0;\n }\n if (!scheduler || typeof scheduler.schedule !== 'function') {\n _this.scheduler = asap;\n }\n return _this;\n }\n SubscribeOnObservable.create = function (source, delay, scheduler) {\n if (delay === void 0) { delay = 0; }\n if (scheduler === void 0) { scheduler = asap; }\n return new SubscribeOnObservable(source, delay, scheduler);\n };\n SubscribeOnObservable.dispatch = function (arg) {\n var source = arg.source, subscriber = arg.subscriber;\n return this.add(source.subscribe(subscriber));\n };\n SubscribeOnObservable.prototype._subscribe = function (subscriber) {\n var delay = this.delayTime;\n var source = this.source;\n var scheduler = this.scheduler;\n return scheduler.schedule(SubscribeOnObservable.dispatch, delay, {\n source: source, subscriber: subscriber\n });\n };\n return SubscribeOnObservable;\n}(Observable));\nexport { SubscribeOnObservable };\n//# sourceMappingURL=SubscribeOnObservable.js.map","import { SubscribeOnObservable } from '../observable/SubscribeOnObservable';\nexport function subscribeOn(scheduler, delay) {\n if (delay === void 0) { delay = 0; }\n return function subscribeOnOperatorFunction(source) {\n return source.lift(new SubscribeOnOperator(scheduler, delay));\n };\n}\nvar SubscribeOnOperator = (function () {\n function SubscribeOnOperator(scheduler, delay) {\n this.scheduler = scheduler;\n this.delay = delay;\n }\n SubscribeOnOperator.prototype.call = function (subscriber, source) {\n return new SubscribeOnObservable(source, this.delay, this.scheduler).subscribe(subscriber);\n };\n return SubscribeOnOperator;\n}());\n//# sourceMappingURL=subscribeOn.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { InnerSubscriber } from '../InnerSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nimport { map } from './map';\nimport { from } from '../observable/from';\nexport function switchMap(project, resultSelector) {\n if (typeof resultSelector === 'function') {\n return function (source) { return source.pipe(switchMap(function (a, i) { return from(project(a, i)).pipe(map(function (b, ii) { return resultSelector(a, b, i, ii); })); })); };\n }\n return function (source) { return source.lift(new SwitchMapOperator(project)); };\n}\nvar SwitchMapOperator = (function () {\n function SwitchMapOperator(project) {\n this.project = project;\n }\n SwitchMapOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new SwitchMapSubscriber(subscriber, this.project));\n };\n return SwitchMapOperator;\n}());\nvar SwitchMapSubscriber = (function (_super) {\n tslib_1.__extends(SwitchMapSubscriber, _super);\n function SwitchMapSubscriber(destination, project) {\n var _this = _super.call(this, destination) || this;\n _this.project = project;\n _this.index = 0;\n return _this;\n }\n SwitchMapSubscriber.prototype._next = function (value) {\n var result;\n var index = this.index++;\n try {\n result = this.project(value, index);\n }\n catch (error) {\n this.destination.error(error);\n return;\n }\n this._innerSub(result, value, index);\n };\n SwitchMapSubscriber.prototype._innerSub = function (result, value, index) {\n var innerSubscription = this.innerSubscription;\n if (innerSubscription) {\n innerSubscription.unsubscribe();\n }\n var innerSubscriber = new InnerSubscriber(this, undefined, undefined);\n var destination = this.destination;\n destination.add(innerSubscriber);\n this.innerSubscription = subscribeToResult(this, result, value, index, innerSubscriber);\n };\n SwitchMapSubscriber.prototype._complete = function () {\n var innerSubscription = this.innerSubscription;\n if (!innerSubscription || innerSubscription.closed) {\n _super.prototype._complete.call(this);\n }\n this.unsubscribe();\n };\n SwitchMapSubscriber.prototype._unsubscribe = function () {\n this.innerSubscription = null;\n };\n SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) {\n var destination = this.destination;\n destination.remove(innerSub);\n this.innerSubscription = null;\n if (this.isStopped) {\n _super.prototype._complete.call(this);\n }\n };\n SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.destination.next(innerValue);\n };\n return SwitchMapSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=switchMap.js.map","import { switchMap } from './switchMap';\nimport { identity } from '../util/identity';\nexport function switchAll() {\n return switchMap(identity);\n}\n//# sourceMappingURL=switchAll.js.map","import { switchMap } from './switchMap';\nexport function switchMapTo(innerObservable, resultSelector) {\n return resultSelector ? switchMap(function () { return innerObservable; }, resultSelector) : switchMap(function () { return innerObservable; });\n}\n//# sourceMappingURL=switchMapTo.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function takeUntil(notifier) {\n return function (source) { return source.lift(new TakeUntilOperator(notifier)); };\n}\nvar TakeUntilOperator = (function () {\n function TakeUntilOperator(notifier) {\n this.notifier = notifier;\n }\n TakeUntilOperator.prototype.call = function (subscriber, source) {\n var takeUntilSubscriber = new TakeUntilSubscriber(subscriber);\n var notifierSubscription = subscribeToResult(takeUntilSubscriber, this.notifier);\n if (notifierSubscription && !takeUntilSubscriber.seenValue) {\n takeUntilSubscriber.add(notifierSubscription);\n return source.subscribe(takeUntilSubscriber);\n }\n return takeUntilSubscriber;\n };\n return TakeUntilOperator;\n}());\nvar TakeUntilSubscriber = (function (_super) {\n tslib_1.__extends(TakeUntilSubscriber, _super);\n function TakeUntilSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.seenValue = false;\n return _this;\n }\n TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.seenValue = true;\n this.complete();\n };\n TakeUntilSubscriber.prototype.notifyComplete = function () {\n };\n return TakeUntilSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=takeUntil.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate) {\n return function (source) { return source.lift(new TakeWhileOperator(predicate)); };\n}\nvar TakeWhileOperator = (function () {\n function TakeWhileOperator(predicate) {\n this.predicate = predicate;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport var defaultThrottleConfig = {\n leading: true,\n trailing: false\n};\nexport function throttle(durationSelector, config) {\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); };\n}\nvar ThrottleOperator = (function () {\n function ThrottleOperator(durationSelector, leading, trailing) {\n this.durationSelector = durationSelector;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing));\n };\n return ThrottleOperator;\n}());\nvar ThrottleSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleSubscriber, _super);\n function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.durationSelector = durationSelector;\n _this._leading = _leading;\n _this._trailing = _trailing;\n _this._hasValue = false;\n return _this;\n }\n ThrottleSubscriber.prototype._next = function (value) {\n this._hasValue = true;\n this._sendValue = value;\n if (!this._throttled) {\n if (this._leading) {\n this.send();\n }\n else {\n this.throttle(value);\n }\n }\n };\n ThrottleSubscriber.prototype.send = function () {\n var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue;\n if (_hasValue) {\n this.destination.next(_sendValue);\n this.throttle(_sendValue);\n }\n this._hasValue = false;\n this._sendValue = null;\n };\n ThrottleSubscriber.prototype.throttle = function (value) {\n var duration = this.tryDurationSelector(value);\n if (duration) {\n this.add(this._throttled = subscribeToResult(this, duration));\n }\n };\n ThrottleSubscriber.prototype.tryDurationSelector = function (value) {\n try {\n return this.durationSelector(value);\n }\n catch (err) {\n this.destination.error(err);\n return null;\n }\n };\n ThrottleSubscriber.prototype.throttlingDone = function () {\n var _a = this, _throttled = _a._throttled, _trailing = _a._trailing;\n if (_throttled) {\n _throttled.unsubscribe();\n }\n this._throttled = null;\n if (_trailing) {\n this.send();\n }\n };\n ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.throttlingDone();\n };\n ThrottleSubscriber.prototype.notifyComplete = function () {\n this.throttlingDone();\n };\n return ThrottleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=throttle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { async } from '../scheduler/async';\nimport { defaultThrottleConfig } from './throttle';\nexport function throttleTime(duration, scheduler, config) {\n if (scheduler === void 0) { scheduler = async; }\n if (config === void 0) { config = defaultThrottleConfig; }\n return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); };\n}\nvar ThrottleTimeOperator = (function () {\n function ThrottleTimeOperator(duration, scheduler, leading, trailing) {\n this.duration = duration;\n this.scheduler = scheduler;\n this.leading = leading;\n this.trailing = trailing;\n }\n ThrottleTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing));\n };\n return ThrottleTimeOperator;\n}());\nvar ThrottleTimeSubscriber = (function (_super) {\n tslib_1.__extends(ThrottleTimeSubscriber, _super);\n function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) {\n var _this = _super.call(this, destination) || this;\n _this.duration = duration;\n _this.scheduler = scheduler;\n _this.leading = leading;\n _this.trailing = trailing;\n _this._hasTrailingValue = false;\n _this._trailingValue = null;\n return _this;\n }\n ThrottleTimeSubscriber.prototype._next = function (value) {\n if (this.throttled) {\n if (this.trailing) {\n this._trailingValue = value;\n this._hasTrailingValue = true;\n }\n }\n else {\n this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this }));\n if (this.leading) {\n this.destination.next(value);\n }\n }\n };\n ThrottleTimeSubscriber.prototype._complete = function () {\n if (this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this.destination.complete();\n }\n else {\n this.destination.complete();\n }\n };\n ThrottleTimeSubscriber.prototype.clearThrottle = function () {\n var throttled = this.throttled;\n if (throttled) {\n if (this.trailing && this._hasTrailingValue) {\n this.destination.next(this._trailingValue);\n this._trailingValue = null;\n this._hasTrailingValue = false;\n }\n throttled.unsubscribe();\n this.remove(throttled);\n this.throttled = null;\n }\n };\n return ThrottleTimeSubscriber;\n}(Subscriber));\nfunction dispatchNext(arg) {\n var subscriber = arg.subscriber;\n subscriber.clearThrottle();\n}\n//# sourceMappingURL=throttleTime.js.map","import { async } from '../scheduler/async';\nimport { scan } from './scan';\nimport { defer } from '../observable/defer';\nimport { map } from './map';\nexport function timeInterval(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) { return defer(function () {\n return source.pipe(scan(function (_a, value) {\n var current = _a.current;\n return ({ value: value, current: scheduler.now(), last: current });\n }, { current: scheduler.now(), value: undefined, last: undefined }), map(function (_a) {\n var current = _a.current, last = _a.last, value = _a.value;\n return new TimeInterval(value, current - last);\n }));\n }); };\n}\nvar TimeInterval = (function () {\n function TimeInterval(value, interval) {\n this.value = value;\n this.interval = interval;\n }\n return TimeInterval;\n}());\nexport { TimeInterval };\n//# sourceMappingURL=timeInterval.js.map","import * as tslib_1 from \"tslib\";\nimport { async } from '../scheduler/async';\nimport { isDate } from '../util/isDate';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function timeoutWith(due, withObservable, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return function (source) {\n var absoluteTimeout = isDate(due);\n var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due);\n return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler));\n };\n}\nvar TimeoutWithOperator = (function () {\n function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) {\n this.waitFor = waitFor;\n this.absoluteTimeout = absoluteTimeout;\n this.withObservable = withObservable;\n this.scheduler = scheduler;\n }\n TimeoutWithOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler));\n };\n return TimeoutWithOperator;\n}());\nvar TimeoutWithSubscriber = (function (_super) {\n tslib_1.__extends(TimeoutWithSubscriber, _super);\n function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.absoluteTimeout = absoluteTimeout;\n _this.waitFor = waitFor;\n _this.withObservable = withObservable;\n _this.scheduler = scheduler;\n _this.action = null;\n _this.scheduleTimeout();\n return _this;\n }\n TimeoutWithSubscriber.dispatchTimeout = function (subscriber) {\n var withObservable = subscriber.withObservable;\n subscriber._unsubscribeAndRecycle();\n subscriber.add(subscribeToResult(subscriber, withObservable));\n };\n TimeoutWithSubscriber.prototype.scheduleTimeout = function () {\n var action = this.action;\n if (action) {\n this.action = action.schedule(this, this.waitFor);\n }\n else {\n this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this));\n }\n };\n TimeoutWithSubscriber.prototype._next = function (value) {\n if (!this.absoluteTimeout) {\n this.scheduleTimeout();\n }\n _super.prototype._next.call(this, value);\n };\n TimeoutWithSubscriber.prototype._unsubscribe = function () {\n this.action = null;\n this.scheduler = null;\n this.withObservable = null;\n };\n return TimeoutWithSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=timeoutWith.js.map","import { async } from '../scheduler/async';\nimport { TimeoutError } from '../util/TimeoutError';\nimport { timeoutWith } from './timeoutWith';\nimport { throwError } from '../observable/throwError';\nexport function timeout(due, scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return timeoutWith(due, throwError(new TimeoutError()), scheduler);\n}\n//# sourceMappingURL=timeout.js.map","import { async } from '../scheduler/async';\nimport { map } from './map';\nexport function timestamp(scheduler) {\n if (scheduler === void 0) { scheduler = async; }\n return map(function (value) { return new Timestamp(value, scheduler.now()); });\n}\nvar Timestamp = (function () {\n function Timestamp(value, timestamp) {\n this.value = value;\n this.timestamp = timestamp;\n }\n return Timestamp;\n}());\nexport { Timestamp };\n//# sourceMappingURL=timestamp.js.map","import { reduce } from './reduce';\nfunction toArrayReducer(arr, item, index) {\n if (index === 0) {\n return [item];\n }\n arr.push(item);\n return arr;\n}\nexport function toArray() {\n return reduce(toArrayReducer, []);\n}\n//# sourceMappingURL=toArray.js.map","import * as tslib_1 from \"tslib\";\nimport { 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}\nvar WindowOperator = (function () {\n function WindowOperator(windowBoundaries) {\n this.windowBoundaries = windowBoundaries;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n var windowSubscriber = new WindowSubscriber(subscriber);\n var sourceSubscription = source.subscribe(windowSubscriber);\n if (!sourceSubscription.closed) {\n windowSubscriber.add(subscribeToResult(windowSubscriber, this.windowBoundaries));\n }\n return sourceSubscription;\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination) {\n var _this = _super.call(this, destination) || this;\n _this.window = new Subject();\n destination.next(_this.window);\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow();\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this._complete();\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n };\n WindowSubscriber.prototype._unsubscribe = function () {\n this.window = null;\n };\n WindowSubscriber.prototype.openWindow = function () {\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var destination = this.destination;\n var newWindow = this.window = new Subject();\n destination.next(newWindow);\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=window.js.map","import * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nimport { Subject } from '../Subject';\nexport function windowCount(windowSize, startWindowEvery) {\n if (startWindowEvery === void 0) { startWindowEvery = 0; }\n return function windowCountOperatorFunction(source) {\n return source.lift(new WindowCountOperator(windowSize, startWindowEvery));\n };\n}\nvar WindowCountOperator = (function () {\n function WindowCountOperator(windowSize, startWindowEvery) {\n this.windowSize = windowSize;\n this.startWindowEvery = startWindowEvery;\n }\n WindowCountOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery));\n };\n return WindowCountOperator;\n}());\nvar WindowCountSubscriber = (function (_super) {\n tslib_1.__extends(WindowCountSubscriber, _super);\n function WindowCountSubscriber(destination, windowSize, startWindowEvery) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowSize = windowSize;\n _this.startWindowEvery = startWindowEvery;\n _this.windows = [new Subject()];\n _this.count = 0;\n destination.next(_this.windows[0]);\n return _this;\n }\n WindowCountSubscriber.prototype._next = function (value) {\n var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize;\n var destination = this.destination;\n var windowSize = this.windowSize;\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len && !this.closed; i++) {\n windows[i].next(value);\n }\n var c = this.count - windowSize + 1;\n if (c >= 0 && c % startWindowEvery === 0 && !this.closed) {\n windows.shift().complete();\n }\n if (++this.count % startWindowEvery === 0 && !this.closed) {\n var window_1 = new Subject();\n windows.push(window_1);\n destination.next(window_1);\n }\n };\n WindowCountSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().error(err);\n }\n }\n this.destination.error(err);\n };\n WindowCountSubscriber.prototype._complete = function () {\n var windows = this.windows;\n if (windows) {\n while (windows.length > 0 && !this.closed) {\n windows.shift().complete();\n }\n }\n this.destination.complete();\n };\n WindowCountSubscriber.prototype._unsubscribe = function () {\n this.count = 0;\n this.windows = null;\n };\n return WindowCountSubscriber;\n}(Subscriber));\n//# sourceMappingURL=windowCount.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { async } from '../scheduler/async';\nimport { Subscriber } from '../Subscriber';\nimport { isNumeric } from '../util/isNumeric';\nimport { isScheduler } from '../util/isScheduler';\nexport function windowTime(windowTimeSpan) {\n var scheduler = async;\n var windowCreationInterval = null;\n var maxWindowSize = Number.POSITIVE_INFINITY;\n if (isScheduler(arguments[3])) {\n scheduler = arguments[3];\n }\n if (isScheduler(arguments[2])) {\n scheduler = arguments[2];\n }\n else if (isNumeric(arguments[2])) {\n maxWindowSize = arguments[2];\n }\n if (isScheduler(arguments[1])) {\n scheduler = arguments[1];\n }\n else if (isNumeric(arguments[1])) {\n windowCreationInterval = arguments[1];\n }\n return function windowTimeOperatorFunction(source) {\n return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler));\n };\n}\nvar WindowTimeOperator = (function () {\n function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n this.windowTimeSpan = windowTimeSpan;\n this.windowCreationInterval = windowCreationInterval;\n this.maxWindowSize = maxWindowSize;\n this.scheduler = scheduler;\n }\n WindowTimeOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler));\n };\n return WindowTimeOperator;\n}());\nvar CountedSubject = (function (_super) {\n tslib_1.__extends(CountedSubject, _super);\n function CountedSubject() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._numberOfNextedValues = 0;\n return _this;\n }\n CountedSubject.prototype.next = function (value) {\n this._numberOfNextedValues++;\n _super.prototype.next.call(this, value);\n };\n Object.defineProperty(CountedSubject.prototype, \"numberOfNextedValues\", {\n get: function () {\n return this._numberOfNextedValues;\n },\n enumerable: true,\n configurable: true\n });\n return CountedSubject;\n}(Subject));\nvar WindowTimeSubscriber = (function (_super) {\n tslib_1.__extends(WindowTimeSubscriber, _super);\n function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.windowTimeSpan = windowTimeSpan;\n _this.windowCreationInterval = windowCreationInterval;\n _this.maxWindowSize = maxWindowSize;\n _this.scheduler = scheduler;\n _this.windows = [];\n var window = _this.openWindow();\n if (windowCreationInterval !== null && windowCreationInterval >= 0) {\n var closeState = { subscriber: _this, window: window, context: null };\n var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler };\n _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState));\n _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState));\n }\n else {\n var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan };\n _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState));\n }\n return _this;\n }\n WindowTimeSubscriber.prototype._next = function (value) {\n var windows = this.windows;\n var len = windows.length;\n for (var i = 0; i < len; i++) {\n var window_1 = windows[i];\n if (!window_1.closed) {\n window_1.next(value);\n if (window_1.numberOfNextedValues >= this.maxWindowSize) {\n this.closeWindow(window_1);\n }\n }\n }\n };\n WindowTimeSubscriber.prototype._error = function (err) {\n var windows = this.windows;\n while (windows.length > 0) {\n windows.shift().error(err);\n }\n this.destination.error(err);\n };\n WindowTimeSubscriber.prototype._complete = function () {\n var windows = this.windows;\n while (windows.length > 0) {\n var window_2 = windows.shift();\n if (!window_2.closed) {\n window_2.complete();\n }\n }\n this.destination.complete();\n };\n WindowTimeSubscriber.prototype.openWindow = function () {\n var window = new CountedSubject();\n this.windows.push(window);\n var destination = this.destination;\n destination.next(window);\n return window;\n };\n WindowTimeSubscriber.prototype.closeWindow = function (window) {\n window.complete();\n var windows = this.windows;\n windows.splice(windows.indexOf(window), 1);\n };\n return WindowTimeSubscriber;\n}(Subscriber));\nfunction dispatchWindowTimeSpanOnly(state) {\n var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window;\n if (window) {\n subscriber.closeWindow(window);\n }\n state.window = subscriber.openWindow();\n this.schedule(state, windowTimeSpan);\n}\nfunction dispatchWindowCreation(state) {\n var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval;\n var window = subscriber.openWindow();\n var action = this;\n var context = { action: action, subscription: null };\n var timeSpanState = { subscriber: subscriber, window: window, context: context };\n context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState);\n action.add(context.subscription);\n action.schedule(state, windowCreationInterval);\n}\nfunction dispatchWindowClose(state) {\n var subscriber = state.subscriber, window = state.window, context = state.context;\n if (context && context.action && context.subscription) {\n context.action.remove(context.subscription);\n }\n subscriber.closeWindow(window);\n}\n//# sourceMappingURL=windowTime.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowToggle(openings, closingSelector) {\n return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); };\n}\nvar WindowToggleOperator = (function () {\n function WindowToggleOperator(openings, closingSelector) {\n this.openings = openings;\n this.closingSelector = closingSelector;\n }\n WindowToggleOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector));\n };\n return WindowToggleOperator;\n}());\nvar WindowToggleSubscriber = (function (_super) {\n tslib_1.__extends(WindowToggleSubscriber, _super);\n function WindowToggleSubscriber(destination, openings, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.openings = openings;\n _this.closingSelector = closingSelector;\n _this.contexts = [];\n _this.add(_this.openSubscription = subscribeToResult(_this, openings, openings));\n return _this;\n }\n WindowToggleSubscriber.prototype._next = function (value) {\n var contexts = this.contexts;\n if (contexts) {\n var len = contexts.length;\n for (var i = 0; i < len; i++) {\n contexts[i].window.next(value);\n }\n }\n };\n WindowToggleSubscriber.prototype._error = function (err) {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_1 = contexts[index];\n context_1.window.error(err);\n context_1.subscription.unsubscribe();\n }\n }\n _super.prototype._error.call(this, err);\n };\n WindowToggleSubscriber.prototype._complete = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_2 = contexts[index];\n context_2.window.complete();\n context_2.subscription.unsubscribe();\n }\n }\n _super.prototype._complete.call(this);\n };\n WindowToggleSubscriber.prototype._unsubscribe = function () {\n var contexts = this.contexts;\n this.contexts = null;\n if (contexts) {\n var len = contexts.length;\n var index = -1;\n while (++index < len) {\n var context_3 = contexts[index];\n context_3.window.unsubscribe();\n context_3.subscription.unsubscribe();\n }\n }\n };\n WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n if (outerValue === this.openings) {\n var closingSelector = this.closingSelector;\n var closingNotifier = tryCatch(closingSelector)(innerValue);\n if (closingNotifier === errorObject) {\n return this.error(errorObject.e);\n }\n else {\n var window_1 = new Subject();\n var subscription = new Subscription();\n var context_4 = { window: window_1, subscription: subscription };\n this.contexts.push(context_4);\n var innerSubscription = subscribeToResult(this, closingNotifier, context_4);\n if (innerSubscription.closed) {\n this.closeWindow(this.contexts.length - 1);\n }\n else {\n innerSubscription.context = context_4;\n subscription.add(innerSubscription);\n }\n this.destination.next(window_1);\n }\n }\n else {\n this.closeWindow(this.contexts.indexOf(outerValue));\n }\n };\n WindowToggleSubscriber.prototype.notifyError = function (err) {\n this.error(err);\n };\n WindowToggleSubscriber.prototype.notifyComplete = function (inner) {\n if (inner !== this.openSubscription) {\n this.closeWindow(this.contexts.indexOf(inner.context));\n }\n };\n WindowToggleSubscriber.prototype.closeWindow = function (index) {\n if (index === -1) {\n return;\n }\n var contexts = this.contexts;\n var context = contexts[index];\n var window = context.window, subscription = context.subscription;\n contexts.splice(index, 1);\n window.complete();\n subscription.unsubscribe();\n };\n return WindowToggleSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowToggle.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { tryCatch } from '../util/tryCatch';\nimport { errorObject } from '../util/errorObject';\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function windowWhen(closingSelector) {\n return function windowWhenOperatorFunction(source) {\n return source.lift(new WindowOperator(closingSelector));\n };\n}\nvar WindowOperator = (function () {\n function WindowOperator(closingSelector) {\n this.closingSelector = closingSelector;\n }\n WindowOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector));\n };\n return WindowOperator;\n}());\nvar WindowSubscriber = (function (_super) {\n tslib_1.__extends(WindowSubscriber, _super);\n function WindowSubscriber(destination, closingSelector) {\n var _this = _super.call(this, destination) || this;\n _this.destination = destination;\n _this.closingSelector = closingSelector;\n _this.openWindow();\n return _this;\n }\n WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype.notifyError = function (error, innerSub) {\n this._error(error);\n };\n WindowSubscriber.prototype.notifyComplete = function (innerSub) {\n this.openWindow(innerSub);\n };\n WindowSubscriber.prototype._next = function (value) {\n this.window.next(value);\n };\n WindowSubscriber.prototype._error = function (err) {\n this.window.error(err);\n this.destination.error(err);\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype._complete = function () {\n this.window.complete();\n this.destination.complete();\n this.unsubscribeClosingNotification();\n };\n WindowSubscriber.prototype.unsubscribeClosingNotification = function () {\n if (this.closingNotification) {\n this.closingNotification.unsubscribe();\n }\n };\n WindowSubscriber.prototype.openWindow = function (innerSub) {\n if (innerSub === void 0) { innerSub = null; }\n if (innerSub) {\n this.remove(innerSub);\n innerSub.unsubscribe();\n }\n var prevWindow = this.window;\n if (prevWindow) {\n prevWindow.complete();\n }\n var window = this.window = new Subject();\n this.destination.next(window);\n var closingNotifier = tryCatch(this.closingSelector)();\n if (closingNotifier === errorObject) {\n var err = errorObject.e;\n this.destination.error(err);\n this.window.error(err);\n }\n else {\n this.add(this.closingNotification = subscribeToResult(this, closingNotifier));\n }\n };\n return WindowSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=windowWhen.js.map","import * as tslib_1 from \"tslib\";\nimport { OuterSubscriber } from '../OuterSubscriber';\nimport { subscribeToResult } from '../util/subscribeToResult';\nexport function withLatestFrom() {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n return function (source) {\n var project;\n if (typeof args[args.length - 1] === 'function') {\n project = args.pop();\n }\n var observables = args;\n return source.lift(new WithLatestFromOperator(observables, project));\n };\n}\nvar WithLatestFromOperator = (function () {\n function WithLatestFromOperator(observables, project) {\n this.observables = observables;\n this.project = project;\n }\n WithLatestFromOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project));\n };\n return WithLatestFromOperator;\n}());\nvar WithLatestFromSubscriber = (function (_super) {\n tslib_1.__extends(WithLatestFromSubscriber, _super);\n function WithLatestFromSubscriber(destination, observables, project) {\n var _this = _super.call(this, destination) || this;\n _this.observables = observables;\n _this.project = project;\n _this.toRespond = [];\n var len = observables.length;\n _this.values = new Array(len);\n for (var i = 0; i < len; i++) {\n _this.toRespond.push(i);\n }\n for (var i = 0; i < len; i++) {\n var observable = observables[i];\n _this.add(subscribeToResult(_this, observable, observable, i));\n }\n return _this;\n }\n WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) {\n this.values[outerIndex] = innerValue;\n var toRespond = this.toRespond;\n if (toRespond.length > 0) {\n var found = toRespond.indexOf(outerIndex);\n if (found !== -1) {\n toRespond.splice(found, 1);\n }\n }\n };\n WithLatestFromSubscriber.prototype.notifyComplete = function () {\n };\n WithLatestFromSubscriber.prototype._next = function (value) {\n if (this.toRespond.length === 0) {\n var args = [value].concat(this.values);\n if (this.project) {\n this._tryProject(args);\n }\n else {\n this.destination.next(args);\n }\n }\n };\n WithLatestFromSubscriber.prototype._tryProject = function (args) {\n var result;\n try {\n result = this.project.apply(this, args);\n }\n catch (err) {\n this.destination.error(err);\n return;\n }\n this.destination.next(result);\n };\n return WithLatestFromSubscriber;\n}(OuterSubscriber));\n//# sourceMappingURL=withLatestFrom.js.map","import { zip as zipStatic } from '../observable/zip';\nexport function zip() {\n var observables = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n observables[_i] = arguments[_i];\n }\n return function zipOperatorFunction(source) {\n return source.lift.call(zipStatic.apply(void 0, [source].concat(observables)));\n };\n}\n//# sourceMappingURL=zip.js.map","import { ZipOperator } from '../observable/zip';\nexport function zipAll(project) {\n return function (source) { return source.lift(new ZipOperator(project)); };\n}\n//# sourceMappingURL=zipAll.js.map","var SubscriptionLog = (function () {\n function SubscriptionLog(subscribedFrame, unsubscribedFrame) {\n if (unsubscribedFrame === void 0) { unsubscribedFrame = Number.POSITIVE_INFINITY; }\n this.subscribedFrame = subscribedFrame;\n this.unsubscribedFrame = unsubscribedFrame;\n }\n return SubscriptionLog;\n}());\nexport { SubscriptionLog };\n//# sourceMappingURL=SubscriptionLog.js.map","import { SubscriptionLog } from './SubscriptionLog';\nvar SubscriptionLoggable = (function () {\n function SubscriptionLoggable() {\n this.subscriptions = [];\n }\n SubscriptionLoggable.prototype.logSubscribedFrame = function () {\n this.subscriptions.push(new SubscriptionLog(this.scheduler.now()));\n return this.subscriptions.length - 1;\n };\n SubscriptionLoggable.prototype.logUnsubscribedFrame = function (index) {\n var subscriptionLogs = this.subscriptions;\n var oldSubscriptionLog = subscriptionLogs[index];\n subscriptionLogs[index] = new SubscriptionLog(oldSubscriptionLog.subscribedFrame, this.scheduler.now());\n };\n return SubscriptionLoggable;\n}());\nexport { SubscriptionLoggable };\n//# sourceMappingURL=SubscriptionLoggable.js.map","export function applyMixins(derivedCtor, baseCtors) {\n for (var i = 0, len = baseCtors.length; i < len; i++) {\n var baseCtor = baseCtors[i];\n var propertyKeys = Object.getOwnPropertyNames(baseCtor.prototype);\n for (var j = 0, len2 = propertyKeys.length; j < len2; j++) {\n var name_1 = propertyKeys[j];\n derivedCtor.prototype[name_1] = baseCtor.prototype[name_1];\n }\n }\n}\n//# sourceMappingURL=applyMixins.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar ColdObservable = (function (_super) {\n tslib_1.__extends(ColdObservable, _super);\n function ColdObservable(messages, scheduler) {\n var _this = _super.call(this, function (subscriber) {\n var observable = this;\n var index = observable.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n observable.logUnsubscribedFrame(index);\n }));\n observable.scheduleMessages(subscriber);\n return subscription;\n }) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n ColdObservable.prototype.scheduleMessages = function (subscriber) {\n var messagesLength = this.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n var message = this.messages[i];\n subscriber.add(this.scheduler.schedule(function (_a) {\n var message = _a.message, subscriber = _a.subscriber;\n message.notification.observe(subscriber);\n }, message.frame, { message: message, subscriber: subscriber }));\n }\n };\n return ColdObservable;\n}(Observable));\nexport { ColdObservable };\napplyMixins(ColdObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=ColdObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject } from '../Subject';\nimport { Subscription } from '../Subscription';\nimport { SubscriptionLoggable } from './SubscriptionLoggable';\nimport { applyMixins } from '../util/applyMixins';\nvar HotObservable = (function (_super) {\n tslib_1.__extends(HotObservable, _super);\n function HotObservable(messages, scheduler) {\n var _this = _super.call(this) || this;\n _this.messages = messages;\n _this.subscriptions = [];\n _this.scheduler = scheduler;\n return _this;\n }\n HotObservable.prototype._subscribe = function (subscriber) {\n var subject = this;\n var index = subject.logSubscribedFrame();\n var subscription = new Subscription();\n subscription.add(new Subscription(function () {\n subject.logUnsubscribedFrame(index);\n }));\n subscription.add(_super.prototype._subscribe.call(this, subscriber));\n return subscription;\n };\n HotObservable.prototype.setup = function () {\n var subject = this;\n var messagesLength = subject.messages.length;\n for (var i = 0; i < messagesLength; i++) {\n (function () {\n var message = subject.messages[i];\n subject.scheduler.schedule(function () { message.notification.observe(subject); }, message.frame);\n })();\n }\n };\n return HotObservable;\n}(Subject));\nexport { HotObservable };\napplyMixins(HotObservable, [SubscriptionLoggable]);\n//# sourceMappingURL=HotObservable.js.map","import * as tslib_1 from \"tslib\";\nimport { Observable } from '../Observable';\nimport { Notification } from '../Notification';\nimport { ColdObservable } from './ColdObservable';\nimport { HotObservable } from './HotObservable';\nimport { SubscriptionLog } from './SubscriptionLog';\nimport { VirtualTimeScheduler, VirtualAction } from '../scheduler/VirtualTimeScheduler';\nimport { AsyncScheduler } from '../scheduler/AsyncScheduler';\nvar defaultMaxFrame = 750;\nvar TestScheduler = (function (_super) {\n tslib_1.__extends(TestScheduler, _super);\n function TestScheduler(assertDeepEqual) {\n var _this = _super.call(this, VirtualAction, defaultMaxFrame) || this;\n _this.assertDeepEqual = assertDeepEqual;\n _this.hotObservables = [];\n _this.coldObservables = [];\n _this.flushTests = [];\n _this.runMode = false;\n return _this;\n }\n TestScheduler.prototype.createTime = function (marbles) {\n var indexOf = marbles.indexOf('|');\n if (indexOf === -1) {\n throw new Error('marble diagram for time should have a completion marker \"|\"');\n }\n return indexOf * TestScheduler.frameTimeFactor;\n };\n TestScheduler.prototype.createColdObservable = function (marbles, values, error) {\n if (marbles.indexOf('^') !== -1) {\n throw new Error('cold observable cannot have subscription offset \"^\"');\n }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('cold observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var cold = new ColdObservable(messages, this);\n this.coldObservables.push(cold);\n return cold;\n };\n TestScheduler.prototype.createHotObservable = function (marbles, values, error) {\n if (marbles.indexOf('!') !== -1) {\n throw new Error('hot observable cannot have unsubscription marker \"!\"');\n }\n var messages = TestScheduler.parseMarbles(marbles, values, error, undefined, this.runMode);\n var subject = new HotObservable(messages, this);\n this.hotObservables.push(subject);\n return subject;\n };\n TestScheduler.prototype.materializeInnerObservable = function (observable, outerFrame) {\n var _this = this;\n var messages = [];\n observable.subscribe(function (value) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createNext(value) });\n }, function (err) {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createError(err) });\n }, function () {\n messages.push({ frame: _this.frame - outerFrame, notification: Notification.createComplete() });\n });\n return messages;\n };\n TestScheduler.prototype.expectObservable = function (observable, subscriptionMarbles) {\n var _this = this;\n if (subscriptionMarbles === void 0) { subscriptionMarbles = null; }\n var actual = [];\n var flushTest = { actual: actual, ready: false };\n var subscriptionParsed = TestScheduler.parseMarblesAsSubscriptions(subscriptionMarbles, this.runMode);\n var subscriptionFrame = subscriptionParsed.subscribedFrame === Number.POSITIVE_INFINITY ?\n 0 : subscriptionParsed.subscribedFrame;\n var unsubscriptionFrame = subscriptionParsed.unsubscribedFrame;\n var subscription;\n this.schedule(function () {\n subscription = observable.subscribe(function (x) {\n var value = x;\n if (x instanceof Observable) {\n value = _this.materializeInnerObservable(value, _this.frame);\n }\n actual.push({ frame: _this.frame, notification: Notification.createNext(value) });\n }, function (err) {\n actual.push({ frame: _this.frame, notification: Notification.createError(err) });\n }, function () {\n actual.push({ frame: _this.frame, notification: Notification.createComplete() });\n });\n }, subscriptionFrame);\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n this.schedule(function () { return subscription.unsubscribe(); }, unsubscriptionFrame);\n }\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles, values, errorValue) {\n flushTest.ready = true;\n flushTest.expected = TestScheduler.parseMarbles(marbles, values, errorValue, true, runMode);\n }\n };\n };\n TestScheduler.prototype.expectSubscriptions = function (actualSubscriptionLogs) {\n var flushTest = { actual: actualSubscriptionLogs, ready: false };\n this.flushTests.push(flushTest);\n var runMode = this.runMode;\n return {\n toBe: function (marbles) {\n var marblesArray = (typeof marbles === 'string') ? [marbles] : marbles;\n flushTest.ready = true;\n flushTest.expected = marblesArray.map(function (marbles) {\n return TestScheduler.parseMarblesAsSubscriptions(marbles, runMode);\n });\n }\n };\n };\n TestScheduler.prototype.flush = function () {\n var _this = this;\n var hotObservables = this.hotObservables;\n while (hotObservables.length > 0) {\n hotObservables.shift().setup();\n }\n _super.prototype.flush.call(this);\n this.flushTests = this.flushTests.filter(function (test) {\n if (test.ready) {\n _this.assertDeepEqual(test.actual, test.expected);\n return false;\n }\n return true;\n });\n };\n TestScheduler.parseMarblesAsSubscriptions = function (marbles, runMode) {\n var _this = this;\n if (runMode === void 0) { runMode = false; }\n if (typeof marbles !== 'string') {\n return new SubscriptionLog(Number.POSITIVE_INFINITY);\n }\n var len = marbles.length;\n var groupStart = -1;\n var subscriptionFrame = Number.POSITIVE_INFINITY;\n var unsubscriptionFrame = Number.POSITIVE_INFINITY;\n var frame = 0;\n var _loop_1 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '^':\n if (subscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n subscriptionFrame = groupStart > -1 ? groupStart : frame;\n advanceFrameBy(1);\n break;\n case '!':\n if (unsubscriptionFrame !== Number.POSITIVE_INFINITY) {\n throw new Error('found a second subscription point \\'^\\' in a ' +\n 'subscription marble diagram. There can only be one.');\n }\n unsubscriptionFrame = groupStart > -1 ? groupStart : frame;\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_1.frameTimeFactor);\n break;\n }\n }\n }\n throw new Error('there can only be \\'^\\' and \\'!\\' markers in a ' +\n 'subscription marble diagram. Found instead \\'' + c + '\\'.');\n }\n frame = nextFrame;\n out_i_1 = i;\n };\n var this_1 = this, out_i_1;\n for (var i = 0; i < len; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n if (unsubscriptionFrame < 0) {\n return new SubscriptionLog(subscriptionFrame);\n }\n else {\n return new SubscriptionLog(subscriptionFrame, unsubscriptionFrame);\n }\n };\n TestScheduler.parseMarbles = function (marbles, values, errorValue, materializeInnerObservables, runMode) {\n var _this = this;\n if (materializeInnerObservables === void 0) { materializeInnerObservables = false; }\n if (runMode === void 0) { runMode = false; }\n if (marbles.indexOf('!') !== -1) {\n throw new Error('conventional marble diagrams cannot have the ' +\n 'unsubscription marker \"!\"');\n }\n var len = marbles.length;\n var testMessages = [];\n var subIndex = runMode ? marbles.replace(/^[ ]+/, '').indexOf('^') : marbles.indexOf('^');\n var frame = subIndex === -1 ? 0 : (subIndex * -this.frameTimeFactor);\n var getValue = typeof values !== 'object' ?\n function (x) { return x; } :\n function (x) {\n if (materializeInnerObservables && values[x] instanceof ColdObservable) {\n return values[x].messages;\n }\n return values[x];\n };\n var groupStart = -1;\n var _loop_2 = function (i) {\n var nextFrame = frame;\n var advanceFrameBy = function (count) {\n nextFrame += count * _this.frameTimeFactor;\n };\n var notification = void 0;\n var c = marbles[i];\n switch (c) {\n case ' ':\n if (!runMode) {\n advanceFrameBy(1);\n }\n break;\n case '-':\n advanceFrameBy(1);\n break;\n case '(':\n groupStart = frame;\n advanceFrameBy(1);\n break;\n case ')':\n groupStart = -1;\n advanceFrameBy(1);\n break;\n case '|':\n notification = Notification.createComplete();\n advanceFrameBy(1);\n break;\n case '^':\n advanceFrameBy(1);\n break;\n case '#':\n notification = Notification.createError(errorValue || 'error');\n advanceFrameBy(1);\n break;\n default:\n if (runMode && c.match(/^[0-9]$/)) {\n if (i === 0 || marbles[i - 1] === ' ') {\n var buffer = marbles.slice(i);\n var match = buffer.match(/^([0-9]+(?:\\.[0-9]+)?)(ms|s|m) /);\n if (match) {\n i += match[0].length - 1;\n var duration = parseFloat(match[1]);\n var unit = match[2];\n var durationInMs = void 0;\n switch (unit) {\n case 'ms':\n durationInMs = duration;\n break;\n case 's':\n durationInMs = duration * 1000;\n break;\n case 'm':\n durationInMs = duration * 1000 * 60;\n break;\n default:\n break;\n }\n advanceFrameBy(durationInMs / this_2.frameTimeFactor);\n break;\n }\n }\n }\n notification = Notification.createNext(getValue(c));\n advanceFrameBy(1);\n break;\n }\n if (notification) {\n testMessages.push({ frame: groupStart > -1 ? groupStart : frame, notification: notification });\n }\n frame = nextFrame;\n out_i_2 = i;\n };\n var this_2 = this, out_i_2;\n for (var i = 0; i < len; i++) {\n _loop_2(i);\n i = out_i_2;\n }\n return testMessages;\n };\n TestScheduler.prototype.run = function (callback) {\n var prevFrameTimeFactor = TestScheduler.frameTimeFactor;\n var prevMaxFrames = this.maxFrames;\n TestScheduler.frameTimeFactor = 1;\n this.maxFrames = Number.POSITIVE_INFINITY;\n this.runMode = true;\n AsyncScheduler.delegate = this;\n var helpers = {\n cold: this.createColdObservable.bind(this),\n hot: this.createHotObservable.bind(this),\n flush: this.flush.bind(this),\n expectObservable: this.expectObservable.bind(this),\n expectSubscriptions: this.expectSubscriptions.bind(this),\n };\n try {\n var ret = callback(helpers);\n this.flush();\n return ret;\n }\n finally {\n TestScheduler.frameTimeFactor = prevFrameTimeFactor;\n this.maxFrames = prevMaxFrames;\n this.runMode = false;\n AsyncScheduler.delegate = undefined;\n }\n };\n return TestScheduler;\n}(VirtualTimeScheduler));\nexport { TestScheduler };\n//# sourceMappingURL=TestScheduler.js.map","var __window = typeof window !== 'undefined' && window;\nvar __self = typeof self !== 'undefined' && typeof WorkerGlobalScope !== 'undefined' &&\n self instanceof WorkerGlobalScope && self;\nvar __global = typeof global !== 'undefined' && global;\nvar _root = __window || __global || __self;\n(function () {\n if (!_root) {\n throw new Error('RxJS could not find any global context (window, self, global)');\n }\n})();\nexport { _root as root };\n//# sourceMappingURL=root.js.map","import * as tslib_1 from \"tslib\";\nimport { root } from '../../util/root';\nimport { tryCatch } from '../../util/tryCatch';\nimport { errorObject } from '../../util/errorObject';\nimport { Observable } from '../../Observable';\nimport { Subscriber } from '../../Subscriber';\nimport { map } from '../../operators/map';\nfunction getCORSRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else if (!!root.XDomainRequest) {\n return new root.XDomainRequest();\n }\n else {\n throw new Error('CORS is not supported by your browser');\n }\n}\nfunction getXMLHttpRequest() {\n if (root.XMLHttpRequest) {\n return new root.XMLHttpRequest();\n }\n else {\n var progId = void 0;\n try {\n var progIds = ['Msxml2.XMLHTTP', 'Microsoft.XMLHTTP', 'Msxml2.XMLHTTP.4.0'];\n for (var i = 0; i < 3; i++) {\n try {\n progId = progIds[i];\n if (new root.ActiveXObject(progId)) {\n break;\n }\n }\n catch (e) {\n }\n }\n return new root.ActiveXObject(progId);\n }\n catch (e) {\n throw new Error('XMLHttpRequest is not supported by your browser');\n }\n }\n}\nexport function ajaxGet(url, headers) {\n if (headers === void 0) { headers = null; }\n return new AjaxObservable({ method: 'GET', url: url, headers: headers });\n}\nexport function ajaxPost(url, body, headers) {\n return new AjaxObservable({ method: 'POST', url: url, body: body, headers: headers });\n}\nexport function ajaxDelete(url, headers) {\n return new AjaxObservable({ method: 'DELETE', url: url, headers: headers });\n}\nexport function ajaxPut(url, body, headers) {\n return new AjaxObservable({ method: 'PUT', url: url, body: body, headers: headers });\n}\nexport function ajaxPatch(url, body, headers) {\n return new AjaxObservable({ method: 'PATCH', url: url, body: body, headers: headers });\n}\nvar mapResponse = map(function (x, index) { return x.response; });\nexport function ajaxGetJSON(url, headers) {\n return mapResponse(new AjaxObservable({\n method: 'GET',\n url: url,\n responseType: 'json',\n headers: headers\n }));\n}\nvar AjaxObservable = (function (_super) {\n tslib_1.__extends(AjaxObservable, _super);\n function AjaxObservable(urlOrRequest) {\n var _this = _super.call(this) || this;\n var request = {\n async: true,\n createXHR: function () {\n return this.crossDomain ? getCORSRequest() : getXMLHttpRequest();\n },\n crossDomain: true,\n withCredentials: false,\n headers: {},\n method: 'GET',\n responseType: 'json',\n timeout: 0\n };\n if (typeof urlOrRequest === 'string') {\n request.url = urlOrRequest;\n }\n else {\n for (var prop in urlOrRequest) {\n if (urlOrRequest.hasOwnProperty(prop)) {\n request[prop] = urlOrRequest[prop];\n }\n }\n }\n _this.request = request;\n return _this;\n }\n AjaxObservable.prototype._subscribe = function (subscriber) {\n return new AjaxSubscriber(subscriber, this.request);\n };\n AjaxObservable.create = (function () {\n var create = function (urlOrRequest) {\n return new AjaxObservable(urlOrRequest);\n };\n create.get = ajaxGet;\n create.post = ajaxPost;\n create.delete = ajaxDelete;\n create.put = ajaxPut;\n create.patch = ajaxPatch;\n create.getJSON = ajaxGetJSON;\n return create;\n })();\n return AjaxObservable;\n}(Observable));\nexport { AjaxObservable };\nvar AjaxSubscriber = (function (_super) {\n tslib_1.__extends(AjaxSubscriber, _super);\n function AjaxSubscriber(destination, request) {\n var _this = _super.call(this, destination) || this;\n _this.request = request;\n _this.done = false;\n var headers = request.headers = request.headers || {};\n if (!request.crossDomain && !headers['X-Requested-With']) {\n headers['X-Requested-With'] = 'XMLHttpRequest';\n }\n if (!('Content-Type' in headers) && !(root.FormData && request.body instanceof root.FormData) && typeof request.body !== 'undefined') {\n headers['Content-Type'] = 'application/x-www-form-urlencoded; charset=UTF-8';\n }\n request.body = _this.serializeBody(request.body, request.headers['Content-Type']);\n _this.send();\n return _this;\n }\n AjaxSubscriber.prototype.next = function (e) {\n this.done = true;\n var _a = this, xhr = _a.xhr, request = _a.request, destination = _a.destination;\n var response = new AjaxResponse(e, xhr, request);\n if (response.response === errorObject) {\n destination.error(errorObject.e);\n }\n else {\n destination.next(response);\n }\n };\n AjaxSubscriber.prototype.send = function () {\n var _a = this, request = _a.request, _b = _a.request, user = _b.user, method = _b.method, url = _b.url, async = _b.async, password = _b.password, headers = _b.headers, body = _b.body;\n var createXHR = request.createXHR;\n var xhr = tryCatch(createXHR).call(request);\n if (xhr === errorObject) {\n this.error(errorObject.e);\n }\n else {\n this.xhr = xhr;\n this.setupEvents(xhr, request);\n var result = void 0;\n if (user) {\n result = tryCatch(xhr.open).call(xhr, method, url, async, user, password);\n }\n else {\n result = tryCatch(xhr.open).call(xhr, method, url, async);\n }\n if (result === errorObject) {\n this.error(errorObject.e);\n return null;\n }\n if (async) {\n xhr.timeout = request.timeout;\n xhr.responseType = request.responseType;\n }\n if ('withCredentials' in xhr) {\n xhr.withCredentials = !!request.withCredentials;\n }\n this.setHeaders(xhr, headers);\n result = body ? tryCatch(xhr.send).call(xhr, body) : tryCatch(xhr.send).call(xhr);\n if (result === errorObject) {\n this.error(errorObject.e);\n return null;\n }\n }\n return xhr;\n };\n AjaxSubscriber.prototype.serializeBody = function (body, contentType) {\n if (!body || typeof body === 'string') {\n return body;\n }\n else if (root.FormData && body instanceof root.FormData) {\n return body;\n }\n if (contentType) {\n var splitIndex = contentType.indexOf(';');\n if (splitIndex !== -1) {\n contentType = contentType.substring(0, splitIndex);\n }\n }\n switch (contentType) {\n case 'application/x-www-form-urlencoded':\n return Object.keys(body).map(function (key) { return encodeURIComponent(key) + \"=\" + encodeURIComponent(body[key]); }).join('&');\n case 'application/json':\n return JSON.stringify(body);\n default:\n return body;\n }\n };\n AjaxSubscriber.prototype.setHeaders = function (xhr, headers) {\n for (var key in headers) {\n if (headers.hasOwnProperty(key)) {\n xhr.setRequestHeader(key, headers[key]);\n }\n }\n };\n AjaxSubscriber.prototype.setupEvents = function (xhr, request) {\n var progressSubscriber = request.progressSubscriber;\n function xhrTimeout(e) {\n var _a = xhrTimeout, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxTimeoutError = new AjaxTimeoutError(this, request);\n if (ajaxTimeoutError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxTimeoutError);\n }\n }\n xhr.ontimeout = xhrTimeout;\n xhrTimeout.request = request;\n xhrTimeout.subscriber = this;\n xhrTimeout.progressSubscriber = progressSubscriber;\n if (xhr.upload && 'withCredentials' in xhr) {\n if (progressSubscriber) {\n var xhrProgress_1;\n xhrProgress_1 = function (e) {\n var progressSubscriber = xhrProgress_1.progressSubscriber;\n progressSubscriber.next(e);\n };\n if (root.XDomainRequest) {\n xhr.onprogress = xhrProgress_1;\n }\n else {\n xhr.upload.onprogress = xhrProgress_1;\n }\n xhrProgress_1.progressSubscriber = progressSubscriber;\n }\n var xhrError_1;\n xhrError_1 = function (e) {\n var _a = xhrError_1, progressSubscriber = _a.progressSubscriber, subscriber = _a.subscriber, request = _a.request;\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxError = new AjaxError('ajax error', this, request);\n if (ajaxError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxError);\n }\n };\n xhr.onerror = xhrError_1;\n xhrError_1.request = request;\n xhrError_1.subscriber = this;\n xhrError_1.progressSubscriber = progressSubscriber;\n }\n function xhrReadyStateChange(e) {\n return;\n }\n xhr.onreadystatechange = xhrReadyStateChange;\n xhrReadyStateChange.subscriber = this;\n xhrReadyStateChange.progressSubscriber = progressSubscriber;\n xhrReadyStateChange.request = request;\n function xhrLoad(e) {\n var _a = xhrLoad, subscriber = _a.subscriber, progressSubscriber = _a.progressSubscriber, request = _a.request;\n if (this.readyState === 4) {\n var status_1 = this.status === 1223 ? 204 : this.status;\n var response = (this.responseType === 'text' ? (this.response || this.responseText) : this.response);\n if (status_1 === 0) {\n status_1 = response ? 200 : 0;\n }\n if (status_1 < 400) {\n if (progressSubscriber) {\n progressSubscriber.complete();\n }\n subscriber.next(e);\n subscriber.complete();\n }\n else {\n if (progressSubscriber) {\n progressSubscriber.error(e);\n }\n var ajaxError = new AjaxError('ajax error ' + status_1, this, request);\n if (ajaxError.response === errorObject) {\n subscriber.error(errorObject.e);\n }\n else {\n subscriber.error(ajaxError);\n }\n }\n }\n }\n xhr.onload = xhrLoad;\n xhrLoad.subscriber = this;\n xhrLoad.progressSubscriber = progressSubscriber;\n xhrLoad.request = request;\n };\n AjaxSubscriber.prototype.unsubscribe = function () {\n var _a = this, done = _a.done, xhr = _a.xhr;\n if (!done && xhr && xhr.readyState !== 4 && typeof xhr.abort === 'function') {\n xhr.abort();\n }\n _super.prototype.unsubscribe.call(this);\n };\n return AjaxSubscriber;\n}(Subscriber));\nexport { AjaxSubscriber };\nvar AjaxResponse = (function () {\n function AjaxResponse(originalEvent, xhr, request) {\n this.originalEvent = originalEvent;\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n }\n return AjaxResponse;\n}());\nexport { AjaxResponse };\nfunction AjaxErrorImpl(message, xhr, request) {\n Error.call(this);\n this.message = message;\n this.name = 'AjaxError';\n this.xhr = xhr;\n this.request = request;\n this.status = xhr.status;\n this.responseType = xhr.responseType || request.responseType;\n this.response = parseXhrResponse(this.responseType, xhr);\n return this;\n}\nAjaxErrorImpl.prototype = Object.create(Error.prototype);\nexport var AjaxError = AjaxErrorImpl;\nfunction parseJson(xhr) {\n if ('response' in xhr) {\n return xhr.responseType ? xhr.response : JSON.parse(xhr.response || xhr.responseText || 'null');\n }\n else {\n return JSON.parse(xhr.responseText || 'null');\n }\n}\nfunction parseXhrResponse(responseType, xhr) {\n switch (responseType) {\n case 'json':\n return tryCatch(parseJson)(xhr);\n case 'xml':\n return xhr.responseXML;\n case 'text':\n default:\n return ('response' in xhr) ? xhr.response : xhr.responseText;\n }\n}\nfunction AjaxTimeoutErrorImpl(xhr, request) {\n AjaxError.call(this, 'ajax timeout', xhr, request);\n this.name = 'AjaxTimeoutError';\n return this;\n}\nexport var AjaxTimeoutError = AjaxTimeoutErrorImpl;\n//# sourceMappingURL=AjaxObservable.js.map","import { AjaxObservable } from './AjaxObservable';\nexport var ajax = AjaxObservable.create;\n//# sourceMappingURL=ajax.js.map","import * as tslib_1 from \"tslib\";\nimport { Subject, AnonymousSubject } from '../../Subject';\nimport { Subscriber } from '../../Subscriber';\nimport { Observable } from '../../Observable';\nimport { Subscription } from '../../Subscription';\nimport { ReplaySubject } from '../../ReplaySubject';\nimport { tryCatch } from '../../util/tryCatch';\nimport { errorObject } from '../../util/errorObject';\nvar DEFAULT_WEBSOCKET_CONFIG = {\n url: '',\n deserializer: function (e) { return JSON.parse(e.data); },\n serializer: function (value) { return JSON.stringify(value); },\n};\nvar WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT = 'WebSocketSubject.error must be called with an object with an error code, and an optional reason: { code: number, reason: string }';\nvar WebSocketSubject = (function (_super) {\n tslib_1.__extends(WebSocketSubject, _super);\n function WebSocketSubject(urlConfigOrSource, destination) {\n var _this = _super.call(this) || this;\n if (urlConfigOrSource instanceof Observable) {\n _this.destination = destination;\n _this.source = urlConfigOrSource;\n }\n else {\n var config = _this._config = tslib_1.__assign({}, DEFAULT_WEBSOCKET_CONFIG);\n _this._output = new Subject();\n if (typeof urlConfigOrSource === 'string') {\n config.url = urlConfigOrSource;\n }\n else {\n for (var key in urlConfigOrSource) {\n if (urlConfigOrSource.hasOwnProperty(key)) {\n config[key] = urlConfigOrSource[key];\n }\n }\n }\n if (!config.WebSocketCtor && WebSocket) {\n config.WebSocketCtor = WebSocket;\n }\n else if (!config.WebSocketCtor) {\n throw new Error('no WebSocket constructor can be found');\n }\n _this.destination = new ReplaySubject();\n }\n return _this;\n }\n WebSocketSubject.prototype.lift = function (operator) {\n var sock = new WebSocketSubject(this._config, this.destination);\n sock.operator = operator;\n sock.source = this;\n return sock;\n };\n WebSocketSubject.prototype._resetState = function () {\n this._socket = null;\n if (!this.source) {\n this.destination = new ReplaySubject();\n }\n this._output = new Subject();\n };\n WebSocketSubject.prototype.multiplex = function (subMsg, unsubMsg, messageFilter) {\n var self = this;\n return new Observable(function (observer) {\n var result = tryCatch(subMsg)();\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n self.next(result);\n }\n var subscription = self.subscribe(function (x) {\n var result = tryCatch(messageFilter)(x);\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else if (result) {\n observer.next(x);\n }\n }, function (err) { return observer.error(err); }, function () { return observer.complete(); });\n return function () {\n var result = tryCatch(unsubMsg)();\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n self.next(result);\n }\n subscription.unsubscribe();\n };\n });\n };\n WebSocketSubject.prototype._connectSocket = function () {\n var _this = this;\n var _a = this._config, WebSocketCtor = _a.WebSocketCtor, protocol = _a.protocol, url = _a.url, binaryType = _a.binaryType;\n var observer = this._output;\n var socket = null;\n try {\n socket = protocol ?\n new WebSocketCtor(url, protocol) :\n new WebSocketCtor(url);\n this._socket = socket;\n if (binaryType) {\n this._socket.binaryType = binaryType;\n }\n }\n catch (e) {\n observer.error(e);\n return;\n }\n var subscription = new Subscription(function () {\n _this._socket = null;\n if (socket && socket.readyState === 1) {\n socket.close();\n }\n });\n socket.onopen = function (e) {\n var openObserver = _this._config.openObserver;\n if (openObserver) {\n openObserver.next(e);\n }\n var queue = _this.destination;\n _this.destination = Subscriber.create(function (x) {\n if (socket.readyState === 1) {\n var serializer = _this._config.serializer;\n var msg = tryCatch(serializer)(x);\n if (msg === errorObject) {\n _this.destination.error(errorObject.e);\n return;\n }\n socket.send(msg);\n }\n }, function (e) {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n if (e && e.code) {\n socket.close(e.code, e.reason);\n }\n else {\n observer.error(new TypeError(WEBSOCKETSUBJECT_INVALID_ERROR_OBJECT));\n }\n _this._resetState();\n }, function () {\n var closingObserver = _this._config.closingObserver;\n if (closingObserver) {\n closingObserver.next(undefined);\n }\n socket.close();\n _this._resetState();\n });\n if (queue && queue instanceof ReplaySubject) {\n subscription.add(queue.subscribe(_this.destination));\n }\n };\n socket.onerror = function (e) {\n _this._resetState();\n observer.error(e);\n };\n socket.onclose = function (e) {\n _this._resetState();\n var closeObserver = _this._config.closeObserver;\n if (closeObserver) {\n closeObserver.next(e);\n }\n if (e.wasClean) {\n observer.complete();\n }\n else {\n observer.error(e);\n }\n };\n socket.onmessage = function (e) {\n var deserializer = _this._config.deserializer;\n var result = tryCatch(deserializer)(e);\n if (result === errorObject) {\n observer.error(errorObject.e);\n }\n else {\n observer.next(result);\n }\n };\n };\n WebSocketSubject.prototype._subscribe = function (subscriber) {\n var _this = this;\n var source = this.source;\n if (source) {\n return source.subscribe(subscriber);\n }\n if (!this._socket) {\n this._connectSocket();\n }\n this._output.subscribe(subscriber);\n subscriber.add(function () {\n var _socket = _this._socket;\n if (_this._output.observers.length === 0) {\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n }\n _this._resetState();\n }\n });\n return subscriber;\n };\n WebSocketSubject.prototype.unsubscribe = function () {\n var _a = this, source = _a.source, _socket = _a._socket;\n if (_socket && _socket.readyState === 1) {\n _socket.close();\n this._resetState();\n }\n _super.prototype.unsubscribe.call(this);\n if (!source) {\n this.destination = new ReplaySubject();\n }\n };\n return WebSocketSubject;\n}(AnonymousSubject));\nexport { WebSocketSubject };\n//# sourceMappingURL=WebSocketSubject.js.map","import { WebSocketSubject } from './WebSocketSubject';\nexport function webSocket(urlConfigOrSource) {\n return new WebSocketSubject(urlConfigOrSource);\n}\n//# sourceMappingURL=webSocket.js.map","export * from '../index';\nimport * as _operators from '../operators/index';\nexport var operators = _operators;\nimport * as _testing from '../testing/index';\nexport var testing = _testing;\nimport * as _ajax from '../ajax/index';\nexport var ajax = _ajax;\nimport * as _webSocket from '../webSocket/index';\nexport var webSocket = _webSocket;\n//# sourceMappingURL=umd.js.map"],"names":["tslib_1.__extends","emptyObserver","rxSubscriberSymbol","observable","Symbol_observable","RefCountOperator","RefCountSubscriber","higherOrderRefCount","refCount","empty","dispatch","dispatchError","dispatchNext","iterator","Symbol_iterator","combineLatest","concat","concatStatic","merge","mergeStatic","onErrorResumeNext","race","raceStatic","window","WindowOperator","WindowSubscriber","zip","zipStatic","root","ajax","tslib_1.__assign","webSocket"],"mappings":"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"}