rxjs-rails 2.2.19 → 2.2.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Rakefile +2 -2
- data/lib/rxjs/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rx.aggregates.js +126 -121
- data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.compat.js +2 -1
- data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.js +2 -1
- data/vendor/assets/javascripts/rx.async.min.js +1 -1
- data/vendor/assets/javascripts/rx.compat.js +470 -464
- data/vendor/assets/javascripts/rx.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.experimental.js +202 -191
- data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
- data/vendor/assets/javascripts/rx.js +470 -464
- data/vendor/assets/javascripts/rx.lite.compat.js +352 -348
- data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.lite.js +352 -348
- data/vendor/assets/javascripts/rx.lite.min.js +2 -2
- data/vendor/assets/javascripts/rx.min.js +2 -2
- data/vendor/assets/javascripts/rx.node.js +113 -115
- data/version.rb.m4 +6 -0
- metadata +3 -2
@@ -54,7 +54,9 @@
|
|
54
54
|
Observer = Rx.Observer,
|
55
55
|
inherits = Rx.internals.inherits,
|
56
56
|
addProperties = Rx.internals.addProperties,
|
57
|
-
noop = Rx.helpers.noop
|
57
|
+
noop = Rx.helpers.noop,
|
58
|
+
isPromise = Rx.helpers.isPromise,
|
59
|
+
observableFromPromise = Observable.fromPromise;
|
58
60
|
|
59
61
|
// Utilities
|
60
62
|
function argsOrArray(args, idx) {
|
@@ -95,28 +97,30 @@
|
|
95
97
|
return func(this);
|
96
98
|
};
|
97
99
|
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
100
|
+
/**
|
101
|
+
* Determines whether an observable collection contains values. There is an alias for this method called 'ifThen' for browsers <IE9
|
102
|
+
*
|
103
|
+
* @example
|
104
|
+
* 1 - res = Rx.Observable.if(condition, obs1);
|
105
|
+
* 2 - res = Rx.Observable.if(condition, obs1, obs2);
|
106
|
+
* 3 - res = Rx.Observable.if(condition, obs1, scheduler);
|
107
|
+
* @param {Function} condition The condition which determines if the thenSource or elseSource will be run.
|
108
|
+
* @param {Observable} thenSource The observable sequence or Promise that will be run if the condition function returns true.
|
109
|
+
* @param {Observable} [elseSource] The observable sequence or Promise that will be run if the condition function returns false. If this is not provided, it defaults to Rx.Observabe.Empty with the specified scheduler.
|
110
|
+
* @returns {Observable} An observable sequence which is either the thenSource or elseSource.
|
111
|
+
*/
|
112
|
+
Observable['if'] = Observable.ifThen = function (condition, thenSource, elseSourceOrScheduler) {
|
113
|
+
return observableDefer(function () {
|
114
|
+
elseSourceOrScheduler || (elseSourceOrScheduler = observableEmpty());
|
115
|
+
|
116
|
+
isPromise(thenSource) && (thenSource = observableFromPromise(thenSource));
|
117
|
+
isPromise(elseSourceOrScheduler) && (elseSourceOrScheduler = observableFromPromise(elseSourceOrScheduler));
|
118
|
+
|
119
|
+
// Assume a scheduler for empty only
|
120
|
+
typeof elseSourceOrScheduler.now === 'function' && (elseSourceOrScheduler = observableEmpty(elseSourceOrScheduler));
|
121
|
+
return condition() ? thenSource : elseSourceOrScheduler;
|
122
|
+
});
|
123
|
+
};
|
120
124
|
|
121
125
|
/**
|
122
126
|
* Concatenates the observable sequences obtained by running the specified result selector for each element in source.
|
@@ -129,17 +133,18 @@
|
|
129
133
|
return enumerableForEach(sources, resultSelector).concat();
|
130
134
|
};
|
131
135
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
136
|
+
/**
|
137
|
+
* Repeats source as long as condition holds emulating a while loop.
|
138
|
+
* There is an alias for this method called 'whileDo' for browsers <IE9
|
139
|
+
*
|
140
|
+
* @param {Function} condition The condition which determines if the source will be repeated.
|
141
|
+
* @param {Observable} source The observable sequence that will be run if the condition function returns true.
|
142
|
+
* @returns {Observable} An observable sequence which is repeated as long as the condition holds.
|
143
|
+
*/
|
144
|
+
var observableWhileDo = Observable['while'] = Observable.whileDo = function (condition, source) {
|
145
|
+
isPromise(source) && (source = observableFromPromise(source));
|
146
|
+
return enumerableWhile(condition, source).concat();
|
147
|
+
};
|
143
148
|
|
144
149
|
/**
|
145
150
|
* Repeats source as long as condition holds emulating a do while loop.
|
@@ -152,32 +157,33 @@
|
|
152
157
|
return observableConcat([this, observableWhileDo(condition, this)]);
|
153
158
|
};
|
154
159
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
};
|
160
|
+
/**
|
161
|
+
* Uses selector to determine which source in sources to use.
|
162
|
+
* There is an alias 'switchCase' for browsers <IE9.
|
163
|
+
*
|
164
|
+
* @example
|
165
|
+
* 1 - res = Rx.Observable.case(selector, { '1': obs1, '2': obs2 });
|
166
|
+
* 1 - res = Rx.Observable.case(selector, { '1': obs1, '2': obs2 }, obs0);
|
167
|
+
* 1 - res = Rx.Observable.case(selector, { '1': obs1, '2': obs2 }, scheduler);
|
168
|
+
*
|
169
|
+
* @param {Function} selector The function which extracts the value for to test in a case statement.
|
170
|
+
* @param {Array} sources A object which has keys which correspond to the case statement labels.
|
171
|
+
* @param {Observable} [elseSource] The observable sequence or Promise that will be run if the sources are not matched. If this is not provided, it defaults to Rx.Observabe.empty with the specified scheduler.
|
172
|
+
*
|
173
|
+
* @returns {Observable} An observable sequence which is determined by a case statement.
|
174
|
+
*/
|
175
|
+
Observable['case'] = Observable.switchCase = function (selector, sources, defaultSourceOrScheduler) {
|
176
|
+
return observableDefer(function () {
|
177
|
+
defaultSourceOrScheduler || (defaultSourceOrScheduler = observableEmpty());
|
178
|
+
|
179
|
+
typeof defaultSourceOrScheduler.now === 'function' && (defaultSourceOrScheduler = observableEmpty(defaultSourceOrScheduler));
|
180
|
+
|
181
|
+
var result = sources[selector()];
|
182
|
+
isPromise(result) && (result = observableFromPromise(result));
|
183
|
+
|
184
|
+
return result || defaultSourceOrScheduler;
|
185
|
+
});
|
186
|
+
};
|
181
187
|
|
182
188
|
/**
|
183
189
|
* Expands an observable sequence by recursively invoking selector.
|
@@ -243,141 +249,146 @@
|
|
243
249
|
});
|
244
250
|
};
|
245
251
|
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
252
|
+
/**
|
253
|
+
* Runs all observable sequences in parallel and collect their last elements.
|
254
|
+
*
|
255
|
+
* @example
|
256
|
+
* 1 - res = Rx.Observable.forkJoin([obs1, obs2]);
|
257
|
+
* 1 - res = Rx.Observable.forkJoin(obs1, obs2, ...);
|
258
|
+
* @returns {Observable} An observable sequence with an array collecting the last elements of all the input sequences.
|
259
|
+
*/
|
260
|
+
Observable.forkJoin = function () {
|
261
|
+
var allSources = argsOrArray(arguments, 0);
|
262
|
+
return new AnonymousObservable(function (subscriber) {
|
263
|
+
var count = allSources.length;
|
264
|
+
if (count === 0) {
|
265
|
+
subscriber.onCompleted();
|
266
|
+
return disposableEmpty;
|
267
|
+
}
|
268
|
+
var group = new CompositeDisposable(),
|
269
|
+
finished = false,
|
270
|
+
hasResults = new Array(count),
|
271
|
+
hasCompleted = new Array(count),
|
272
|
+
results = new Array(count);
|
273
|
+
|
274
|
+
for (var idx = 0; idx < count; idx++) {
|
275
|
+
(function (i) {
|
276
|
+
var source = allSources[i];
|
277
|
+
isPromise(source) && (source = observableFromPromise(source));
|
278
|
+
group.add(
|
279
|
+
source.subscribe(
|
280
|
+
function (value) {
|
281
|
+
if (!finished) {
|
282
|
+
hasResults[i] = true;
|
283
|
+
results[i] = value;
|
284
|
+
}
|
285
|
+
},
|
286
|
+
function (e) {
|
287
|
+
finished = true;
|
288
|
+
subscriber.onError(e);
|
289
|
+
group.dispose();
|
290
|
+
},
|
291
|
+
function () {
|
292
|
+
if (!finished) {
|
293
|
+
if (!hasResults[i]) {
|
294
|
+
subscriber.onCompleted();
|
295
|
+
return;
|
296
|
+
}
|
297
|
+
hasCompleted[i] = true;
|
298
|
+
for (var ix = 0; ix < count; ix++) {
|
299
|
+
if (!hasCompleted[ix]) { return; }
|
300
|
+
}
|
301
|
+
finished = true;
|
302
|
+
subscriber.onNext(results);
|
259
303
|
subscriber.onCompleted();
|
260
|
-
|
304
|
+
}
|
305
|
+
}));
|
306
|
+
})(idx);
|
307
|
+
}
|
308
|
+
|
309
|
+
return group;
|
310
|
+
});
|
311
|
+
};
|
312
|
+
|
313
|
+
/**
|
314
|
+
* Runs two observable sequences in parallel and combines their last elemenets.
|
315
|
+
*
|
316
|
+
* @param {Observable} second Second observable sequence.
|
317
|
+
* @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences.
|
318
|
+
* @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences.
|
319
|
+
*/
|
320
|
+
observableProto.forkJoin = function (second, resultSelector) {
|
321
|
+
var first = this;
|
322
|
+
|
323
|
+
return new AnonymousObservable(function (observer) {
|
324
|
+
var leftStopped = false, rightStopped = false,
|
325
|
+
hasLeft = false, hasRight = false,
|
326
|
+
lastLeft, lastRight,
|
327
|
+
leftSubscription = new SingleAssignmentDisposable(), rightSubscription = new SingleAssignmentDisposable();
|
328
|
+
|
329
|
+
isPromise(second) && (second = observableFromPromise(second));
|
330
|
+
|
331
|
+
leftSubscription.setDisposable(
|
332
|
+
first.subscribe(function (left) {
|
333
|
+
hasLeft = true;
|
334
|
+
lastLeft = left;
|
335
|
+
}, function (err) {
|
336
|
+
rightSubscription.dispose();
|
337
|
+
observer.onError(err);
|
338
|
+
}, function () {
|
339
|
+
leftStopped = true;
|
340
|
+
if (rightStopped) {
|
341
|
+
if (!hasLeft) {
|
342
|
+
observer.onCompleted();
|
343
|
+
} else if (!hasRight) {
|
344
|
+
observer.onCompleted();
|
345
|
+
} else {
|
346
|
+
var result;
|
347
|
+
try {
|
348
|
+
result = resultSelector(lastLeft, lastRight);
|
349
|
+
} catch (e) {
|
350
|
+
observer.onError(e);
|
351
|
+
return;
|
352
|
+
}
|
353
|
+
observer.onNext(result);
|
354
|
+
observer.onCompleted();
|
355
|
+
}
|
261
356
|
}
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
return;
|
290
|
-
}
|
291
|
-
}
|
292
|
-
finished = true;
|
293
|
-
subscriber.onNext(results);
|
294
|
-
subscriber.onCompleted();
|
295
|
-
}
|
296
|
-
}));
|
297
|
-
})(idx);
|
357
|
+
})
|
358
|
+
);
|
359
|
+
|
360
|
+
rightSubscription.setDisposable(
|
361
|
+
second.subscribe(function (right) {
|
362
|
+
hasRight = true;
|
363
|
+
lastRight = right;
|
364
|
+
}, function (err) {
|
365
|
+
leftSubscription.dispose();
|
366
|
+
observer.onError(err);
|
367
|
+
}, function () {
|
368
|
+
rightStopped = true;
|
369
|
+
if (leftStopped) {
|
370
|
+
if (!hasLeft) {
|
371
|
+
observer.onCompleted();
|
372
|
+
} else if (!hasRight) {
|
373
|
+
observer.onCompleted();
|
374
|
+
} else {
|
375
|
+
var result;
|
376
|
+
try {
|
377
|
+
result = resultSelector(lastLeft, lastRight);
|
378
|
+
} catch (e) {
|
379
|
+
observer.onError(e);
|
380
|
+
return;
|
381
|
+
}
|
382
|
+
observer.onNext(result);
|
383
|
+
observer.onCompleted();
|
298
384
|
}
|
385
|
+
}
|
386
|
+
})
|
387
|
+
);
|
299
388
|
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
/**
|
305
|
-
* Runs two observable sequences in parallel and combines their last elemenets.
|
306
|
-
*
|
307
|
-
* @param {Observable} second Second observable sequence.
|
308
|
-
* @param {Function} resultSelector Result selector function to invoke with the last elements of both sequences.
|
309
|
-
* @returns {Observable} An observable sequence with the result of calling the selector function with the last elements of both input sequences.
|
310
|
-
*/
|
311
|
-
observableProto.forkJoin = function (second, resultSelector) {
|
312
|
-
var first = this;
|
313
|
-
|
314
|
-
return new AnonymousObservable(function (observer) {
|
315
|
-
var leftStopped = false, rightStopped = false,
|
316
|
-
hasLeft = false, hasRight = false,
|
317
|
-
lastLeft, lastRight,
|
318
|
-
leftSubscription = new SingleAssignmentDisposable(), rightSubscription = new SingleAssignmentDisposable();
|
319
|
-
|
320
|
-
leftSubscription.setDisposable(
|
321
|
-
first.subscribe(function (left) {
|
322
|
-
hasLeft = true;
|
323
|
-
lastLeft = left;
|
324
|
-
}, function (err) {
|
325
|
-
rightSubscription.dispose();
|
326
|
-
observer.onError(err);
|
327
|
-
}, function () {
|
328
|
-
leftStopped = true;
|
329
|
-
if (rightStopped) {
|
330
|
-
if (!hasLeft) {
|
331
|
-
observer.onCompleted();
|
332
|
-
} else if (!hasRight) {
|
333
|
-
observer.onCompleted();
|
334
|
-
} else {
|
335
|
-
var result;
|
336
|
-
try {
|
337
|
-
result = resultSelector(lastLeft, lastRight);
|
338
|
-
} catch (e) {
|
339
|
-
observer.onError(e);
|
340
|
-
return;
|
341
|
-
}
|
342
|
-
observer.onNext(result);
|
343
|
-
observer.onCompleted();
|
344
|
-
}
|
345
|
-
}
|
346
|
-
})
|
347
|
-
);
|
348
|
-
|
349
|
-
rightSubscription.setDisposable(
|
350
|
-
second.subscribe(function (right) {
|
351
|
-
hasRight = true;
|
352
|
-
lastRight = right;
|
353
|
-
}, function (err) {
|
354
|
-
leftSubscription.dispose();
|
355
|
-
observer.onError(err);
|
356
|
-
}, function () {
|
357
|
-
rightStopped = true;
|
358
|
-
if (leftStopped) {
|
359
|
-
if (!hasLeft) {
|
360
|
-
observer.onCompleted();
|
361
|
-
} else if (!hasRight) {
|
362
|
-
observer.onCompleted();
|
363
|
-
} else {
|
364
|
-
var result;
|
365
|
-
try {
|
366
|
-
result = resultSelector(lastLeft, lastRight);
|
367
|
-
} catch (e) {
|
368
|
-
observer.onError(e);
|
369
|
-
return;
|
370
|
-
}
|
371
|
-
observer.onNext(result);
|
372
|
-
observer.onCompleted();
|
373
|
-
}
|
374
|
-
}
|
375
|
-
})
|
376
|
-
);
|
377
|
-
|
378
|
-
return new CompositeDisposable(leftSubscription, rightSubscription);
|
379
|
-
});
|
380
|
-
};
|
389
|
+
return new CompositeDisposable(leftSubscription, rightSubscription);
|
390
|
+
});
|
391
|
+
};
|
381
392
|
|
382
393
|
/**
|
383
394
|
* Comonadic bind operator.
|
@@ -1 +1 @@
|
|
1
|
-
(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx","exports"],function(b,d){return c.Rx=a(c,d,b),c.Rx}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:v.call(a)}function f(a,b){return new r(function(){return new q(function(){return a()?{done:!1,value:b}:{done:!0,value:d}})})}var g=c.Observable,h=g.prototype,i=c.AnonymousObservable,j=g.concat,k=g.defer,l=g.empty,m=c.Disposable.empty,n=c.CompositeDisposable,o=c.SerialDisposable,p=c.SingleAssignmentDisposable,q=c.internals.Enumerator,r=c.internals.Enumerable,s=r.forEach,t=c.Scheduler.immediate,u=c.Scheduler.currentThread,v=Array.prototype.slice,w=c.AsyncSubject,x=c.Observer,y=c.internals.inherits,z=c.internals.addProperties,A=c.helpers.noop,B="object"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";a.Set&&"function"==typeof(new a.Set)["@@iterator"]&&(
|
1
|
+
(function(a){var b={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},c=b[typeof window]&&window||this,d=b[typeof exports]&&exports&&!exports.nodeType&&exports,e=b[typeof module]&&module&&!module.nodeType&&module,f=(e&&e.exports===d&&d,b[typeof global]&&global);!f||f.global!==f&&f.window!==f||(c=f),"function"==typeof define&&define.amd?define(["rx","exports"],function(b,d){return c.Rx=a(c,d,b),c.Rx}):"object"==typeof module&&module&&module.exports===d?module.exports=a(c,module.exports,require("./rx")):c.Rx=a(c,{},c.Rx)}).call(this,function(a,b,c,d){function e(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:v.call(a)}function f(a,b){return new r(function(){return new q(function(){return a()?{done:!1,value:b}:{done:!0,value:d}})})}var g=c.Observable,h=g.prototype,i=c.AnonymousObservable,j=g.concat,k=g.defer,l=g.empty,m=c.Disposable.empty,n=c.CompositeDisposable,o=c.SerialDisposable,p=c.SingleAssignmentDisposable,q=c.internals.Enumerator,r=c.internals.Enumerable,s=r.forEach,t=c.Scheduler.immediate,u=c.Scheduler.currentThread,v=Array.prototype.slice,w=c.AsyncSubject,x=c.Observer,y=c.internals.inherits,z=c.internals.addProperties,A=c.helpers.noop,B=c.helpers.isPromise,C=g.fromPromise,D="object"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";a.Set&&"function"==typeof(new a.Set)["@@iterator"]&&(D="@@iterator");h.letBind=h.let=function(a){return a(this)},g["if"]=g.ifThen=function(a,b,c){return k(function(){return c||(c=l()),B(b)&&(b=C(b)),B(c)&&(c=C(c)),"function"==typeof c.now&&(c=l(c)),a()?b:c})},g["for"]=g.forIn=function(a,b){return s(a,b).concat()};var E=g["while"]=g.whileDo=function(a,b){return B(b)&&(b=C(b)),f(a,b).concat()};h.doWhile=function(a){return j([this,E(a,this)])},g["case"]=g.switchCase=function(a,b,c){return k(function(){c||(c=l()),"function"==typeof c.now&&(c=l(c));var d=b[a()];return B(d)&&(d=C(d)),d||c})},h.expand=function(a,b){b||(b=t);var c=this;return new i(function(d){var e=[],f=new o,g=new n(f),h=0,i=!1,j=function(){var c=!1;e.length>0&&(c=!i,i=!0),c&&f.setDisposable(b.scheduleRecursive(function(b){var c;if(!(e.length>0))return void(i=!1);c=e.shift();var f=new p;g.add(f),f.setDisposable(c.subscribe(function(b){d.onNext(b);var c=null;try{c=a(b)}catch(f){d.onError(f)}e.push(c),h++,j()},d.onError.bind(d),function(){g.remove(f),h--,0===h&&d.onCompleted()})),b()}))};return e.push(c),h++,j(),g})},g.forkJoin=function(){var a=e(arguments,0);return new i(function(b){var c=a.length;if(0===c)return b.onCompleted(),m;for(var d=new n,e=!1,f=new Array(c),g=new Array(c),h=new Array(c),i=0;c>i;i++)!function(i){var j=a[i];B(j)&&(j=C(j)),d.add(j.subscribe(function(a){e||(f[i]=!0,h[i]=a)},function(a){e=!0,b.onError(a),d.dispose()},function(){if(!e){if(!f[i])return void b.onCompleted();g[i]=!0;for(var a=0;c>a;a++)if(!g[a])return;e=!0,b.onNext(h),b.onCompleted()}}))}(i);return d})},h.forkJoin=function(a,b){var c=this;return new i(function(d){var e,f,g=!1,h=!1,i=!1,j=!1,k=new p,l=new p;return B(a)&&(a=C(a)),k.setDisposable(c.subscribe(function(a){i=!0,e=a},function(a){l.dispose(),d.onError(a)},function(){if(g=!0,h)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),l.setDisposable(a.subscribe(function(a){j=!0,f=a},function(a){k.dispose(),d.onError(a)},function(){if(h=!0,g)if(i)if(j){var a;try{a=b(e,f)}catch(c){return void d.onError(c)}d.onNext(a),d.onCompleted()}else d.onCompleted();else d.onCompleted()})),new n(k,l)})},h.manySelect=function(a,b){b||(b=t);var c=this;return k(function(){var d;return c.select(function(a){var b=new F(a);return d&&d.onNext(a),d=b,b}).doAction(A,function(a){d&&d.onError(a)},function(){d&&d.onCompleted()}).observeOn(b).select(function(b,c,d){return a(b,c,d)})})};var F=function(a){function b(a){var b=this,c=new n;return c.add(u.schedule(function(){a.onNext(b.head),c.add(b.tail.mergeObservable().subscribe(a))})),c}function c(c){a.call(this,b),this.head=c,this.tail=new w}return y(c,a),z(c.prototype,x,{onCompleted:function(){this.onNext(g.empty())},onError:function(a){this.onNext(g.throwException(a))},onNext:function(a){this.tail.onNext(a),this.tail.onCompleted()}}),c}(g);return c});
|