rxjs-rails 2.2.18 → 2.2.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/rxjs/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rx.aggregates.js +4 -12
- data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.compat.js +170 -148
- data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.js +107 -83
- data/vendor/assets/javascripts/rx.async.min.js +1 -1
- data/vendor/assets/javascripts/rx.backpressure.js +97 -33
- data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
- data/vendor/assets/javascripts/rx.coincidence.js +2 -4
- data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
- data/vendor/assets/javascripts/rx.compat.js +31 -11
- data/vendor/assets/javascripts/rx.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.experimental.js +3 -3
- data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
- data/vendor/assets/javascripts/rx.joinpatterns.js +4 -7
- data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
- data/vendor/assets/javascripts/rx.js +31 -11
- data/vendor/assets/javascripts/rx.lite.compat.js +296 -190
- data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.lite.js +233 -125
- data/vendor/assets/javascripts/rx.lite.min.js +2 -2
- data/vendor/assets/javascripts/rx.min.js +2 -2
- data/vendor/assets/javascripts/rx.virtualtime.js +2 -3
- data/vendor/assets/javascripts/rx.virtualtime.min.js +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ca12b7cac3d584e7ae7333c48c6a9f0eb4c8365c
|
4
|
+
data.tar.gz: 1417d47add82b99aa3d7795e0fd01a9e05c3e4de
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 706f784ad10ceef8cad344b47f33050008c81e6da1f7e4e02b90d3aa0a92b9d31f7663094772b2c4ad107c9faefaba18a57023aa32383aaad541aa03af9790fd
|
7
|
+
data.tar.gz: f55b4c6143f62d22e2a8f0e684ac0f95a319dc16a47330c89a596ec50ac973b80d97adb9f7be004ca430cdf50830ab2aa59913221cbe4e74ea985849718976b7
|
data/lib/rxjs/rails/version.rb
CHANGED
@@ -38,22 +38,14 @@
|
|
38
38
|
observableProto = Observable.prototype,
|
39
39
|
CompositeDisposable = Rx.CompositeDisposable,
|
40
40
|
AnonymousObservable = Rx.AnonymousObservable,
|
41
|
-
isEqual = Rx.internals.isEqual
|
41
|
+
isEqual = Rx.internals.isEqual,
|
42
|
+
defaultComparer = Rx.helpers.defaultComparer,
|
43
|
+
identity = Rx.helpers.identity,
|
44
|
+
subComparer = Rx.helpers.defaultSubComparer;
|
42
45
|
|
43
46
|
// Defaults
|
44
47
|
var argumentOutOfRange = 'Argument out of range';
|
45
48
|
var sequenceContainsNoElements = "Sequence contains no elements.";
|
46
|
-
function defaultComparer(x, y) { return isEqual(x, y); }
|
47
|
-
function identity(x) { return x; }
|
48
|
-
function subComparer(x, y) {
|
49
|
-
if (x > y) {
|
50
|
-
return 1;
|
51
|
-
}
|
52
|
-
if (x < y) {
|
53
|
-
return -1
|
54
|
-
}
|
55
|
-
return 0;
|
56
|
-
}
|
57
49
|
|
58
50
|
function extremaBy(source, keySelector, comparer) {
|
59
51
|
return new AnonymousObservable(function (observer) {
|
@@ -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
|
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,c){return new p(function(d){var e=!1,f=null,g=[];return a.subscribe(function(a){var h,i;try{i=b(a)}catch(j){return void d.onError(j)}if(h=0,e)try{h=c(i,f)}catch(k){return void d.onError(k)}else e=!0,f=i;h>0&&(f=i,g=[]),h>=0&&g.push(a)},d.onError.bind(d),function(){d.onNext(g),d.onCompleted()})})}function f(a){if(0===a.length)throw new Error(u);return a[0]}function g(a,b,c){return new p(function(d){var e=0,f=b.length;return a.subscribe(function(a){var g=!1;try{f>e&&(g=c(a,b[e++]))}catch(h){return void d.onError(h)}g||(d.onNext(!1),d.onCompleted())},d.onError.bind(d),function(){d.onNext(e===f),d.onCompleted()})})}function h(a,b,c,d){if(0>b)throw new Error(t);return new p(function(e){var f=b;return a.subscribe(function(a){0===f&&(e.onNext(a),e.onCompleted()),f--},e.onError.bind(e),function(){c?(e.onNext(d),e.onCompleted()):e.onError(new Error(t))})})}function i(a,b,c){return new p(function(d){var e=c,f=!1;return a.subscribe(function(a){f?d.onError(new Error("Sequence contains more than one element")):(e=a,f=!0)},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(u))})})}function j(a,b,c){return new p(function(d){return a.subscribe(function(a){d.onNext(a),d.onCompleted()},d.onError.bind(d),function(){b?(d.onNext(c),d.onCompleted()):d.onError(new Error(u))})})}function k(a,b,c){return new p(function(d){var e=c,f=!1;return a.subscribe(function(a){e=a,f=!0},d.onError.bind(d),function(){f||b?(d.onNext(e),d.onCompleted()):d.onError(new Error(u))})})}function l(a,b,c,e){return new p(function(f){var g=0;return a.subscribe(function(d){var h;try{h=b.call(c,d,g,a)}catch(i){return void f.onError(i)}h?(f.onNext(e?g:d),f.onCompleted()):g++},f.onError.bind(f),function(){f.onNext(e?-1:d),f.onCompleted()})})}var m=c.Observable,n=m.prototype,o=c.CompositeDisposable,p=c.AnonymousObservable,q=(c.internals.isEqual,c.helpers.defaultComparer),r=c.helpers.identity,s=c.helpers.defaultSubComparer,t="Argument out of range",u="Sequence contains no elements.";return n.aggregate=function(){var a,b,c;return 2===arguments.length?(a=arguments[0],b=!0,c=arguments[1]):c=arguments[0],b?this.scan(a,c).startWith(a).finalValue():this.scan(c).finalValue()},n.reduce=function(a){var b,c;return 2===arguments.length&&(c=!0,b=arguments[1]),c?this.scan(b,a).startWith(b).finalValue():this.scan(a).finalValue()},n.some=n.any=function(a,b){var c=this;return a?c.where(a,b).any():new p(function(a){return c.subscribe(function(){a.onNext(!0),a.onCompleted()},a.onError.bind(a),function(){a.onNext(!1),a.onCompleted()})})},n.isEmpty=function(){return this.any().select(function(a){return!a})},n.every=n.all=function(a,b){return this.where(function(b){return!a(b)},b).any().select(function(a){return!a})},n.contains=function(a,b){return b||(b=q),this.where(function(c){return b(c,a)}).any()},n.count=function(a,b){return a?this.where(a,b).count():this.aggregate(0,function(a){return a+1})},n.sum=function(a,b){return a?this.select(a,b).sum():this.aggregate(0,function(a,b){return a+b})},n.minBy=function(a,b){return b||(b=s),e(this,a,function(a,c){return-1*b(a,c)})},n.min=function(a){return this.minBy(r,a).select(function(a){return f(a)})},n.maxBy=function(a,b){return b||(b=s),e(this,a,b)},n.max=function(a){return this.maxBy(r,a).select(function(a){return f(a)})},n.average=function(a,b){return a?this.select(a,b).average():this.scan({sum:0,count:0},function(a,b){return{sum:a.sum+b,count:a.count+1}}).finalValue().select(function(a){if(0===a.count)throw new Error("The input sequence was empty");return a.sum/a.count})},n.sequenceEqual=function(a,b){var c=this;return b||(b=q),Array.isArray(a)?g(c,a,b):new p(function(d){var e=!1,f=!1,g=[],h=[],i=c.subscribe(function(a){var c,e;if(h.length>0){e=h.shift();try{c=b(e,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else f?(d.onNext(!1),d.onCompleted()):g.push(a)},d.onError.bind(d),function(){e=!0,0===g.length&&(h.length>0?(d.onNext(!1),d.onCompleted()):f&&(d.onNext(!0),d.onCompleted()))}),j=a.subscribe(function(a){var c,f;if(g.length>0){f=g.shift();try{c=b(f,a)}catch(i){return void d.onError(i)}c||(d.onNext(!1),d.onCompleted())}else e?(d.onNext(!1),d.onCompleted()):h.push(a)},d.onError.bind(d),function(){f=!0,0===h.length&&(g.length>0?(d.onNext(!1),d.onCompleted()):e&&(d.onNext(!0),d.onCompleted()))});return new o(i,j)})},n.elementAt=function(a){return h(this,a,!1)},n.elementAtOrDefault=function(a,b){return h(this,a,!0,b)},n.single=function(a,b){return a?this.where(a,b).single():i(this,!1)},n.singleOrDefault=function(a,b,c){return a?this.where(a,c).singleOrDefault(null,b):i(this,!0,b)},n.first=function(a,b){return a?this.where(a,b).first():j(this,!1)},n.firstOrDefault=function(a,b){return a?this.where(a).firstOrDefault(null,b):j(this,!0,b)},n.last=function(a,b){return a?this.where(a,b).last():k(this,!1)},n.lastOrDefault=function(a,b,c){return a?this.where(a,c).lastOrDefault(null,b):k(this,!0,b)},n.find=function(a,b){return l(this,a,b,!1)},n.findIndex=function(a,b){return l(this,a,b,!0)},c});
|
@@ -191,168 +191,190 @@
|
|
191
191
|
};
|
192
192
|
};
|
193
193
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
194
|
+
function fixEvent(event) {
|
195
|
+
var stopPropagation = function () {
|
196
|
+
this.cancelBubble = true;
|
197
|
+
};
|
198
198
|
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
199
|
+
var preventDefault = function () {
|
200
|
+
this.bubbledKeyCode = this.keyCode;
|
201
|
+
if (this.ctrlKey) {
|
202
|
+
try {
|
203
|
+
this.keyCode = 0;
|
204
|
+
} catch (e) { }
|
205
|
+
}
|
206
|
+
this.defaultPrevented = true;
|
207
|
+
this.returnValue = false;
|
208
|
+
this.modified = true;
|
209
|
+
};
|
210
210
|
|
211
|
-
|
212
|
-
|
213
|
-
|
211
|
+
event || (event = root.event);
|
212
|
+
if (!event.target) {
|
213
|
+
event.target = event.target || event.srcElement;
|
214
214
|
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
215
|
+
if (event.type == 'mouseover') {
|
216
|
+
event.relatedTarget = event.fromElement;
|
217
|
+
}
|
218
|
+
if (event.type == 'mouseout') {
|
219
|
+
event.relatedTarget = event.toElement;
|
220
|
+
}
|
221
|
+
// Adding stopPropogation and preventDefault to IE
|
222
|
+
if (!event.stopPropagation){
|
223
|
+
event.stopPropagation = stopPropagation;
|
224
|
+
event.preventDefault = preventDefault;
|
225
|
+
}
|
226
|
+
// Normalize key events
|
227
|
+
switch(event.type){
|
228
|
+
case 'keypress':
|
229
|
+
var c = ('charCode' in event ? event.charCode : event.keyCode);
|
230
|
+
if (c == 10) {
|
231
|
+
c = 0;
|
232
|
+
event.keyCode = 13;
|
233
|
+
} else if (c == 13 || c == 27) {
|
234
|
+
c = 0;
|
235
|
+
} else if (c == 3) {
|
236
|
+
c = 99;
|
237
|
+
}
|
238
|
+
event.charCode = c;
|
239
|
+
event.keyChar = event.charCode ? String.fromCharCode(event.charCode) : '';
|
240
|
+
break;
|
241
|
+
}
|
242
|
+
}
|
243
|
+
|
244
|
+
return event;
|
245
|
+
}
|
243
246
|
|
244
|
-
|
247
|
+
function createListener (element, name, handler) {
|
248
|
+
// Node.js specific
|
249
|
+
if (element.addListener) {
|
250
|
+
element.addListener(name, handler);
|
251
|
+
return disposableCreate(function () {
|
252
|
+
element.removeListener(name, handler);
|
253
|
+
});
|
254
|
+
}
|
255
|
+
// Standards compliant
|
256
|
+
if (element.addEventListener) {
|
257
|
+
element.addEventListener(name, handler, false);
|
258
|
+
return disposableCreate(function () {
|
259
|
+
element.removeEventListener(name, handler, false);
|
260
|
+
});
|
261
|
+
}
|
262
|
+
if (element.attachEvent) {
|
263
|
+
// IE Specific
|
264
|
+
var innerHandler = function (event) {
|
265
|
+
handler(fixEvent(event));
|
266
|
+
};
|
267
|
+
element.attachEvent('on' + name, innerHandler);
|
268
|
+
return disposableCreate(function () {
|
269
|
+
element.detachEvent('on' + name, innerHandler);
|
270
|
+
});
|
245
271
|
}
|
272
|
+
// Level 1 DOM Events
|
273
|
+
element['on' + name] = handler;
|
274
|
+
return disposableCreate(function () {
|
275
|
+
element['on' + name] = null;
|
276
|
+
});
|
277
|
+
}
|
246
278
|
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
element.addEventListener(name, handler, false);
|
258
|
-
return disposableCreate(function () {
|
259
|
-
element.removeEventListener(name, handler, false);
|
260
|
-
});
|
261
|
-
} else if (element.attachEvent) {
|
262
|
-
// IE Specific
|
263
|
-
var innerHandler = function (event) {
|
264
|
-
handler(fixEvent(event));
|
265
|
-
};
|
266
|
-
element.attachEvent('on' + name, innerHandler);
|
267
|
-
return disposableCreate(function () {
|
268
|
-
element.detachEvent('on' + name, innerHandler);
|
269
|
-
});
|
270
|
-
} else {
|
271
|
-
// Level 1 DOM Events
|
272
|
-
element['on' + name] = handler;
|
273
|
-
return disposableCreate(function () {
|
274
|
-
element['on' + name] = null;
|
275
|
-
});
|
276
|
-
}
|
279
|
+
function createEventListener (el, eventName, handler) {
|
280
|
+
var disposables = new CompositeDisposable();
|
281
|
+
|
282
|
+
// Asume NodeList
|
283
|
+
if (typeof el.item === 'function' && typeof el.length === 'number') {
|
284
|
+
for (var i = 0, len = el.length; i < len; i++) {
|
285
|
+
disposables.add(createEventListener(el.item(i), eventName, handler));
|
286
|
+
}
|
287
|
+
} else if (el) {
|
288
|
+
disposables.add(createListener(el, eventName, handler));
|
277
289
|
}
|
278
290
|
|
279
|
-
|
280
|
-
|
291
|
+
return disposables;
|
292
|
+
}
|
281
293
|
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
} else if (el) {
|
288
|
-
disposables.add(createListener(el, eventName, handler));
|
289
|
-
}
|
294
|
+
// Check for Angular/jQuery/Zepto support
|
295
|
+
var jq =
|
296
|
+
!!root.angular && !!angular.element ? angular.element :
|
297
|
+
(!!root.jQuery ? root.jQuery : (
|
298
|
+
!!root.Zepto ? root.Zepto : null));
|
290
299
|
|
291
|
-
|
292
|
-
|
300
|
+
// Check for ember
|
301
|
+
var ember = !!root.Ember && typeof root.Ember.addListener === 'function';
|
293
302
|
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
|
302
|
-
|
303
|
-
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
308
|
-
|
309
|
-
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
303
|
+
/**
|
304
|
+
* Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList.
|
305
|
+
*
|
306
|
+
* @example
|
307
|
+
* var source = Rx.Observable.fromEvent(element, 'mouseup');
|
308
|
+
*
|
309
|
+
* @param {Object} element The DOMElement or NodeList to attach a listener.
|
310
|
+
* @param {String} eventName The event name to attach the observable sequence.
|
311
|
+
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
312
|
+
* @returns {Observable} An observable sequence of events from the specified element and the specified event.
|
313
|
+
*/
|
314
|
+
Observable.fromEvent = function (element, eventName, selector) {
|
315
|
+
if (ember) {
|
316
|
+
return fromEventPattern(
|
317
|
+
function (h) { Ember.addListener(element, eventName); },
|
318
|
+
function (h) { Ember.removeListener(element, eventName); },
|
319
|
+
selector);
|
320
|
+
}
|
321
|
+
if (jq) {
|
322
|
+
var $elem = jq(elem);
|
323
|
+
return fromEventPattern(
|
324
|
+
function (h) { $elem.on(eventName, h); },
|
325
|
+
function (h) { $elem.off(eventName, h); },
|
326
|
+
selector);
|
327
|
+
}
|
328
|
+
return new AnonymousObservable(function (observer) {
|
329
|
+
return createEventListener(
|
330
|
+
element,
|
331
|
+
eventName,
|
332
|
+
function handler (e) {
|
333
|
+
var results = e;
|
321
334
|
|
322
|
-
|
323
|
-
|
324
|
-
|
325
|
-
|
326
|
-
|
327
|
-
|
328
|
-
* @param {Function} addHandler The function to add a handler to the emitter.
|
329
|
-
* @param {Function} [removeHandler] The optional function to remove a handler from an emitter.
|
330
|
-
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
331
|
-
* @returns {Observable} An observable sequence which wraps an event from an event emitter
|
332
|
-
*/
|
333
|
-
Observable.fromEventPattern = function (addHandler, removeHandler, selector) {
|
334
|
-
return new AnonymousObservable(function (observer) {
|
335
|
-
function innerHandler (e) {
|
336
|
-
var result = e;
|
337
|
-
if (selector) {
|
338
|
-
try {
|
339
|
-
result = selector(arguments);
|
340
|
-
} catch (err) {
|
341
|
-
observer.onError(err);
|
342
|
-
return;
|
343
|
-
}
|
344
|
-
}
|
345
|
-
observer.onNext(result);
|
335
|
+
if (selector) {
|
336
|
+
try {
|
337
|
+
results = selector(arguments);
|
338
|
+
} catch (err) {
|
339
|
+
observer.onError(err);
|
340
|
+
return
|
346
341
|
}
|
342
|
+
}
|
347
343
|
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
344
|
+
observer.onNext(results);
|
345
|
+
});
|
346
|
+
}).publish().refCount();
|
347
|
+
};
|
348
|
+
/**
|
349
|
+
* Creates an observable sequence from an event emitter via an addHandler/removeHandler pair.
|
350
|
+
* @param {Function} addHandler The function to add a handler to the emitter.
|
351
|
+
* @param {Function} [removeHandler] The optional function to remove a handler from an emitter.
|
352
|
+
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
353
|
+
* @returns {Observable} An observable sequence which wraps an event from an event emitter
|
354
|
+
*/
|
355
|
+
var fromEventPattern = Observable.fromEventPattern = function (addHandler, removeHandler, selector) {
|
356
|
+
return new AnonymousObservable(function (observer) {
|
357
|
+
function innerHandler (e) {
|
358
|
+
var result = e;
|
359
|
+
if (selector) {
|
360
|
+
try {
|
361
|
+
result = selector(arguments);
|
362
|
+
} catch (err) {
|
363
|
+
observer.onError(err);
|
364
|
+
return;
|
365
|
+
}
|
366
|
+
}
|
367
|
+
observer.onNext(result);
|
368
|
+
}
|
369
|
+
|
370
|
+
var returnValue = addHandler(innerHandler);
|
371
|
+
return disposableCreate(function () {
|
372
|
+
if (removeHandler) {
|
373
|
+
removeHandler(innerHandler, returnValue);
|
374
|
+
}
|
375
|
+
});
|
376
|
+
}).publish().refCount();
|
377
|
+
};
|
356
378
|
|
357
379
|
/**
|
358
380
|
* Invokes the asynchronous function, surfacing the result through an observable sequence.
|
@@ -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.binding","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){function d(
|
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.binding","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){function d(b){var c=function(){this.cancelBubble=!0},d=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(b||(b=a.event),!b.target)switch(b.target=b.target||b.srcElement,"mouseover"==b.type&&(b.relatedTarget=b.fromElement),"mouseout"==b.type&&(b.relatedTarget=b.toElement),b.stopPropagation||(b.stopPropagation=c,b.preventDefault=d),b.type){case"keypress":var e="charCode"in b?b.charCode:b.keyCode;10==e?(e=0,b.keyCode=13):13==e||27==e?e=0:3==e&&(e=99),b.charCode=e,b.keyChar=b.charCode?String.fromCharCode(b.charCode):""}return b}function e(a,b,c){if(a.addListener)return a.addListener(b,c),l(function(){a.removeListener(b,c)});if(a.addEventListener)return a.addEventListener(b,c,!1),l(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var e=function(a){c(d(a))};return a.attachEvent("on"+b,e),l(function(){a.detachEvent("on"+b,e)})}return a["on"+b]=c,l(function(){a["on"+b]=null})}function f(a,b,c){var d=new m;if("function"==typeof a.item&&"number"==typeof a.length)for(var g=0,h=a.length;h>g;g++)d.add(f(a.item(g),b,c));else a&&d.add(e(a,b,c));return d}var g=c.Observable,h=(g.prototype,g.fromPromise),i=g.throwException,j=c.AnonymousObservable,k=c.AsyncSubject,l=c.Disposable.create,m=c.CompositeDisposable,n=c.Scheduler.immediate,o=Array.prototype.slice;g.start=function(a,b,c){return p(a,b,c)()};var p=g.toAsync=function(a,b,c){return b||(b=timeoutScheduler),function(){var d=arguments,e=new k;return b.schedule(function(){var b;try{b=a.apply(c,d)}catch(f){return void e.onError(f)}e.onNext(b),e.onCompleted()}),e.asObservable()}};g.fromCallback=function(a,b,c,d){return b||(b=n),function(){var e=o.call(arguments,0);return new j(function(f){return b.schedule(function(){function b(a){var b=a;if(d)try{b=d(arguments)}catch(c){return void f.onError(c)}else 1===b.length&&(b=b[0]);f.onNext(b),f.onCompleted()}e.push(b),a.apply(c,e)})})}},g.fromNodeCallback=function(a,b,c,d){return b||(b=n),function(){var e=o.call(arguments,0);return new j(function(f){return b.schedule(function(){function b(a){if(a)return void f.onError(a);var b=o.call(arguments,1);if(d)try{b=d(b)}catch(c){return void f.onError(c)}else 1===b.length&&(b=b[0]);f.onNext(b),f.onCompleted()}e.push(b),a.apply(c,e)})})}};var q=a.angular&&angular.element?angular.element:a.jQuery?a.jQuery:a.Zepto?a.Zepto:null,r=!!a.Ember&&"function"==typeof a.Ember.addListener;g.fromEvent=function(a,b,c){if(r)return s(function(){Ember.addListener(a,b)},function(){Ember.removeListener(a,b)},c);if(q){var d=q(elem);return s(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}return new j(function(d){return f(a,b,function(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)})}).publish().refCount()};var s=g.fromEventPattern=function(a,b,c){return new j(function(d){function e(a){var b=a;if(c)try{b=c(arguments)}catch(e){return void d.onError(e)}d.onNext(b)}var f=a(e);return l(function(){b&&b(e,f)})}).publish().refCount()};return g.startAsync=function(a){var b;try{b=a()}catch(c){return i(c)}return h(b)},c});
|
@@ -191,98 +191,122 @@
|
|
191
191
|
};
|
192
192
|
};
|
193
193
|
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
194
|
+
function createListener (element, name, handler) {
|
195
|
+
// Node.js specific
|
196
|
+
if (element.addListener) {
|
197
|
+
element.addListener(name, handler);
|
198
|
+
return disposableCreate(function () {
|
199
|
+
element.removeListener(name, handler);
|
200
|
+
});
|
201
|
+
}
|
202
|
+
if (element.addEventListener) {
|
203
|
+
element.addEventListener(name, handler, false);
|
204
|
+
return disposableCreate(function () {
|
205
|
+
element.removeEventListener(name, handler, false);
|
206
|
+
});
|
207
207
|
}
|
208
|
+
throw new Error('No listener found');
|
209
|
+
}
|
208
210
|
|
209
|
-
|
210
|
-
|
211
|
+
function createEventListener (el, eventName, handler) {
|
212
|
+
var disposables = new CompositeDisposable();
|
211
213
|
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
}
|
220
|
-
|
221
|
-
return disposables;
|
214
|
+
// Asume NodeList
|
215
|
+
if (typeof el.item === 'function' && typeof el.length === 'number') {
|
216
|
+
for (var i = 0, len = el.length; i < len; i++) {
|
217
|
+
disposables.add(createEventListener(el.item(i), eventName, handler));
|
218
|
+
}
|
219
|
+
} else if (el) {
|
220
|
+
disposables.add(createListener(el, eventName, handler));
|
222
221
|
}
|
223
222
|
|
224
|
-
|
225
|
-
|
226
|
-
*
|
227
|
-
* @example
|
228
|
-
* var source = Rx.Observable.fromEvent(element, 'mouseup');
|
229
|
-
*
|
230
|
-
* @param {Object} element The DOMElement or NodeList to attach a listener.
|
231
|
-
* @param {String} eventName The event name to attach the observable sequence.
|
232
|
-
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
233
|
-
* @returns {Observable} An observable sequence of events from the specified element and the specified event.
|
234
|
-
*/
|
235
|
-
Observable.fromEvent = function (element, eventName, selector) {
|
236
|
-
return new AnonymousObservable(function (observer) {
|
237
|
-
return createEventListener(
|
238
|
-
element,
|
239
|
-
eventName,
|
240
|
-
function handler (e) {
|
241
|
-
var results = e;
|
223
|
+
return disposables;
|
224
|
+
}
|
242
225
|
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
return
|
249
|
-
}
|
250
|
-
}
|
226
|
+
// Check for Angular/jQuery/Zepto support
|
227
|
+
var jq =
|
228
|
+
!!root.angular && !!angular.element ? angular.element :
|
229
|
+
(!!root.jQuery ? root.jQuery : (
|
230
|
+
!!root.Zepto ? root.Zepto : null));
|
251
231
|
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
232
|
+
// Check for ember
|
233
|
+
var ember = !!root.Ember && typeof root.Ember.addListener === 'function';
|
234
|
+
|
235
|
+
/**
|
236
|
+
* Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList.
|
237
|
+
*
|
238
|
+
* @example
|
239
|
+
* var source = Rx.Observable.fromEvent(element, 'mouseup');
|
240
|
+
*
|
241
|
+
* @param {Object} element The DOMElement or NodeList to attach a listener.
|
242
|
+
* @param {String} eventName The event name to attach the observable sequence.
|
243
|
+
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
244
|
+
* @returns {Observable} An observable sequence of events from the specified element and the specified event.
|
245
|
+
*/
|
246
|
+
Observable.fromEvent = function (element, eventName, selector) {
|
247
|
+
if (ember) {
|
248
|
+
return fromEventPattern(
|
249
|
+
function (h) { Ember.addListener(element, eventName); },
|
250
|
+
function (h) { Ember.removeListener(element, eventName); },
|
251
|
+
selector);
|
252
|
+
}
|
253
|
+
if (jq) {
|
254
|
+
var $elem = jq(elem);
|
255
|
+
return fromEventPattern(
|
256
|
+
function (h) { $elem.on(eventName, h); },
|
257
|
+
function (h) { $elem.off(eventName, h); },
|
258
|
+
selector);
|
259
|
+
}
|
260
|
+
return new AnonymousObservable(function (observer) {
|
261
|
+
return createEventListener(
|
262
|
+
element,
|
263
|
+
eventName,
|
264
|
+
function handler (e) {
|
265
|
+
var results = e;
|
266
|
+
|
267
|
+
if (selector) {
|
268
|
+
try {
|
269
|
+
results = selector(arguments);
|
270
|
+
} catch (err) {
|
271
|
+
observer.onError(err);
|
272
|
+
return
|
276
273
|
}
|
274
|
+
}
|
277
275
|
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
276
|
+
observer.onNext(results);
|
277
|
+
});
|
278
|
+
}).publish().refCount();
|
279
|
+
};
|
280
|
+
/**
|
281
|
+
* Creates an observable sequence from an event emitter via an addHandler/removeHandler pair.
|
282
|
+
* @param {Function} addHandler The function to add a handler to the emitter.
|
283
|
+
* @param {Function} [removeHandler] The optional function to remove a handler from an emitter.
|
284
|
+
* @param {Function} [selector] A selector which takes the arguments from the event handler to produce a single item to yield on next.
|
285
|
+
* @returns {Observable} An observable sequence which wraps an event from an event emitter
|
286
|
+
*/
|
287
|
+
var fromEventPattern = Observable.fromEventPattern = function (addHandler, removeHandler, selector) {
|
288
|
+
return new AnonymousObservable(function (observer) {
|
289
|
+
function innerHandler (e) {
|
290
|
+
var result = e;
|
291
|
+
if (selector) {
|
292
|
+
try {
|
293
|
+
result = selector(arguments);
|
294
|
+
} catch (err) {
|
295
|
+
observer.onError(err);
|
296
|
+
return;
|
297
|
+
}
|
298
|
+
}
|
299
|
+
observer.onNext(result);
|
300
|
+
}
|
301
|
+
|
302
|
+
var returnValue = addHandler(innerHandler);
|
303
|
+
return disposableCreate(function () {
|
304
|
+
if (removeHandler) {
|
305
|
+
removeHandler(innerHandler, returnValue);
|
306
|
+
}
|
307
|
+
});
|
308
|
+
}).publish().refCount();
|
309
|
+
};
|
286
310
|
|
287
311
|
/**
|
288
312
|
* Invokes the asynchronous function, surfacing the result through an observable sequence.
|