rxjs-rails 2.3.22 → 2.3.25
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/lib/rxjs/rails/version.rb +1 -1
- data/vendor/assets/javascripts/rx.aggregates.js +178 -146
- data/vendor/assets/javascripts/rx.aggregates.min.js +1 -1
- data/vendor/assets/javascripts/rx.all.compat.js +1706 -1156
- data/vendor/assets/javascripts/rx.all.compat.min.js +4 -4
- data/vendor/assets/javascripts/rx.all.js +1529 -1125
- data/vendor/assets/javascripts/rx.all.min.js +4 -3
- data/vendor/assets/javascripts/rx.async.compat.js +15 -79
- data/vendor/assets/javascripts/rx.async.compat.min.js +1 -1
- data/vendor/assets/javascripts/rx.async.js +15 -79
- data/vendor/assets/javascripts/rx.async.min.js +1 -1
- data/vendor/assets/javascripts/rx.backpressure.js +38 -15
- data/vendor/assets/javascripts/rx.backpressure.min.js +1 -1
- data/vendor/assets/javascripts/rx.binding.js +42 -54
- data/vendor/assets/javascripts/rx.binding.min.js +1 -1
- data/vendor/assets/javascripts/rx.coincidence.js +6 -6
- data/vendor/assets/javascripts/rx.coincidence.min.js +1 -1
- data/vendor/assets/javascripts/rx.compat.js +1234 -828
- data/vendor/assets/javascripts/rx.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.experimental.js +12 -6
- data/vendor/assets/javascripts/rx.experimental.min.js +1 -1
- data/vendor/assets/javascripts/rx.joinpatterns.js +15 -11
- data/vendor/assets/javascripts/rx.joinpatterns.min.js +1 -1
- data/vendor/assets/javascripts/rx.js +1159 -791
- data/vendor/assets/javascripts/rx.lite.compat.js +1264 -920
- data/vendor/assets/javascripts/rx.lite.compat.min.js +2 -2
- data/vendor/assets/javascripts/rx.lite.extras.js +99 -27
- data/vendor/assets/javascripts/rx.lite.extras.min.js +1 -1
- data/vendor/assets/javascripts/rx.lite.js +1192 -886
- data/vendor/assets/javascripts/rx.lite.min.js +2 -2
- data/vendor/assets/javascripts/rx.min.js +2 -2
- data/vendor/assets/javascripts/rx.testing.js +64 -63
- data/vendor/assets/javascripts/rx.testing.min.js +1 -1
- data/vendor/assets/javascripts/rx.time.js +32 -35
- data/vendor/assets/javascripts/rx.time.min.js +1 -1
- metadata +3 -3
@@ -1,4 +1,4 @@
|
|
1
1
|
/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
|
2
|
-
(function(a){function b(){if(this.isDisposed)throw new Error(fb)}function c(a,b){if(gb&&b.stack&&"object"==typeof a&&null!==a&&a.stack&&-1===a.stack.indexOf(kb)){for(var c=[],e=b;e;e=e.source)e.stack&&c.unshift(e.stack);c.unshift(a.stack);var f=c.join("\n"+kb+"\n");a.stack=d(f)}}function d(a){for(var b=a.split("\n"),c=[],d=0,g=b.length;g>d;d++){var h=b[d];e(h)||f(h)||!h||c.push(h)}return c.join("\n")}function e(a){var b=h(a);if(!b)return!1;var c=b[0],d=b[1];return c===ib&&d>=jb&&bd>=d}function f(a){return-1!==a.indexOf("(module.js:")||-1!==a.indexOf("(node.js:")}function g(){if(gb)try{throw new Error}catch(a){var b=a.stack.split("\n"),c=b[0].indexOf("@")>0?b[1]:b[2],d=h(c);if(!d)return;return ib=d[0],d[1]}}function h(a){var b=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(a);if(b)return[b[1],Number(b[2])];var c=/at ([^ ]+):(\d+):(?:\d+)$/.exec(a);if(c)return[c[1],Number(c[2])];var d=/.*@(.+):(\d+)$/.exec(a);return d?[d[1],Number(d[2])]:void 0}function i(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1}function j(a){var b=[];if(!i(a))return b;Kb.nonEnumArgs&&a.length&&Lb(a)&&(a=Nb.call(a));var c=Kb.enumPrototypes&&"function"==typeof a,d=Kb.enumErrorProps&&(a===Eb||a instanceof Error);for(var e in a)c&&"prototype"==e||d&&("message"==e||"name"==e)||b.push(e);if(Kb.nonEnumShadows&&a!==Fb){var f=a.constructor,g=-1,h=Ib.length;if(a===(f&&f.prototype))var j=a===Gb?Ab:a===Eb?vb:Bb.call(a),k=Jb[j];for(;++g<h;)e=Ib[g],k&&k[e]||!Cb.call(a,e)||b.push(e)}return b}function k(a,b,c){for(var d=-1,e=c(a),f=e.length;++d<f;){var g=e[d];if(b(a[g],g,a)===!1)break}return a}function l(a,b){return k(a,b,j)}function m(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}function n(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;var e=typeof a,f=typeof b;if(a===a&&(null==a||null==b||"function"!=e&&"object"!=e&&"function"!=f&&"object"!=f))return!1;var g=Bb.call(a),h=Bb.call(b);if(g==rb&&(g=yb),h==rb&&(h=yb),g!=h)return!1;switch(g){case tb:case ub:return+a==+b;case xb:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case zb:case Ab:return a==String(b)}var i=g==sb;if(!i){if(g!=yb||!Kb.nodeClass&&(m(a)||m(b)))return!1;var j=!Kb.argsObject&&Lb(a)?Object:a.constructor,k=!Kb.argsObject&&Lb(b)?Object:b.constructor;if(!(j==k||Cb.call(a,"constructor")&&Cb.call(b,"constructor")||db(j)&&j instanceof j&&db(k)&&k instanceof k||!("constructor"in a&&"constructor"in b)))return!1}c||(c=[]),d||(d=[]);for(var o=c.length;o--;)if(c[o]==a)return d[o]==b;var p=0,q=!0;if(c.push(a),d.push(b),i){if(o=a.length,p=b.length,q=p==o)for(;p--;){var r=b[p];if(!(q=n(a[p],r,c,d)))break}}else l(b,function(b,e,f){return Cb.call(f,e)?(p++,q=Cb.call(a,e)&&n(a[e],b,c,d)):void 0}),q&&l(a,function(a,b,c){return Cb.call(c,b)?q=--p>-1:void 0});return c.pop(),d.pop(),q}function o(a,b){return 1===a.length&&Array.isArray(a[b])?a[b]:Nb.call(a)}function p(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function q(a,b){this.id=a,this.value=b}function r(){this._s=s}function t(){this._s=s,this._l=s.length,this._i=0}function u(a){this._a=a}function v(a){this._a=a,this._l=z(a),this._i=0}function w(a){return"number"==typeof a&&R.isFinite(a)}function x(b){var c,d=b[lb];if(!d&&"string"==typeof b)return c=new r(b),c[lb]();if(!d&&b.length!==a)return c=new u(b),c[lb]();if(!d)throw new TypeError("Object is not iterable");return b[lb]()}function y(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function z(a){var b=+a.length;return isNaN(b)?0:0!==b&&w(b)?(b=y(b)*Math.floor(Math.abs(b)),0>=b?0:b>Bc?Bc:b):b}function A(a,b){return Y(a)||(a=ec),new Vc(function(c){var d=0,e=b.length;return a.scheduleRecursive(function(a){e>d?(c.onNext(b[d++]),a()):c.onCompleted()})})}function B(a,b){return new Vc(function(c){var d=new Zb,e=new $b;return e.setDisposable(d),d.setDisposable(a.subscribe(c.onNext.bind(c),function(a){var d,f;try{f=b(a)}catch(g){return void c.onError(g)}cb(f)&&(f=Oc(f)),d=new Zb,e.setDisposable(d),d.setDisposable(f.subscribe(c))},c.onCompleted.bind(c))),e},a)}function C(a,b){var c=this;return new Vc(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return void d.onError(i)}d.onNext(g)}else d.onCompleted()},d.onError.bind(d),d.onCompleted.bind(d))},c)}function D(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return cb(f)&&(f=Oc(f)),(ob(f)||nb(f))&&(f=Cc(f)),f}).concatAll()}function E(a,b,c){return a.map(function(d,e){var f=b.call(c,d,e,a);return cb(f)&&(f=Oc(f)),(ob(f)||nb(f))&&(f=Cc(f)),f}).mergeAll()}function F(a){var b=function(){this.cancelBubble=!0},c=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(a||(a=R.event),!a.target)switch(a.target=a.target||a.srcElement,"mouseover"==a.type&&(a.relatedTarget=a.fromElement),"mouseout"==a.type&&(a.relatedTarget=a.toElement),a.stopPropagation||(a.stopPropagation=b,a.preventDefault=c),a.type){case"keypress":var d="charCode"in a?a.charCode:a.keyCode;10==d?(d=0,a.keyCode=13):13==d||27==d?d=0:3==d&&(d=99),a.charCode=d,a.keyChar=a.charCode?String.fromCharCode(a.charCode):""}return a}function G(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),Xb(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var d=function(a){c(F(a))};return a.attachEvent("on"+b,d),Xb(function(){a.detachEvent("on"+b,d)})}return a["on"+b]=c,Xb(function(){a["on"+b]=null})}function H(a,b,c){var d=new Ub;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(H(a.item(e),b,c));else a&&d.add(G(a,b,c));return d}function I(a,b){return new Vc(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function J(a,b,c){return new Vc(function(d){var e=0,f=a,g=bc(b);return c.scheduleRecursiveWithAbsolute(f,function(a){if(g>0){var b=c.now();f+=g,b>=f&&(f=b+g)}d.onNext(e++),a(f)})})}function K(a,b){return new Vc(function(c){return b.scheduleWithRelative(bc(a),function(){c.onNext(0),c.onCompleted()})})}function L(a,b,c){return a===b?new Vc(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):zc(function(){return J(c.now()+a,b,c)})}function M(a,b,c){return new Vc(function(d){var e,f=!1,g=new $b,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new Zb,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new Ub(e,g)},a)}function N(a,b,c){return zc(function(){return M(a,b-c.now(),c)})}function O(a,b){return new Vc(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new Ub(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))},a)}function P(a,b,c){return new Vc(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(Z))){if(f)return void d.onError(f);try{e=c.apply(null,j)}catch(k){return void d.onError(k)}d.onNext(e)}i&&j[1]&&d.onCompleted()}var f,g=[!1,!1],h=!1,i=!1,j=new Array(2);return new Ub(a.subscribe(function(a){e(a,0)},function(a){j[1]?d.onError(a):f=a},function(){i=!0,j[1]&&d.onCompleted()}),b.subscribe(function(a){e(a,1)},d.onError.bind(d),function(){i=!0,e(!0,1)}))},a)}var Q={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},R=Q[typeof window]&&window||this,S=Q[typeof exports]&&exports&&!exports.nodeType&&exports,T=Q[typeof module]&&module&&!module.nodeType&&module,U=T&&T.exports===S&&S,V=Q[typeof global]&&global;!V||V.global!==V&&V.window!==V||(R=V);var W={internals:{},config:{Promise:R.Promise},helpers:{}},X=W.helpers.noop=function(){},Y=(W.helpers.notDefined=function(a){return"undefined"==typeof a},W.helpers.isScheduler=function(a){return a instanceof W.Scheduler}),Z=W.helpers.identity=function(a){return a},$=(W.helpers.pluck=function(a){return function(b){return b[a]}},W.helpers.just=function(a){return function(){return a}},W.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),_=W.helpers.defaultComparer=function(a,b){return Mb(a,b)},ab=W.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},bb=(W.helpers.defaultKeySerializer=function(a){return a.toString()},W.helpers.defaultError=function(a){throw a}),cb=W.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},db=(W.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},W.helpers.not=function(a){return!a},W.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Bb.call(a)}),a}()),eb="Argument out of range",fb="Object has been disposed";W.config.longStackSupport=!1;var gb=!1;try{throw new Error}catch(hb){gb=!!hb.stack}var ib,jb=g(),kb="From previous event:",lb="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";R.Set&&"function"==typeof(new R.Set)["@@iterator"]&&(lb="@@iterator");var mb=W.doneEnumerator={done:!0,value:a},nb=W.helpers.isIterable=function(b){return b[lb]!==a},ob=W.helpers.isArrayLike=function(b){return b&&b.length!==a};W.helpers.iterator=lb;var pb,qb=W.helpers.deprecate=function(){},rb="[object Arguments]",sb="[object Array]",tb="[object Boolean]",ub="[object Date]",vb="[object Error]",wb="[object Function]",xb="[object Number]",yb="[object Object]",zb="[object RegExp]",Ab="[object String]",Bb=Object.prototype.toString,Cb=Object.prototype.hasOwnProperty,Db=Bb.call(arguments)==rb,Eb=Error.prototype,Fb=Object.prototype,Gb=String.prototype,Hb=Fb.propertyIsEnumerable;Hb||(Hb=Fb.propertyIsEnumerable=function(a){for(var b in this)if(b===a)return!0;return!1});try{pb=!(Bb.call(document)==yb&&!({toString:0}+""))}catch(hb){pb=!0}var Ib=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Jb={};Jb[sb]=Jb[ub]=Jb[xb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Jb[tb]=Jb[Ab]={constructor:!0,toString:!0,valueOf:!0},Jb[vb]=Jb[wb]=Jb[zb]={constructor:!0,toString:!0},Jb[yb]={constructor:!0};var Kb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Kb.enumErrorProps=Hb.call(Eb,"message")||Hb.call(Eb,"name"),Kb.enumPrototypes=Hb.call(a,"prototype"),Kb.nonEnumArgs=0!=c,Kb.nonEnumShadows=!/valueOf/.test(b)}(1);var Lb=function(a){return a&&"object"==typeof a?Bb.call(a)==rb:!1};Db||(Lb=function(a){return a&&"object"==typeof a?Cb.call(a,"callee"):!1});{var Mb=W.internals.isEqual=function(a,b){return n(a,b,[],[])},Nb=Array.prototype.slice,Ob=({}.hasOwnProperty,this.inherits=W.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c}),Pb=W.internals.addProperties=function(a){for(var b=Nb.call(arguments,1),c=0,d=b.length;d>c;c++){var e=b[c];for(var f in e)a[f]=e[f]}};W.internals.addRef=function(a,b){return new Vc(function(c){return new Ub(b.getDisposable(),a.subscribe(c))})}}Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Nb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(Nb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(Nb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var Qb=Object("a"),Rb="a"!=Qb[0]||!(0 in Qb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=Rb&&{}.toString.call(this)==Ab?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=wb)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=Rb&&{}.toString.call(this)==Ab?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=wb)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==sb}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),q.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var Sb=W.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},Tb=Sb.prototype;Tb.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},Tb.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},Tb.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(b<this.length&&this.isHigherPriority(b,d)&&(d=b),c<this.length&&this.isHigherPriority(c,d)&&(d=c),d!==a){var e=this.items[a];this.items[a]=this.items[d],this.items[d]=e,this.heapify(d)}}},Tb.peek=function(){return this.items[0].value},Tb.removeAt=function(a){this.items[a]=this.items[--this.length],delete this.items[this.length],this.heapify()},Tb.dequeue=function(){var a=this.peek();return this.removeAt(0),a},Tb.enqueue=function(a){var b=this.length++;this.items[b]=new q(Sb.count++,a),this.percolate(b)},Tb.remove=function(a){for(var b=0;b<this.length;b++)if(this.items[b].value===a)return this.removeAt(b),!0;return!1},Sb.count=0;var Ub=W.CompositeDisposable=function(){this.disposables=o(arguments,0),this.isDisposed=!1,this.length=this.disposables.length},Vb=Ub.prototype;Vb.add=function(a){this.isDisposed?a.dispose():(this.disposables.push(a),this.length++)},Vb.remove=function(a){var b=!1;if(!this.isDisposed){var c=this.disposables.indexOf(a);-1!==c&&(b=!0,this.disposables.splice(c,1),this.length--,a.dispose())}return b},Vb.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this.disposables.slice(0);this.disposables=[],this.length=0;for(var b=0,c=a.length;c>b;b++)a[b].dispose()}},Vb.toArray=function(){return this.disposables.slice(0)};var Wb=W.Disposable=function(a){this.isDisposed=!1,this.action=a||X};Wb.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var Xb=Wb.create=function(a){return new Wb(a)},Yb=Wb.empty={dispose:X},Zb=W.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b,c=this.isDisposed;c||(b=this.current,this.current=a),b&&b.dispose(),c&&a&&a.dispose()},b.dispose=function(){var a;this.isDisposed||(this.isDisposed=!0,a=this.current,this.current=null),a&&a.dispose()},a}(),$b=W.SerialDisposable=Zb,_b=(W.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?Yb:new a(this)},b}(),W.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||ab,this.disposable=new Zb});_b.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},_b.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},_b.prototype.isCancelled=function(){return this.disposable.isDisposed},_b.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var ac=W.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),Yb}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=$,a.normalize=function(a){return 0>a&&(a=0),a},a}(),bc=ac.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new Ub,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),Yb});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new Ub,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c].call(a,b,d,function(a,b){return e?f.remove(i):h=!0,g(b),Yb});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(ac.prototype),function(){ac.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},ac.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof R.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=R.setInterval(function(){d=c(d)},b);return Xb(function(){R.clearInterval(e)})}}(ac.prototype);var cc,dc=ac.immediate=function(){function a(a,b){return b(this,a)}function b(a,b,c){for(var d=bc(b);d-this.now()>0;);return c(this,a)}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new ac($,a,b,c)}(),ec=ac.currentThread=function(){function a(a){for(var b;a.length>0;)if(b=a.dequeue(),!b.isCancelled()){for(;b.dueTime-ac.now()>0;);b.isCancelled()||b.invoke()}}function b(a,b){return this.scheduleWithRelativeAndState(a,0,b)}function c(b,c,d){var f=this.now()+ac.normalize(c),g=new _b(this,b,d,f);if(e)e.enqueue(g);else{e=new Sb(4),e.enqueue(g);try{a(e)}catch(h){throw h}finally{e=null}}return g.disposable}function d(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}var e,f=new ac($,b,c,d);return f.scheduleRequired=function(){return!e},f.ensureTrampoline=function(a){e?a():this.schedule(a)},f}(),fc=(W.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new Zb;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),X),gc=function(){var a,b=X;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!R.setTimeout)throw new Error("No concurrency detected!");a=R.setTimeout,b=R.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),hc=gc.setTimeout,ic=gc.clearTimeout;!function(){function a(){if(!R.postMessage||R.importScripts)return!1;var a=!1,b=R.onmessage;return R.onmessage=function(){a=!0},R.postMessage("","*"),R.onmessage=b,a}var b=RegExp("^"+String(Bb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),c="function"==typeof(c=V&&U&&V.setImmediate)&&!b.test(c)&&c,d="function"==typeof(d=V&&U&&V.clearImmediate)&&!b.test(d)&&d;if("function"==typeof c)cc=c,fc=d;else if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))cc=process.nextTick;else if(a()){var e="ms.rx.schedule"+Math.random(),f={},g=0,h=function(a){if("string"==typeof a.data&&a.data.substring(0,e.length)===e){var b=a.data.substring(e.length),c=f[b];c(),delete f[b]}};R.addEventListener?R.addEventListener("message",h,!1):R.attachEvent("onmessage",h,!1),cc=function(a){var b=g++;f[b]=a,R.postMessage(e+b,"*")}}else if(R.MessageChannel){var i=new R.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},cc=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in R&&"onreadystatechange"in R.document.createElement("script")?cc=function(a){var b=R.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},R.document.documentElement.appendChild(b)}:(cc=function(a){return hc(a,0)},fc=ic)}();var jc=ac.timeout=function(){function a(a,b){var c=this,d=new Zb,e=cc(function(){d.isDisposed||d.setDisposable(b(c,a))});return new Ub(d,Xb(function(){fc(e)}))}function b(a,b,c){var d=this,e=ac.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new Zb,g=hc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new Ub(f,Xb(function(){ic(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new ac($,a,b,c)}(),kc=W.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return Y(a)||(a=dc),new Vc(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),lc=kc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new kc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),mc=kc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new kc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),nc=kc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new kc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),oc=W.internals.Enumerator=function(a){this._next=a};oc.prototype.next=function(){return this._next()},oc.prototype[lb]=function(){return this};var pc=W.internals.Enumerable=function(a){this._iterator=a};pc.prototype[lb]=function(){return this._iterator()},pc.prototype.concat=function(){var a=this;return new Vc(function(b){var c;try{c=a[lb]()}catch(d){return void b.onError(d)}var e,f=new $b,g=dc.scheduleRecursive(function(a){var d;if(!e){try{d=c.next()}catch(g){return void b.onError(g)}if(d.done)return void b.onCompleted();var h=d.value;cb(h)&&(h=Oc(h));var i=new Zb;f.setDisposable(i),i.setDisposable(h.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){a()}))}});return new Ub(f,g,Xb(function(){e=!0}))})},pc.prototype.catchError=function(){var a=this;return new Vc(function(b){var c;try{c=a[lb]()}catch(d){return void b.onError(d)}var e,f,g=new $b,h=dc.scheduleRecursive(function(a){if(!e){var d;try{d=c.next()}catch(h){return void b.onError(h)}if(d.done)return void(f?b.onError(f):b.onCompleted());var i=d.value;cb(i)&&(i=Oc(i));var j=new Zb;g.setDisposable(j),j.setDisposable(i.subscribe(b.onNext.bind(b),function(b){f=b,a()},b.onCompleted.bind(b)))}});return new Ub(g,h,Xb(function(){e=!0}))})};var qc=pc.repeat=function(a,b){return null==b&&(b=-1),new pc(function(){var c=b;return new oc(function(){return 0===c?mb:(c>0&&c--,{done:!1,value:a})})})},rc=pc.of=function(a,b,c){return b||(b=Z),new pc(function(){var d=-1;return new oc(function(){return++d<a.length?{done:!1,value:b.call(c,a[d],d,a)}:mb})})},sc=W.Observer=function(){};sc.prototype.toNotifier=function(){var a=this;return function(b){return b.accept(a)}},sc.prototype.asObserver=function(){return new wc(this.onNext.bind(this),this.onError.bind(this),this.onCompleted.bind(this))};var tc=sc.create=function(a,b,c){return a||(a=X),b||(b=bb),c||(c=X),new wc(a,b,c)};sc.fromNotifier=function(a,b){return new wc(function(c){return a.call(b,lc(c))},function(c){return a.call(b,mc(c))},function(){return a.call(b,nc())})};var uc,vc=W.internals.AbstractObserver=function(a){function b(){this.isStopped=!1,a.call(this)}return Ob(b,a),b.prototype.onNext=function(a){this.isStopped||this.next(a)},b.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.error(a))},b.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},b.prototype.dispose=function(){this.isStopped=!0},b.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.error(a),!0)},b}(sc),wc=W.AnonymousObserver=function(a){function b(b,c,d){a.call(this),this._onNext=b,this._onError=c,this._onCompleted=d}return Ob(b,a),b.prototype.next=function(a){this._onNext(a)},b.prototype.error=function(a){this._onError(a)},b.prototype.completed=function(){this._onCompleted()},b}(vc),xc=W.Observable=function(){function a(a){if(W.config.longStackSupport&&gb){try{throw new Error}catch(b){this.stack=b.stack.substring(b.stack.indexOf("\n")+1)}var d=this;this._subscribe=function(b){var e=b.onError.bind(b);return b.onError=function(a){c(a,d),e(a)},a(b)}}else this._subscribe=a}return uc=a.prototype,uc.subscribe=uc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:tc(a,b,c))},uc.subscribeOnNext=function(a,b){return this._subscribe(tc(2===arguments.length?function(c){a.call(b,c)}:a))},uc.subscribeOnError=function(a,b){return this._subscribe(tc(null,2===arguments.length?function(c){a.call(b,c)}:a))},uc.subscribeOnCompleted=function(a,b){return this._subscribe(tc(null,null,2===arguments.length?function(){a.call(b)}:a))},a}(),yc=W.internals.ScheduledObserver=function(a){function b(b,c){a.call(this),this.scheduler=b,this.observer=c,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new $b}return Ob(b,a),b.prototype.next=function(a){var b=this;this.queue.push(function(){b.observer.onNext(a)})},b.prototype.error=function(a){var b=this;this.queue.push(function(){b.observer.onError(a)})},b.prototype.completed=function(){var a=this;this.queue.push(function(){a.observer.onCompleted()})},b.prototype.ensureActive=function(){var a=!1,b=this;!this.hasFaulted&&this.queue.length>0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(vc);uc.toArray=function(){var a=this;return new Vc(function(b){var c=[];return a.subscribe(c.push.bind(c),b.onError.bind(b),function(){b.onNext(c),b.onCompleted()})},a)},xc.create=xc.createWithDisposable=function(a,b){return new Vc(a,b)};var zc=xc.defer=function(a){return new Vc(function(b){var c;try{c=a()}catch(d){return Fc(d).subscribe(b)}return cb(c)&&(c=Oc(c)),c.subscribe(b)})},Ac=xc.empty=function(a){return Y(a)||(a=dc),new Vc(function(b){return a.schedule(function(){b.onCompleted()})})},Bc=Math.pow(2,53)-1;r.prototype[lb]=function(){return new t(this._s)},t.prototype[lb]=function(){return this},t.prototype.next=function(){if(this._i<this._l){var a=this._s.charAt(this._i++);return{done:!1,value:a}}return mb},u.prototype[lb]=function(){return new v(this._a)},v.prototype[lb]=function(){return this},v.prototype.next=function(){if(this._i<this._l){var a=this._a[this._i++];return{done:!1,value:a}}return mb};{var Cc=xc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!db(b))throw new Error("mapFn when provided must be a function");Y(d)||(d=ec);var e=Object(a),f=x(e);return new Vc(function(a){var e=0;return d.scheduleRecursive(function(d){var g;try{g=f.next()}catch(h){return void a.onError(h)}if(g.done)return void a.onCompleted();var i=g.value;if(b&&db(b))try{i=b.call(c,i,e)}catch(h){return void a.onError(h)}a.onNext(i),e++,d()})})},Dc=xc.fromArray=function(a,b){return qb("fromArray","from"),Y(b)||(b=ec),new Vc(function(c){var d=0,e=a.length;return b.scheduleRecursive(function(b){e>d?(c.onNext(a[d++]),b()):c.onCompleted()})})};xc.never=function(){return new Vc(function(){return Yb})}}xc.of=function(){return A(null,arguments)},xc.ofWithScheduler=function(a){return A(a,Nb.call(arguments,1))},xc.range=function(a,b,c){return Y(c)||(c=ec),new Vc(function(d){return c.scheduleRecursiveWithState(0,function(c,e){b>c?(d.onNext(a+c),e(c+1)):d.onCompleted()})})},xc.repeat=function(a,b,c){return Y(c)||(c=ec),Ec(a,c).repeat(null==b?-1:b)};var Ec=xc["return"]=xc.just=function(a,b){return Y(b)||(b=dc),new Vc(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})};xc.returnValue=function(){return qb("returnValue","return or just"),Ec.apply(null,arguments)};var Fc=xc["throw"]=xc.throwException=xc.throwError=function(a,b){return Y(b)||(b=dc),new Vc(function(c){return b.schedule(function(){c.onError(a)})})};uc["catch"]=uc.catchError=function(a){return"function"==typeof a?B(this,a):Gc([this,a])},uc.catchException=function(a){return qb("catchException","catch or catchError"),this.catchError(a)};var Gc=xc.catchError=xc["catch"]=function(){return rc(o(arguments,0)).catchError()};xc.catchException=function(){return qb("catchException","catch or catchError"),Gc.apply(null,arguments)},uc.combineLatest=function(){var a=Nb.call(arguments);return Array.isArray(a[0])?a[0].unshift(this):a.unshift(this),Hc.apply(this,a)};var Hc=xc.combineLatest=function(){var a=Nb.call(arguments),b=a.pop();return Array.isArray(a[0])&&(a=a[0]),new Vc(function(c){function d(a){var d;if(h[a]=!0,i||(i=h.every(Z))){try{d=b.apply(null,k)}catch(e){return void c.onError(e)}c.onNext(d)}else j.filter(function(b,c){return c!==a}).every(Z)&&c.onCompleted()}function e(a){j[a]=!0,j.every(Z)&&c.onCompleted()}for(var f=function(){return!1},g=a.length,h=p(g,f),i=!1,j=p(g,f),k=new Array(g),l=new Array(g),m=0;g>m;m++)!function(b){var f=a[b],g=new Zb;cb(f)&&(f=Oc(f)),g.setDisposable(f.subscribe(function(a){k[b]=a,d(b)},c.onError.bind(c),function(){e(b)})),l[b]=g}(m);return new Ub(l)},this)};uc.concat=function(){var a=Nb.call(arguments,0);return a.unshift(this),Ic.apply(this,a)};var Ic=xc.concat=function(){return rc(o(arguments,0)).concat()};uc.concatAll=function(){return this.merge(1)},uc.concatObservable=function(){return qb("concatObservable","concatAll"),this.merge(1)},uc.merge=function(a){if("number"!=typeof a)return Jc(this,a);
|
3
|
-
var b=this;return new Vc(function(c){function d(a){var b=new Zb;f.add(b),cb(a)&&(a=Oc(a)),b.setDisposable(a.subscribe(c.onNext.bind(c),c.onError.bind(c),function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new Ub,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},c.onError.bind(c),function(){g=!0,0===e&&c.onCompleted()})),f},b)};var Jc=xc.merge=function(){var a,b;return arguments[0]?Y(arguments[0])?(a=arguments[0],b=Nb.call(arguments,1)):(a=dc,b=Nb.call(arguments,0)):(a=dc,b=Nb.call(arguments,1)),Array.isArray(b[0])&&(b=b[0]),A(a,b).mergeAll()};uc.mergeAll=function(){var a=this;return new Vc(function(b){var c=new Ub,d=!1,e=new Zb;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new Zb;c.add(e),cb(a)&&(a=Oc(a)),e.setDisposable(a.subscribe(b.onNext.bind(b),b.onError.bind(b),function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},b.onError.bind(b),function(){d=!0,1===c.length&&b.onCompleted()})),c},a)},uc.mergeObservable=function(){return qb("mergeObservable","mergeAll"),this.mergeAll.apply(this,arguments)},uc.skipUntil=function(a){var b=this;return new Vc(function(c){var d=!1,e=new Ub(b.subscribe(function(a){d&&c.onNext(a)},c.onError.bind(c),function(){d&&c.onCompleted()}));cb(a)&&(a=Oc(a));var f=new Zb;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},c.onError.bind(c),function(){f.dispose()})),e},b)},uc["switch"]=uc.switchLatest=function(){var a=this;return new Vc(function(b){var c=!1,d=new $b,e=!1,f=0,g=a.subscribe(function(a){var g=new Zb,h=++f;c=!0,d.setDisposable(g),cb(a)&&(a=Oc(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},b.onError.bind(b),function(){e=!0,!c&&b.onCompleted()});return new Ub(g,d)},a)},uc.takeUntil=function(a){var b=this;return new Vc(function(c){return cb(a)&&(a=Oc(a)),new Ub(b.subscribe(c),a.subscribe(c.onCompleted.bind(c),c.onError.bind(c),X))},b)},uc.zip=function(){if(Array.isArray(arguments[0]))return C.apply(this,arguments);var a=this,b=Nb.call(arguments),c=b.pop();return b.unshift(a),new Vc(function(d){function e(b){var e,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),e=c.apply(a,f)}catch(g){return void d.onError(g)}d.onNext(e)}else i.filter(function(a,c){return c!==b}).every(Z)&&d.onCompleted()}function f(a){i[a]=!0,i.every(function(a){return a})&&d.onCompleted()}for(var g=b.length,h=p(g,function(){return[]}),i=p(g,function(){return!1}),j=new Array(g),k=0;g>k;k++)!function(a){var c=b[a],g=new Zb;cb(c)&&(c=Oc(c)),g.setDisposable(c.subscribe(function(b){h[a].push(b),e(a)},d.onError.bind(d),function(){f(a)})),j[a]=g}(k);return new Ub(j)},a)},xc.zip=function(){var a=Nb.call(arguments,0),b=a.shift();return b.zip.apply(b,a)},xc.zipArray=function(){var a=o(arguments,0);return new Vc(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(Z))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(Z)?void b.onCompleted():void 0}for(var e=a.length,f=p(e,function(){return[]}),g=p(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new Zb,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},b.onError.bind(b),function(){d(e)}))}(i);var j=new Ub(h);return j.add(Xb(function(){for(var a=0,b=f.length;b>a;a++)f[a]=[]})),j})},uc.asObservable=function(){return new Vc(this.subscribe.bind(this),this)},uc.dematerialize=function(){var a=this;return new Vc(function(b){return a.subscribe(function(a){return a.accept(b)},b.onError.bind(b),b.onCompleted.bind(b))},this)},uc.distinctUntilChanged=function(a,b){var c=this;return a||(a=Z),b||(b=_),new Vc(function(d){var e,f=!1;return c.subscribe(function(c){var g,h=!1;try{g=a(c)}catch(i){return void d.onError(i)}if(f)try{h=b(e,g)}catch(i){return void d.onError(i)}f&&h||(f=!0,e=g,d.onNext(c))},d.onError.bind(d),d.onCompleted.bind(d))},this)},uc["do"]=uc.tap=function(a,b,c){var d,e=this;return"function"==typeof a?d=a:(d=a.onNext.bind(a),b=a.onError.bind(a),c=a.onCompleted.bind(a)),new Vc(function(a){return e.subscribe(function(b){try{d(b)}catch(c){a.onError(c)}a.onNext(b)},function(c){if(b)try{b(c)}catch(d){a.onError(d)}a.onError(c)},function(){if(c)try{c()}catch(b){a.onError(b)}a.onCompleted()})},this)},uc.doAction=function(){return qb("doAction","do or tap"),this.tap.apply(this,arguments)},uc.doOnNext=uc.tapOnNext=function(a,b){return this.tap(2===arguments.length?function(c){a.call(b,c)}:a)},uc.doOnError=uc.tapOnError=function(a,b){return this.tap(X,2===arguments.length?function(c){a.call(b,c)}:a)},uc.doOnCompleted=uc.tapOnCompleted=function(a,b){return this.tap(X,null,2===arguments.length?function(){a.call(b)}:a)},uc["finally"]=uc.ensure=function(a){var b=this;return new Vc(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return Xb(function(){try{d.dispose()}catch(b){throw b}finally{a()}})},this)},uc.finallyAction=function(a){return qb("finallyAction","finally or ensure"),this.ensure(a)},uc.ignoreElements=function(){var a=this;return new Vc(function(b){return a.subscribe(X,b.onError.bind(b),b.onCompleted.bind(b))},a)},uc.materialize=function(){var a=this;return new Vc(function(b){return a.subscribe(function(a){b.onNext(lc(a))},function(a){b.onNext(mc(a)),b.onCompleted()},function(){b.onNext(nc()),b.onCompleted()})},a)},uc.repeat=function(a){return qc(this,a).concat()},uc.retry=function(a){return qc(this,a).catchError()},uc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new Vc(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},e.onError.bind(e),function(){!h&&c&&e.onNext(a),e.onCompleted()})},d)},uc.skipLast=function(a){var b=this;return new Vc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},c.onError.bind(c),c.onCompleted.bind(c))},b)},uc.startWith=function(){var a,b,c=0;return arguments.length&&Y(arguments[0])?(b=arguments[0],c=1):b=dc,a=Nb.call(arguments,c),rc([Dc(a,b),this]).concat()},uc.takeLast=function(a){var b=this;return new Vc(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},c.onError.bind(c),function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})},b)},uc.selectConcat=uc.concatMap=function(a,b,c){return db(a)&&db(b)?this.concatMap(function(c,d){var e=a(c,d);return cb(e)&&(e=Oc(e)),(ob(e)||nb(e))&&(e=Cc(e)),e.map(function(a,e){return b(c,a,d,e)})}):db(a)?D(this,a,c):D(this,function(){return a})},uc.select=uc.map=function(a,b){var c=db(a)?a:function(){return a},d=this;return new Vc(function(a){var e=0;return d.subscribe(function(f){var g;try{g=c.call(b,f,e++,d)}catch(h){return void a.onError(h)}a.onNext(g)},a.onError.bind(a),a.onCompleted.bind(a))},d)},uc.pluck=function(a){return this.map(function(b){return b[a]})},uc.selectMany=uc.flatMap=function(a,b,c){return db(a)&&db(b)?this.flatMap(function(c,d){var e=a(c,d);return cb(e)&&(e=Oc(e)),(ob(e)||nb(e))&&(e=Cc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):db(a)?E(this,a,c):E(this,function(){return a})},uc.selectSwitch=uc.flatMapLatest=uc.switchMap=function(a,b){return this.select(a,b).switchLatest()},uc.skip=function(a){if(0>a)throw new Error(eb);var b=this;return new Vc(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},c.onError.bind(c),c.onCompleted.bind(c))},b)},uc.skipWhile=function(a,b){var c=this;return new Vc(function(d){var e=0,f=!1;return c.subscribe(function(g){if(!f)try{f=!a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f&&d.onNext(g)},d.onError.bind(d),d.onCompleted.bind(d))},c)},uc.take=function(a,b){if(0>a)throw new RangeError(eb);if(0===a)return Ac(b);var c=this;return new Vc(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},b.onError.bind(b),b.onCompleted.bind(b))},c)},uc.takeWhile=function(a,b){var c=this;return new Vc(function(d){var e=0,f=!0;return c.subscribe(function(g){if(f){try{f=a.call(b,g,e++,c)}catch(h){return void d.onError(h)}f?d.onNext(g):d.onCompleted()}},d.onError.bind(d),d.onCompleted.bind(d))},c)},uc.where=uc.filter=function(a,b){var c=this;return new Vc(function(d){var e=0;return c.subscribe(function(f){var g;try{g=a.call(b,f,e++,c)}catch(h){return void d.onError(h)}g&&d.onNext(f)},d.onError.bind(d),d.onCompleted.bind(d))},c)},xc.fromCallback=function(a,b,c){return function(){var d=Nb.call(arguments,0);return new Vc(function(e){function f(){var a=arguments;if(c){try{a=c(a)}catch(b){return void e.onError(b)}e.onNext(a)}else a.length<=1?e.onNext.apply(e,a):e.onNext(a);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},xc.fromNodeCallback=function(a,b,c){return function(){var d=Nb.call(arguments,0);return new Vc(function(e){function f(a){if(a)return void e.onError(a);var b=Nb.call(arguments,1);if(c){try{b=c(b)}catch(d){return void e.onError(d)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},W.config.useNativeEvents=!1;var Kc=R.angular&&angular.element?angular.element:R.jQuery?R.jQuery:R.Zepto?R.Zepto:null,Lc=!!R.Ember&&"function"==typeof R.Ember.addListener,Mc=!!R.Backbone&&!!R.Backbone.Marionette;xc.fromEvent=function(a,b,c){if(a.addListener)return Nc(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c);if(!W.config.useNativeEvents){if(Mc)return Nc(function(c){a.on(b,c)},function(c){a.off(b,c)},c);if(Lc)return Nc(function(c){Ember.addListener(a,b,c)},function(c){Ember.removeListener(a,b,c)},c);if(Kc){var d=Kc(a);return Nc(function(a){d.on(b,a)},function(a){d.off(b,a)},c)}}return new Vc(function(d){return H(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 Nc=xc.fromEventPattern=function(a,b,c){return new Vc(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 Xb(function(){b&&b(e,f)})}).publish().refCount()},Oc=xc.fromPromise=function(a){return zc(function(){var b=new W.AsyncSubject;return a.then(function(a){b.onNext(a),b.onCompleted()},b.onError.bind(b)),b})};uc.toPromise=function(a){if(a||(a=W.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},xc.startAsync=function(a){var b;try{b=a()}catch(c){return Fc(c)}return Oc(b)},uc.multicast=function(a,b){var c=this;return"function"==typeof a?new Vc(function(d){var e=c.multicast(a());return new Ub(b(e).subscribe(d),e.connect())},c):new Pc(c,a)},uc.publish=function(a){return a&&db(a)?this.multicast(function(){return new Yc},a):this.multicast(new Yc)},uc.share=function(){return this.publish().refCount()},uc.publishLast=function(a){return a&&db(a)?this.multicast(function(){return new Zc},a):this.multicast(new Zc)},uc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new _c(b)},a):this.multicast(new _c(a))},uc.shareValue=function(a){return this.publishValue(a).refCount()},uc.replay=function(a,b,c,d){return a&&db(a)?this.multicast(function(){return new ad(b,c,d)},a):this.multicast(new ad(b,c,d))},uc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};{var Pc=W.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new Ub(f.subscribe(c),Xb(function(){e=!1}))),d},a.call(this,c.subscribe.bind(c))}return Ob(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new Vc(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(xc),Qc=xc.interval=function(a,b){return L(a,a,Y(b)?b:jc)};xc.timer=function(b,c,d){var e;return Y(d)||(d=jc),c!==a&&"number"==typeof c?e=c:Y(c)&&(d=c),b instanceof Date&&e===a?I(b.getTime(),d):b instanceof Date&&e!==a?(e=c,J(b.getTime(),e,d)):e===a?K(b,d):L(b,e,d)}}uc.delay=function(a,b){return Y(b)||(b=jc),a instanceof Date?N(this,a.getTime(),b):M(this,a,b)},uc.debounce=uc.throttleWithTimeout=function(a,b){Y(b)||(b=jc);var c=this;return new Vc(function(d){var e,f=new $b,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new Zb;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new Ub(i,f)},this)},uc.throttle=function(a,b){return qb("throttle","debounce or throttleWithTimeout"),this.debounce(a,b)},uc.timestamp=function(a){return Y(a)||(a=jc),this.map(function(b){return{value:b,timestamp:a.now()}})},uc.sample=uc.throttleLatest=function(a,b){return Y(b)||(b=jc),"number"==typeof a?O(this,Qc(a,b)):O(this,a)},uc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=Fc(new Error(b||"Timeout"))),Y(c)||(c=jc);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new Vc(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(cb(b)&&(b=Oc(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new Zb,j=new $b,k=!1,l=new $b;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new Ub(j,l)},d)},uc.throttleFirst=function(a,b){Y(b)||(b=jc);var c=+a||0;if(0>=c)throw new RangeError("windowDuration cannot be less or equal zero.");var d=this;return new Vc(function(a){var e=0;return d.subscribe(function(d){var f=b.now();(0===e||f-e>=c)&&(e=f,a.onNext(d))},a.onError.bind(a),a.onCompleted.bind(a))},d)};var Rc=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=Yb,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=Yb)});return new Ub(c,d,e)}function c(c,d){this.source=c,this.controller=new Yc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b,c)}return Ob(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(xc);uc.pausable=function(a){return new Rc(this,a)};var Sc=function(b){function c(b){var c,d=[],e=P(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new Yc,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c,a)}return Ob(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(xc);uc.pausableBuffered=function(a){return new Sc(this,a)};var Tc=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b,c),this.subject=new Uc(d),this.source=c.multicast(this.subject).refCount()}return Ob(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(xc),Uc=function(a){function b(a){return this.subject.subscribe(a)}function c(c){null==c&&(c=!0),a.call(this,b),this.subject=new Yc,this.enableQueue=c,this.queue=c?[]:null,this.requestedCount=0,this.requestedDisposable=Yb,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=Yb}return Ob(c,a),Pb(c.prototype,sc,{onCompleted:function(){this.hasCompleted=!0,(!this.enableQueue||0===this.queue.length)&&this.subject.onCompleted()},onError:function(a){this.hasFailed=!0,this.error=a,(!this.enableQueue||0===this.queue.length)&&this.subject.onError(a)},onNext:function(a){var b=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),b=!0),b&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=Yb):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=Yb),{numberOfItems:a,returnValue:!1}},request:function(a){this.disposeCurrentRequest();var b=this,c=this._processRequest(a),a=c.numberOfItems;return c.returnValue?Yb:(this.requestedCount=a,this.requestedDisposable=Xb(function(){b.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=Yb}}),c}(xc);uc.controlled=function(a){return null==a&&(a=!0),new Tc(this,a)},uc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new Vc(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})},c)};var Vc=W.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?Xb(a):Yb}function c(d,e){function f(a){var c=function(){try{e.setDisposable(b(d(e)))}catch(a){if(!e.fail(a))throw a}},e=new Wc(a);return ec.scheduleRequired()?ec.schedule(c):c(),e}return this.source=e,this instanceof c?void a.call(this,f):new c(d)}return Ob(c,a),c}(xc),Wc=function(a){function b(b){a.call(this),this.observer=b,this.m=new Zb}Ob(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){throw c}finally{!b&&this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){throw b}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){throw a}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(vc),Xc=function(a,b){this.subject=a,this.observer=b};Xc.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var Yc=W.Subject=function(a){function c(a){return b.call(this),this.isStopped?this.exception?(a.onError(this.exception),Yb):(a.onCompleted(),Yb):(this.observers.push(a),new Xc(this,a))}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.observers=[]}return Ob(d,a),Pb(d.prototype,sc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){var a=this.observers.slice(0);this.isStopped=!0;for(var c=0,d=a.length;d>c;c++)a[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped)for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++)c[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),d.create=function(a,b){return new $c(a,b)},d}(xc),Zc=W.AsyncSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),new Xc(this,a);var c=this.exception,d=this.hasValue,e=this.value;return c?a.onError(c):d?(a.onNext(e),a.onCompleted()):a.onCompleted(),Yb}function d(){a.call(this,c),this.isDisposed=!1,this.isStopped=!1,this.value=null,this.hasValue=!1,this.observers=[],this.exception=null}return Ob(d,a),Pb(d.prototype,sc,{hasObservers:function(){return b.call(this),this.observers.length>0},onCompleted:function(){var a,c,d;if(b.call(this),!this.isStopped){this.isStopped=!0;var e=this.observers.slice(0),f=this.value,g=this.hasValue;if(g)for(c=0,d=e.length;d>c;c++)a=e[c],a.onNext(f),a.onCompleted();else for(c=0,d=e.length;d>c;c++)e[c].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){var c=this.observers.slice(0);this.isStopped=!0,this.exception=a;for(var d=0,e=c.length;e>d;d++)c[d].onError(a);this.observers=[]}},onNext:function(a){b.call(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),d}(xc),$c=W.AnonymousSubject=function(a){function b(b,c){this.observer=b,this.observable=c,a.call(this,this.observable.subscribe.bind(this.observable))}return Ob(b,a),Pb(b.prototype,sc,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),b}(xc),_c=W.BehaviorSubject=function(a){function c(a){if(b.call(this),!this.isStopped)return this.observers.push(a),a.onNext(this.value),new Xc(this,a);var c=this.exception;return c?a.onError(c):a.onCompleted(),Yb}function d(b){a.call(this,c),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.exception=null}return Ob(d,a),Pb(d.prototype,sc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;for(var a=0,c=this.observers.slice(0),d=c.length;d>a;a++)c[a].onCompleted();this.observers=[]}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.exception=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onError(a);this.observers=[]}},onNext:function(a){if(b.call(this),!this.isStopped){this.value=a;for(var c=0,d=this.observers.slice(0),e=d.length;e>c;c++)d[c].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),d}(xc),ad=W.ReplaySubject=function(a){function c(a,b){return Xb(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function d(a){var d=new yc(this.scheduler,a),e=c(this,d);b.call(this),this._trim(this.scheduler.now()),this.observers.push(d);for(var f=0,g=this.q.length;g>f;f++)d.onNext(this.q[f].value);return this.hasError?d.onError(this.error):this.isStopped&&d.onCompleted(),d.ensureActive(),e}function e(b,c,e){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=e||ec,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,d)}return Ob(e,a),Pb(e.prototype,sc,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b.call(this),!this.isStopped){var c=this.scheduler.now();this.q.push({interval:c,value:a}),this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onNext(a),g.ensureActive()}}},onError:function(a){if(b.call(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var c=this.scheduler.now();this._trim(c);for(var d=this.observers.slice(0),e=0,f=d.length;f>e;e++){var g=d[e];g.onError(a),g.ensureActive()}this.observers=[]}},onCompleted:function(){if(b.call(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var c=this.observers.slice(0),d=0,e=c.length;e>d;d++){var f=c[d];f.onCompleted(),f.ensureActive()}this.observers=[]}},dispose:function(){this.isDisposed=!0,this.observers=null}}),e}(xc);"function"==typeof define&&"object"==typeof define.amd&&define.amd?(R.Rx=W,define(function(){return W})):S&&T?U?(T.exports=W).Rx=W:S.Rx=W:R.Rx=W;var bd=g()}).call(this);
|
2
|
+
(function(a){function b(a){if(a.isDisposed)throw new Error(lb)}function c(a){for(var b=[],c=0,d=a.length;d>c;c++)b.push(a[c]);return b}function d(a,b){if(mb&&b.stack&&"object"==typeof a&&null!==a&&a.stack&&-1===a.stack.indexOf(qb)){for(var c=[],d=b;d;d=d.source)d.stack&&c.unshift(d.stack);c.unshift(a.stack);var f=c.join("\n"+qb+"\n");a.stack=e(f)}}function e(a){for(var b=a.split("\n"),c=[],d=0,e=b.length;e>d;d++){var h=b[d];f(h)||g(h)||!h||c.push(h)}return c.join("\n")}function f(a){var b=i(a);if(!b)return!1;var c=b[0],d=b[1];return c===ob&&d>=pb&&pd>=d}function g(a){return-1!==a.indexOf("(module.js:")||-1!==a.indexOf("(node.js:")}function h(){if(mb)try{throw new Error}catch(a){var b=a.stack.split("\n"),c=b[0].indexOf("@")>0?b[1]:b[2],d=i(c);if(!d)return;return ob=d[0],d[1]}}function i(a){var b=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(a);if(b)return[b[1],Number(b[2])];var c=/at ([^ ]+):(\d+):(?:\d+)$/.exec(a);if(c)return[c[1],Number(c[2])];var d=/.*@(.+):(\d+)$/.exec(a);return d?[d[1],Number(d[2])]:void 0}function j(a){var b=[];if(!Sb(a))return b;Rb.nonEnumArgs&&a.length&&Tb(a)&&(a=Vb.call(a));var c=Rb.enumPrototypes&&"function"==typeof a,d=Rb.enumErrorProps&&(a===Mb||a instanceof Error);for(var e in a)c&&"prototype"==e||d&&("message"==e||"name"==e)||b.push(e);if(Rb.nonEnumShadows&&a!==Nb){var f=a.constructor,g=-1,h=yb;if(a===(f&&f.prototype))var i=a===Ob?Ib:a===Mb?Db:Jb.call(a),j=Qb[i];for(;++g<h;)e=xb[g],j&&j[e]||!Kb.call(a,e)||b.push(e)}return b}function k(a,b,c){for(var d=-1,e=c(a),f=e.length;++d<f;){var g=e[d];if(b(a[g],g,a)===!1)break}return a}function l(a,b){return k(a,b,j)}function m(a){return"function"!=typeof a.toString&&"string"==typeof(a+"")}function n(a,b,c,d){if(a===b)return 0!==a||1/a==1/b;var e=typeof a,f=typeof b;if(a===a&&(null==a||null==b||"function"!=e&&"object"!=e&&"function"!=f&&"object"!=f))return!1;var g=Jb.call(a),h=Jb.call(b);if(g==zb&&(g=Gb),h==zb&&(h=Gb),g!=h)return!1;switch(g){case Bb:case Cb:return+a==+b;case Fb:return a!=+a?b!=+b:0==a?1/a==1/b:a==+b;case Hb:case Ib:return a==String(b)}var i=g==Ab;if(!i){if(g!=Gb||!Rb.nodeClass&&(m(a)||m(b)))return!1;var j=!Rb.argsObject&&Tb(a)?Object:a.constructor,k=!Rb.argsObject&&Tb(b)?Object:b.constructor;if(!(j==k||Kb.call(a,"constructor")&&Kb.call(b,"constructor")||jb(j)&&j instanceof j&&jb(k)&&k instanceof k||!("constructor"in a&&"constructor"in b)))return!1}c||(c=[]),d||(d=[]);for(var o=c.length;o--;)if(c[o]==a)return d[o]==b;var p=0,q=!0;if(c.push(a),d.push(b),i){if(o=a.length,p=b.length,q=p==o)for(;p--;){var r=b[p];if(!(q=n(a[p],r,c,d)))break}}else l(b,function(b,e,f){return Kb.call(f,e)?(p++,q=Kb.call(a,e)&&n(a[e],b,c,d)):void 0}),q&&l(a,function(a,b,c){return Kb.call(c,b)?q=--p>-1:void 0});return c.pop(),d.pop(),q}function o(a){throw a}function p(a,b){for(var c=new Array(a),d=0;a>d;d++)c[d]=b();return c}function q(a,b){this.id=a,this.value=b}function r(a){this.observer=a,this.a=[],this.isStopped=!1}function t(){this._s=s}function u(){this._s=s,this._l=s.length,this._i=0}function v(a){this._a=a}function w(a){this._a=a,this._l=A(a),this._i=0}function x(a){return"number"==typeof a&&X.isFinite(a)}function y(b){var c,d=b[rb];if(!d&&"string"==typeof b)return c=new t(b),c[rb]();if(!d&&b.length!==a)return c=new v(b),c[rb]();if(!d)throw new TypeError("Object is not iterable");return b[rb]()}function z(a){var b=+a;return 0===b?b:isNaN(b)?b:0>b?-1:1}function A(a){var b=+a.length;return isNaN(b)?0:0!==b&&x(b)?(b=z(b)*Math.floor(Math.abs(b)),0>=b?0:b>Nc?Nc:b):b}function B(a,b){this.observer=a,this.parent=b}function C(a,b){return new Pc(b,a)}function D(a,b){return new hd(function(c){var d=new fc,e=new gc;return e.setDisposable(d),d.setDisposable(a.subscribe(function(a){c.onNext(a)},function(a){try{var d=b(a)}catch(f){return c.onError(f)}ib(d)&&(d=ad(d));var g=new fc;e.setDisposable(g),g.setDisposable(d.subscribe(c))},function(a){c.onCompleted(a)})),e},a)}function E(a,b){var c=this;return new hd(function(d){var e=0,f=a.length;return c.subscribe(function(c){if(f>e){var g,h=a[e++];try{g=b(c,h)}catch(i){return d.onError(i)}d.onNext(g)}else d.onCompleted()},function(a){d.onError(a)},function(){d.onCompleted()})},c)}function F(){return!1}function G(){return[]}function H(a,b,c){var d=wb(b,c,3);return a.map(function(b,c){var e=d(b,c,a);return ib(e)&&(e=ad(e)),(ub(e)||tb(e))&&(e=Oc(e)),e}).concatAll()}function I(a,b,c){this.observer=a,this.selector=b,this.source=c,this.i=0,this.isStopped=!1}function J(a,b,c){var d=wb(b,c,3);return a.map(function(b,c){var e=d(b,c,a);return ib(e)&&(e=ad(e)),(ub(e)||tb(e))&&(e=Oc(e)),e}).mergeAll()}function K(a,b,c){this.observer=a,this.predicate=b,this.source=c,this.i=0,this.isStopped=!1}function L(a){var b=function(){this.cancelBubble=!0},c=function(){if(this.bubbledKeyCode=this.keyCode,this.ctrlKey)try{this.keyCode=0}catch(a){}this.defaultPrevented=!0,this.returnValue=!1,this.modified=!0};if(a||(a=X.event),!a.target)switch(a.target=a.target||a.srcElement,"mouseover"==a.type&&(a.relatedTarget=a.fromElement),"mouseout"==a.type&&(a.relatedTarget=a.toElement),a.stopPropagation||(a.stopPropagation=b,a.preventDefault=c),a.type){case"keypress":var d="charCode"in a?a.charCode:a.keyCode;10==d?(d=0,a.keyCode=13):13==d||27==d?d=0:3==d&&(d=99),a.charCode=d,a.keyChar=a.charCode?String.fromCharCode(a.charCode):""}return a}function M(a,b,c){if(a.addEventListener)return a.addEventListener(b,c,!1),dc(function(){a.removeEventListener(b,c,!1)});if(a.attachEvent){var d=function(a){c(L(a))};return a.attachEvent("on"+b,d),dc(function(){a.detachEvent("on"+b,d)})}return a["on"+b]=c,dc(function(){a["on"+b]=null})}function N(a,b,c){var d=new ac;if("[object NodeList]"===Object.prototype.toString.call(a))for(var e=0,f=a.length;f>e;e++)d.add(N(a.item(e),b,c));else a&&d.add(M(a,b,c));return d}function O(a,b){return new hd(function(c){return b.scheduleWithAbsolute(a,function(){c.onNext(0),c.onCompleted()})})}function P(a,b,c){return new hd(function(d){var e=a,f=jc(b);return c.scheduleRecursiveWithAbsoluteAndState(0,e,function(a,b){if(f>0){var g=c.now();e+=f,g>=e&&(e=g+f)}d.onNext(a),b(a+1,e)})})}function Q(a,b){return new hd(function(c){return b.scheduleWithRelative(jc(a),function(){c.onNext(0),c.onCompleted()})})}function R(a,b,c){return a===b?new hd(function(a){return c.schedulePeriodicWithState(0,b,function(b){return a.onNext(b),b+1})}):Jc(function(){return P(c.now()+a,b,c)})}function S(a,b,c){return new hd(function(d){var e,f=!1,g=new gc,h=null,i=[],j=!1;return e=a.materialize().timestamp(c).subscribe(function(a){var e,k;"E"===a.value.kind?(i=[],i.push(a),h=a.value.exception,k=!j):(i.push({value:a.value,timestamp:a.timestamp+b}),k=!f,f=!0),k&&(null!==h?d.onError(h):(e=new fc,g.setDisposable(e),e.setDisposable(c.scheduleRecursiveWithRelative(b,function(a){var b,e,g,k;if(null===h){j=!0;do g=null,i.length>0&&i[0].timestamp-c.now()<=0&&(g=i.shift().value),null!==g&&g.accept(d);while(null!==g);k=!1,e=0,i.length>0?(k=!0,e=Math.max(0,i[0].timestamp-c.now())):f=!1,b=h,j=!1,null!==b?d.onError(b):k&&a(e)}}))))}),new ac(e,g)},a)}function T(a,b,c){return Jc(function(){return S(a,b-c.now(),c)})}function U(a,b){return new hd(function(c){function d(){g&&(g=!1,c.onNext(f)),e&&c.onCompleted()}var e,f,g;return new ac(a.subscribe(function(a){g=!0,f=a},c.onError.bind(c),function(){e=!0}),b.subscribe(d,c.onError.bind(c),d))},a)}function V(a,b,c){return new hd(function(d){function e(a,b){j[b]=a;var e;if(g[b]=!0,h||(h=g.every(db))){if(f)return void d.onError(f);try{e=c.apply(null,j)}catch(k){return void d.onError(k)}d.onNext(e)}i&&j[1]&&d.onCompleted()}var f,g=[!1,!1],h=!1,i=!1,j=new Array(2);return new ac(a.subscribe(function(a){e(a,0)},function(a){j[1]?d.onError(a):f=a},function(){i=!0,j[1]&&d.onCompleted()}),b.subscribe(function(a){e(a,1)},function(a){d.onError(a)},function(){i=!0,e(!0,1)}))},a)}var W={"boolean":!1,"function":!0,object:!0,number:!1,string:!1,undefined:!1},X=W[typeof window]&&window||this,Y=W[typeof exports]&&exports&&!exports.nodeType&&exports,Z=W[typeof module]&&module&&!module.nodeType&&module,$=Z&&Z.exports===Y&&Y,_=W[typeof global]&&global;!_||_.global!==_&&_.window!==_||(X=_);var ab={internals:{},config:{Promise:X.Promise},helpers:{}},bb=ab.helpers.noop=function(){},cb=(ab.helpers.notDefined=function(a){return"undefined"==typeof a},ab.helpers.isScheduler=function(a){return a instanceof ab.Scheduler}),db=ab.helpers.identity=function(a){return a},eb=(ab.helpers.pluck=function(a){return function(b){return b[a]}},ab.helpers.just=function(a){return function(){return a}},ab.helpers.defaultNow=function(){return Date.now?Date.now:function(){return+new Date}}()),fb=ab.helpers.defaultComparer=function(a,b){return Ub(a,b)},gb=ab.helpers.defaultSubComparer=function(a,b){return a>b?1:b>a?-1:0},hb=(ab.helpers.defaultKeySerializer=function(a){return a.toString()},ab.helpers.defaultError=function(a){throw a}),ib=ab.helpers.isPromise=function(a){return!!a&&"function"==typeof a.then},jb=(ab.helpers.asArray=function(){return Array.prototype.slice.call(arguments)},ab.helpers.not=function(a){return!a},ab.helpers.isFunction=function(){var a=function(a){return"function"==typeof a||!1};return a(/x/)&&(a=function(a){return"function"==typeof a&&"[object Function]"==Jb.call(a)}),a}()),kb="Argument out of range",lb="Object has been disposed";ab.config.longStackSupport=!1;var mb=!1;try{throw new Error}catch(nb){mb=!!nb.stack}var ob,pb=h(),qb="From previous event:",rb="function"==typeof Symbol&&Symbol.iterator||"_es6shim_iterator_";X.Set&&"function"==typeof(new X.Set)["@@iterator"]&&(rb="@@iterator");var sb=ab.doneEnumerator={done:!0,value:a},tb=ab.helpers.isIterable=function(b){return b[rb]!==a},ub=ab.helpers.isArrayLike=function(b){return b&&b.length!==a};ab.helpers.iterator=rb;var vb,wb=ab.internals.bindCallback=function(a,b,c){if("undefined"==typeof b)return a;switch(c){case 0:return function(){return a.call(b)};case 1:return function(c){return a.call(b,c)};case 2:return function(c,d){return a.call(b,c,d)};case 3:return function(c,d,e){return a.call(b,c,d,e)}}return function(){return a.apply(b,arguments)}},xb=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],yb=xb.length,zb="[object Arguments]",Ab="[object Array]",Bb="[object Boolean]",Cb="[object Date]",Db="[object Error]",Eb="[object Function]",Fb="[object Number]",Gb="[object Object]",Hb="[object RegExp]",Ib="[object String]",Jb=Object.prototype.toString,Kb=Object.prototype.hasOwnProperty,Lb=Jb.call(arguments)==zb,Mb=Error.prototype,Nb=Object.prototype,Ob=String.prototype,Pb=Nb.propertyIsEnumerable;try{vb=!(Jb.call(document)==Gb&&!({toString:0}+""))}catch(nb){vb=!0}var Qb={};Qb[Ab]=Qb[Cb]=Qb[Fb]={constructor:!0,toLocaleString:!0,toString:!0,valueOf:!0},Qb[Bb]=Qb[Ib]={constructor:!0,toString:!0,valueOf:!0},Qb[Db]=Qb[Eb]=Qb[Hb]={constructor:!0,toString:!0},Qb[Gb]={constructor:!0};var Rb={};!function(){var a=function(){this.x=1},b=[];a.prototype={valueOf:1,y:1};for(var c in new a)b.push(c);for(c in arguments);Rb.enumErrorProps=Pb.call(Mb,"message")||Pb.call(Mb,"name"),Rb.enumPrototypes=Pb.call(a,"prototype"),Rb.nonEnumArgs=0!=c,Rb.nonEnumShadows=!/valueOf/.test(b)}(1);var Sb=ab.internals.isObject=function(a){var b=typeof a;return a&&("function"==b||"object"==b)||!1},Tb=function(a){return a&&"object"==typeof a?Jb.call(a)==zb:!1};Lb||(Tb=function(a){return a&&"object"==typeof a?Kb.call(a,"callee"):!1});{var Ub=ab.internals.isEqual=function(a,b){return n(a,b,[],[])},Vb=({}.hasOwnProperty,Array.prototype.slice),Wb=this.inherits=ab.internals.inherits=function(a,b){function c(){this.constructor=a}c.prototype=b.prototype,a.prototype=new c},Xb=ab.internals.addProperties=function(a){for(var b=[],c=1,d=arguments.length;d>c;c++)b.push(arguments[c]);for(var e=0,f=b.length;f>e;e++){var g=b[e];for(var h in g)a[h]=g[h]}};ab.internals.addRef=function(a,b){return new hd(function(c){return new ac(b.getDisposable(),a.subscribe(c))})}}Function.prototype.bind||(Function.prototype.bind=function(a){var b=this,c=Vb.call(arguments,1),d=function(){function e(){}if(this instanceof d){e.prototype=b.prototype;var f=new e,g=b.apply(f,c.concat(Vb.call(arguments)));return Object(g)===g?g:f}return b.apply(a,c.concat(Vb.call(arguments)))};return d}),Array.prototype.forEach||(Array.prototype.forEach=function(a,b){var c,d;if(null==this)throw new TypeError(" this is null or not defined");var e=Object(this),f=e.length>>>0;if("function"!=typeof a)throw new TypeError(a+" is not a function");for(arguments.length>1&&(c=b),d=0;f>d;){var g;d in e&&(g=e[d],a.call(c,g,d,e)),d++}});var Yb=Object("a"),Zb="a"!=Yb[0]||!(0 in Yb);Array.prototype.every||(Array.prototype.every=function(a){var b=Object(this),c=Zb&&{}.toString.call(this)==Ib?this.split(""):b,d=c.length>>>0,e=arguments[1];if({}.toString.call(a)!=Eb)throw new TypeError(a+" is not a function");for(var f=0;d>f;f++)if(f in c&&!a.call(e,c[f],f,b))return!1;return!0}),Array.prototype.map||(Array.prototype.map=function(a){var b=Object(this),c=Zb&&{}.toString.call(this)==Ib?this.split(""):b,d=c.length>>>0,e=Array(d),f=arguments[1];if({}.toString.call(a)!=Eb)throw new TypeError(a+" is not a function");for(var g=0;d>g;g++)g in c&&(e[g]=a.call(f,c[g],g,b));return e}),Array.prototype.filter||(Array.prototype.filter=function(a){for(var b,c=[],d=new Object(this),e=0,f=d.length>>>0;f>e;e++)b=d[e],e in d&&a.call(arguments[1],b,e,d)&&c.push(b);return c}),Array.isArray||(Array.isArray=function(a){return{}.toString.call(a)==Ab}),Array.prototype.indexOf||(Array.prototype.indexOf=function(a){var b=Object(this),c=b.length>>>0;if(0===c)return-1;var d=0;if(arguments.length>1&&(d=Number(arguments[1]),d!==d?d=0:0!==d&&1/0!=d&&d!==-1/0&&(d=(d>0||-1)*Math.floor(Math.abs(d)))),d>=c)return-1;for(var e=d>=0?d:Math.max(c-Math.abs(d),0);c>e;e++)if(e in b&&b[e]===a)return e;return-1}),Object.prototype.propertyIsEnumerable||(Object.prototype.propertyIsEnumerable=function(a){for(var b in this)if(b===a)return!0;return!1}),Object.keys||(Object.keys=function(){"use strict";var a=Object.prototype.hasOwnProperty,b=!{toString:null}.propertyIsEnumerable("toString");return function(c){if("object"!=typeof c&&("function"!=typeof c||null===c))throw new TypeError("Object.keys called on non-object");var d,e,f=[];for(d in c)a.call(c,d)&&f.push(d);if(b)for(e=0;yb>e;e++)a.call(c,xb[e])&&f.push(xb[e]);return f}}()),q.prototype.compareTo=function(a){var b=this.value.compareTo(a.value);return 0===b&&(b=this.id-a.id),b};var $b=ab.internals.PriorityQueue=function(a){this.items=new Array(a),this.length=0},_b=$b.prototype;_b.isHigherPriority=function(a,b){return this.items[a].compareTo(this.items[b])<0},_b.percolate=function(a){if(!(a>=this.length||0>a)){var b=a-1>>1;if(!(0>b||b===a)&&this.isHigherPriority(a,b)){var c=this.items[a];this.items[a]=this.items[b],this.items[b]=c,this.percolate(b)}}},_b.heapify=function(a){if(+a||(a=0),!(a>=this.length||0>a)){var b=2*a+1,c=2*a+2,d=a;if(b<this.length&&this.isHigherPriority(b,d)&&(d=b),c<this.length&&this.isHigherPriority(c,d)&&(d=c),d!==a){var e=this.items[a];this.items[a]=this.items[d],this.items[d]=e,this.heapify(d)}}},_b.peek=function(){return this.items[0].value},_b.removeAt=function(b){this.items[b]=this.items[--this.length],this.items[this.length]=a,this.heapify()},_b.dequeue=function(){var a=this.peek();return this.removeAt(0),a},_b.enqueue=function(a){var b=this.length++;this.items[b]=new q($b.count++,a),this.percolate(b)},_b.remove=function(a){for(var b=0;b<this.length;b++)if(this.items[b].value===a)return this.removeAt(b),!0;return!1},$b.count=0;var ac=ab.CompositeDisposable=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else{var b=arguments.length;a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}this.disposables=a,this.isDisposed=!1,this.length=a.length},bc=ac.prototype;bc.add=function(a){this.isDisposed?a.dispose():(this.disposables.push(a),this.length++)},bc.remove=function(a){var b=!1;if(!this.isDisposed){var c=this.disposables.indexOf(a);-1!==c&&(b=!0,this.disposables.splice(c,1),this.length--,a.dispose())}return b},bc.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;for(var a=this.disposables.length,b=new Array(a),c=0;a>c;c++)b[c]=this.disposables[c];for(this.disposables=[],this.length=0,c=0;a>c;c++)b[c].dispose()}};var cc=ab.Disposable=function(a){this.isDisposed=!1,this.action=a||bb};cc.prototype.dispose=function(){this.isDisposed||(this.action(),this.isDisposed=!0)};var dc=cc.create=function(a){return new cc(a)},ec=cc.empty={dispose:bb},fc=ab.SingleAssignmentDisposable=function(){function a(){this.isDisposed=!1,this.current=null}var b=a.prototype;return b.getDisposable=function(){return this.current},b.setDisposable=function(a){var b=this.isDisposed;if(!b){var c=this.current;this.current=a}c&&c.dispose(),b&&a&&a.dispose()},b.dispose=function(){if(!this.isDisposed){this.isDisposed=!0;var a=this.current;this.current=null}a&&a.dispose()},a}(),gc=ab.SerialDisposable=fc,hc=(ab.RefCountDisposable=function(){function a(a){this.disposable=a,this.disposable.count++,this.isInnerDisposed=!1}function b(a){this.underlyingDisposable=a,this.isDisposed=!1,this.isPrimaryDisposed=!1,this.count=0}return a.prototype.dispose=function(){this.disposable.isDisposed||this.isInnerDisposed||(this.isInnerDisposed=!0,this.disposable.count--,0===this.disposable.count&&this.disposable.isPrimaryDisposed&&(this.disposable.isDisposed=!0,this.disposable.underlyingDisposable.dispose()))},b.prototype.dispose=function(){this.isDisposed||this.isPrimaryDisposed||(this.isPrimaryDisposed=!0,0===this.count&&(this.isDisposed=!0,this.underlyingDisposable.dispose()))},b.prototype.getDisposable=function(){return this.isDisposed?ec:new a(this)},b}(),ab.internals.ScheduledItem=function(a,b,c,d,e){this.scheduler=a,this.state=b,this.action=c,this.dueTime=d,this.comparer=e||gb,this.disposable=new fc});hc.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())},hc.prototype.compareTo=function(a){return this.comparer(this.dueTime,a.dueTime)},hc.prototype.isCancelled=function(){return this.disposable.isDisposed},hc.prototype.invokeCore=function(){return this.action(this.scheduler,this.state)};var ic=ab.Scheduler=function(){function a(a,b,c,d){this.now=a,this._schedule=b,this._scheduleRelative=c,this._scheduleAbsolute=d}function b(a,b){return b(),ec}var c=a.prototype;return c.schedule=function(a){return this._schedule(a,b)},c.scheduleWithState=function(a,b){return this._schedule(a,b)},c.scheduleWithRelative=function(a,c){return this._scheduleRelative(c,a,b)},c.scheduleWithRelativeAndState=function(a,b,c){return this._scheduleRelative(a,b,c)},c.scheduleWithAbsolute=function(a,c){return this._scheduleAbsolute(c,a,b)},c.scheduleWithAbsoluteAndState=function(a,b,c){return this._scheduleAbsolute(a,b,c)},a.now=eb,a.normalize=function(a){return 0>a&&(a=0),a},a}(),jc=ic.normalize;!function(a){function b(a,b){var c=b.first,d=b.second,e=new ac,f=function(b){d(b,function(b){var c=!1,d=!1,g=a.scheduleWithState(b,function(a,b){return c?e.remove(g):d=!0,f(b),ec});d||(e.add(g),c=!0)})};return f(c),e}function c(a,b,c){var d=b.first,e=b.second,f=new ac,g=function(b){e(b,function(b,d){var e=!1,h=!1,i=a[c](b,d,function(a,b){return e?f.remove(i):h=!0,g(b),ec});h||(f.add(i),e=!0)})};return g(d),f}function d(a,b){a(function(c){b(a,c)})}a.scheduleRecursive=function(a){return this.scheduleRecursiveWithState(a,function(a,b){a(function(){b(a)})})},a.scheduleRecursiveWithState=function(a,c){return this.scheduleWithState({first:a,second:c},b)},a.scheduleRecursiveWithRelative=function(a,b){return this.scheduleRecursiveWithRelativeAndState(b,a,d)},a.scheduleRecursiveWithRelativeAndState=function(a,b,d){return this._scheduleRelative({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithRelativeAndState")})},a.scheduleRecursiveWithAbsolute=function(a,b){return this.scheduleRecursiveWithAbsoluteAndState(b,a,d)},a.scheduleRecursiveWithAbsoluteAndState=function(a,b,d){return this._scheduleAbsolute({first:a,second:d},b,function(a,b){return c(a,b,"scheduleWithAbsoluteAndState")})}}(ic.prototype),function(){ic.prototype.schedulePeriodic=function(a,b){return this.schedulePeriodicWithState(null,a,b)},ic.prototype.schedulePeriodicWithState=function(a,b,c){if("undefined"==typeof X.setInterval)throw new Error("Periodic scheduling not supported.");var d=a,e=X.setInterval(function(){d=c(d)},b);return dc(function(){X.clearInterval(e)})}}(ic.prototype);var kc,lc=ic.immediate=function(){function a(a,b){return b(this,a)}function b(){throw new Error("Not supported")}return new ic(eb,a,b,b)}(),mc=ic.currentThread=function(){function a(a){for(;a.length>0;){var b=a.dequeue();b.isCancelled()||!b.isCancelled()&&b.invoke()}}function b(b,c){var e=new hc(this,b,c,this.now());if(d)d.enqueue(e);else{d=new $b(4),d.enqueue(e);try{a(d)}catch(f){throw f}finally{d=null}}return e.disposable}function c(){throw new Error("Not supported")}var d,e=new ic(eb,b,c,c);return e.scheduleRequired=function(){return!d},e.ensureTrampoline=function(a){d?a():this.schedule(a)},e}(),nc=(ab.internals.SchedulePeriodicRecursive=function(){function a(a,b){b(0,this._period);try{this._state=this._action(this._state)}catch(c){throw this._cancel.dispose(),c}}function b(a,b,c,d){this._scheduler=a,this._state=b,this._period=c,this._action=d}return b.prototype.start=function(){var b=new fc;return this._cancel=b,b.setDisposable(this._scheduler.scheduleRecursiveWithRelativeAndState(0,this._period,a.bind(this))),b},b}(),bb),oc=function(){var a,b=bb;if("WScript"in this)a=function(a,b){WScript.Sleep(b),a()};else{if(!X.setTimeout)throw new Error("No concurrency detected!");a=X.setTimeout,b=X.clearTimeout}return{setTimeout:a,clearTimeout:b}}(),pc=oc.setTimeout,qc=oc.clearTimeout;!function(){function a(){if(!X.postMessage||X.importScripts)return!1;var a=!1,b=X.onmessage;return X.onmessage=function(){a=!0},X.postMessage("","*"),X.onmessage=b,a}var b=RegExp("^"+String(Jb).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$"),c="function"==typeof(c=_&&$&&_.setImmediate)&&!b.test(c)&&c,d="function"==typeof(d=_&&$&&_.clearImmediate)&&!b.test(d)&&d;if("function"==typeof c)kc=c,nc=d;else if("undefined"!=typeof process&&"[object process]"==={}.toString.call(process))kc=process.nextTick;else if(a()){var e="ms.rx.schedule"+Math.random(),f={},g=0,h=function(a){if("string"==typeof a.data&&a.data.substring(0,e.length)===e){var b=a.data.substring(e.length),c=f[b];c(),delete f[b]}};X.addEventListener?X.addEventListener("message",h,!1):X.attachEvent("onmessage",h,!1),kc=function(a){var b=g++;f[b]=a,X.postMessage(e+b,"*")}}else if(X.MessageChannel){var i=new X.MessageChannel,j={},k=0;i.port1.onmessage=function(a){var b=a.data,c=j[b];c(),delete j[b]},kc=function(a){var b=k++;j[b]=a,i.port2.postMessage(b)}}else"document"in X&&"onreadystatechange"in X.document.createElement("script")?kc=function(a){var b=X.document.createElement("script");b.onreadystatechange=function(){a(),b.onreadystatechange=null,b.parentNode.removeChild(b),b=null},X.document.documentElement.appendChild(b)}:(kc=function(a){return pc(a,0)},nc=qc)}();var rc=ic.timeout=function(){function a(a,b){var c=this,d=new fc,e=kc(function(){d.isDisposed||d.setDisposable(b(c,a))});return new ac(d,dc(function(){nc(e)}))}function b(a,b,c){var d=this,e=ic.normalize(b);if(0===e)return d.scheduleWithState(a,c);var f=new fc,g=pc(function(){f.isDisposed||f.setDisposable(c(d,a))},e);return new ac(f,dc(function(){qc(g)}))}function c(a,b,c){return this.scheduleWithRelativeAndState(a,b-this.now(),c)}return new ic(eb,a,b,c)}(),sc=ab.Notification=function(){function a(a,b){this.hasValue=null==b?!1:b,this.kind=a}return a.prototype.accept=function(a,b,c){return a&&"object"==typeof a?this._acceptObservable(a):this._accept(a,b,c)},a.prototype.toObservable=function(a){var b=this;return cb(a)||(a=lc),new hd(function(c){return a.schedule(function(){b._acceptObservable(c),"N"===b.kind&&c.onCompleted()})})},a}(),tc=sc.createOnNext=function(){function a(a){return a(this.value)}function b(a){return a.onNext(this.value)}function c(){return"OnNext("+this.value+")"}return function(d){var e=new sc("N",!0);return e.value=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),uc=sc.createOnError=function(){function a(a,b){return b(this.exception)}function b(a){return a.onError(this.exception)}function c(){return"OnError("+this.exception+")"}return function(d){var e=new sc("E");return e.exception=d,e._accept=a,e._acceptObservable=b,e.toString=c,e}}(),vc=sc.createOnCompleted=function(){function a(a,b,c){return c()}function b(a){return a.onCompleted()}function c(){return"OnCompleted()"}return function(){var d=new sc("C");return d._accept=a,d._acceptObservable=b,d.toString=c,d}}(),wc=ab.internals.Enumerator=function(a){this._next=a};wc.prototype.next=function(){return this._next()},wc.prototype[rb]=function(){return this};var xc=ab.internals.Enumerable=function(a){this._iterator=a};xc.prototype[rb]=function(){return this._iterator()},xc.prototype.concat=function(){var a=this;return new hd(function(b){var c,d=a[rb](),e=new gc,f=lc.scheduleRecursive(function(a){if(!c){try{var f=d.next()}catch(g){return b.onError(g)}if(f.done)return b.onCompleted();var h=f.value;ib(h)&&(h=ad(h));var i=new fc;e.setDisposable(i),i.setDisposable(h.subscribe(function(a){b.onNext(a)},function(a){b.onError(a)},a))}});return new ac(e,f,dc(function(){c=!0}))})},xc.prototype.catchError=function(){var a=this;return new hd(function(b){var c,d=a[rb](),e=new gc,f=lc.scheduleRecursiveWithState(null,function(a,f){if(!c){try{var g=d.next()}catch(h){return observer.onError(h)}if(g.done)return void(null!==a?b.onError(a):b.onCompleted());var i=g.value;ib(i)&&(i=ad(i));var j=new fc;e.setDisposable(j),j.setDisposable(i.subscribe(function(a){b.onNext(a)},f,function(){b.onCompleted()}))}});return new ac(e,f,dc(function(){c=!0}))})},xc.prototype.catchErrorWhen=function(a){var b=this;return new hd(function(c){var d,e,f=new kd,g=new kd,h=a(f),i=h.subscribe(g),j=b[rb](),k=new gc,l=lc.scheduleRecursive(function(a){if(!d){try{var b=j.next()}catch(h){return c.onError(h)}if(b.done)return void(e?c.onError(e):c.onCompleted());var i=b.value;ib(i)&&(i=ad(i));var l=new fc,m=new fc;k.setDisposable(new ac(m,l)),l.setDisposable(i.subscribe(function(a){c.onNext(a)},function(b){m.setDisposable(g.subscribe(a,function(a){c.onError(a)},function(){c.onCompleted()})),f.onNext(b)},function(){c.onCompleted()}))}});return new ac(i,k,l,dc(function(){d=!0}))})};var yc,zc=xc.repeat=function(a,b){return null==b&&(b=-1),new xc(function(){var c=b;return new wc(function(){return 0===c?sb:(c>0&&c--,{done:!1,value:a})})})},Ac=xc.of=function(a,b,c){if(b)var d=wb(b,c,3);return new xc(function(){var c=-1;return new wc(function(){return++c<a.length?{done:!1,value:b?d(a[c],c,a):a[c]}:sb})})},Bc=ab.Observer=function(){},Cc=Bc.create=function(a,b,c){return a||(a=bb),b||(b=hb),c||(c=bb),new Ec(a,b,c)},Dc=ab.internals.AbstractObserver=function(a){function b(){this.isStopped=!1,a.call(this)}function c(){throw new Error("Method not implemented")}return Wb(b,a),b.prototype.next=c,b.prototype.error=c,b.prototype.completed=c,b.prototype.onNext=function(a){this.isStopped||this.next(a)},b.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.error(a))},b.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.completed())},b.prototype.dispose=function(){this.isStopped=!0},b.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.error(a),!0)},b}(Bc),Ec=ab.AnonymousObserver=function(a){function b(b,c,d){a.call(this),this._onNext=b,this._onError=c,this._onCompleted=d}return Wb(b,a),b.prototype.next=function(a){this._onNext(a)},b.prototype.error=function(a){this._onError(a)},b.prototype.completed=function(){this._onCompleted()},b}(Dc),Fc=ab.Observable=function(){function a(a){if(ab.config.longStackSupport&&mb){try{throw new Error}catch(b){this.stack=b.stack.substring(b.stack.indexOf("\n")+1)}var c=this;this._subscribe=function(b){var e=b.onError.bind(b);return b.onError=function(a){d(a,c),e(a)},a.call(c,b)}}else this._subscribe=a}return yc=a.prototype,yc.subscribe=yc.forEach=function(a,b,c){return this._subscribe("object"==typeof a?a:Cc(a,b,c))},yc.subscribeOnNext=function(a,b){return this._subscribe(Cc("undefined"!=typeof b?function(c){a.call(b,c)}:a))},yc.subscribeOnError=function(a,b){return this._subscribe(Cc(null,"undefined"!=typeof b?function(c){a.call(b,c)}:a))},yc.subscribeOnCompleted=function(a,b){return this._subscribe(Cc(null,null,"undefined"!=typeof b?function(){a.call(b)}:a))},a}(),Gc=ab.ObservableBase=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?dc(a):ec}function c(a,c){var d=c[0],e=c[1];try{d.setDisposable(b(e.subscribeCore(d)))}catch(f){if(!d.fail(f))throw f}}function d(a){var b=new id(a),d=[b,this];return mc.scheduleRequired()?mc.scheduleWithState(d,c):c(null,d),b}function e(){a.call(this,d)}return Wb(e,a),e.prototype.subscribeCore=function(){throw new Error("Not implemeneted")},e}(Fc),Hc=ab.internals.ScheduledObserver=function(a){function b(b,c){a.call(this),this.scheduler=b,this.observer=c,this.isAcquired=!1,this.hasFaulted=!1,this.queue=[],this.disposable=new gc}return Wb(b,a),b.prototype.next=function(a){var b=this;this.queue.push(function(){b.observer.onNext(a)})},b.prototype.error=function(a){var b=this;this.queue.push(function(){b.observer.onError(a)})},b.prototype.completed=function(){var a=this;this.queue.push(function(){a.observer.onCompleted()})},b.prototype.ensureActive=function(){var a=!1,b=this;!this.hasFaulted&&this.queue.length>0&&(a=!this.isAcquired,this.isAcquired=!0),a&&this.disposable.setDisposable(this.scheduler.scheduleRecursive(function(a){var c;if(!(b.queue.length>0))return void(b.isAcquired=!1);c=b.queue.shift();try{c()}catch(d){throw b.queue=[],b.hasFaulted=!0,d}a()}))},b.prototype.dispose=function(){a.prototype.dispose.call(this),this.disposable.dispose()},b}(Dc),Ic=function(a){function b(b){this.source=b,a.call(this)}return Wb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new r(a))},b}(Gc);r.prototype.onNext=function(a){this.isStopped||this.a.push(a)},r.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.observer.onError(a))},r.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.observer.onNext(this.a),this.observer.onCompleted())},r.prototype.dispose=function(){this.isStopped=!0},r.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},yc.toArray=function(){return new Ic(this)},Fc.create=Fc.createWithDisposable=function(a,b){return new hd(a,b)};var Jc=Fc.defer=function(a){return new hd(function(b){var c;try{c=a()}catch(d){return Uc(d).subscribe(b)}return ib(c)&&(c=ad(c)),c.subscribe(b)})},Kc=Fc.empty=function(a){return cb(a)||(a=lc),new hd(function(b){return a.schedule(function(){b.onCompleted()})})},Lc=function(a){function b(b,c,d){this.iterable=b,this.mapper=c,this.scheduler=d,a.call(this)}return Wb(b,a),b.prototype.subscribeCore=function(a){var b=new Mc(a,this);return b.run()},b}(Gc),Mc=function(){function a(a,b){this.observer=a,this.parent=b}return a.prototype.run=function(){function a(a,b){try{var f=c.next()}catch(g){return d.onError(g)}if(f.done)return d.onCompleted();var h=f.value;if(e)try{h=e(h,a)}catch(g){return d.onError(g)}d.onNext(h),b(a+1)}var b=Object(this.parent.iterable),c=y(b),d=this.observer,e=this.parent.mapper;return this.parent.scheduler.scheduleRecursiveWithState(0,a)},a}(),Nc=Math.pow(2,53)-1;t.prototype[rb]=function(){return new u(this._s)},u.prototype[rb]=function(){return this},u.prototype.next=function(){return this._i<this._l?{done:!1,value:this._s.charAt(this._i++)}:sb},v.prototype[rb]=function(){return new w(this._a)},w.prototype[rb]=function(){return this},w.prototype.next=function(){return this._i<this._l?{done:!1,value:this._a[this._i++]}:sb};var Oc=Fc.from=function(a,b,c,d){if(null==a)throw new Error("iterable cannot be null.");if(b&&!jb(b))throw new Error("mapFn when provided must be a function");if(b)var e=wb(b,c,2);
|
3
|
+
return cb(d)||(d=mc),new Lc(a,e,d)},Pc=function(a){function b(b,c){this.args=b,this.scheduler=c||mc,a.call(this)}return Wb(b,a),b.prototype.subscribeCore=function(a){var b=new B(a,this);return b.run()},b}(Gc);B.prototype.run=function(){function a(a,e){d>a?(b.onNext(c[a]),e(a+1)):b.onCompleted()}var b=this.observer,c=this.parent.args,d=c.length;return this.parent.scheduler.scheduleRecursiveWithState(0,a)};{var Qc=Fc.fromArray=function(a,b){return new Pc(a,b)};Fc.never=function(){return new hd(function(){return ec})}}Fc.of=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return new Pc(b)},Fc.ofWithScheduler=function(a){for(var b=arguments.length,c=new Array(b-1),d=1;b>d;d++)c[d-1]=arguments[d];return new Pc(c,a)},Fc.pairs=function(a,b){return b||(b=ab.Scheduler.currentThread),new hd(function(c){var d=Object.keys(a),e=d.length;return b.scheduleRecursiveWithState(0,function(b,f){if(e>b){var g=d[b];c.onNext([g,a[g]]),f(b+1)}else c.onCompleted()})})};var Rc=function(a){function b(b,c,d){this.start=b,this.count=c,this.scheduler=d,a.call(this)}return Wb(b,a),b.prototype.subscribeCore=function(a){var b=new Sc(a,this);return b.run()},b}(Gc),Sc=function(){function a(a,b){this.observer=a,this.parent=b}return a.prototype.run=function(){function a(a,e){c>a?(d.onNext(b+a),e(a+1)):d.onCompleted()}var b=this.parent.start,c=this.parent.count,d=this.observer;return this.parent.scheduler.scheduleRecursiveWithState(0,a)},a}();Fc.range=function(a,b,c){return cb(c)||(c=mc),new Rc(a,b,c)},Fc.repeat=function(a,b,c){return cb(c)||(c=mc),Tc(a,c).repeat(null==b?-1:b)};var Tc=Fc["return"]=Fc.just=function(a,b){return cb(b)||(b=lc),new hd(function(c){return b.schedule(function(){c.onNext(a),c.onCompleted()})})};Fc.returnValue=function(){return Tc.apply(null,arguments)};var Uc=Fc["throw"]=Fc.throwError=function(a,b){return cb(b)||(b=lc),new hd(function(c){return b.schedule(function(){c.onError(a)})})};Fc.throwException=function(){return Fc.throwError.apply(null,arguments)},yc["catch"]=yc.catchError=yc.catchException=function(a){return"function"==typeof a?D(this,a):Vc([this,a])};var Vc=Fc.catchError=Fc["catch"]=Fc.catchException=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else for(var b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return Ac(a).catchError()};yc.combineLatest=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];return Array.isArray(b[0])?b[0].unshift(this):b.unshift(this),Wc.apply(this,b)};var Wc=Fc.combineLatest=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=b.pop();return a--,Array.isArray(b[0])&&(b=b[0]),new hd(function(c){function e(a){if(h[a]=!0,i||(i=h.every(db))){try{var b=d.apply(null,k)}catch(e){return void c.onError(e)}c.onNext(b)}else j.filter(function(b,c){return c!==a}).every(db)&&c.onCompleted()}function f(a){j[a]=!0,j.every(db)&&c.onCompleted()}for(var g=function(){return!1},h=p(a,g),i=!1,j=p(a,g),k=new Array(a),l=new Array(a),m=0;a>m;m++)!function(a){var d=b[a],g=new fc;ib(d)&&(d=ad(d)),g.setDisposable(d.subscribe(function(b){k[a]=b,e(a)},function(a){c.onError(a)},function(){f(a)})),l[a]=g}(m);return new ac(l)},this)};yc.concat=function(){for(var a=[],b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return a.unshift(this),Xc.apply(null,a)};var Xc=Fc.concat=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{a=new Array(arguments.length);for(var b=0,c=arguments.length;c>b;b++)a[b]=arguments[b]}return Ac(a).concat()};yc.concatAll=yc.concatObservable=function(){return this.merge(1)},yc.merge=function(a){if("number"!=typeof a)return Yc(this,a);var b=this;return new hd(function(c){function d(a){var b=new fc;f.add(b),ib(a)&&(a=ad(a)),b.setDisposable(a.subscribe(function(a){c.onNext(a)},function(a){c.onError(a)},function(){f.remove(b),h.length>0?d(h.shift()):(e--,g&&0===e&&c.onCompleted())}))}var e=0,f=new ac,g=!1,h=[];return f.add(b.subscribe(function(b){a>e?(e++,d(b)):h.push(b)},function(a){c.onError(a)},function(){g=!0,0===e&&c.onCompleted()})),f},b)};var Yc=Fc.merge=function(){var a,b,c=[],d=arguments.length;if(arguments[0])if(cb(arguments[0]))for(a=arguments[0],b=1;d>b;b++)c.push(arguments[b]);else for(a=lc,b=0;d>b;b++)c.push(arguments[b]);else for(a=lc,b=1;d>b;b++)c.push(arguments[b]);return Array.isArray(c[0])&&(c=c[0]),C(a,c).mergeAll()};yc.mergeAll=yc.mergeObservable=function(){var a=this;return new hd(function(b){var c=new ac,d=!1,e=new fc;return c.add(e),e.setDisposable(a.subscribe(function(a){var e=new fc;c.add(e),ib(a)&&(a=ad(a)),e.setDisposable(a.subscribe(function(a){b.onNext(a)},function(a){b.onError(a)},function(){c.remove(e),d&&1===c.length&&b.onCompleted()}))},function(a){b.onError(a)},function(){d=!0,1===c.length&&b.onCompleted()})),c},a)},yc.skipUntil=function(a){var b=this;return new hd(function(c){var d=!1,e=new ac(b.subscribe(function(a){d&&c.onNext(a)},function(a){c.onError(a)},function(){d&&c.onCompleted()}));ib(a)&&(a=ad(a));var f=new fc;return e.add(f),f.setDisposable(a.subscribe(function(){d=!0,f.dispose()},function(a){c.onError(a)},function(){f.dispose()})),e},b)},yc["switch"]=yc.switchLatest=function(){var a=this;return new hd(function(b){var c=!1,d=new gc,e=!1,f=0,g=a.subscribe(function(a){var g=new fc,h=++f;c=!0,d.setDisposable(g),ib(a)&&(a=ad(a)),g.setDisposable(a.subscribe(function(a){f===h&&b.onNext(a)},function(a){f===h&&b.onError(a)},function(){f===h&&(c=!1,e&&b.onCompleted())}))},function(a){b.onError(a)},function(){e=!0,!c&&b.onCompleted()});return new ac(g,d)},a)},yc.takeUntil=function(a){var b=this;return new hd(function(c){return ib(a)&&(a=ad(a)),new ac(b.subscribe(c),a.subscribe(function(){c.onCompleted()},function(a){c.onError(a)},bb))},b)},yc.withLatestFrom=function(){for(var a=[],b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);var d=a.pop(),e=this;if("undefined"==typeof e)throw new Error("Source observable not found for withLatestFrom().");if("function"!=typeof d)throw new Error("withLatestFrom() expects a resultSelector function.");return Array.isArray(a[0])&&(a=a[0]),new hd(function(b){for(var c=function(){return!1},f=a.length,g=p(f,c),h=!1,i=new Array(f),j=new Array(f+1),k=0;f>k;k++)!function(c){var d=a[c],e=new fc;ib(d)&&(d=ad(d)),e.setDisposable(d.subscribe(function(a){i[c]=a,g[c]=!0,h=g.every(db)},b.onError.bind(b),function(){})),j[c]=e}(k);var l=new fc;return l.setDisposable(e.subscribe(function(a){var c,e=[a].concat(i);if(h){try{c=d.apply(null,e)}catch(f){return void b.onError(f)}b.onNext(c)}},b.onError.bind(b),function(){b.onCompleted()})),j[f]=l,new ac(j)},this)},yc.zip=function(){if(Array.isArray(arguments[0]))return E.apply(this,arguments);for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=this,e=b.pop();return b.unshift(d),new hd(function(a){function c(b){var c,f;if(h.every(function(a){return a.length>0})){try{f=h.map(function(a){return a.shift()}),c=e.apply(d,f)}catch(g){return void a.onError(g)}a.onNext(c)}else i.filter(function(a,c){return c!==b}).every(db)&&a.onCompleted()}function f(b){i[b]=!0,i.every(function(a){return a})&&a.onCompleted()}for(var g=b.length,h=p(g,G),i=p(g,F),j=new Array(g),k=0;g>k;k++)!function(d){var e=b[d],g=new fc;ib(e)&&(e=ad(e)),g.setDisposable(e.subscribe(function(a){h[d].push(a),c(d)},function(b){a.onError(b)},function(){f(d)})),j[d]=g}(k);return new ac(j)},d)},Fc.zip=function(){for(var a=arguments.length,b=new Array(a),c=0;a>c;c++)b[c]=arguments[c];var d=b.shift();return d.zip.apply(d,b)},Fc.zipArray=function(){var a;if(Array.isArray(arguments[0]))a=arguments[0];else{var b=arguments.length;a=new Array(b);for(var c=0;b>c;c++)a[c]=arguments[c]}return new hd(function(b){function c(a){if(f.every(function(a){return a.length>0})){var c=f.map(function(a){return a.shift()});b.onNext(c)}else if(g.filter(function(b,c){return c!==a}).every(db))return void b.onCompleted()}function d(a){return g[a]=!0,g.every(db)?void b.onCompleted():void 0}for(var e=a.length,f=p(e,function(){return[]}),g=p(e,function(){return!1}),h=new Array(e),i=0;e>i;i++)!function(e){h[e]=new fc,h[e].setDisposable(a[e].subscribe(function(a){f[e].push(a),c(e)},function(a){b.onError(a)},function(){d(e)}))}(i);return new ac(h)})},yc.asObservable=function(){var a=this;return new hd(function(b){return a.subscribe(b)},this)},yc.dematerialize=function(){var a=this;return new hd(function(b){return a.subscribe(function(a){return a.accept(b)},function(a){b.onError(a)},function(){b.onCompleted()})},this)},yc.distinctUntilChanged=function(a,b){var c=this;return b||(b=fb),new hd(function(d){var e,f=!1;return c.subscribe(function(c){var g=c;if(a)try{g=a(c)}catch(h){return void d.onError(h)}if(f)try{var i=b(e,g)}catch(h){return void d.onError(h)}f&&i||(f=!0,e=g,d.onNext(c))},function(a){d.onError(a)},function(){d.onCompleted()})},this)},yc["do"]=yc.tap=yc.doAction=function(a,b,c){var d=this,e="function"==typeof a||"undefined"==typeof a?Cc(a||bb,b||bb,c||bb):a;return new hd(function(a){return d.subscribe(function(b){try{e.onNext(b)}catch(c){a.onError(c)}a.onNext(b)},function(b){try{e.onError(b)}catch(c){a.onError(c)}a.onError(b)},function(){try{e.onCompleted()}catch(b){a.onError(b)}a.onCompleted()})},this)},yc.doOnNext=yc.tapOnNext=function(a,b){return this.tap("undefined"!=typeof b?function(c){a.call(b,c)}:a)},yc.doOnError=yc.tapOnError=function(a,b){return this.tap(bb,"undefined"!=typeof b?function(c){a.call(b,c)}:a)},yc.doOnCompleted=yc.tapOnCompleted=function(a,b){return this.tap(bb,null,"undefined"!=typeof b?function(){a.call(b)}:a)},yc["finally"]=yc.ensure=function(a){var b=this;return new hd(function(c){var d;try{d=b.subscribe(c)}catch(e){throw a(),e}return dc(function(){try{d.dispose()}catch(b){throw b}finally{a()}})},this)},yc.finallyAction=function(a){return this.ensure(a)},yc.ignoreElements=function(){var a=this;return new hd(function(b){return a.subscribe(bb,function(a){b.onError(a)},function(){b.onCompleted()})},a)},yc.materialize=function(){var a=this;return new hd(function(b){return a.subscribe(function(a){b.onNext(tc(a))},function(a){b.onNext(uc(a)),b.onCompleted()},function(){b.onNext(vc()),b.onCompleted()})},a)},yc.repeat=function(a){return zc(this,a).concat()},yc.retry=function(a){return zc(this,a).catchError()},yc.retryWhen=function(a){return zc(this).catchErrorWhen(a)},yc.scan=function(){var a,b,c=!1,d=this;return 2===arguments.length?(c=!0,a=arguments[0],b=arguments[1]):b=arguments[0],new hd(function(e){var f,g,h;return d.subscribe(function(d){!h&&(h=!0);try{f?g=b(g,d):(g=c?b(a,d):d,f=!0)}catch(i){return void e.onError(i)}e.onNext(g)},function(a){e.onError(a)},function(){!h&&c&&e.onNext(a),e.onCompleted()})},d)},yc.skipLast=function(a){var b=this;return new hd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&c.onNext(d.shift())},function(a){c.onError(a)},function(){c.onCompleted()})},b)},yc.startWith=function(){var a,b=0;arguments.length&&cb(arguments[0])?(a=arguments[0],b=1):a=lc;for(var c=[],d=b,e=arguments.length;e>d;d++)c.push(arguments[d]);return Ac([Qc(c,a),this]).concat()},yc.takeLast=function(a){var b=this;return new hd(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},function(a){c.onError(a)},function(){for(;d.length>0;)c.onNext(d.shift());c.onCompleted()})},b)},yc.selectConcat=yc.concatMap=function(a,b,c){return jb(a)&&jb(b)?this.concatMap(function(c,d){var e=a(c,d);return ib(e)&&(e=ad(e)),(ub(e)||tb(e))&&(e=Oc(e)),e.map(function(a,e){return b(c,a,d,e)})}):jb(a)?H(this,a,c):H(this,function(){return a})};var Zc=function(a){function b(b,c,d){this.source=b,this.selector=wb(c,d,3),a.call(this)}return Wb(b,a),b.prototype.internalMap=function(a,c){var d=this;return new b(this.source,function(b,c,e){return a(d.selector(b,c,e),c,e)},c)},b.prototype.subscribeCore=function(a){return this.source.subscribe(new I(a,this.selector,this))},b}(Gc);I.prototype.onNext=function(a){if(!this.isStopped){try{var b=this.selector(a,this.i++,this.source)}catch(c){return this.observer.onError(c)}this.observer.onNext(b)}},I.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.observer.onError(a))},I.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.observer.onCompleted())},I.prototype.dispose=function(){this.isStopped=!0},I.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},yc.map=yc.select=function(a,b){var c="function"==typeof a?a:function(){return a};return this instanceof Zc?this.internalMap(c,b):new Zc(this,c,b)},yc.pluck=function(){var b=arguments,c=arguments.length;if(0===c)throw new Error("List of properties cannot be empty.");return this.map(function(d){for(var e=d,f=0;c>f;f++){var g=e[b[f]];if("undefined"==typeof g)return a;e=g}return e})},yc.selectMany=yc.flatMap=function(a,b,c){return jb(a)&&jb(b)?this.flatMap(function(c,d){var e=a(c,d);return ib(e)&&(e=ad(e)),(ub(e)||tb(e))&&(e=Oc(e)),e.map(function(a,e){return b(c,a,d,e)})},c):jb(a)?J(this,a,c):J(this,function(){return a})},yc.selectSwitch=yc.flatMapLatest=yc.switchMap=function(a,b){return this.select(a,b).switchLatest()},yc.skip=function(a){if(0>a)throw new Error(kb);var b=this;return new hd(function(c){var d=a;return b.subscribe(function(a){0>=d?c.onNext(a):d--},function(a){c.onError(a)},function(){c.onCompleted()})},b)},yc.skipWhile=function(a,b){var c=this,d=wb(a,b,3);return new hd(function(a){var b=0,e=!1;return c.subscribe(function(f){if(!e)try{e=!d(f,b++,c)}catch(g){return void a.onError(g)}e&&a.onNext(f)},function(b){a.onError(b)},function(){a.onCompleted()})},c)},yc.take=function(a,b){if(0>a)throw new RangeError(kb);if(0===a)return Kc(b);var c=this;return new hd(function(b){var d=a;return c.subscribe(function(a){d-->0&&(b.onNext(a),0===d&&b.onCompleted())},function(a){b.onError(a)},function(){b.onCompleted()})},c)},yc.takeWhile=function(a,b){var c=this,d=wb(a,b,3);return new hd(function(a){var b=0,e=!0;return c.subscribe(function(f){if(e){try{e=d(f,b++,c)}catch(g){return void a.onError(g)}e?a.onNext(f):a.onCompleted()}},function(b){a.onError(b)},function(){a.onCompleted()})},c)};var $c=function(a){function b(b,c,d){this.source=b,this.predicate=wb(c,d,3),a.call(this)}return Wb(b,a),b.prototype.subscribeCore=function(a){return this.source.subscribe(new K(a,this.predicate,this))},b.prototype.internalFilter=function(a,c){var d=this;return new b(this.source,function(b,c,e){return d.predicate(b,c,e)&&a(b,c,e)},c)},b}(Gc);K.prototype.onNext=function(a){if(!this.isStopped){try{var b=this.predicate(a,this.i++,this.source)}catch(c){return this.observer.onError(c)}b&&this.observer.onNext(a)}},K.prototype.onError=function(a){this.isStopped||(this.isStopped=!0,this.observer.onError(a))},K.prototype.onCompleted=function(){this.isStopped||(this.isStopped=!0,this.observer.onCompleted())},K.prototype.dispose=function(){this.isStopped=!0},K.prototype.fail=function(a){return this.isStopped?!1:(this.isStopped=!0,this.observer.onError(a),!0)},yc.filter=yc.where=function(a,b){return this instanceof $c?this.internalFilter(a,b):new $c(this,a,b)},Fc.fromCallback=function(a,b,c){return function(){for(var d=[],e=0,f=arguments.length;f>e;e++)d.push(arguments[e]);return new hd(function(e){function f(){var a=arguments;if(c){try{a=c(a)}catch(b){return e.onError(b)}e.onNext(a)}else a.length<=1?e.onNext.apply(e,a):e.onNext(a);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},Fc.fromNodeCallback=function(a,b,c){return function(){for(var d=[],e=0,f=arguments.length;f>e;e++)d.push(arguments[e]);return new hd(function(e){function f(a){if(a)return void e.onError(a);for(var b=[],d=1,f=arguments.length;f>d;d++)b.push(arguments[d]);if(c){try{b=c(b)}catch(g){return e.onError(g)}e.onNext(b)}else b.length<=1?e.onNext.apply(e,b):e.onNext(b);e.onCompleted()}d.push(f),a.apply(b,d)}).publishLast().refCount()}},ab.config.useNativeEvents=!1,Fc.fromEvent=function(a,b,c){return a.addListener?_c(function(c){a.addListener(b,c)},function(c){a.removeListener(b,c)},c):ab.config.useNativeEvents||"function"!=typeof a.on||"function"!=typeof a.off?new hd(function(d){return N(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():_c(function(c){a.on(b,c)},function(c){a.off(b,c)},c)};var _c=Fc.fromEventPattern=function(a,b,c){return new hd(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 dc(function(){b&&b(e,f)})}).publish().refCount()},ad=Fc.fromPromise=function(a){return Jc(function(){var b=new ab.AsyncSubject;return a.then(function(a){b.onNext(a),b.onCompleted()},b.onError.bind(b)),b})};yc.toPromise=function(a){if(a||(a=ab.config.Promise),!a)throw new TypeError("Promise type not provided nor in Rx.config.Promise");var b=this;return new a(function(a,c){var d,e=!1;b.subscribe(function(a){d=a,e=!0},c,function(){e&&a(d)})})},Fc.startAsync=function(a){var b;try{b=a()}catch(c){return Uc(c)}return ad(b)},yc.multicast=function(a,b){var c=this;return"function"==typeof a?new hd(function(d){var e=c.multicast(a());return new ac(b(e).subscribe(d),e.connect())},c):new bd(c,a)},yc.publish=function(a){return a&&jb(a)?this.multicast(function(){return new kd},a):this.multicast(new kd)},yc.share=function(){return this.publish().refCount()},yc.publishLast=function(a){return a&&jb(a)?this.multicast(function(){return new ld},a):this.multicast(new ld)},yc.publishValue=function(a,b){return 2===arguments.length?this.multicast(function(){return new nd(b)},a):this.multicast(new nd(a))},yc.shareValue=function(a){return this.publishValue(a).refCount()},yc.replay=function(a,b,c,d){return a&&jb(a)?this.multicast(function(){return new od(b,c,d)},a):this.multicast(new od(b,c,d))},yc.shareReplay=function(a,b,c){return this.replay(null,a,b,c).refCount()};{var bd=ab.ConnectableObservable=function(a){function b(b,c){var d,e=!1,f=b.asObservable();this.connect=function(){return e||(e=!0,d=new ac(f.subscribe(c),dc(function(){e=!1}))),d},a.call(this,function(a){return c.subscribe(a)})}return Wb(b,a),b.prototype.refCount=function(){var a,b=0,c=this;return new hd(function(d){var e=1===++b,f=c.subscribe(d);return e&&(a=c.connect()),function(){f.dispose(),0===--b&&a.dispose()}})},b}(Fc),cd=Fc.interval=function(a,b){return R(a,a,cb(b)?b:rc)};Fc.timer=function(b,c,d){var e;return cb(d)||(d=rc),c!==a&&"number"==typeof c?e=c:cb(c)&&(d=c),b instanceof Date&&e===a?O(b.getTime(),d):b instanceof Date&&e!==a?(e=c,P(b.getTime(),e,d)):e===a?Q(b,d):R(b,e,d)}}yc.delay=function(a,b){return cb(b)||(b=rc),a instanceof Date?T(this,a.getTime(),b):S(this,a,b)},yc.debounce=yc.throttleWithTimeout=function(a,b){cb(b)||(b=rc);var c=this;return new hd(function(d){var e,f=new gc,g=!1,h=0,i=c.subscribe(function(c){g=!0,e=c,h++;var i=h,j=new fc;f.setDisposable(j),j.setDisposable(b.scheduleWithRelative(a,function(){g&&h===i&&d.onNext(e),g=!1}))},function(a){f.dispose(),d.onError(a),g=!1,h++},function(){f.dispose(),g&&d.onNext(e),d.onCompleted(),g=!1,h++});return new ac(i,f)},this)},yc.throttle=function(a,b){return this.debounce(a,b)},yc.timestamp=function(a){return cb(a)||(a=rc),this.map(function(b){return{value:b,timestamp:a.now()}})},yc.sample=yc.throttleLatest=function(a,b){return cb(b)||(b=rc),"number"==typeof a?U(this,cd(a,b)):U(this,a)},yc.timeout=function(a,b,c){(null==b||"string"==typeof b)&&(b=Uc(new Error(b||"Timeout"))),cb(c)||(c=rc);var d=this,e=a instanceof Date?"scheduleWithAbsolute":"scheduleWithRelative";return new hd(function(f){function g(){var d=h;l.setDisposable(c[e](a,function(){h===d&&(ib(b)&&(b=ad(b)),j.setDisposable(b.subscribe(f)))}))}var h=0,i=new fc,j=new gc,k=!1,l=new gc;return j.setDisposable(i),g(),i.setDisposable(d.subscribe(function(a){k||(h++,f.onNext(a),g())},function(a){k||(h++,f.onError(a))},function(){k||(h++,f.onCompleted())})),new ac(j,l)},d)},yc.throttleFirst=function(a,b){cb(b)||(b=rc);var c=+a||0;if(0>=c)throw new RangeError("windowDuration cannot be less or equal zero.");var d=this;return new hd(function(a){var e=0;return d.subscribe(function(d){var f=b.now();(0===e||f-e>=c)&&(e=f,a.onNext(d))},function(b){a.onError(b)},function(){a.onCompleted()})},d)};var dd=function(a){function b(a){var b=this.source.publish(),c=b.subscribe(a),d=ec,e=this.pauser.distinctUntilChanged().subscribe(function(a){a?d=b.connect():(d.dispose(),d=ec)});return new ac(c,d,e)}function c(c,d){this.source=c,this.controller=new kd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,a.call(this,b,c)}return Wb(c,a),c.prototype.pause=function(){this.controller.onNext(!1)},c.prototype.resume=function(){this.controller.onNext(!0)},c}(Fc);yc.pausable=function(a){return new dd(this,a)};var ed=function(b){function c(b){var c,d=[],e=V(this.source,this.pauser.distinctUntilChanged().startWith(!1),function(a,b){return{data:a,shouldFire:b}}).subscribe(function(e){if(c!==a&&e.shouldFire!=c){if(c=e.shouldFire,e.shouldFire)for(;d.length>0;)b.onNext(d.shift())}else c=e.shouldFire,e.shouldFire?b.onNext(e.data):d.push(e.data)},function(a){for(;d.length>0;)b.onNext(d.shift());b.onError(a)},function(){for(;d.length>0;)b.onNext(d.shift());b.onCompleted()});return e}function d(a,d){this.source=a,this.controller=new kd,this.pauser=d&&d.subscribe?this.controller.merge(d):this.controller,b.call(this,c,a)}return Wb(d,b),d.prototype.pause=function(){this.controller.onNext(!1)},d.prototype.resume=function(){this.controller.onNext(!0)},d}(Fc);yc.pausableBuffered=function(a){return new ed(this,a)};var fd=function(a){function b(a){return this.source.subscribe(a)}function c(c,d){a.call(this,b,c),this.subject=new gd(d),this.source=c.multicast(this.subject).refCount()}return Wb(c,a),c.prototype.request=function(a){return null==a&&(a=-1),this.subject.request(a)},c}(Fc),gd=function(a){function b(a){return this.subject.subscribe(a)}function c(c){null==c&&(c=!0),a.call(this,b),this.subject=new kd,this.enableQueue=c,this.queue=c?[]:null,this.requestedCount=0,this.requestedDisposable=ec,this.error=null,this.hasFailed=!1,this.hasCompleted=!1,this.controlledDisposable=ec}return Wb(c,a),Xb(c.prototype,Bc,{onCompleted:function(){this.hasCompleted=!0,(!this.enableQueue||0===this.queue.length)&&this.subject.onCompleted()},onError:function(a){this.hasFailed=!0,this.error=a,(!this.enableQueue||0===this.queue.length)&&this.subject.onError(a)},onNext:function(a){var b=!1;0===this.requestedCount?this.enableQueue&&this.queue.push(a):(-1!==this.requestedCount&&0===this.requestedCount--&&this.disposeCurrentRequest(),b=!0),b&&this.subject.onNext(a)},_processRequest:function(a){if(this.enableQueue){for(;this.queue.length>=a&&a>0;)this.subject.onNext(this.queue.shift()),a--;return 0!==this.queue.length?{numberOfItems:a,returnValue:!0}:{numberOfItems:a,returnValue:!1}}return this.hasFailed?(this.subject.onError(this.error),this.controlledDisposable.dispose(),this.controlledDisposable=ec):this.hasCompleted&&(this.subject.onCompleted(),this.controlledDisposable.dispose(),this.controlledDisposable=ec),{numberOfItems:a,returnValue:!1}},request:function(a){this.disposeCurrentRequest();var b=this,c=this._processRequest(a),a=c.numberOfItems;return c.returnValue?ec:(this.requestedCount=a,this.requestedDisposable=dc(function(){b.requestedCount=0}),this.requestedDisposable)},disposeCurrentRequest:function(){this.requestedDisposable.dispose(),this.requestedDisposable=ec}}),c}(Fc);yc.controlled=function(a){return null==a&&(a=!0),new fd(this,a)},yc.transduce=function(a){function b(a){return{init:function(){return a},step:function(a,b){return a.onNext(b)},result:function(a){return a.onCompleted()}}}var c=this;return new hd(function(d){var e=a(b(d));return c.subscribe(function(a){try{e.step(d,a)}catch(b){d.onError(b)}},d.onError.bind(d),function(){e.result(d)})},c)};var hd=ab.AnonymousObservable=function(a){function b(a){return a&&"function"==typeof a.dispose?a:"function"==typeof a?dc(a):ec}function c(a,c){var d=c[0],e=c[1];try{d.setDisposable(b(e(d)))}catch(f){if(!d.fail(f))throw f}}function d(b,d){function e(a){var d=new id(a),e=[d,b];return mc.scheduleRequired()?mc.scheduleWithState(e,c):c(null,e),d}this.source=d,a.call(this,e)}return Wb(d,a),d}(Fc),id=function(a){function b(b){a.call(this),this.observer=b,this.m=new fc}Wb(b,a);var c=b.prototype;return c.next=function(a){var b=!1;try{this.observer.onNext(a),b=!0}catch(c){return o(c)}finally{!b&&this.dispose()}},c.error=function(a){try{this.observer.onError(a)}catch(b){return o(b)}finally{this.dispose()}},c.completed=function(){try{this.observer.onCompleted()}catch(a){return o(a)}finally{this.dispose()}},c.setDisposable=function(a){this.m.setDisposable(a)},c.getDisposable=function(){return this.m.getDisposable()},c.dispose=function(){a.prototype.dispose.call(this),this.m.dispose()},b}(Dc),jd=function(a,b){this.subject=a,this.observer=b};jd.prototype.dispose=function(){if(!this.subject.isDisposed&&null!==this.observer){var a=this.subject.observers.indexOf(this.observer);this.subject.observers.splice(a,1),this.observer=null}};var kd=ab.Subject=function(a){function d(a){return b(this),this.isStopped?this.hasError?(a.onError(this.error),ec):(a.onCompleted(),ec):(this.observers.push(a),new jd(this,a))}function e(){a.call(this,d),this.isDisposed=!1,this.isStopped=!1,this.observers=[],this.hasError=!1}return Wb(e,a),Xb(e.prototype,Bc.prototype,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b(this),!this.isStopped){this.isStopped=!0;for(var a=0,d=c(this.observers),e=d.length;e>a;a++)d[a].onCompleted();this.observers.length=0}},onError:function(a){if(b(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onError(a);this.observers.length=0}},onNext:function(a){if(b(this),!this.isStopped)for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onNext(a)},dispose:function(){this.isDisposed=!0,this.observers=null}}),e.create=function(a,b){return new md(a,b)},e}(Fc),ld=ab.AsyncSubject=function(a){function d(a){return b(this),this.isStopped?(this.hasError?a.onError(this.error):this.hasValue?(a.onNext(this.value),a.onCompleted()):a.onCompleted(),ec):(this.observers.push(a),new jd(this,a))}function e(){a.call(this,d),this.isDisposed=!1,this.isStopped=!1,this.hasValue=!1,this.observers=[],this.hasError=!1}return Wb(e,a),Xb(e.prototype,Bc,{hasObservers:function(){return b(this),this.observers.length>0},onCompleted:function(){var a,d;if(b(this),!this.isStopped){this.isStopped=!0;var e=c(this.observers),d=e.length;if(this.hasValue)for(a=0;d>a;a++){var f=e[a];f.onNext(this.value),f.onCompleted()}else for(a=0;d>a;a++)e[a].onCompleted();this.observers.length=0}},onError:function(a){if(b(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onError(a);this.observers.length=0}},onNext:function(a){b(this),this.isStopped||(this.value=a,this.hasValue=!0)},dispose:function(){this.isDisposed=!0,this.observers=null,this.exception=null,this.value=null}}),e}(Fc),md=ab.AnonymousSubject=function(a){function b(a){return this.observable.subscribe(a)}function c(c,d){this.observer=c,this.observable=d,a.call(this,b)}return Wb(c,a),Xb(c.prototype,Bc.prototype,{onCompleted:function(){this.observer.onCompleted()},onError:function(a){this.observer.onError(a)},onNext:function(a){this.observer.onNext(a)}}),c}(Fc),nd=ab.BehaviorSubject=function(a){function d(a){return b(this),this.isStopped?(this.hasError?a.onError(this.error):a.onCompleted(),ec):(this.observers.push(a),a.onNext(this.value),new jd(this,a))}function e(b){a.call(this,d),this.value=b,this.observers=[],this.isDisposed=!1,this.isStopped=!1,this.hasError=!1}return Wb(e,a),Xb(e.prototype,Bc,{hasObservers:function(){return this.observers.length>0},onCompleted:function(){if(b(this),!this.isStopped){this.isStopped=!0;for(var a=0,d=c(this.observers),e=d.length;e>a;a++)d[a].onCompleted();this.observers.length=0}},onError:function(a){if(b(this),!this.isStopped){this.isStopped=!0,this.hasError=!0,this.error=a;for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onError(a);this.observers.length=0}},onNext:function(a){if(b(this),!this.isStopped){this.value=a;for(var d=0,e=c(this.observers),f=e.length;f>d;d++)e[d].onNext(a)}},dispose:function(){this.isDisposed=!0,this.observers=null,this.value=null,this.exception=null}}),e}(Fc),od=ab.ReplaySubject=function(a){function d(a,b){return dc(function(){b.dispose(),!a.isDisposed&&a.observers.splice(a.observers.indexOf(b),1)})}function e(a){var c=new Hc(this.scheduler,a),e=d(this,c);b(this),this._trim(this.scheduler.now()),this.observers.push(c);for(var f=0,g=this.q.length;g>f;f++)c.onNext(this.q[f].value);return this.hasError?c.onError(this.error):this.isStopped&&c.onCompleted(),c.ensureActive(),e}function f(b,c,d){this.bufferSize=null==b?Number.MAX_VALUE:b,this.windowSize=null==c?Number.MAX_VALUE:c,this.scheduler=d||mc,this.q=[],this.observers=[],this.isStopped=!1,this.isDisposed=!1,this.hasError=!1,this.error=null,a.call(this,e)}return Wb(f,a),Xb(f.prototype,Bc.prototype,{hasObservers:function(){return this.observers.length>0},_trim:function(a){for(;this.q.length>this.bufferSize;)this.q.shift();for(;this.q.length>0&&a-this.q[0].interval>this.windowSize;)this.q.shift()},onNext:function(a){if(b(this),!this.isStopped){var d=this.scheduler.now();this.q.push({interval:d,value:a}),this._trim(d);for(var e=0,f=c(this.observers),g=f.length;g>e;e++){var h=f[e];h.onNext(a),h.ensureActive()}}},onError:function(a){if(b(this),!this.isStopped){this.isStopped=!0,this.error=a,this.hasError=!0;var d=this.scheduler.now();this._trim(d);for(var e=0,f=c(this.observers),g=f.length;g>e;e++){var h=f[e];h.onError(a),h.ensureActive()}this.observers.length=0}},onCompleted:function(){if(b(this),!this.isStopped){this.isStopped=!0;var a=this.scheduler.now();this._trim(a);for(var d=0,e=c(this.observers),f=e.length;f>d;d++){var g=e[d];g.onCompleted(),g.ensureActive()}this.observers.length=0}},dispose:function(){this.isDisposed=!0,this.observers=null}}),f}(Fc);ab.Pauser=function(a){function b(){a.call(this)}return Wb(b,a),b.prototype.pause=function(){this.onNext(!1)},b.prototype.resume=function(){this.onNext(!0)},b}(kd),"function"==typeof define&&"object"==typeof define.amd&&define.amd?(X.Rx=ab,define(function(){return ab})):Y&&Z?$?(Z.exports=ab).Rx=ab:Y.Rx=ab:X.Rx=ab;var pd=h()}).call(this);
|
4
4
|
//# sourceMappingURL=rx.lite.compat.map
|
@@ -38,6 +38,10 @@
|
|
38
38
|
observableNever = Observable.never,
|
39
39
|
observableThrow = Observable.throwException,
|
40
40
|
AnonymousObservable = Rx.AnonymousObservable,
|
41
|
+
AnonymousObserver = Rx.AnonymousObserver,
|
42
|
+
notificationCreateOnNext = Rx.Notification.createOnNext,
|
43
|
+
notificationCreateOnError = Rx.Notification.createOnError,
|
44
|
+
notificationCreateOnCompleted = Rx.Notification.createOnCompleted,
|
41
45
|
Observer = Rx.Observer,
|
42
46
|
Subject = Rx.Subject,
|
43
47
|
internals = Rx.internals,
|
@@ -54,6 +58,7 @@
|
|
54
58
|
identity = helpers.identity,
|
55
59
|
isPromise = helpers.isPromise,
|
56
60
|
inherits = internals.inherits,
|
61
|
+
bindCallback = internals.bindCallback,
|
57
62
|
noop = helpers.noop,
|
58
63
|
isScheduler = helpers.isScheduler,
|
59
64
|
observableFromPromise = Observable.fromPromise,
|
@@ -67,21 +72,22 @@
|
|
67
72
|
|
68
73
|
var argumentOutOfRange = 'Argument out of range';
|
69
74
|
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
75
|
+
function ScheduledDisposable(scheduler, disposable) {
|
76
|
+
this.scheduler = scheduler;
|
77
|
+
this.disposable = disposable;
|
78
|
+
this.isDisposed = false;
|
79
|
+
}
|
80
|
+
|
81
|
+
function scheduleItem(s, self) {
|
82
|
+
if (!self.isDisposed) {
|
83
|
+
self.isDisposed = true;
|
84
|
+
self.disposable.dispose();
|
74
85
|
}
|
86
|
+
}
|
75
87
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
if (!parent.isDisposed) {
|
80
|
-
parent.isDisposed = true;
|
81
|
-
parent.disposable.dispose();
|
82
|
-
}
|
83
|
-
});
|
84
|
-
};
|
88
|
+
ScheduledDisposable.prototype.dispose = function () {
|
89
|
+
this.scheduler.scheduleWithState(this, scheduleItem);
|
90
|
+
};
|
85
91
|
|
86
92
|
var CheckedObserver = (function (_super) {
|
87
93
|
inherits(CheckedObserver, _super);
|
@@ -168,6 +174,61 @@
|
|
168
174
|
return ObserveOnObserver;
|
169
175
|
})(ScheduledObserver);
|
170
176
|
|
177
|
+
/**
|
178
|
+
* Checks access to the observer for grammar violations. This includes checking for multiple OnError or OnCompleted calls, as well as reentrancy in any of the observer methods.
|
179
|
+
* If a violation is detected, an Error is thrown from the offending observer method call.
|
180
|
+
*
|
181
|
+
* @returns An observer that checks callbacks invocations against the observer grammar and, if the checks pass, forwards those to the specified observer.
|
182
|
+
*/
|
183
|
+
Observer.prototype.checked = function () { return new CheckedObserver(this); };
|
184
|
+
|
185
|
+
/**
|
186
|
+
* Schedules the invocation of observer methods on the given scheduler.
|
187
|
+
* @param {Scheduler} scheduler Scheduler to schedule observer messages on.
|
188
|
+
* @returns {Observer} Observer whose messages are scheduled on the given scheduler.
|
189
|
+
*/
|
190
|
+
Observer.notifyOn = function (scheduler) {
|
191
|
+
return new ObserveOnObserver(scheduler, this);
|
192
|
+
};
|
193
|
+
|
194
|
+
/**
|
195
|
+
* Creates an observer from a notification callback.
|
196
|
+
* @param {Function} handler Action that handles a notification.
|
197
|
+
* @returns The observer object that invokes the specified handler using a notification corresponding to each message it receives.
|
198
|
+
*/
|
199
|
+
Observer.fromNotifier = function (handler, thisArg) {
|
200
|
+
var handlerFunc = bindCallback(handler, thisArg, 1);
|
201
|
+
return new AnonymousObserver(function (x) {
|
202
|
+
return handlerFunc(notificationCreateOnNext(x));
|
203
|
+
}, function (e) {
|
204
|
+
return handlerFunc(notificationCreateOnError(e));
|
205
|
+
}, function () {
|
206
|
+
return handlerFunc(notificationCreateOnCompleted());
|
207
|
+
});
|
208
|
+
};
|
209
|
+
|
210
|
+
/**
|
211
|
+
* Creates a notification callback from an observer.
|
212
|
+
* @returns The action that forwards its input notification to the underlying observer.
|
213
|
+
*/
|
214
|
+
Observer.prototype.toNotifier = function () {
|
215
|
+
var observer = this;
|
216
|
+
return function (n) { return n.accept(observer); };
|
217
|
+
};
|
218
|
+
|
219
|
+
/**
|
220
|
+
* Hides the identity of an observer.
|
221
|
+
* @returns An observer that hides the identity of the specified observer.
|
222
|
+
*/
|
223
|
+
Observer.prototype.asObserver = function () {
|
224
|
+
var source = this;
|
225
|
+
return new AnonymousObserver(
|
226
|
+
function (x) { source.onNext(x); },
|
227
|
+
function (e) { source.onError(e); },
|
228
|
+
function () { source.onCompleted(); }
|
229
|
+
);
|
230
|
+
};
|
231
|
+
|
171
232
|
/**
|
172
233
|
* Wraps the source sequence in order to run its observer callbacks on the specified scheduler.
|
173
234
|
*
|
@@ -344,8 +405,13 @@
|
|
344
405
|
* @returns {Observable} An observable sequence that surfaces any of the given sequences, whichever reacted first.
|
345
406
|
*/
|
346
407
|
Observable.amb = function () {
|
347
|
-
var acc = observableNever(),
|
348
|
-
|
408
|
+
var acc = observableNever(), items = [];
|
409
|
+
if (Array.isArray(arguments[0])) {
|
410
|
+
items = arguments[0];
|
411
|
+
} else {
|
412
|
+
for(var i = 0, len = arguments.length; i < len; i++) { items.push(arguments[i]); }
|
413
|
+
}
|
414
|
+
|
349
415
|
function func(previous, current) {
|
350
416
|
return previous.amb(current);
|
351
417
|
}
|
@@ -374,7 +440,12 @@
|
|
374
440
|
* @returns {Observable} An observable sequence that concatenates the source sequences, even if a sequence terminates exceptionally.
|
375
441
|
*/
|
376
442
|
var onErrorResumeNext = Observable.onErrorResumeNext = function () {
|
377
|
-
var sources =
|
443
|
+
var sources = [];
|
444
|
+
if (Array.isArray(arguments[0])) {
|
445
|
+
sources = arguments[0];
|
446
|
+
} else {
|
447
|
+
for(var i = 0, len = arguments.length; i < len; i++) { sources.push(arguments[i]); }
|
448
|
+
}
|
378
449
|
return new AnonymousObservable(function (observer) {
|
379
450
|
var pos = 0, subscription = new SerialDisposable(),
|
380
451
|
cancelable = immediateScheduler.scheduleRecursive(function (self) {
|
@@ -478,14 +549,14 @@
|
|
478
549
|
*/
|
479
550
|
observableProto.takeLastBuffer = function (count) {
|
480
551
|
var source = this;
|
481
|
-
return new AnonymousObservable(function (
|
552
|
+
return new AnonymousObservable(function (o) {
|
482
553
|
var q = [];
|
483
554
|
return source.subscribe(function (x) {
|
484
555
|
q.push(x);
|
485
556
|
q.length > count && q.shift();
|
486
|
-
},
|
487
|
-
|
488
|
-
|
557
|
+
}, function (e) { o.onError(e); }, function () {
|
558
|
+
o.onNext(q);
|
559
|
+
o.onCompleted();
|
489
560
|
});
|
490
561
|
}, source);
|
491
562
|
};
|
@@ -508,11 +579,13 @@
|
|
508
579
|
return source.subscribe(function (x) {
|
509
580
|
found = true;
|
510
581
|
observer.onNext(x);
|
511
|
-
},
|
582
|
+
},
|
583
|
+
function (e) { observer.onError(e); },
|
584
|
+
function () {
|
512
585
|
!found && observer.onNext(defaultValue);
|
513
586
|
observer.onCompleted();
|
514
587
|
});
|
515
|
-
},
|
588
|
+
}, source);
|
516
589
|
};
|
517
590
|
|
518
591
|
// Swap out for Array.findIndex
|
@@ -548,7 +621,7 @@
|
|
548
621
|
observableProto.distinct = function (keySelector, comparer) {
|
549
622
|
var source = this;
|
550
623
|
comparer || (comparer = defaultComparer);
|
551
|
-
return new AnonymousObservable(function (
|
624
|
+
return new AnonymousObservable(function (o) {
|
552
625
|
var hashSet = new HashSet(comparer);
|
553
626
|
return source.subscribe(function (x) {
|
554
627
|
var key = x;
|
@@ -557,14 +630,13 @@
|
|
557
630
|
try {
|
558
631
|
key = keySelector(x);
|
559
632
|
} catch (e) {
|
560
|
-
|
633
|
+
o.onError(e);
|
561
634
|
return;
|
562
635
|
}
|
563
636
|
}
|
564
|
-
hashSet.push(key) &&
|
637
|
+
hashSet.push(key) && o.onNext(x);
|
565
638
|
},
|
566
|
-
|
567
|
-
observer.onCompleted.bind(observer));
|
639
|
+
function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
568
640
|
}, this);
|
569
641
|
};
|
570
642
|
|
@@ -1,3 +1,3 @@
|
|
1
1
|
/* Copyright (c) Microsoft Open Technologies, Inc. All rights reserved. See License.txt in the project root for license information.*/
|
2
|
-
(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"],function(b,d){return a(c,d,b)}):"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){
|
2
|
+
(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"],function(b,d){return a(c,d,b)}):"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){this.scheduler=a,this.disposable=b,this.isDisposed=!1}function f(a,b){b.isDisposed||(b.isDisposed=!0,b.disposable.dispose())}function g(a,b,c){for(var d=0,e=a.length;e>d;d++)if(c(a[d],b))return d;return-1}function h(a){this.comparer=a,this.set=[]}var i=c.Observable,j=i.prototype,k=i.never,l=i.throwException,m=c.AnonymousObservable,n=c.AnonymousObserver,o=c.Notification.createOnNext,p=c.Notification.createOnError,q=c.Notification.createOnCompleted,r=c.Observer,s=c.Subject,t=c.internals,u=c.helpers,v=t.ScheduledObserver,w=c.SerialDisposable,x=c.SingleAssignmentDisposable,y=c.CompositeDisposable,z=c.RefCountDisposable,A=c.Disposable.empty,B=c.Scheduler.immediate,C=(u.defaultKeySerializer,c.internals.addRef),D=(u.identity,u.isPromise),E=t.inherits,F=t.bindCallback,G=(u.noop,u.isScheduler),H=i.fromPromise,I=(Array.prototype.slice,"Argument out of range");e.prototype.dispose=function(){this.scheduler.scheduleWithState(this,f)};var J=function(a){function b(b){a.call(this),this._observer=b,this._state=0}E(b,a);var c=b.prototype;return c.onNext=function(a){this.checkAccess();try{this._observer.onNext(a)}catch(b){throw b}finally{this._state=0}},c.onError=function(a){this.checkAccess();try{this._observer.onError(a)}catch(b){throw b}finally{this._state=2}},c.onCompleted=function(){this.checkAccess();try{this._observer.onCompleted()}catch(a){throw a}finally{this._state=2}},c.checkAccess=function(){if(1===this._state)throw new Error("Re-entrancy detected");if(2===this._state)throw new Error("Observer completed");0===this._state&&(this._state=1)},b}(r),K=function(a){function b(b,c,d){a.call(this,b,c),this._cancel=d}return E(b,a),b.prototype.next=function(b){a.prototype.next.call(this,b),this.ensureActive()},b.prototype.error=function(b){a.prototype.error.call(this,b),this.ensureActive()},b.prototype.completed=function(){a.prototype.completed.call(this),this.ensureActive()},b.prototype.dispose=function(){a.prototype.dispose.call(this),this._cancel&&this._cancel.dispose(),this._cancel=null},b}(v);r.prototype.checked=function(){return new J(this)},r.notifyOn=function(a){return new K(a,this)},r.fromNotifier=function(a,b){var c=F(a,b,1);return new n(function(a){return c(o(a))},function(a){return c(p(a))},function(){return c(q())})},r.prototype.toNotifier=function(){var a=this;return function(b){return b.accept(a)}},r.prototype.asObserver=function(){var a=this;return new n(function(b){a.onNext(b)},function(b){a.onError(b)},function(){a.onCompleted()})},j.observeOn=function(a){var b=this;return new m(function(c){return b.subscribe(new K(a,c))},b)},j.subscribeOn=function(a){var b=this;return new m(function(c){var d=new x,f=new w;return f.setDisposable(d),d.setDisposable(a.schedule(function(){f.setDisposable(new e(a,b.subscribe(c)))})),f},b)},i.generate=function(a,b,c,d,e){return G(e)||(e=currentThreadScheduler),new m(function(f){var g=!0,h=a;return e.scheduleRecursive(function(a){var e,i;try{g?g=!1:h=c(h),e=b(h),e&&(i=d(h))}catch(j){return void f.onError(j)}e?(f.onNext(i),a()):f.onCompleted()})})},i.using=function(a,b){return new m(function(c){var d,e,f=A;try{d=a(),d&&(f=d),e=b(d)}catch(g){return new y(l(g).subscribe(c),f)}return new y(e.subscribe(c),f)})},j.amb=function(a){var b=this;return new m(function(c){function d(){f||(f=g,j.dispose())}function e(){f||(f=h,i.dispose())}var f,g="L",h="R",i=new x,j=new x;return D(a)&&(a=H(a)),i.setDisposable(b.subscribe(function(a){d(),f===g&&c.onNext(a)},function(a){d(),f===g&&c.onError(a)},function(){d(),f===g&&c.onCompleted()})),j.setDisposable(a.subscribe(function(a){e(),f===h&&c.onNext(a)},function(a){e(),f===h&&c.onError(a)},function(){e(),f===h&&c.onCompleted()})),new y(i,j)})},i.amb=function(){function a(a,b){return a.amb(b)}var b=k(),c=[];if(Array.isArray(arguments[0]))c=arguments[0];else for(var d=0,e=arguments.length;e>d;d++)c.push(arguments[d]);for(var d=0,e=c.length;e>d;d++)b=a(b,c[d]);return b},j.onErrorResumeNext=function(a){if(!a)throw new Error("Second observable is required");return L([this,a])};var L=i.onErrorResumeNext=function(){var a=[];if(Array.isArray(arguments[0]))a=arguments[0];else for(var b=0,c=arguments.length;c>b;b++)a.push(arguments[b]);return new m(function(b){var c=0,d=new w,e=B.scheduleRecursive(function(e){var f,g;c<a.length?(f=a[c++],D(f)&&(f=H(f)),g=new x,d.setDisposable(g),g.setDisposable(f.subscribe(b.onNext.bind(b),e,e))):b.onCompleted()});return new y(d,e)})};return j.bufferWithCount=function(a,b){return"number"!=typeof b&&(b=a),this.windowWithCount(a,b).selectMany(function(a){return a.toArray()}).where(function(a){return a.length>0})},j.windowWithCount=function(a,b){var c=this;if(+a||(a=0),1/0===Math.abs(a)&&(a=0),0>=a)throw new Error(I);if(null==b&&(b=a),+b||(b=0),1/0===Math.abs(b)&&(b=0),0>=b)throw new Error(I);return new m(function(d){function e(){var a=new s;i.push(a),d.onNext(C(a,g))}var f=new x,g=new z(f),h=0,i=[];return e(),f.setDisposable(c.subscribe(function(c){for(var d=0,f=i.length;f>d;d++)i[d].onNext(c);var g=h-a+1;g>=0&&g%b===0&&i.shift().onCompleted(),++h%b===0&&e()},function(a){for(;i.length>0;)i.shift().onError(a);d.onError(a)},function(){for(;i.length>0;)i.shift().onCompleted();d.onCompleted()})),g},c)},j.takeLastBuffer=function(a){var b=this;return new m(function(c){var d=[];return b.subscribe(function(b){d.push(b),d.length>a&&d.shift()},function(a){c.onError(a)},function(){c.onNext(d),c.onCompleted()})},b)},j.defaultIfEmpty=function(a){var b=this;return a===d&&(a=null),new m(function(c){var d=!1;return b.subscribe(function(a){d=!0,c.onNext(a)},function(a){c.onError(a)},function(){!d&&c.onNext(a),c.onCompleted()})},b)},h.prototype.push=function(a){var b=-1===g(this.set,a,this.comparer);return b&&this.set.push(a),b},j.distinct=function(a,b){var c=this;return b||(b=defaultComparer),new m(function(d){var e=new h(b);return c.subscribe(function(b){var c=b;if(a)try{c=a(b)}catch(f){return void d.onError(f)}e.push(c)&&d.onNext(b)},function(a){d.onError(a)},function(){d.onCompleted()})},this)},c});
|
3
3
|
//# sourceMappingURL=rx.lite.extras.map
|
@@ -24,7 +24,7 @@
|
|
24
24
|
var Rx = {
|
25
25
|
internals: {},
|
26
26
|
config: {
|
27
|
-
Promise: root.Promise
|
27
|
+
Promise: root.Promise
|
28
28
|
},
|
29
29
|
helpers: { }
|
30
30
|
};
|
@@ -64,7 +64,8 @@
|
|
64
64
|
var sequenceContainsNoElements = 'Sequence contains no elements.';
|
65
65
|
var argumentOutOfRange = 'Argument out of range';
|
66
66
|
var objectDisposed = 'Object has been disposed';
|
67
|
-
function checkDisposed() { if (
|
67
|
+
function checkDisposed(self) { if (self.isDisposed) { throw new Error(objectDisposed); } }
|
68
|
+
function cloneArray(arr) { for(var a = [], i = 0, len = arr.length; i < len; i++) { a.push(arr[i]); } return a;}
|
68
69
|
|
69
70
|
Rx.config.longStackSupport = false;
|
70
71
|
var hasStacks = false;
|
@@ -182,11 +183,41 @@
|
|
182
183
|
|
183
184
|
Rx.helpers.iterator = $iterator$;
|
184
185
|
|
185
|
-
var
|
186
|
-
|
187
|
-
|
188
|
-
|
189
|
-
|
186
|
+
var bindCallback = Rx.internals.bindCallback = function (func, thisArg, argCount) {
|
187
|
+
if (typeof thisArg === 'undefined') { return func; }
|
188
|
+
switch(argCount) {
|
189
|
+
case 0:
|
190
|
+
return function() {
|
191
|
+
return func.call(thisArg)
|
192
|
+
};
|
193
|
+
case 1:
|
194
|
+
return function(arg) {
|
195
|
+
return func.call(thisArg, arg);
|
196
|
+
}
|
197
|
+
case 2:
|
198
|
+
return function(value, index) {
|
199
|
+
return func.call(thisArg, value, index);
|
200
|
+
};
|
201
|
+
case 3:
|
202
|
+
return function(value, index, collection) {
|
203
|
+
return func.call(thisArg, value, index, collection);
|
204
|
+
};
|
205
|
+
}
|
206
|
+
|
207
|
+
return function() {
|
208
|
+
return func.apply(thisArg, arguments);
|
209
|
+
};
|
210
|
+
};
|
211
|
+
|
212
|
+
/** Used to determine if values are of the language type Object */
|
213
|
+
var dontEnums = ['toString',
|
214
|
+
'toLocaleString',
|
215
|
+
'valueOf',
|
216
|
+
'hasOwnProperty',
|
217
|
+
'isPrototypeOf',
|
218
|
+
'propertyIsEnumerable',
|
219
|
+
'constructor'],
|
220
|
+
dontEnumsLength = dontEnums.length;
|
190
221
|
|
191
222
|
/** `Object#toString` result shortcuts */
|
192
223
|
var argsClass = '[object Arguments]',
|
@@ -209,24 +240,12 @@
|
|
209
240
|
stringProto = String.prototype,
|
210
241
|
propertyIsEnumerable = objectProto.propertyIsEnumerable;
|
211
242
|
|
212
|
-
// Fix for Tessel
|
213
|
-
if (!propertyIsEnumerable) {
|
214
|
-
propertyIsEnumerable = objectProto.propertyIsEnumerable = function (key) {
|
215
|
-
for (var k in this) { if (k === key) { return true; } }
|
216
|
-
return false;
|
217
|
-
};
|
218
|
-
}
|
219
|
-
|
220
243
|
try {
|
221
244
|
supportNodeClass = !(toString.call(document) == objectClass && !({ 'toString': 0 } + ''));
|
222
245
|
} catch (e) {
|
223
246
|
supportNodeClass = true;
|
224
247
|
}
|
225
248
|
|
226
|
-
var shadowedProps = [
|
227
|
-
'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable', 'toLocaleString', 'toString', 'valueOf'
|
228
|
-
];
|
229
|
-
|
230
249
|
var nonEnumProps = {};
|
231
250
|
nonEnumProps[arrayClass] = nonEnumProps[dateClass] = nonEnumProps[numberClass] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };
|
232
251
|
nonEnumProps[boolClass] = nonEnumProps[stringClass] = { 'constructor': true, 'toString': true, 'valueOf': true };
|
@@ -255,14 +274,10 @@
|
|
255
274
|
support.nonEnumShadows = !/valueOf/.test(props);
|
256
275
|
}(1));
|
257
276
|
|
258
|
-
|
259
|
-
// check if the value is the ECMAScript language type of Object
|
260
|
-
// http://es5.github.io/#x8
|
261
|
-
// and avoid a V8 bug
|
262
|
-
// https://code.google.com/p/v8/issues/detail?id=2291
|
277
|
+
var isObject = Rx.internals.isObject = function(value) {
|
263
278
|
var type = typeof value;
|
264
279
|
return value && (type == 'function' || type == 'object') || false;
|
265
|
-
}
|
280
|
+
};
|
266
281
|
|
267
282
|
function keysIn(object) {
|
268
283
|
var result = [];
|
@@ -285,14 +300,14 @@
|
|
285
300
|
if (support.nonEnumShadows && object !== objectProto) {
|
286
301
|
var ctor = object.constructor,
|
287
302
|
index = -1,
|
288
|
-
length =
|
303
|
+
length = dontEnumsLength;
|
289
304
|
|
290
305
|
if (object === (ctor && ctor.prototype)) {
|
291
306
|
var className = object === stringProto ? stringClass : object === errorProto ? errorClass : toString.call(object),
|
292
307
|
nonEnum = nonEnumProps[className];
|
293
308
|
}
|
294
309
|
while (++index < length) {
|
295
|
-
key =
|
310
|
+
key = dontEnums[index];
|
296
311
|
if (!(nonEnum && nonEnum[key]) && hasOwnProperty.call(object, key)) {
|
297
312
|
result.push(key);
|
298
313
|
}
|
@@ -479,13 +494,27 @@
|
|
479
494
|
return result;
|
480
495
|
}
|
481
496
|
|
482
|
-
var
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
|
497
|
+
var errorObj = {e: {}};
|
498
|
+
var tryCatchTarget;
|
499
|
+
function tryCatcher() {
|
500
|
+
try {
|
501
|
+
return tryCatchTarget.apply(this, arguments);
|
502
|
+
} catch (e) {
|
503
|
+
errorObj.e = e;
|
504
|
+
return errorObj;
|
505
|
+
}
|
506
|
+
}
|
507
|
+
function tryCatch(fn) {
|
508
|
+
if (!isFunction(fn)) { throw new TypeError('fn must be a function'); }
|
509
|
+
tryCatchTarget = fn;
|
510
|
+
return tryCatcher;
|
511
|
+
}
|
512
|
+
function thrower(e) {
|
513
|
+
throw e;
|
487
514
|
}
|
488
|
-
|
515
|
+
|
516
|
+
var hasProp = {}.hasOwnProperty,
|
517
|
+
slice = Array.prototype.slice;
|
489
518
|
|
490
519
|
var inherits = this.inherits = Rx.internals.inherits = function (child, parent) {
|
491
520
|
function __() { this.constructor = child; }
|
@@ -494,9 +523,9 @@
|
|
494
523
|
};
|
495
524
|
|
496
525
|
var addProperties = Rx.internals.addProperties = function (obj) {
|
497
|
-
var sources =
|
498
|
-
for (var
|
499
|
-
var source = sources[
|
526
|
+
for(var sources = [], i = 1, len = arguments.length; i < len; i++) { sources.push(arguments[i]); }
|
527
|
+
for (var idx = 0, ln = sources.length; idx < ln; idx++) {
|
528
|
+
var source = sources[idx];
|
500
529
|
for (var prop in source) {
|
501
530
|
obj[prop] = source[prop];
|
502
531
|
}
|
@@ -577,7 +606,7 @@
|
|
577
606
|
|
578
607
|
priorityProto.removeAt = function (index) {
|
579
608
|
this.items[index] = this.items[--this.length];
|
580
|
-
|
609
|
+
this.items[this.length] = undefined;
|
581
610
|
this.heapify();
|
582
611
|
};
|
583
612
|
|
@@ -609,9 +638,17 @@
|
|
609
638
|
* @constructor
|
610
639
|
*/
|
611
640
|
var CompositeDisposable = Rx.CompositeDisposable = function () {
|
612
|
-
|
641
|
+
var args = [];
|
642
|
+
if (Array.isArray(arguments[0])) {
|
643
|
+
args = arguments[0];
|
644
|
+
} else {
|
645
|
+
var len = arguments.length;
|
646
|
+
args = new Array(len);
|
647
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
648
|
+
}
|
649
|
+
this.disposables = args;
|
613
650
|
this.isDisposed = false;
|
614
|
-
this.length =
|
651
|
+
this.length = args.length;
|
615
652
|
};
|
616
653
|
|
617
654
|
var CompositeDisposablePrototype = CompositeDisposable.prototype;
|
@@ -654,28 +691,19 @@
|
|
654
691
|
CompositeDisposablePrototype.dispose = function () {
|
655
692
|
if (!this.isDisposed) {
|
656
693
|
this.isDisposed = true;
|
657
|
-
var
|
694
|
+
var len = this.disposables.length, currentDisposables = new Array(len);
|
695
|
+
for(var i = 0; i < len; i++) { currentDisposables[i] = this.disposables[i]; }
|
658
696
|
this.disposables = [];
|
659
697
|
this.length = 0;
|
660
698
|
|
661
|
-
for (
|
699
|
+
for (i = 0; i < len; i++) {
|
662
700
|
currentDisposables[i].dispose();
|
663
701
|
}
|
664
702
|
}
|
665
703
|
};
|
666
704
|
|
667
|
-
/**
|
668
|
-
* Converts the existing CompositeDisposable to an array of disposables
|
669
|
-
* @returns {Array} An array of disposable objects.
|
670
|
-
*/
|
671
|
-
CompositeDisposablePrototype.toArray = function () {
|
672
|
-
return this.disposables.slice(0);
|
673
|
-
};
|
674
|
-
|
675
705
|
/**
|
676
706
|
* Provides a set of static methods for creating Disposables.
|
677
|
-
*
|
678
|
-
* @constructor
|
679
707
|
* @param {Function} dispose Action to run during the first call to dispose. The action is guaranteed to be run at most once.
|
680
708
|
*/
|
681
709
|
var Disposable = Rx.Disposable = function (action) {
|
@@ -724,9 +752,9 @@
|
|
724
752
|
* @param {Disposable} value The new underlying disposable.
|
725
753
|
*/
|
726
754
|
booleanDisposablePrototype.setDisposable = function (value) {
|
727
|
-
var shouldDispose = this.isDisposed
|
755
|
+
var shouldDispose = this.isDisposed;
|
728
756
|
if (!shouldDispose) {
|
729
|
-
old = this.current;
|
757
|
+
var old = this.current;
|
730
758
|
this.current = value;
|
731
759
|
}
|
732
760
|
old && old.dispose();
|
@@ -737,10 +765,9 @@
|
|
737
765
|
* Disposes the underlying disposable as well as all future replacements.
|
738
766
|
*/
|
739
767
|
booleanDisposablePrototype.dispose = function () {
|
740
|
-
var old;
|
741
768
|
if (!this.isDisposed) {
|
742
769
|
this.isDisposed = true;
|
743
|
-
old = this.current;
|
770
|
+
var old = this.current;
|
744
771
|
this.current = null;
|
745
772
|
}
|
746
773
|
old && old.dispose();
|
@@ -750,67 +777,63 @@
|
|
750
777
|
}());
|
751
778
|
var SerialDisposable = Rx.SerialDisposable = SingleAssignmentDisposable;
|
752
779
|
|
753
|
-
|
754
|
-
|
755
|
-
|
756
|
-
|
780
|
+
/**
|
781
|
+
* Represents a disposable resource that only disposes its underlying disposable resource when all dependent disposable objects have been disposed.
|
782
|
+
*/
|
783
|
+
var RefCountDisposable = Rx.RefCountDisposable = (function () {
|
784
|
+
|
785
|
+
function InnerDisposable(disposable) {
|
786
|
+
this.disposable = disposable;
|
787
|
+
this.disposable.count++;
|
788
|
+
this.isInnerDisposed = false;
|
789
|
+
}
|
757
790
|
|
758
|
-
|
759
|
-
|
760
|
-
|
761
|
-
|
791
|
+
InnerDisposable.prototype.dispose = function () {
|
792
|
+
if (!this.disposable.isDisposed && !this.isInnerDisposed) {
|
793
|
+
this.isInnerDisposed = true;
|
794
|
+
this.disposable.count--;
|
795
|
+
if (this.disposable.count === 0 && this.disposable.isPrimaryDisposed) {
|
796
|
+
this.disposable.isDisposed = true;
|
797
|
+
this.disposable.underlyingDisposable.dispose();
|
762
798
|
}
|
799
|
+
}
|
800
|
+
};
|
763
801
|
|
764
|
-
|
765
|
-
|
766
|
-
|
767
|
-
|
768
|
-
|
769
|
-
|
770
|
-
|
771
|
-
|
772
|
-
|
773
|
-
|
774
|
-
|
775
|
-
};
|
802
|
+
/**
|
803
|
+
* Initializes a new instance of the RefCountDisposable with the specified disposable.
|
804
|
+
* @constructor
|
805
|
+
* @param {Disposable} disposable Underlying disposable.
|
806
|
+
*/
|
807
|
+
function RefCountDisposable(disposable) {
|
808
|
+
this.underlyingDisposable = disposable;
|
809
|
+
this.isDisposed = false;
|
810
|
+
this.isPrimaryDisposed = false;
|
811
|
+
this.count = 0;
|
812
|
+
}
|
776
813
|
|
777
|
-
|
778
|
-
|
779
|
-
|
780
|
-
|
781
|
-
|
782
|
-
|
783
|
-
|
784
|
-
|
785
|
-
|
786
|
-
this.count = 0;
|
814
|
+
/**
|
815
|
+
* Disposes the underlying disposable only when all dependent disposables have been disposed
|
816
|
+
*/
|
817
|
+
RefCountDisposable.prototype.dispose = function () {
|
818
|
+
if (!this.isDisposed && !this.isPrimaryDisposed) {
|
819
|
+
this.isPrimaryDisposed = true;
|
820
|
+
if (this.count === 0) {
|
821
|
+
this.isDisposed = true;
|
822
|
+
this.underlyingDisposable.dispose();
|
787
823
|
}
|
824
|
+
}
|
825
|
+
};
|
788
826
|
|
789
|
-
|
790
|
-
|
791
|
-
|
792
|
-
|
793
|
-
|
794
|
-
|
795
|
-
|
796
|
-
if (this.count === 0) {
|
797
|
-
this.isDisposed = true;
|
798
|
-
this.underlyingDisposable.dispose();
|
799
|
-
}
|
800
|
-
}
|
801
|
-
}
|
802
|
-
};
|
803
|
-
|
804
|
-
/**
|
805
|
-
* Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable.
|
806
|
-
* @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime.
|
807
|
-
*/
|
808
|
-
RefCountDisposable.prototype.getDisposable = function () {
|
809
|
-
return this.isDisposed ? disposableEmpty : new InnerDisposable(this);
|
810
|
-
};
|
827
|
+
/**
|
828
|
+
* Returns a dependent disposable that when disposed decreases the refcount on the underlying disposable.
|
829
|
+
* @returns {Disposable} A dependent disposable contributing to the reference count that manages the underlying disposable's lifetime.
|
830
|
+
*/
|
831
|
+
RefCountDisposable.prototype.getDisposable = function () {
|
832
|
+
return this.isDisposed ? disposableEmpty : new InnerDisposable(this);
|
833
|
+
};
|
811
834
|
|
812
|
-
|
813
|
-
|
835
|
+
return RefCountDisposable;
|
836
|
+
})();
|
814
837
|
|
815
838
|
var ScheduledItem = Rx.internals.ScheduledItem = function (scheduler, state, action, dueTime, comparer) {
|
816
839
|
this.scheduler = scheduler;
|
@@ -963,7 +986,7 @@
|
|
963
986
|
recursiveAction = function (state1) {
|
964
987
|
action(state1, function (state2, dueTime1) {
|
965
988
|
var isAdded = false, isDone = false,
|
966
|
-
d = scheduler[method]
|
989
|
+
d = scheduler[method](state2, dueTime1, function (scheduler1, state3) {
|
967
990
|
if (isAdded) {
|
968
991
|
group.remove(d);
|
969
992
|
} else {
|
@@ -1091,18 +1114,9 @@
|
|
1091
1114
|
var immediateScheduler = Scheduler.immediate = (function () {
|
1092
1115
|
|
1093
1116
|
function scheduleNow(state, action) { return action(this, state); }
|
1117
|
+
function notSupported() { throw new Error('Not supported'); }
|
1094
1118
|
|
1095
|
-
|
1096
|
-
var dt = normalizeTime(dueTime);
|
1097
|
-
while (dt - this.now() > 0) { }
|
1098
|
-
return action(this, state);
|
1099
|
-
}
|
1100
|
-
|
1101
|
-
function scheduleAbsolute(state, dueTime, action) {
|
1102
|
-
return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
|
1103
|
-
}
|
1104
|
-
|
1105
|
-
return new Scheduler(defaultNow, scheduleNow, scheduleRelative, scheduleAbsolute);
|
1119
|
+
return new Scheduler(defaultNow, scheduleNow, notSupported, notSupported);
|
1106
1120
|
}());
|
1107
1121
|
|
1108
1122
|
/**
|
@@ -1112,27 +1126,16 @@
|
|
1112
1126
|
var queue;
|
1113
1127
|
|
1114
1128
|
function runTrampoline (q) {
|
1115
|
-
var item;
|
1116
1129
|
while (q.length > 0) {
|
1117
|
-
item = q.dequeue();
|
1130
|
+
var item = q.dequeue();
|
1118
1131
|
if (!item.isCancelled()) {
|
1119
|
-
|
1120
|
-
while (item.dueTime - Scheduler.now() > 0) {
|
1121
|
-
}
|
1122
|
-
if (!item.isCancelled()) {
|
1123
|
-
item.invoke();
|
1124
|
-
}
|
1132
|
+
!item.isCancelled() && item.invoke();
|
1125
1133
|
}
|
1126
1134
|
}
|
1127
1135
|
}
|
1128
1136
|
|
1129
1137
|
function scheduleNow(state, action) {
|
1130
|
-
|
1131
|
-
}
|
1132
|
-
|
1133
|
-
function scheduleRelative(state, dueTime, action) {
|
1134
|
-
var dt = this.now() + Scheduler.normalize(dueTime),
|
1135
|
-
si = new ScheduledItem(this, state, action, dt);
|
1138
|
+
var si = new ScheduledItem(this, state, action, this.now());
|
1136
1139
|
|
1137
1140
|
if (!queue) {
|
1138
1141
|
queue = new PriorityQueue(4);
|
@@ -1150,11 +1153,9 @@
|
|
1150
1153
|
return si.disposable;
|
1151
1154
|
}
|
1152
1155
|
|
1153
|
-
function
|
1154
|
-
return this.scheduleWithRelativeAndState(state, dueTime - this.now(), action);
|
1155
|
-
}
|
1156
|
+
function notSupported() { throw new Error('Not supported'); }
|
1156
1157
|
|
1157
|
-
var currentScheduler = new Scheduler(defaultNow, scheduleNow,
|
1158
|
+
var currentScheduler = new Scheduler(defaultNow, scheduleNow, notSupported, notSupported);
|
1158
1159
|
|
1159
1160
|
currentScheduler.scheduleRequired = function () { return !queue; };
|
1160
1161
|
currentScheduler.ensureTrampoline = function (action) {
|
@@ -1478,31 +1479,20 @@
|
|
1478
1479
|
|
1479
1480
|
Enumerable.prototype.concat = function () {
|
1480
1481
|
var sources = this;
|
1481
|
-
return new AnonymousObservable(function (
|
1482
|
-
var e;
|
1483
|
-
try {
|
1484
|
-
e = sources[$iterator$]();
|
1485
|
-
} catch (err) {
|
1486
|
-
observer.onError(err);
|
1487
|
-
return;
|
1488
|
-
}
|
1482
|
+
return new AnonymousObservable(function (o) {
|
1483
|
+
var e = sources[$iterator$]();
|
1489
1484
|
|
1490
|
-
var isDisposed,
|
1491
|
-
subscription = new SerialDisposable();
|
1485
|
+
var isDisposed, subscription = new SerialDisposable();
|
1492
1486
|
var cancelable = immediateScheduler.scheduleRecursive(function (self) {
|
1493
|
-
var currentItem;
|
1494
1487
|
if (isDisposed) { return; }
|
1495
|
-
|
1496
1488
|
try {
|
1497
|
-
currentItem = e.next();
|
1489
|
+
var currentItem = e.next();
|
1498
1490
|
} catch (ex) {
|
1499
|
-
|
1500
|
-
return;
|
1491
|
+
return o.onError(ex);
|
1501
1492
|
}
|
1502
1493
|
|
1503
1494
|
if (currentItem.done) {
|
1504
|
-
|
1505
|
-
return;
|
1495
|
+
return o.onCompleted();
|
1506
1496
|
}
|
1507
1497
|
|
1508
1498
|
// Check if promise
|
@@ -1512,9 +1502,9 @@
|
|
1512
1502
|
var d = new SingleAssignmentDisposable();
|
1513
1503
|
subscription.setDisposable(d);
|
1514
1504
|
d.setDisposable(currentValue.subscribe(
|
1515
|
-
|
1516
|
-
|
1517
|
-
|
1505
|
+
function(x) { o.onNext(x); },
|
1506
|
+
function(err) { o.onError(err); },
|
1507
|
+
self)
|
1518
1508
|
);
|
1519
1509
|
});
|
1520
1510
|
|
@@ -1526,14 +1516,55 @@
|
|
1526
1516
|
|
1527
1517
|
Enumerable.prototype.catchError = function () {
|
1528
1518
|
var sources = this;
|
1529
|
-
return new AnonymousObservable(function (
|
1530
|
-
var e;
|
1531
|
-
|
1532
|
-
|
1533
|
-
|
1534
|
-
|
1535
|
-
|
1536
|
-
|
1519
|
+
return new AnonymousObservable(function (o) {
|
1520
|
+
var e = sources[$iterator$]();
|
1521
|
+
|
1522
|
+
var isDisposed, subscription = new SerialDisposable();
|
1523
|
+
var cancelable = immediateScheduler.scheduleRecursiveWithState(null, function (lastException, self) {
|
1524
|
+
if (isDisposed) { return; }
|
1525
|
+
|
1526
|
+
try {
|
1527
|
+
var currentItem = e.next();
|
1528
|
+
} catch (ex) {
|
1529
|
+
return observer.onError(ex);
|
1530
|
+
}
|
1531
|
+
|
1532
|
+
if (currentItem.done) {
|
1533
|
+
if (lastException !== null) {
|
1534
|
+
o.onError(lastException);
|
1535
|
+
} else {
|
1536
|
+
o.onCompleted();
|
1537
|
+
}
|
1538
|
+
return;
|
1539
|
+
}
|
1540
|
+
|
1541
|
+
// Check if promise
|
1542
|
+
var currentValue = currentItem.value;
|
1543
|
+
isPromise(currentValue) && (currentValue = observableFromPromise(currentValue));
|
1544
|
+
|
1545
|
+
var d = new SingleAssignmentDisposable();
|
1546
|
+
subscription.setDisposable(d);
|
1547
|
+
d.setDisposable(currentValue.subscribe(
|
1548
|
+
function(x) { o.onNext(x); },
|
1549
|
+
self,
|
1550
|
+
function() { o.onCompleted(); }));
|
1551
|
+
});
|
1552
|
+
return new CompositeDisposable(subscription, cancelable, disposableCreate(function () {
|
1553
|
+
isDisposed = true;
|
1554
|
+
}));
|
1555
|
+
});
|
1556
|
+
};
|
1557
|
+
|
1558
|
+
|
1559
|
+
Enumerable.prototype.catchErrorWhen = function (notificationHandler) {
|
1560
|
+
var sources = this;
|
1561
|
+
return new AnonymousObservable(function (o) {
|
1562
|
+
var exceptions = new Subject(),
|
1563
|
+
notifier = new Subject(),
|
1564
|
+
handled = notificationHandler(exceptions),
|
1565
|
+
notificationDisposable = handled.subscribe(notifier);
|
1566
|
+
|
1567
|
+
var e = sources[$iterator$]();
|
1537
1568
|
|
1538
1569
|
var isDisposed,
|
1539
1570
|
lastException,
|
@@ -1541,19 +1572,17 @@
|
|
1541
1572
|
var cancelable = immediateScheduler.scheduleRecursive(function (self) {
|
1542
1573
|
if (isDisposed) { return; }
|
1543
1574
|
|
1544
|
-
var currentItem;
|
1545
1575
|
try {
|
1546
|
-
currentItem = e.next();
|
1576
|
+
var currentItem = e.next();
|
1547
1577
|
} catch (ex) {
|
1548
|
-
|
1549
|
-
return;
|
1578
|
+
return o.onError(ex);
|
1550
1579
|
}
|
1551
1580
|
|
1552
1581
|
if (currentItem.done) {
|
1553
1582
|
if (lastException) {
|
1554
|
-
|
1583
|
+
o.onError(lastException);
|
1555
1584
|
} else {
|
1556
|
-
|
1585
|
+
o.onCompleted();
|
1557
1586
|
}
|
1558
1587
|
return;
|
1559
1588
|
}
|
@@ -1562,17 +1591,24 @@
|
|
1562
1591
|
var currentValue = currentItem.value;
|
1563
1592
|
isPromise(currentValue) && (currentValue = observableFromPromise(currentValue));
|
1564
1593
|
|
1565
|
-
var
|
1566
|
-
|
1567
|
-
|
1568
|
-
|
1594
|
+
var outer = new SingleAssignmentDisposable();
|
1595
|
+
var inner = new SingleAssignmentDisposable();
|
1596
|
+
subscription.setDisposable(new CompositeDisposable(inner, outer));
|
1597
|
+
outer.setDisposable(currentValue.subscribe(
|
1598
|
+
function(x) { o.onNext(x); },
|
1569
1599
|
function (exn) {
|
1570
|
-
|
1571
|
-
|
1600
|
+
inner.setDisposable(notifier.subscribe(self, function(ex) {
|
1601
|
+
o.onError(ex);
|
1602
|
+
}, function() {
|
1603
|
+
o.onCompleted();
|
1604
|
+
}));
|
1605
|
+
|
1606
|
+
exceptions.onNext(exn);
|
1572
1607
|
},
|
1573
|
-
|
1608
|
+
function() { o.onCompleted(); }));
|
1574
1609
|
});
|
1575
|
-
|
1610
|
+
|
1611
|
+
return new CompositeDisposable(notificationDisposable, subscription, cancelable, disposableCreate(function () {
|
1576
1612
|
isDisposed = true;
|
1577
1613
|
}));
|
1578
1614
|
});
|
@@ -1591,13 +1627,15 @@
|
|
1591
1627
|
};
|
1592
1628
|
|
1593
1629
|
var enumerableOf = Enumerable.of = function (source, selector, thisArg) {
|
1594
|
-
|
1630
|
+
if (selector) {
|
1631
|
+
var selectorFn = bindCallback(selector, thisArg, 3);
|
1632
|
+
}
|
1595
1633
|
return new Enumerable(function () {
|
1596
1634
|
var index = -1;
|
1597
1635
|
return new Enumerator(
|
1598
1636
|
function () {
|
1599
1637
|
return ++index < source.length ?
|
1600
|
-
{ done: false, value: selector
|
1638
|
+
{ done: false, value: !selector ? source[index] : selectorFn(source[index], index, source) } :
|
1601
1639
|
doneEnumerator;
|
1602
1640
|
});
|
1603
1641
|
});
|
@@ -1608,23 +1646,6 @@
|
|
1608
1646
|
*/
|
1609
1647
|
var Observer = Rx.Observer = function () { };
|
1610
1648
|
|
1611
|
-
/**
|
1612
|
-
* Creates a notification callback from an observer.
|
1613
|
-
* @returns The action that forwards its input notification to the underlying observer.
|
1614
|
-
*/
|
1615
|
-
Observer.prototype.toNotifier = function () {
|
1616
|
-
var observer = this;
|
1617
|
-
return function (n) { return n.accept(observer); };
|
1618
|
-
};
|
1619
|
-
|
1620
|
-
/**
|
1621
|
-
* Hides the identity of an observer.
|
1622
|
-
* @returns An observer that hides the identity of the specified observer.
|
1623
|
-
*/
|
1624
|
-
Observer.prototype.asObserver = function () {
|
1625
|
-
return new AnonymousObserver(this.onNext.bind(this), this.onError.bind(this), this.onCompleted.bind(this));
|
1626
|
-
};
|
1627
|
-
|
1628
1649
|
/**
|
1629
1650
|
* Creates an observer from the specified OnNext, along with optional OnError, and OnCompleted actions.
|
1630
1651
|
* @param {Function} [onNext] Observer's OnNext action implementation.
|
@@ -1639,21 +1660,6 @@
|
|
1639
1660
|
return new AnonymousObserver(onNext, onError, onCompleted);
|
1640
1661
|
};
|
1641
1662
|
|
1642
|
-
/**
|
1643
|
-
* Creates an observer from a notification callback.
|
1644
|
-
* @param {Function} handler Action that handles a notification.
|
1645
|
-
* @returns The observer object that invokes the specified handler using a notification corresponding to each message it receives.
|
1646
|
-
*/
|
1647
|
-
Observer.fromNotifier = function (handler, thisArg) {
|
1648
|
-
return new AnonymousObserver(function (x) {
|
1649
|
-
return handler.call(thisArg, notificationCreateOnNext(x));
|
1650
|
-
}, function (e) {
|
1651
|
-
return handler.call(thisArg, notificationCreateOnError(e));
|
1652
|
-
}, function () {
|
1653
|
-
return handler.call(thisArg, notificationCreateOnCompleted());
|
1654
|
-
});
|
1655
|
-
};
|
1656
|
-
|
1657
1663
|
/**
|
1658
1664
|
* Abstract base class for implementations of the Observer class.
|
1659
1665
|
* This base class enforces the grammar of observers where OnError and OnCompleted are terminal messages.
|
@@ -1669,6 +1675,15 @@
|
|
1669
1675
|
__super__.call(this);
|
1670
1676
|
}
|
1671
1677
|
|
1678
|
+
function notImplemented() {
|
1679
|
+
throw new Error('Method not implemented');
|
1680
|
+
}
|
1681
|
+
|
1682
|
+
// Must be implemented by other observers
|
1683
|
+
AbstractObserver.prototype.next = notImplemented;
|
1684
|
+
AbstractObserver.prototype.error = notImplemented;
|
1685
|
+
AbstractObserver.prototype.completed = notImplemented;
|
1686
|
+
|
1672
1687
|
/**
|
1673
1688
|
* Notifies the observer of a new element in the sequence.
|
1674
1689
|
* @param {Any} value Next element in the sequence.
|
@@ -1787,7 +1802,7 @@
|
|
1787
1802
|
oldOnError(err);
|
1788
1803
|
};
|
1789
1804
|
|
1790
|
-
return subscribe(observer);
|
1805
|
+
return subscribe.call(self, observer);
|
1791
1806
|
};
|
1792
1807
|
} else {
|
1793
1808
|
this._subscribe = subscribe;
|
@@ -1816,7 +1831,7 @@
|
|
1816
1831
|
* @returns {Disposable} A disposable handling the subscriptions and unsubscriptions.
|
1817
1832
|
*/
|
1818
1833
|
observableProto.subscribeOnNext = function (onNext, thisArg) {
|
1819
|
-
return this._subscribe(observerCreate(
|
1834
|
+
return this._subscribe(observerCreate(typeof thisArg !== 'undefined' ? function(x) { onNext.call(thisArg, x); } : onNext));
|
1820
1835
|
};
|
1821
1836
|
|
1822
1837
|
/**
|
@@ -1826,7 +1841,7 @@
|
|
1826
1841
|
* @returns {Disposable} A disposable handling the subscriptions and unsubscriptions.
|
1827
1842
|
*/
|
1828
1843
|
observableProto.subscribeOnError = function (onError, thisArg) {
|
1829
|
-
return this._subscribe(observerCreate(null,
|
1844
|
+
return this._subscribe(observerCreate(null, typeof thisArg !== 'undefined' ? function(e) { onError.call(thisArg, e); } : onError));
|
1830
1845
|
};
|
1831
1846
|
|
1832
1847
|
/**
|
@@ -1836,7 +1851,7 @@
|
|
1836
1851
|
* @returns {Disposable} A disposable handling the subscriptions and unsubscriptions.
|
1837
1852
|
*/
|
1838
1853
|
observableProto.subscribeOnCompleted = function (onCompleted, thisArg) {
|
1839
|
-
return this._subscribe(observerCreate(null, null,
|
1854
|
+
return this._subscribe(observerCreate(null, null, typeof thisArg !== 'undefined' ? function() { onCompleted.call(thisArg); } : onCompleted));
|
1840
1855
|
};
|
1841
1856
|
|
1842
1857
|
return Observable;
|
@@ -1905,22 +1920,102 @@
|
|
1905
1920
|
return ScheduledObserver;
|
1906
1921
|
}(AbstractObserver));
|
1907
1922
|
|
1923
|
+
var ObservableBase = Rx.ObservableBase = (function (__super__) {
|
1924
|
+
|
1925
|
+
inherits(ObservableBase, __super__);
|
1926
|
+
|
1927
|
+
// Fix subscriber to check for undefined or function returned to decorate as Disposable
|
1928
|
+
function fixSubscriber(subscriber) {
|
1929
|
+
if (subscriber && typeof subscriber.dispose === 'function') { return subscriber; }
|
1930
|
+
|
1931
|
+
return typeof subscriber === 'function' ?
|
1932
|
+
disposableCreate(subscriber) :
|
1933
|
+
disposableEmpty;
|
1934
|
+
}
|
1935
|
+
|
1936
|
+
function setDisposable(s, state) {
|
1937
|
+
var ado = state[0], self = state[1];
|
1938
|
+
try {
|
1939
|
+
ado.setDisposable(fixSubscriber(self.subscribeCore(ado)));
|
1940
|
+
} catch (e) {
|
1941
|
+
if (!ado.fail(e)) { throw e; }
|
1942
|
+
}
|
1943
|
+
}
|
1944
|
+
|
1945
|
+
function subscribe(observer) {
|
1946
|
+
var ado = new AutoDetachObserver(observer), state = [ado, this];
|
1947
|
+
|
1948
|
+
if (currentThreadScheduler.scheduleRequired()) {
|
1949
|
+
currentThreadScheduler.scheduleWithState(state, setDisposable);
|
1950
|
+
} else {
|
1951
|
+
setDisposable(null, state);
|
1952
|
+
}
|
1953
|
+
|
1954
|
+
return ado;
|
1955
|
+
}
|
1956
|
+
|
1957
|
+
function ObservableBase() {
|
1958
|
+
__super__.call(this, subscribe);
|
1959
|
+
}
|
1960
|
+
|
1961
|
+
ObservableBase.prototype.subscribeCore = function(observer) {
|
1962
|
+
throw new Error('Not implemeneted');
|
1963
|
+
}
|
1964
|
+
|
1965
|
+
return ObservableBase;
|
1966
|
+
|
1967
|
+
}(Observable));
|
1968
|
+
|
1969
|
+
var ToArrayObservable = (function(__super__) {
|
1970
|
+
inherits(ToArrayObservable, __super__);
|
1971
|
+
function ToArrayObservable(source) {
|
1972
|
+
this.source = source;
|
1973
|
+
__super__.call(this);
|
1974
|
+
}
|
1975
|
+
|
1976
|
+
ToArrayObservable.prototype.subscribeCore = function(observer) {
|
1977
|
+
return this.source.subscribe(new ToArrayObserver(observer));
|
1978
|
+
};
|
1979
|
+
|
1980
|
+
return ToArrayObservable;
|
1981
|
+
}(ObservableBase));
|
1982
|
+
|
1983
|
+
function ToArrayObserver(observer) {
|
1984
|
+
this.observer = observer;
|
1985
|
+
this.a = [];
|
1986
|
+
this.isStopped = false;
|
1987
|
+
}
|
1988
|
+
ToArrayObserver.prototype.onNext = function (x) { if(!this.isStopped) { this.a.push(x); } };
|
1989
|
+
ToArrayObserver.prototype.onError = function (e) {
|
1990
|
+
if (!this.isStopped) {
|
1991
|
+
this.isStopped = true;
|
1992
|
+
this.observer.onError(e);
|
1993
|
+
}
|
1994
|
+
};
|
1995
|
+
ToArrayObserver.prototype.onCompleted = function () {
|
1996
|
+
if (!this.isStopped) {
|
1997
|
+
this.isStopped = true;
|
1998
|
+
this.observer.onNext(this.a);
|
1999
|
+
this.observer.onCompleted();
|
2000
|
+
}
|
2001
|
+
};
|
2002
|
+
ToArrayObserver.prototype.dispose = function () { this.isStopped = true; }
|
2003
|
+
ToArrayObserver.prototype.fail = function (e) {
|
2004
|
+
if (!this.isStopped) {
|
2005
|
+
this.isStopped = true;
|
2006
|
+
this.observer.onError(e);
|
2007
|
+
return true;
|
2008
|
+
}
|
2009
|
+
|
2010
|
+
return false;
|
2011
|
+
};
|
2012
|
+
|
1908
2013
|
/**
|
1909
|
-
|
1910
|
-
|
1911
|
-
|
2014
|
+
* Creates an array from an observable sequence.
|
2015
|
+
* @returns {Observable} An observable sequence containing a single element with a list containing all the elements of the source sequence.
|
2016
|
+
*/
|
1912
2017
|
observableProto.toArray = function () {
|
1913
|
-
|
1914
|
-
return new AnonymousObservable(function(observer) {
|
1915
|
-
var arr = [];
|
1916
|
-
return source.subscribe(
|
1917
|
-
arr.push.bind(arr),
|
1918
|
-
observer.onError.bind(observer),
|
1919
|
-
function () {
|
1920
|
-
observer.onNext(arr);
|
1921
|
-
observer.onCompleted();
|
1922
|
-
});
|
1923
|
-
}, source);
|
2018
|
+
return new ToArrayObservable(this);
|
1924
2019
|
};
|
1925
2020
|
|
1926
2021
|
/**
|
@@ -1975,6 +2070,65 @@
|
|
1975
2070
|
});
|
1976
2071
|
};
|
1977
2072
|
|
2073
|
+
var FromObservable = (function(__super__) {
|
2074
|
+
inherits(FromObservable, __super__);
|
2075
|
+
function FromObservable(iterable, mapper, scheduler) {
|
2076
|
+
this.iterable = iterable;
|
2077
|
+
this.mapper = mapper;
|
2078
|
+
this.scheduler = scheduler;
|
2079
|
+
__super__.call(this);
|
2080
|
+
}
|
2081
|
+
|
2082
|
+
FromObservable.prototype.subscribeCore = function (observer) {
|
2083
|
+
var sink = new FromSink(observer, this);
|
2084
|
+
return sink.run();
|
2085
|
+
};
|
2086
|
+
|
2087
|
+
return FromObservable;
|
2088
|
+
}(ObservableBase));
|
2089
|
+
|
2090
|
+
var FromSink = (function () {
|
2091
|
+
function FromSink(observer, parent) {
|
2092
|
+
this.observer = observer;
|
2093
|
+
this.parent = parent;
|
2094
|
+
}
|
2095
|
+
|
2096
|
+
FromSink.prototype.run = function () {
|
2097
|
+
var list = Object(this.parent.iterable),
|
2098
|
+
it = getIterable(list),
|
2099
|
+
observer = this.observer,
|
2100
|
+
mapper = this.parent.mapper;
|
2101
|
+
|
2102
|
+
function loopRecursive(i, recurse) {
|
2103
|
+
try {
|
2104
|
+
var next = it.next();
|
2105
|
+
} catch (e) {
|
2106
|
+
return observer.onError(e);
|
2107
|
+
}
|
2108
|
+
if (next.done) {
|
2109
|
+
return observer.onCompleted();
|
2110
|
+
}
|
2111
|
+
|
2112
|
+
var result = next.value;
|
2113
|
+
|
2114
|
+
if (mapper) {
|
2115
|
+
try {
|
2116
|
+
result = mapper(result, i);
|
2117
|
+
} catch (e) {
|
2118
|
+
return observer.onError(e);
|
2119
|
+
}
|
2120
|
+
}
|
2121
|
+
|
2122
|
+
observer.onNext(result);
|
2123
|
+
recurse(i + 1);
|
2124
|
+
}
|
2125
|
+
|
2126
|
+
return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
|
2127
|
+
};
|
2128
|
+
|
2129
|
+
return FromSink;
|
2130
|
+
}());
|
2131
|
+
|
1978
2132
|
var maxSafeInteger = Math.pow(2, 53) - 1;
|
1979
2133
|
|
1980
2134
|
function StringIterable(str) {
|
@@ -1996,12 +2150,7 @@
|
|
1996
2150
|
};
|
1997
2151
|
|
1998
2152
|
StringIterator.prototype.next = function () {
|
1999
|
-
|
2000
|
-
var val = this._s.charAt(this._i++);
|
2001
|
-
return { done: false, value: val };
|
2002
|
-
} else {
|
2003
|
-
return doneEnumerator;
|
2004
|
-
}
|
2153
|
+
return this._i < this._l ? { done: false, value: this._s.charAt(this._i++) } : doneEnumerator;
|
2005
2154
|
};
|
2006
2155
|
|
2007
2156
|
function ArrayIterable(a) {
|
@@ -2023,12 +2172,7 @@
|
|
2023
2172
|
};
|
2024
2173
|
|
2025
2174
|
ArrayIterator.prototype.next = function () {
|
2026
|
-
|
2027
|
-
var val = this._a[this._i++];
|
2028
|
-
return { done: false, value: val };
|
2029
|
-
} else {
|
2030
|
-
return doneEnumerator;
|
2031
|
-
}
|
2175
|
+
return this._i < this._l ? { done: false, value: this._a[this._i++] } : doneEnumerator;
|
2032
2176
|
};
|
2033
2177
|
|
2034
2178
|
function numberIsFinite(value) {
|
@@ -2071,12 +2215,12 @@
|
|
2071
2215
|
}
|
2072
2216
|
|
2073
2217
|
/**
|
2074
|
-
|
2075
|
-
|
2076
|
-
|
2077
|
-
|
2078
|
-
|
2079
|
-
|
2218
|
+
* This method creates a new Observable sequence from an array-like or iterable object.
|
2219
|
+
* @param {Any} arrayLike An array-like or iterable object to convert to an Observable sequence.
|
2220
|
+
* @param {Function} [mapFn] Map function to call on every element of the array.
|
2221
|
+
* @param {Any} [thisArg] The context to use calling the mapFn if provided.
|
2222
|
+
* @param {Scheduler} [scheduler] Optional scheduler to use for scheduling. If not provided, defaults to Scheduler.currentThread.
|
2223
|
+
*/
|
2080
2224
|
var observableFrom = Observable.from = function (iterable, mapFn, thisArg, scheduler) {
|
2081
2225
|
if (iterable == null) {
|
2082
2226
|
throw new Error('iterable cannot be null.')
|
@@ -2084,61 +2228,56 @@
|
|
2084
2228
|
if (mapFn && !isFunction(mapFn)) {
|
2085
2229
|
throw new Error('mapFn when provided must be a function');
|
2086
2230
|
}
|
2231
|
+
if (mapFn) {
|
2232
|
+
var mapper = bindCallback(mapFn, thisArg, 2);
|
2233
|
+
}
|
2087
2234
|
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
|
2088
|
-
|
2089
|
-
|
2090
|
-
var i = 0;
|
2091
|
-
return scheduler.scheduleRecursive(function (self) {
|
2092
|
-
var next;
|
2093
|
-
try {
|
2094
|
-
next = it.next();
|
2095
|
-
} catch (e) {
|
2096
|
-
observer.onError(e);
|
2097
|
-
return;
|
2098
|
-
}
|
2099
|
-
if (next.done) {
|
2100
|
-
observer.onCompleted();
|
2101
|
-
return;
|
2102
|
-
}
|
2235
|
+
return new FromObservable(iterable, mapper, scheduler);
|
2236
|
+
}
|
2103
2237
|
|
2104
|
-
|
2238
|
+
var FromArrayObservable = (function(__super__) {
|
2239
|
+
inherits(FromArrayObservable, __super__);
|
2240
|
+
function FromArrayObservable(args, scheduler) {
|
2241
|
+
this.args = args;
|
2242
|
+
this.scheduler = scheduler || currentThreadScheduler;
|
2243
|
+
__super__.call(this);
|
2244
|
+
}
|
2105
2245
|
|
2106
|
-
|
2107
|
-
|
2108
|
-
|
2109
|
-
|
2110
|
-
observer.onError(e);
|
2111
|
-
return;
|
2112
|
-
}
|
2113
|
-
}
|
2246
|
+
FromArrayObservable.prototype.subscribeCore = function (observer) {
|
2247
|
+
var sink = new FromArraySink(observer, this);
|
2248
|
+
return sink.run();
|
2249
|
+
};
|
2114
2250
|
|
2115
|
-
|
2116
|
-
|
2117
|
-
|
2118
|
-
|
2119
|
-
|
2251
|
+
return FromArrayObservable;
|
2252
|
+
}(ObservableBase));
|
2253
|
+
|
2254
|
+
function FromArraySink(observer, parent) {
|
2255
|
+
this.observer = observer;
|
2256
|
+
this.parent = parent;
|
2257
|
+
}
|
2258
|
+
|
2259
|
+
FromArraySink.prototype.run = function () {
|
2260
|
+
var observer = this.observer, args = this.parent.args, len = args.length;
|
2261
|
+
function loopRecursive(i, recurse) {
|
2262
|
+
if (i < len) {
|
2263
|
+
observer.onNext(args[i]);
|
2264
|
+
recurse(i + 1);
|
2265
|
+
} else {
|
2266
|
+
observer.onCompleted();
|
2267
|
+
}
|
2268
|
+
}
|
2269
|
+
|
2270
|
+
return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
|
2120
2271
|
};
|
2121
2272
|
|
2122
2273
|
/**
|
2123
|
-
|
2124
|
-
|
2125
|
-
|
2126
|
-
|
2127
|
-
|
2274
|
+
* Converts an array to an observable sequence, using an optional scheduler to enumerate the array.
|
2275
|
+
* @deprecated use Observable.from or Observable.of
|
2276
|
+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
|
2277
|
+
* @returns {Observable} The observable sequence whose elements are pulled from the given enumerable sequence.
|
2278
|
+
*/
|
2128
2279
|
var observableFromArray = Observable.fromArray = function (array, scheduler) {
|
2129
|
-
|
2130
|
-
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
|
2131
|
-
return new AnonymousObservable(function (observer) {
|
2132
|
-
var count = 0, len = array.length;
|
2133
|
-
return scheduler.scheduleRecursive(function (self) {
|
2134
|
-
if (count < len) {
|
2135
|
-
observer.onNext(array[count++]);
|
2136
|
-
self();
|
2137
|
-
} else {
|
2138
|
-
observer.onCompleted();
|
2139
|
-
}
|
2140
|
-
});
|
2141
|
-
});
|
2280
|
+
return new FromArrayObservable(array, scheduler)
|
2142
2281
|
};
|
2143
2282
|
|
2144
2283
|
/**
|
@@ -2152,55 +2291,45 @@
|
|
2152
2291
|
};
|
2153
2292
|
|
2154
2293
|
function observableOf (scheduler, array) {
|
2155
|
-
|
2156
|
-
return new AnonymousObservable(function (observer) {
|
2157
|
-
var count = 0, len = array.length;
|
2158
|
-
return scheduler.scheduleRecursive(function (self) {
|
2159
|
-
if (count < len) {
|
2160
|
-
observer.onNext(array[count++]);
|
2161
|
-
self();
|
2162
|
-
} else {
|
2163
|
-
observer.onCompleted();
|
2164
|
-
}
|
2165
|
-
});
|
2166
|
-
});
|
2294
|
+
return new FromArrayObservable(array, scheduler);
|
2167
2295
|
}
|
2168
2296
|
|
2169
2297
|
/**
|
2170
|
-
|
2171
|
-
|
2172
|
-
|
2298
|
+
* This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments.
|
2299
|
+
* @returns {Observable} The observable sequence whose elements are pulled from the given arguments.
|
2300
|
+
*/
|
2173
2301
|
Observable.of = function () {
|
2174
|
-
|
2302
|
+
var len = arguments.length, args = new Array(len);
|
2303
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2304
|
+
return new FromArrayObservable(args);
|
2175
2305
|
};
|
2176
2306
|
|
2177
2307
|
/**
|
2178
|
-
|
2179
|
-
|
2180
|
-
|
2181
|
-
|
2308
|
+
* This method creates a new Observable instance with a variable number of arguments, regardless of number or type of the arguments.
|
2309
|
+
* @param {Scheduler} scheduler A scheduler to use for scheduling the arguments.
|
2310
|
+
* @returns {Observable} The observable sequence whose elements are pulled from the given arguments.
|
2311
|
+
*/
|
2182
2312
|
Observable.ofWithScheduler = function (scheduler) {
|
2183
|
-
|
2313
|
+
var len = arguments.length, args = new Array(len - 1);
|
2314
|
+
for(var i = 1; i < len; i++) { args[i - 1] = arguments[i]; }
|
2315
|
+
return new FromArrayObservable(args, scheduler);
|
2184
2316
|
};
|
2185
2317
|
|
2186
2318
|
/**
|
2187
|
-
*
|
2188
|
-
*
|
2189
|
-
* @
|
2190
|
-
*
|
2191
|
-
* var res = Rx.Observable.range(0, 10, Rx.Scheduler.timeout);
|
2192
|
-
* @param {Number} start The value of the first integer in the sequence.
|
2193
|
-
* @param {Number} count The number of sequential integers to generate.
|
2194
|
-
* @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread.
|
2195
|
-
* @returns {Observable} An observable sequence that contains a range of sequential integral numbers.
|
2319
|
+
* Convert an object into an observable sequence of [key, value] pairs.
|
2320
|
+
* @param {Object} obj The object to inspect.
|
2321
|
+
* @param {Scheduler} [scheduler] Scheduler to run the enumeration of the input sequence on.
|
2322
|
+
* @returns {Observable} An observable sequence of [key, value] pairs from the object.
|
2196
2323
|
*/
|
2197
|
-
Observable.
|
2198
|
-
|
2324
|
+
Observable.pairs = function (obj, scheduler) {
|
2325
|
+
scheduler || (scheduler = Rx.Scheduler.currentThread);
|
2199
2326
|
return new AnonymousObservable(function (observer) {
|
2200
|
-
|
2201
|
-
|
2202
|
-
|
2203
|
-
|
2327
|
+
var keys = Object.keys(obj), len = keys.length;
|
2328
|
+
return scheduler.scheduleRecursiveWithState(0, function (idx, self) {
|
2329
|
+
if (idx < len) {
|
2330
|
+
var key = keys[idx];
|
2331
|
+
observer.onNext([key, obj[key]]);
|
2332
|
+
self(idx + 1);
|
2204
2333
|
} else {
|
2205
2334
|
observer.onCompleted();
|
2206
2335
|
}
|
@@ -2208,6 +2337,58 @@
|
|
2208
2337
|
});
|
2209
2338
|
};
|
2210
2339
|
|
2340
|
+
var RangeObservable = (function(__super__) {
|
2341
|
+
inherits(RangeObservable, __super__);
|
2342
|
+
function RangeObservable(start, count, scheduler) {
|
2343
|
+
this.start = start;
|
2344
|
+
this.count = count;
|
2345
|
+
this.scheduler = scheduler;
|
2346
|
+
__super__.call(this);
|
2347
|
+
}
|
2348
|
+
|
2349
|
+
RangeObservable.prototype.subscribeCore = function (observer) {
|
2350
|
+
var sink = new RangeSink(observer, this);
|
2351
|
+
return sink.run();
|
2352
|
+
};
|
2353
|
+
|
2354
|
+
return RangeObservable;
|
2355
|
+
}(ObservableBase));
|
2356
|
+
|
2357
|
+
var RangeSink = (function () {
|
2358
|
+
function RangeSink(observer, parent) {
|
2359
|
+
this.observer = observer;
|
2360
|
+
this.parent = parent;
|
2361
|
+
}
|
2362
|
+
|
2363
|
+
RangeSink.prototype.run = function () {
|
2364
|
+
var start = this.parent.start, count = this.parent.count, observer = this.observer;
|
2365
|
+
function loopRecursive(i, recurse) {
|
2366
|
+
if (i < count) {
|
2367
|
+
observer.onNext(start + i);
|
2368
|
+
recurse(i + 1);
|
2369
|
+
} else {
|
2370
|
+
observer.onCompleted();
|
2371
|
+
}
|
2372
|
+
}
|
2373
|
+
|
2374
|
+
return this.parent.scheduler.scheduleRecursiveWithState(0, loopRecursive);
|
2375
|
+
};
|
2376
|
+
|
2377
|
+
return RangeSink;
|
2378
|
+
}());
|
2379
|
+
|
2380
|
+
/**
|
2381
|
+
* Generates an observable sequence of integral numbers within a specified range, using the specified scheduler to send out observer messages.
|
2382
|
+
* @param {Number} start The value of the first integer in the sequence.
|
2383
|
+
* @param {Number} count The number of sequential integers to generate.
|
2384
|
+
* @param {Scheduler} [scheduler] Scheduler to run the generator loop on. If not specified, defaults to Scheduler.currentThread.
|
2385
|
+
* @returns {Observable} An observable sequence that contains a range of sequential integral numbers.
|
2386
|
+
*/
|
2387
|
+
Observable.range = function (start, count, scheduler) {
|
2388
|
+
isScheduler(scheduler) || (scheduler = currentThreadScheduler);
|
2389
|
+
return new RangeObservable(start, count, scheduler);
|
2390
|
+
};
|
2391
|
+
|
2211
2392
|
/**
|
2212
2393
|
* Generates an observable sequence that repeats the given element the specified number of times, using the specified scheduler to send out observer messages.
|
2213
2394
|
*
|
@@ -2229,10 +2410,6 @@
|
|
2229
2410
|
/**
|
2230
2411
|
* Returns an observable sequence that contains a single element, using the specified scheduler to send out observer messages.
|
2231
2412
|
* There is an alias called 'just', and 'returnValue' for browsers <IE9.
|
2232
|
-
*
|
2233
|
-
* @example
|
2234
|
-
* var res = Rx.Observable.return(42);
|
2235
|
-
* var res = Rx.Observable.return(42, Rx.Scheduler.timeout);
|
2236
2413
|
* @param {Mixed} value Single element in the resulting observable sequence.
|
2237
2414
|
* @param {Scheduler} scheduler Scheduler to send the single element on. If not specified, defaults to Scheduler.immediate.
|
2238
2415
|
* @returns {Observable} An observable sequence containing the single specified element.
|
@@ -2249,44 +2426,48 @@
|
|
2249
2426
|
|
2250
2427
|
/** @deprecated use return or just */
|
2251
2428
|
Observable.returnValue = function () {
|
2252
|
-
deprecate('returnValue', 'return or just');
|
2429
|
+
//deprecate('returnValue', 'return or just');
|
2253
2430
|
return observableReturn.apply(null, arguments);
|
2254
2431
|
};
|
2255
2432
|
|
2256
2433
|
/**
|
2257
2434
|
* Returns an observable sequence that terminates with an exception, using the specified scheduler to send out the single onError message.
|
2258
2435
|
* There is an alias to this method called 'throwError' for browsers <IE9.
|
2259
|
-
* @param {Mixed}
|
2436
|
+
* @param {Mixed} error An object used for the sequence's termination.
|
2260
2437
|
* @param {Scheduler} scheduler Scheduler to send the exceptional termination call on. If not specified, defaults to Scheduler.immediate.
|
2261
2438
|
* @returns {Observable} The observable sequence that terminates exceptionally with the specified exception object.
|
2262
2439
|
*/
|
2263
|
-
var observableThrow = Observable['throw'] = Observable.
|
2440
|
+
var observableThrow = Observable['throw'] = Observable.throwError = function (error, scheduler) {
|
2264
2441
|
isScheduler(scheduler) || (scheduler = immediateScheduler);
|
2265
2442
|
return new AnonymousObservable(function (observer) {
|
2266
2443
|
return scheduler.schedule(function () {
|
2267
|
-
observer.onError(
|
2444
|
+
observer.onError(error);
|
2268
2445
|
});
|
2269
2446
|
});
|
2270
2447
|
};
|
2271
2448
|
|
2449
|
+
/** @deprecated use #some instead */
|
2450
|
+
Observable.throwException = function () {
|
2451
|
+
//deprecate('throwException', 'throwError');
|
2452
|
+
return Observable.throwError.apply(null, arguments);
|
2453
|
+
};
|
2454
|
+
|
2272
2455
|
function observableCatchHandler(source, handler) {
|
2273
|
-
return new AnonymousObservable(function (
|
2456
|
+
return new AnonymousObservable(function (o) {
|
2274
2457
|
var d1 = new SingleAssignmentDisposable(), subscription = new SerialDisposable();
|
2275
2458
|
subscription.setDisposable(d1);
|
2276
|
-
d1.setDisposable(source.subscribe(
|
2277
|
-
var d, result;
|
2459
|
+
d1.setDisposable(source.subscribe(function (x) { o.onNext(x); }, function (e) {
|
2278
2460
|
try {
|
2279
|
-
result = handler(
|
2461
|
+
var result = handler(e);
|
2280
2462
|
} catch (ex) {
|
2281
|
-
|
2282
|
-
return;
|
2463
|
+
return o.onError(ex);
|
2283
2464
|
}
|
2284
2465
|
isPromise(result) && (result = observableFromPromise(result));
|
2285
2466
|
|
2286
|
-
d = new SingleAssignmentDisposable();
|
2467
|
+
var d = new SingleAssignmentDisposable();
|
2287
2468
|
subscription.setDisposable(d);
|
2288
|
-
d.setDisposable(result.subscribe(
|
2289
|
-
},
|
2469
|
+
d.setDisposable(result.subscribe(o));
|
2470
|
+
}, function (x) { o.onCompleted(x); }));
|
2290
2471
|
|
2291
2472
|
return subscription;
|
2292
2473
|
}, source);
|
@@ -2300,35 +2481,25 @@
|
|
2300
2481
|
* @param {Mixed} handlerOrSecond Exception handler function that returns an observable sequence given the error that occurred in the first sequence, or a second observable sequence used to produce results when an error occurred in the first sequence.
|
2301
2482
|
* @returns {Observable} An observable sequence containing the first sequence's elements, followed by the elements of the handler sequence in case an exception occurred.
|
2302
2483
|
*/
|
2303
|
-
observableProto['catch'] = observableProto.catchError = function (handlerOrSecond) {
|
2484
|
+
observableProto['catch'] = observableProto.catchError = observableProto.catchException = function (handlerOrSecond) {
|
2304
2485
|
return typeof handlerOrSecond === 'function' ?
|
2305
2486
|
observableCatchHandler(this, handlerOrSecond) :
|
2306
2487
|
observableCatch([this, handlerOrSecond]);
|
2307
2488
|
};
|
2308
2489
|
|
2309
|
-
/**
|
2310
|
-
* @deprecated use #catch or #catchError instead.
|
2311
|
-
*/
|
2312
|
-
observableProto.catchException = function (handlerOrSecond) {
|
2313
|
-
deprecate('catchException', 'catch or catchError');
|
2314
|
-
return this.catchError(handlerOrSecond);
|
2315
|
-
};
|
2316
|
-
|
2317
2490
|
/**
|
2318
2491
|
* Continues an observable sequence that is terminated by an exception with the next observable sequence.
|
2319
2492
|
* @param {Array | Arguments} args Arguments or an array to use as the next sequence if an error occurs.
|
2320
2493
|
* @returns {Observable} An observable sequence containing elements from consecutive source sequences until a source sequence terminates successfully.
|
2321
2494
|
*/
|
2322
|
-
var observableCatch = Observable.catchError = Observable['catch'] = function () {
|
2323
|
-
|
2324
|
-
|
2325
|
-
|
2326
|
-
|
2327
|
-
|
2328
|
-
|
2329
|
-
|
2330
|
-
deprecate('catchException', 'catch or catchError');
|
2331
|
-
return observableCatch.apply(null, arguments);
|
2495
|
+
var observableCatch = Observable.catchError = Observable['catch'] = Observable.catchException = function () {
|
2496
|
+
var items = [];
|
2497
|
+
if (Array.isArray(arguments[0])) {
|
2498
|
+
items = arguments[0];
|
2499
|
+
} else {
|
2500
|
+
for(var i = 0, len = arguments.length; i < len; i++) { items.push(arguments[i]); }
|
2501
|
+
}
|
2502
|
+
return enumerableOf(items).catchError();
|
2332
2503
|
};
|
2333
2504
|
|
2334
2505
|
/**
|
@@ -2341,7 +2512,8 @@
|
|
2341
2512
|
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
2342
2513
|
*/
|
2343
2514
|
observableProto.combineLatest = function () {
|
2344
|
-
var args =
|
2515
|
+
var len = arguments.length, args = new Array(len);
|
2516
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2345
2517
|
if (Array.isArray(args[0])) {
|
2346
2518
|
args[0].unshift(this);
|
2347
2519
|
} else {
|
@@ -2359,54 +2531,51 @@
|
|
2359
2531
|
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
2360
2532
|
*/
|
2361
2533
|
var combineLatest = Observable.combineLatest = function () {
|
2362
|
-
var
|
2363
|
-
|
2364
|
-
|
2365
|
-
|
2366
|
-
|
2534
|
+
var len = arguments.length, args = new Array(len);
|
2535
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2536
|
+
var resultSelector = args.pop();
|
2537
|
+
len--;
|
2538
|
+
Array.isArray(args[0]) && (args = args[0]);
|
2367
2539
|
|
2368
|
-
return new AnonymousObservable(function (
|
2540
|
+
return new AnonymousObservable(function (o) {
|
2369
2541
|
var falseFactory = function () { return false; },
|
2370
|
-
|
2371
|
-
hasValue = arrayInitialize(n, falseFactory),
|
2542
|
+
hasValue = arrayInitialize(len, falseFactory),
|
2372
2543
|
hasValueAll = false,
|
2373
|
-
isDone = arrayInitialize(
|
2374
|
-
values = new Array(
|
2544
|
+
isDone = arrayInitialize(len, falseFactory),
|
2545
|
+
values = new Array(len);
|
2375
2546
|
|
2376
2547
|
function next(i) {
|
2377
|
-
var res;
|
2378
2548
|
hasValue[i] = true;
|
2379
2549
|
if (hasValueAll || (hasValueAll = hasValue.every(identity))) {
|
2380
2550
|
try {
|
2381
|
-
res = resultSelector.apply(null, values);
|
2551
|
+
var res = resultSelector.apply(null, values);
|
2382
2552
|
} catch (ex) {
|
2383
|
-
|
2553
|
+
o.onError(ex);
|
2384
2554
|
return;
|
2385
2555
|
}
|
2386
|
-
|
2556
|
+
o.onNext(res);
|
2387
2557
|
} else if (isDone.filter(function (x, j) { return j !== i; }).every(identity)) {
|
2388
|
-
|
2558
|
+
o.onCompleted();
|
2389
2559
|
}
|
2390
2560
|
}
|
2391
2561
|
|
2392
2562
|
function done (i) {
|
2393
2563
|
isDone[i] = true;
|
2394
|
-
|
2395
|
-
observer.onCompleted();
|
2396
|
-
}
|
2564
|
+
isDone.every(identity) && o.onCompleted();
|
2397
2565
|
}
|
2398
2566
|
|
2399
|
-
var subscriptions = new Array(
|
2400
|
-
for (var idx = 0; idx <
|
2567
|
+
var subscriptions = new Array(len);
|
2568
|
+
for (var idx = 0; idx < len; idx++) {
|
2401
2569
|
(function (i) {
|
2402
2570
|
var source = args[i], sad = new SingleAssignmentDisposable();
|
2403
2571
|
isPromise(source) && (source = observableFromPromise(source));
|
2404
2572
|
sad.setDisposable(source.subscribe(function (x) {
|
2405
|
-
|
2406
|
-
|
2407
|
-
|
2408
|
-
|
2409
|
-
|
2573
|
+
values[i] = x;
|
2574
|
+
next(i);
|
2575
|
+
},
|
2576
|
+
function(e) { o.onError(e); },
|
2577
|
+
function () { done(i); }
|
2578
|
+
));
|
2410
2579
|
subscriptions[i] = sad;
|
2411
2580
|
}(idx));
|
2412
2581
|
}
|
@@ -2415,19 +2584,15 @@
|
|
2415
2584
|
}, this);
|
2416
2585
|
};
|
2417
2586
|
|
2418
|
-
|
2419
|
-
|
2420
|
-
|
2421
|
-
|
2422
|
-
|
2423
|
-
|
2424
|
-
|
2425
|
-
|
2426
|
-
|
2427
|
-
var items = slice.call(arguments, 0);
|
2428
|
-
items.unshift(this);
|
2429
|
-
return observableConcat.apply(this, items);
|
2430
|
-
};
|
2587
|
+
/**
|
2588
|
+
* Concatenates all the observable sequences. This takes in either an array or variable arguments to concatenate.
|
2589
|
+
* @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order.
|
2590
|
+
*/
|
2591
|
+
observableProto.concat = function () {
|
2592
|
+
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
2593
|
+
args.unshift(this);
|
2594
|
+
return observableConcat.apply(null, args);
|
2595
|
+
};
|
2431
2596
|
|
2432
2597
|
/**
|
2433
2598
|
* Concatenates all the observable sequences.
|
@@ -2435,20 +2600,21 @@
|
|
2435
2600
|
* @returns {Observable} An observable sequence that contains the elements of each given sequence, in sequential order.
|
2436
2601
|
*/
|
2437
2602
|
var observableConcat = Observable.concat = function () {
|
2438
|
-
|
2603
|
+
var args;
|
2604
|
+
if (Array.isArray(arguments[0])) {
|
2605
|
+
args = arguments[0];
|
2606
|
+
} else {
|
2607
|
+
args = new Array(arguments.length);
|
2608
|
+
for(var i = 0, len = arguments.length; i < len; i++) { args[i] = arguments[i]; }
|
2609
|
+
}
|
2610
|
+
return enumerableOf(args).concat();
|
2439
2611
|
};
|
2440
2612
|
|
2441
2613
|
/**
|
2442
2614
|
* Concatenates an observable sequence of observable sequences.
|
2443
2615
|
* @returns {Observable} An observable sequence that contains the elements of each observed inner sequence, in sequential order.
|
2444
2616
|
*/
|
2445
|
-
observableProto.concatAll = function () {
|
2446
|
-
return this.merge(1);
|
2447
|
-
};
|
2448
|
-
|
2449
|
-
/** @deprecated Use `concatAll` instead. */
|
2450
|
-
observableProto.concatObservable = function () {
|
2451
|
-
deprecate('concatObservable', 'concatAll');
|
2617
|
+
observableProto.concatAll = observableProto.concatObservable = function () {
|
2452
2618
|
return this.merge(1);
|
2453
2619
|
};
|
2454
2620
|
|
@@ -2465,7 +2631,7 @@
|
|
2465
2631
|
observableProto.merge = function (maxConcurrentOrOther) {
|
2466
2632
|
if (typeof maxConcurrentOrOther !== 'number') { return observableMerge(this, maxConcurrentOrOther); }
|
2467
2633
|
var sources = this;
|
2468
|
-
return new AnonymousObservable(function (
|
2634
|
+
return new AnonymousObservable(function (o) {
|
2469
2635
|
var activeCount = 0, group = new CompositeDisposable(), isStopped = false, q = [];
|
2470
2636
|
|
2471
2637
|
function subscribe(xs) {
|
@@ -2475,13 +2641,13 @@
|
|
2475
2641
|
// Check for promises support
|
2476
2642
|
isPromise(xs) && (xs = observableFromPromise(xs));
|
2477
2643
|
|
2478
|
-
subscription.setDisposable(xs.subscribe(
|
2644
|
+
subscription.setDisposable(xs.subscribe(function (x) { o.onNext(x); }, function (e) { o.onError(e); }, function () {
|
2479
2645
|
group.remove(subscription);
|
2480
2646
|
if (q.length > 0) {
|
2481
2647
|
subscribe(q.shift());
|
2482
2648
|
} else {
|
2483
2649
|
activeCount--;
|
2484
|
-
isStopped && activeCount === 0 &&
|
2650
|
+
isStopped && activeCount === 0 && o.onCompleted();
|
2485
2651
|
}
|
2486
2652
|
}));
|
2487
2653
|
}
|
@@ -2492,9 +2658,9 @@
|
|
2492
2658
|
} else {
|
2493
2659
|
q.push(innerSource);
|
2494
2660
|
}
|
2495
|
-
},
|
2661
|
+
}, function (e) { o.onError(e); }, function () {
|
2496
2662
|
isStopped = true;
|
2497
|
-
activeCount === 0 &&
|
2663
|
+
activeCount === 0 && o.onCompleted();
|
2498
2664
|
}));
|
2499
2665
|
return group;
|
2500
2666
|
}, sources);
|
@@ -2506,16 +2672,16 @@
|
|
2506
2672
|
* @returns {Observable} The observable sequence that merges the elements of the observable sequences.
|
2507
2673
|
*/
|
2508
2674
|
var observableMerge = Observable.merge = function () {
|
2509
|
-
var scheduler, sources;
|
2675
|
+
var scheduler, sources = [], i, len = arguments.length;
|
2510
2676
|
if (!arguments[0]) {
|
2511
2677
|
scheduler = immediateScheduler;
|
2512
|
-
|
2678
|
+
for(i = 1; i < len; i++) { sources.push(arguments[i]); }
|
2513
2679
|
} else if (isScheduler(arguments[0])) {
|
2514
2680
|
scheduler = arguments[0];
|
2515
|
-
|
2681
|
+
for(i = 1; i < len; i++) { sources.push(arguments[i]); }
|
2516
2682
|
} else {
|
2517
2683
|
scheduler = immediateScheduler;
|
2518
|
-
|
2684
|
+
for(i = 0; i < len; i++) { sources.push(arguments[i]); }
|
2519
2685
|
}
|
2520
2686
|
if (Array.isArray(sources[0])) {
|
2521
2687
|
sources = sources[0];
|
@@ -2527,9 +2693,9 @@
|
|
2527
2693
|
* Merges an observable sequence of observable sequences into an observable sequence.
|
2528
2694
|
* @returns {Observable} The observable sequence that merges the elements of the inner sequences.
|
2529
2695
|
*/
|
2530
|
-
observableProto.mergeAll = function () {
|
2696
|
+
observableProto.mergeAll = observableProto.mergeObservable = function () {
|
2531
2697
|
var sources = this;
|
2532
|
-
return new AnonymousObservable(function (
|
2698
|
+
return new AnonymousObservable(function (o) {
|
2533
2699
|
var group = new CompositeDisposable(),
|
2534
2700
|
isStopped = false,
|
2535
2701
|
m = new SingleAssignmentDisposable();
|
@@ -2542,26 +2708,18 @@
|
|
2542
2708
|
// Check for promises support
|
2543
2709
|
isPromise(innerSource) && (innerSource = observableFromPromise(innerSource));
|
2544
2710
|
|
2545
|
-
innerSubscription.setDisposable(innerSource.subscribe(
|
2711
|
+
innerSubscription.setDisposable(innerSource.subscribe(function (x) { o.onNext(x); }, function (e) { o.onError(e); }, function () {
|
2546
2712
|
group.remove(innerSubscription);
|
2547
|
-
isStopped && group.length === 1 &&
|
2713
|
+
isStopped && group.length === 1 && o.onCompleted();
|
2548
2714
|
}));
|
2549
|
-
},
|
2715
|
+
}, function (e) { o.onError(e); }, function () {
|
2550
2716
|
isStopped = true;
|
2551
|
-
group.length === 1 &&
|
2717
|
+
group.length === 1 && o.onCompleted();
|
2552
2718
|
}));
|
2553
2719
|
return group;
|
2554
2720
|
}, sources);
|
2555
2721
|
};
|
2556
2722
|
|
2557
|
-
/**
|
2558
|
-
* @deprecated use #mergeAll instead.
|
2559
|
-
*/
|
2560
|
-
observableProto.mergeObservable = function () {
|
2561
|
-
deprecate('mergeObservable', 'mergeAll');
|
2562
|
-
return this.mergeAll.apply(this, arguments);
|
2563
|
-
};
|
2564
|
-
|
2565
2723
|
/**
|
2566
2724
|
* Returns the values from the source observable sequence only after the other observable sequence produces a value.
|
2567
2725
|
* @param {Observable | Promise} other The observable sequence or Promise that triggers propagation of elements of the source sequence.
|
@@ -2569,12 +2727,12 @@
|
|
2569
2727
|
*/
|
2570
2728
|
observableProto.skipUntil = function (other) {
|
2571
2729
|
var source = this;
|
2572
|
-
return new AnonymousObservable(function (
|
2730
|
+
return new AnonymousObservable(function (o) {
|
2573
2731
|
var isOpen = false;
|
2574
2732
|
var disposables = new CompositeDisposable(source.subscribe(function (left) {
|
2575
|
-
isOpen &&
|
2576
|
-
},
|
2577
|
-
isOpen &&
|
2733
|
+
isOpen && o.onNext(left);
|
2734
|
+
}, function (e) { o.onError(e); }, function () {
|
2735
|
+
isOpen && o.onCompleted();
|
2578
2736
|
}));
|
2579
2737
|
|
2580
2738
|
isPromise(other) && (other = observableFromPromise(other));
|
@@ -2584,7 +2742,7 @@
|
|
2584
2742
|
rightSubscription.setDisposable(other.subscribe(function () {
|
2585
2743
|
isOpen = true;
|
2586
2744
|
rightSubscription.dispose();
|
2587
|
-
},
|
2745
|
+
}, function (e) { o.onError(e); }, function () {
|
2588
2746
|
rightSubscription.dispose();
|
2589
2747
|
}));
|
2590
2748
|
|
@@ -2622,7 +2780,7 @@
|
|
2622
2780
|
}
|
2623
2781
|
}));
|
2624
2782
|
},
|
2625
|
-
observer.onError
|
2783
|
+
function (e) { observer.onError(e); },
|
2626
2784
|
function () {
|
2627
2785
|
isStopped = true;
|
2628
2786
|
!hasLatest && observer.onCompleted();
|
@@ -2638,15 +2796,79 @@
|
|
2638
2796
|
*/
|
2639
2797
|
observableProto.takeUntil = function (other) {
|
2640
2798
|
var source = this;
|
2641
|
-
return new AnonymousObservable(function (
|
2799
|
+
return new AnonymousObservable(function (o) {
|
2642
2800
|
isPromise(other) && (other = observableFromPromise(other));
|
2643
2801
|
return new CompositeDisposable(
|
2644
|
-
source.subscribe(
|
2645
|
-
other.subscribe(
|
2802
|
+
source.subscribe(o),
|
2803
|
+
other.subscribe(function () { o.onCompleted(); }, function (e) { o.onError(e); }, noop)
|
2646
2804
|
);
|
2647
2805
|
}, source);
|
2648
2806
|
};
|
2649
2807
|
|
2808
|
+
/**
|
2809
|
+
* Merges the specified observable sequences into one observable sequence by using the selector function only when the (first) source observable sequence produces an element.
|
2810
|
+
*
|
2811
|
+
* @example
|
2812
|
+
* 1 - obs = obs1.withLatestFrom(obs2, obs3, function (o1, o2, o3) { return o1 + o2 + o3; });
|
2813
|
+
* 2 - obs = obs1.withLatestFrom([obs2, obs3], function (o1, o2, o3) { return o1 + o2 + o3; });
|
2814
|
+
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
2815
|
+
*/
|
2816
|
+
observableProto.withLatestFrom = function () {
|
2817
|
+
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
2818
|
+
var resultSelector = args.pop(), source = this;
|
2819
|
+
|
2820
|
+
if (typeof source === 'undefined') {
|
2821
|
+
throw new Error('Source observable not found for withLatestFrom().');
|
2822
|
+
}
|
2823
|
+
if (typeof resultSelector !== 'function') {
|
2824
|
+
throw new Error('withLatestFrom() expects a resultSelector function.');
|
2825
|
+
}
|
2826
|
+
if (Array.isArray(args[0])) {
|
2827
|
+
args = args[0];
|
2828
|
+
}
|
2829
|
+
|
2830
|
+
return new AnonymousObservable(function (observer) {
|
2831
|
+
var falseFactory = function () { return false; },
|
2832
|
+
n = args.length,
|
2833
|
+
hasValue = arrayInitialize(n, falseFactory),
|
2834
|
+
hasValueAll = false,
|
2835
|
+
values = new Array(n);
|
2836
|
+
|
2837
|
+
var subscriptions = new Array(n + 1);
|
2838
|
+
for (var idx = 0; idx < n; idx++) {
|
2839
|
+
(function (i) {
|
2840
|
+
var other = args[i], sad = new SingleAssignmentDisposable();
|
2841
|
+
isPromise(other) && (other = observableFromPromise(other));
|
2842
|
+
sad.setDisposable(other.subscribe(function (x) {
|
2843
|
+
values[i] = x;
|
2844
|
+
hasValue[i] = true;
|
2845
|
+
hasValueAll = hasValue.every(identity);
|
2846
|
+
}, observer.onError.bind(observer), function () {}));
|
2847
|
+
subscriptions[i] = sad;
|
2848
|
+
}(idx));
|
2849
|
+
}
|
2850
|
+
|
2851
|
+
var sad = new SingleAssignmentDisposable();
|
2852
|
+
sad.setDisposable(source.subscribe(function (x) {
|
2853
|
+
var res;
|
2854
|
+
var allValues = [x].concat(values);
|
2855
|
+
if (!hasValueAll) return;
|
2856
|
+
try {
|
2857
|
+
res = resultSelector.apply(null, allValues);
|
2858
|
+
} catch (ex) {
|
2859
|
+
observer.onError(ex);
|
2860
|
+
return;
|
2861
|
+
}
|
2862
|
+
observer.onNext(res);
|
2863
|
+
}, observer.onError.bind(observer), function () {
|
2864
|
+
observer.onCompleted();
|
2865
|
+
}));
|
2866
|
+
subscriptions[n] = sad;
|
2867
|
+
|
2868
|
+
return new CompositeDisposable(subscriptions);
|
2869
|
+
}, this);
|
2870
|
+
};
|
2871
|
+
|
2650
2872
|
function zipArray(second, resultSelector) {
|
2651
2873
|
var first = this;
|
2652
2874
|
return new AnonymousObservable(function (observer) {
|
@@ -2657,36 +2879,39 @@
|
|
2657
2879
|
try {
|
2658
2880
|
result = resultSelector(left, right);
|
2659
2881
|
} catch (e) {
|
2660
|
-
observer.onError(e);
|
2661
|
-
return;
|
2882
|
+
return observer.onError(e);
|
2662
2883
|
}
|
2663
2884
|
observer.onNext(result);
|
2664
2885
|
} else {
|
2665
2886
|
observer.onCompleted();
|
2666
2887
|
}
|
2667
|
-
}, observer.onError
|
2888
|
+
}, function (e) { observer.onError(e); }, function () { observer.onCompleted(); });
|
2668
2889
|
}, first);
|
2669
2890
|
}
|
2670
2891
|
|
2892
|
+
function falseFactory() { return false; }
|
2893
|
+
function emptyArrayFactory() { return []; }
|
2894
|
+
|
2671
2895
|
/**
|
2672
2896
|
* Merges the specified observable sequences into one observable sequence by using the selector function whenever all of the observable sequences or an array have produced an element at a corresponding index.
|
2673
|
-
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the
|
2897
|
+
* The last element in the arguments must be a function to invoke for each series of elements at corresponding indexes in the args.
|
2674
2898
|
*
|
2675
2899
|
* @example
|
2676
2900
|
* 1 - res = obs1.zip(obs2, fn);
|
2677
2901
|
* 1 - res = x1.zip([1,2,3], fn);
|
2678
|
-
* @returns {Observable} An observable sequence containing the result of combining elements of the
|
2902
|
+
* @returns {Observable} An observable sequence containing the result of combining elements of the args using the specified result selector function.
|
2679
2903
|
*/
|
2680
2904
|
observableProto.zip = function () {
|
2681
|
-
if (Array.isArray(arguments[0])) {
|
2682
|
-
|
2683
|
-
}
|
2684
|
-
|
2685
|
-
|
2905
|
+
if (Array.isArray(arguments[0])) { return zipArray.apply(this, arguments); }
|
2906
|
+
var len = arguments.length, args = new Array(len);
|
2907
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2908
|
+
|
2909
|
+
var parent = this, resultSelector = args.pop();
|
2910
|
+
args.unshift(parent);
|
2686
2911
|
return new AnonymousObservable(function (observer) {
|
2687
|
-
var n =
|
2688
|
-
queues = arrayInitialize(n,
|
2689
|
-
isDone = arrayInitialize(n,
|
2912
|
+
var n = args.length,
|
2913
|
+
queues = arrayInitialize(n, emptyArrayFactory),
|
2914
|
+
isDone = arrayInitialize(n, falseFactory);
|
2690
2915
|
|
2691
2916
|
function next(i) {
|
2692
2917
|
var res, queuedValues;
|
@@ -2714,12 +2939,12 @@
|
|
2714
2939
|
var subscriptions = new Array(n);
|
2715
2940
|
for (var idx = 0; idx < n; idx++) {
|
2716
2941
|
(function (i) {
|
2717
|
-
var source =
|
2942
|
+
var source = args[i], sad = new SingleAssignmentDisposable();
|
2718
2943
|
isPromise(source) && (source = observableFromPromise(source));
|
2719
2944
|
sad.setDisposable(source.subscribe(function (x) {
|
2720
2945
|
queues[i].push(x);
|
2721
2946
|
next(i);
|
2722
|
-
}, observer.onError
|
2947
|
+
}, function (e) { observer.onError(e); }, function () {
|
2723
2948
|
done(i);
|
2724
2949
|
}));
|
2725
2950
|
subscriptions[i] = sad;
|
@@ -2737,7 +2962,9 @@
|
|
2737
2962
|
* @returns {Observable} An observable sequence containing the result of combining elements of the sources using the specified result selector function.
|
2738
2963
|
*/
|
2739
2964
|
Observable.zip = function () {
|
2740
|
-
var
|
2965
|
+
var len = arguments.length, args = new Array(len);
|
2966
|
+
for(var i = 0; i < len; i++) { args[i] = arguments[i]; }
|
2967
|
+
var first = args.shift();
|
2741
2968
|
return first.zip.apply(first, args);
|
2742
2969
|
};
|
2743
2970
|
|
@@ -2747,7 +2974,14 @@
|
|
2747
2974
|
* @returns {Observable} An observable sequence containing lists of elements at corresponding indexes.
|
2748
2975
|
*/
|
2749
2976
|
Observable.zipArray = function () {
|
2750
|
-
var sources
|
2977
|
+
var sources;
|
2978
|
+
if (Array.isArray(arguments[0])) {
|
2979
|
+
sources = arguments[0];
|
2980
|
+
} else {
|
2981
|
+
var len = arguments.length;
|
2982
|
+
sources = new Array(len);
|
2983
|
+
for(var i = 0; i < len; i++) { sources[i] = arguments[i]; }
|
2984
|
+
}
|
2751
2985
|
return new AnonymousObservable(function (observer) {
|
2752
2986
|
var n = sources.length,
|
2753
2987
|
queues = arrayInitialize(n, function () { return []; }),
|
@@ -2778,17 +3012,13 @@
|
|
2778
3012
|
subscriptions[i].setDisposable(sources[i].subscribe(function (x) {
|
2779
3013
|
queues[i].push(x);
|
2780
3014
|
next(i);
|
2781
|
-
}, observer.onError
|
3015
|
+
}, function (e) { observer.onError(e); }, function () {
|
2782
3016
|
done(i);
|
2783
3017
|
}));
|
2784
3018
|
})(idx);
|
2785
3019
|
}
|
2786
3020
|
|
2787
|
-
|
2788
|
-
compositeDisposable.add(disposableCreate(function () {
|
2789
|
-
for (var qIdx = 0, qLen = queues.length; qIdx < qLen; qIdx++) { queues[qIdx] = []; }
|
2790
|
-
}));
|
2791
|
-
return compositeDisposable;
|
3021
|
+
return new CompositeDisposable(subscriptions);
|
2792
3022
|
});
|
2793
3023
|
};
|
2794
3024
|
|
@@ -2797,7 +3027,8 @@
|
|
2797
3027
|
* @returns {Observable} An observable sequence that hides the identity of the source sequence.
|
2798
3028
|
*/
|
2799
3029
|
observableProto.asObservable = function () {
|
2800
|
-
|
3030
|
+
var source = this;
|
3031
|
+
return new AnonymousObservable(function (o) { return source.subscribe(o); }, this);
|
2801
3032
|
};
|
2802
3033
|
|
2803
3034
|
/**
|
@@ -2806,8 +3037,8 @@
|
|
2806
3037
|
*/
|
2807
3038
|
observableProto.dematerialize = function () {
|
2808
3039
|
var source = this;
|
2809
|
-
return new AnonymousObservable(function (
|
2810
|
-
return source.subscribe(function (x) { return x.accept(
|
3040
|
+
return new AnonymousObservable(function (o) {
|
3041
|
+
return source.subscribe(function (x) { return x.accept(o); }, function(e) { o.onError(e); }, function () { o.onCompleted(); });
|
2811
3042
|
}, this);
|
2812
3043
|
};
|
2813
3044
|
|
@@ -2824,32 +3055,33 @@
|
|
2824
3055
|
*/
|
2825
3056
|
observableProto.distinctUntilChanged = function (keySelector, comparer) {
|
2826
3057
|
var source = this;
|
2827
|
-
keySelector || (keySelector = identity);
|
2828
3058
|
comparer || (comparer = defaultComparer);
|
2829
|
-
return new AnonymousObservable(function (
|
3059
|
+
return new AnonymousObservable(function (o) {
|
2830
3060
|
var hasCurrentKey = false, currentKey;
|
2831
3061
|
return source.subscribe(function (value) {
|
2832
|
-
|
3062
|
+
var key = value;
|
3063
|
+
if (keySelector) {
|
2833
3064
|
try {
|
2834
3065
|
key = keySelector(value);
|
2835
3066
|
} catch (e) {
|
2836
|
-
|
3067
|
+
o.onError(e);
|
2837
3068
|
return;
|
2838
3069
|
}
|
2839
|
-
|
2840
|
-
|
2841
|
-
|
2842
|
-
|
2843
|
-
|
2844
|
-
|
2845
|
-
|
2846
|
-
}
|
2847
|
-
if (!hasCurrentKey || !comparerEquals) {
|
2848
|
-
hasCurrentKey = true;
|
2849
|
-
currentKey = key;
|
2850
|
-
observer.onNext(value);
|
3070
|
+
}
|
3071
|
+
if (hasCurrentKey) {
|
3072
|
+
try {
|
3073
|
+
var comparerEquals = comparer(currentKey, key);
|
3074
|
+
} catch (e) {
|
3075
|
+
o.onError(e);
|
3076
|
+
return;
|
2851
3077
|
}
|
2852
|
-
|
3078
|
+
}
|
3079
|
+
if (!hasCurrentKey || !comparerEquals) {
|
3080
|
+
hasCurrentKey = true;
|
3081
|
+
currentKey = key;
|
3082
|
+
o.onNext(value);
|
3083
|
+
}
|
3084
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
2853
3085
|
}, this);
|
2854
3086
|
};
|
2855
3087
|
|
@@ -2861,51 +3093,36 @@
|
|
2861
3093
|
* @param {Function} [onCompleted] Action to invoke upon graceful termination of the observable sequence. Used if only the observerOrOnNext parameter is also a function.
|
2862
3094
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
2863
3095
|
*/
|
2864
|
-
observableProto['do'] = observableProto.tap = function (observerOrOnNext, onError, onCompleted) {
|
2865
|
-
var source = this,
|
2866
|
-
|
2867
|
-
|
2868
|
-
} else {
|
2869
|
-
onNextFunc = observerOrOnNext.onNext.bind(observerOrOnNext);
|
2870
|
-
onError = observerOrOnNext.onError.bind(observerOrOnNext);
|
2871
|
-
onCompleted = observerOrOnNext.onCompleted.bind(observerOrOnNext);
|
2872
|
-
}
|
3096
|
+
observableProto['do'] = observableProto.tap = observableProto.doAction = function (observerOrOnNext, onError, onCompleted) {
|
3097
|
+
var source = this, tapObserver = typeof observerOrOnNext === 'function' || typeof observerOrOnNext === 'undefined'?
|
3098
|
+
observerCreate(observerOrOnNext || noop, onError || noop, onCompleted || noop) :
|
3099
|
+
observerOrOnNext;
|
2873
3100
|
return new AnonymousObservable(function (observer) {
|
2874
3101
|
return source.subscribe(function (x) {
|
2875
3102
|
try {
|
2876
|
-
|
3103
|
+
tapObserver.onNext(x);
|
2877
3104
|
} catch (e) {
|
2878
3105
|
observer.onError(e);
|
2879
3106
|
}
|
2880
3107
|
observer.onNext(x);
|
2881
3108
|
}, function (err) {
|
2882
|
-
if (onError) {
|
2883
3109
|
try {
|
2884
|
-
onError(err);
|
3110
|
+
tapObserver.onError(err);
|
2885
3111
|
} catch (e) {
|
2886
3112
|
observer.onError(e);
|
2887
3113
|
}
|
2888
|
-
}
|
2889
3114
|
observer.onError(err);
|
2890
3115
|
}, function () {
|
2891
|
-
|
2892
|
-
|
2893
|
-
|
2894
|
-
|
2895
|
-
observer.onError(e);
|
2896
|
-
}
|
3116
|
+
try {
|
3117
|
+
tapObserver.onCompleted();
|
3118
|
+
} catch (e) {
|
3119
|
+
observer.onError(e);
|
2897
3120
|
}
|
2898
3121
|
observer.onCompleted();
|
2899
3122
|
});
|
2900
3123
|
}, this);
|
2901
3124
|
};
|
2902
3125
|
|
2903
|
-
/** @deprecated use #do or #tap instead. */
|
2904
|
-
observableProto.doAction = function () {
|
2905
|
-
deprecate('doAction', 'do or tap');
|
2906
|
-
return this.tap.apply(this, arguments);
|
2907
|
-
};
|
2908
|
-
|
2909
3126
|
/**
|
2910
3127
|
* Invokes an action for each element in the observable sequence.
|
2911
3128
|
* This method can be used for debugging, logging, etc. of query behavior by intercepting the message stream to run arbitrary actions for messages on the pipeline.
|
@@ -2914,7 +3131,7 @@
|
|
2914
3131
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
2915
3132
|
*/
|
2916
3133
|
observableProto.doOnNext = observableProto.tapOnNext = function (onNext, thisArg) {
|
2917
|
-
return this.tap(
|
3134
|
+
return this.tap(typeof thisArg !== 'undefined' ? function (x) { onNext.call(thisArg, x); } : onNext);
|
2918
3135
|
};
|
2919
3136
|
|
2920
3137
|
/**
|
@@ -2925,7 +3142,7 @@
|
|
2925
3142
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
2926
3143
|
*/
|
2927
3144
|
observableProto.doOnError = observableProto.tapOnError = function (onError, thisArg) {
|
2928
|
-
return this.tap(noop,
|
3145
|
+
return this.tap(noop, typeof thisArg !== 'undefined' ? function (e) { onError.call(thisArg, e); } : onError);
|
2929
3146
|
};
|
2930
3147
|
|
2931
3148
|
/**
|
@@ -2936,7 +3153,7 @@
|
|
2936
3153
|
* @returns {Observable} The source sequence with the side-effecting behavior applied.
|
2937
3154
|
*/
|
2938
3155
|
observableProto.doOnCompleted = observableProto.tapOnCompleted = function (onCompleted, thisArg) {
|
2939
|
-
return this.tap(noop, null,
|
3156
|
+
return this.tap(noop, null, typeof thisArg !== 'undefined' ? function () { onCompleted.call(thisArg); } : onCompleted);
|
2940
3157
|
};
|
2941
3158
|
|
2942
3159
|
/**
|
@@ -2970,7 +3187,7 @@
|
|
2970
3187
|
* @deprecated use #finally or #ensure instead.
|
2971
3188
|
*/
|
2972
3189
|
observableProto.finallyAction = function (action) {
|
2973
|
-
deprecate('finallyAction', 'finally or ensure');
|
3190
|
+
//deprecate('finallyAction', 'finally or ensure');
|
2974
3191
|
return this.ensure(action);
|
2975
3192
|
};
|
2976
3193
|
|
@@ -2980,8 +3197,8 @@
|
|
2980
3197
|
*/
|
2981
3198
|
observableProto.ignoreElements = function () {
|
2982
3199
|
var source = this;
|
2983
|
-
return new AnonymousObservable(function (
|
2984
|
-
return source.subscribe(noop,
|
3200
|
+
return new AnonymousObservable(function (o) {
|
3201
|
+
return source.subscribe(noop, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
2985
3202
|
}, source);
|
2986
3203
|
};
|
2987
3204
|
|
@@ -3026,7 +3243,20 @@
|
|
3026
3243
|
observableProto.retry = function (retryCount) {
|
3027
3244
|
return enumerableRepeat(this, retryCount).catchError();
|
3028
3245
|
};
|
3029
|
-
|
3246
|
+
|
3247
|
+
/**
|
3248
|
+
* Repeats the source observable sequence upon error each time the notifier emits or until it successfully terminates.
|
3249
|
+
* if the notifier completes, the observable sequence completes.
|
3250
|
+
*
|
3251
|
+
* @example
|
3252
|
+
* var timer = Observable.timer(500);
|
3253
|
+
* var source = observable.retryWhen(timer);
|
3254
|
+
* @param {Observable} [notifier] An observable that triggers the retries or completes the observable with onNext or onCompleted respectively.
|
3255
|
+
* @returns {Observable} An observable sequence producing the elements of the given sequence repeatedly until it terminates successfully.
|
3256
|
+
*/
|
3257
|
+
observableProto.retryWhen = function (notifier) {
|
3258
|
+
return enumerableRepeat(this).catchErrorWhen(notifier);
|
3259
|
+
};
|
3030
3260
|
/**
|
3031
3261
|
* Applies an accumulator function over an observable sequence and returns each intermediate result. The optional seed value is used as the initial accumulator value.
|
3032
3262
|
* For aggregation behavior with no intermediate results, see Observable.aggregate.
|
@@ -3046,7 +3276,7 @@
|
|
3046
3276
|
} else {
|
3047
3277
|
accumulator = arguments[0];
|
3048
3278
|
}
|
3049
|
-
return new AnonymousObservable(function (
|
3279
|
+
return new AnonymousObservable(function (o) {
|
3050
3280
|
var hasAccumulation, accumulation, hasValue;
|
3051
3281
|
return source.subscribe (
|
3052
3282
|
function (x) {
|
@@ -3059,16 +3289,16 @@
|
|
3059
3289
|
hasAccumulation = true;
|
3060
3290
|
}
|
3061
3291
|
} catch (e) {
|
3062
|
-
|
3292
|
+
o.onError(e);
|
3063
3293
|
return;
|
3064
3294
|
}
|
3065
3295
|
|
3066
|
-
|
3296
|
+
o.onNext(accumulation);
|
3067
3297
|
},
|
3068
|
-
|
3298
|
+
function (e) { o.onError(e); },
|
3069
3299
|
function () {
|
3070
|
-
!hasValue && hasSeed &&
|
3071
|
-
|
3300
|
+
!hasValue && hasSeed && o.onNext(seed);
|
3301
|
+
o.onCompleted();
|
3072
3302
|
}
|
3073
3303
|
);
|
3074
3304
|
}, source);
|
@@ -3084,12 +3314,12 @@
|
|
3084
3314
|
*/
|
3085
3315
|
observableProto.skipLast = function (count) {
|
3086
3316
|
var source = this;
|
3087
|
-
return new AnonymousObservable(function (
|
3317
|
+
return new AnonymousObservable(function (o) {
|
3088
3318
|
var q = [];
|
3089
3319
|
return source.subscribe(function (x) {
|
3090
3320
|
q.push(x);
|
3091
|
-
q.length > count &&
|
3092
|
-
},
|
3321
|
+
q.length > count && o.onNext(q.shift());
|
3322
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3093
3323
|
}, source);
|
3094
3324
|
};
|
3095
3325
|
|
@@ -3109,8 +3339,8 @@
|
|
3109
3339
|
} else {
|
3110
3340
|
scheduler = immediateScheduler;
|
3111
3341
|
}
|
3112
|
-
|
3113
|
-
return enumerableOf([observableFromArray(
|
3342
|
+
for(var args = [], i = start, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
3343
|
+
return enumerableOf([observableFromArray(args, scheduler), this]).concat();
|
3114
3344
|
};
|
3115
3345
|
|
3116
3346
|
/**
|
@@ -3123,21 +3353,22 @@
|
|
3123
3353
|
*/
|
3124
3354
|
observableProto.takeLast = function (count) {
|
3125
3355
|
var source = this;
|
3126
|
-
return new AnonymousObservable(function (
|
3356
|
+
return new AnonymousObservable(function (o) {
|
3127
3357
|
var q = [];
|
3128
3358
|
return source.subscribe(function (x) {
|
3129
3359
|
q.push(x);
|
3130
3360
|
q.length > count && q.shift();
|
3131
|
-
},
|
3132
|
-
while (q.length > 0) {
|
3133
|
-
|
3361
|
+
}, function (e) { o.onError(e); }, function () {
|
3362
|
+
while (q.length > 0) { o.onNext(q.shift()); }
|
3363
|
+
o.onCompleted();
|
3134
3364
|
});
|
3135
3365
|
}, source);
|
3136
3366
|
};
|
3137
3367
|
|
3138
3368
|
function concatMap(source, selector, thisArg) {
|
3369
|
+
var selectorFunc = bindCallback(selector, thisArg, 3);
|
3139
3370
|
return source.map(function (x, i) {
|
3140
|
-
var result =
|
3371
|
+
var result = selectorFunc(x, i, source);
|
3141
3372
|
isPromise(result) && (result = observableFromPromise(result));
|
3142
3373
|
(isArrayLike(result) || isIterable(result)) && (result = observableFrom(result));
|
3143
3374
|
return result;
|
@@ -3180,42 +3411,102 @@
|
|
3180
3411
|
concatMap(this, function () { return selector; });
|
3181
3412
|
};
|
3182
3413
|
|
3414
|
+
var MapObservable = (function (__super__) {
|
3415
|
+
inherits(MapObservable, __super__);
|
3416
|
+
|
3417
|
+
function MapObservable(source, selector, thisArg) {
|
3418
|
+
this.source = source;
|
3419
|
+
this.selector = bindCallback(selector, thisArg, 3);
|
3420
|
+
__super__.call(this);
|
3421
|
+
}
|
3422
|
+
|
3423
|
+
MapObservable.prototype.internalMap = function (selector, thisArg) {
|
3424
|
+
var self = this;
|
3425
|
+
return new MapObservable(this.source, function (x, i, o) { return selector(self.selector(x, i, o), i, o); }, thisArg)
|
3426
|
+
};
|
3427
|
+
|
3428
|
+
MapObservable.prototype.subscribeCore = function (observer) {
|
3429
|
+
return this.source.subscribe(new MapObserver(observer, this.selector, this));
|
3430
|
+
};
|
3431
|
+
|
3432
|
+
return MapObservable;
|
3433
|
+
|
3434
|
+
}(ObservableBase));
|
3435
|
+
|
3436
|
+
function MapObserver(observer, selector, source) {
|
3437
|
+
this.observer = observer;
|
3438
|
+
this.selector = selector;
|
3439
|
+
this.source = source;
|
3440
|
+
this.i = 0;
|
3441
|
+
this.isStopped = false;
|
3442
|
+
}
|
3443
|
+
|
3444
|
+
MapObserver.prototype.onNext = function(x) {
|
3445
|
+
if (this.isStopped) { return; }
|
3446
|
+
try {
|
3447
|
+
var result = this.selector(x, this.i++, this.source);
|
3448
|
+
} catch (e) {
|
3449
|
+
return this.observer.onError(e);
|
3450
|
+
}
|
3451
|
+
this.observer.onNext(result);
|
3452
|
+
};
|
3453
|
+
MapObserver.prototype.onError = function (e) {
|
3454
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onError(e); }
|
3455
|
+
};
|
3456
|
+
MapObserver.prototype.onCompleted = function () {
|
3457
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onCompleted(); }
|
3458
|
+
};
|
3459
|
+
MapObserver.prototype.dispose = function() { this.isStopped = true; };
|
3460
|
+
MapObserver.prototype.fail = function (e) {
|
3461
|
+
if (!this.isStopped) {
|
3462
|
+
this.isStopped = true;
|
3463
|
+
this.observer.onError(e);
|
3464
|
+
return true;
|
3465
|
+
}
|
3466
|
+
|
3467
|
+
return false;
|
3468
|
+
};
|
3469
|
+
|
3183
3470
|
/**
|
3184
|
-
|
3185
|
-
|
3186
|
-
|
3187
|
-
|
3188
|
-
|
3189
|
-
observableProto.
|
3190
|
-
var selectorFn =
|
3191
|
-
|
3192
|
-
|
3193
|
-
|
3194
|
-
return source.subscribe(function (value) {
|
3195
|
-
var result;
|
3196
|
-
try {
|
3197
|
-
result = selectorFn.call(thisArg, value, count++, source);
|
3198
|
-
} catch (e) {
|
3199
|
-
observer.onError(e);
|
3200
|
-
return;
|
3201
|
-
}
|
3202
|
-
observer.onNext(result);
|
3203
|
-
}, observer.onError.bind(observer), observer.onCompleted.bind(observer));
|
3204
|
-
}, source);
|
3471
|
+
* Projects each element of an observable sequence into a new form by incorporating the element's index.
|
3472
|
+
* @param {Function} selector A transform function to apply to each source element; the second parameter of the function represents the index of the source element.
|
3473
|
+
* @param {Any} [thisArg] Object to use as this when executing callback.
|
3474
|
+
* @returns {Observable} An observable sequence whose elements are the result of invoking the transform function on each element of source.
|
3475
|
+
*/
|
3476
|
+
observableProto.map = observableProto.select = function (selector, thisArg) {
|
3477
|
+
var selectorFn = typeof selector === 'function' ? selector : function () { return selector; };
|
3478
|
+
return this instanceof MapObservable ?
|
3479
|
+
this.internalMap(selectorFn, thisArg) :
|
3480
|
+
new MapObservable(this, selectorFn, thisArg);
|
3205
3481
|
};
|
3206
3482
|
|
3207
3483
|
/**
|
3208
|
-
* Retrieves the value of a specified property from all elements in
|
3209
|
-
*
|
3484
|
+
* Retrieves the value of a specified nested property from all elements in
|
3485
|
+
* the Observable sequence.
|
3486
|
+
* @param {Arguments} arguments The nested properties to pluck.
|
3210
3487
|
* @returns {Observable} Returns a new Observable sequence of property values.
|
3211
3488
|
*/
|
3212
|
-
observableProto.pluck = function (
|
3213
|
-
|
3489
|
+
observableProto.pluck = function () {
|
3490
|
+
var args = arguments, len = arguments.length;
|
3491
|
+
if (len === 0) { throw new Error('List of properties cannot be empty.'); }
|
3492
|
+
return this.map(function (x) {
|
3493
|
+
var currentProp = x;
|
3494
|
+
for (var i = 0; i < len; i++) {
|
3495
|
+
var p = currentProp[args[i]];
|
3496
|
+
if (typeof p !== 'undefined') {
|
3497
|
+
currentProp = p;
|
3498
|
+
} else {
|
3499
|
+
return undefined;
|
3500
|
+
}
|
3501
|
+
}
|
3502
|
+
return currentProp;
|
3503
|
+
});
|
3214
3504
|
};
|
3215
3505
|
|
3216
3506
|
function flatMap(source, selector, thisArg) {
|
3507
|
+
var selectorFunc = bindCallback(selector, thisArg, 3);
|
3217
3508
|
return source.map(function (x, i) {
|
3218
|
-
var result =
|
3509
|
+
var result = selectorFunc(x, i, source);
|
3219
3510
|
isPromise(result) && (result = observableFromPromise(result));
|
3220
3511
|
(isArrayLike(result) || isIterable(result)) && (result = observableFrom(result));
|
3221
3512
|
return result;
|
@@ -3278,15 +3569,15 @@
|
|
3278
3569
|
observableProto.skip = function (count) {
|
3279
3570
|
if (count < 0) { throw new Error(argumentOutOfRange); }
|
3280
3571
|
var source = this;
|
3281
|
-
return new AnonymousObservable(function (
|
3572
|
+
return new AnonymousObservable(function (o) {
|
3282
3573
|
var remaining = count;
|
3283
3574
|
return source.subscribe(function (x) {
|
3284
3575
|
if (remaining <= 0) {
|
3285
|
-
|
3576
|
+
o.onNext(x);
|
3286
3577
|
} else {
|
3287
3578
|
remaining--;
|
3288
3579
|
}
|
3289
|
-
},
|
3580
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3290
3581
|
}, source);
|
3291
3582
|
};
|
3292
3583
|
|
@@ -3301,20 +3592,21 @@
|
|
3301
3592
|
* @returns {Observable} An observable sequence that contains the elements from the input sequence starting at the first element in the linear series that does not pass the test specified by predicate.
|
3302
3593
|
*/
|
3303
3594
|
observableProto.skipWhile = function (predicate, thisArg) {
|
3304
|
-
var source = this
|
3305
|
-
|
3595
|
+
var source = this,
|
3596
|
+
callback = bindCallback(predicate, thisArg, 3);
|
3597
|
+
return new AnonymousObservable(function (o) {
|
3306
3598
|
var i = 0, running = false;
|
3307
3599
|
return source.subscribe(function (x) {
|
3308
3600
|
if (!running) {
|
3309
3601
|
try {
|
3310
|
-
running = !
|
3602
|
+
running = !callback(x, i++, source);
|
3311
3603
|
} catch (e) {
|
3312
|
-
|
3604
|
+
o.onError(e);
|
3313
3605
|
return;
|
3314
3606
|
}
|
3315
3607
|
}
|
3316
|
-
running &&
|
3317
|
-
},
|
3608
|
+
running && o.onNext(x);
|
3609
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3318
3610
|
}, source);
|
3319
3611
|
};
|
3320
3612
|
|
@@ -3331,14 +3623,14 @@
|
|
3331
3623
|
if (count < 0) { throw new RangeError(argumentOutOfRange); }
|
3332
3624
|
if (count === 0) { return observableEmpty(scheduler); }
|
3333
3625
|
var source = this;
|
3334
|
-
return new AnonymousObservable(function (
|
3626
|
+
return new AnonymousObservable(function (o) {
|
3335
3627
|
var remaining = count;
|
3336
3628
|
return source.subscribe(function (x) {
|
3337
3629
|
if (remaining-- > 0) {
|
3338
|
-
|
3339
|
-
remaining === 0 &&
|
3630
|
+
o.onNext(x);
|
3631
|
+
remaining === 0 && o.onCompleted();
|
3340
3632
|
}
|
3341
|
-
},
|
3633
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3342
3634
|
}, source);
|
3343
3635
|
};
|
3344
3636
|
|
@@ -3350,52 +3642,92 @@
|
|
3350
3642
|
* @returns {Observable} An observable sequence that contains the elements from the input sequence that occur before the element at which the test no longer passes.
|
3351
3643
|
*/
|
3352
3644
|
observableProto.takeWhile = function (predicate, thisArg) {
|
3353
|
-
var source = this
|
3354
|
-
|
3645
|
+
var source = this,
|
3646
|
+
callback = bindCallback(predicate, thisArg, 3);
|
3647
|
+
return new AnonymousObservable(function (o) {
|
3355
3648
|
var i = 0, running = true;
|
3356
3649
|
return source.subscribe(function (x) {
|
3357
3650
|
if (running) {
|
3358
3651
|
try {
|
3359
|
-
running =
|
3652
|
+
running = callback(x, i++, source);
|
3360
3653
|
} catch (e) {
|
3361
|
-
|
3654
|
+
o.onError(e);
|
3362
3655
|
return;
|
3363
3656
|
}
|
3364
3657
|
if (running) {
|
3365
|
-
|
3658
|
+
o.onNext(x);
|
3366
3659
|
} else {
|
3367
|
-
|
3660
|
+
o.onCompleted();
|
3368
3661
|
}
|
3369
3662
|
}
|
3370
|
-
},
|
3663
|
+
}, function (e) { o.onError(e); }, function () { o.onCompleted(); });
|
3371
3664
|
}, source);
|
3372
3665
|
};
|
3373
3666
|
|
3667
|
+
var FilterObservable = (function (__super__) {
|
3668
|
+
inherits(FilterObservable, __super__);
|
3669
|
+
|
3670
|
+
function FilterObservable(source, predicate, thisArg) {
|
3671
|
+
this.source = source;
|
3672
|
+
this.predicate = bindCallback(predicate, thisArg, 3);
|
3673
|
+
__super__.call(this);
|
3674
|
+
}
|
3675
|
+
|
3676
|
+
FilterObservable.prototype.subscribeCore = function (observer) {
|
3677
|
+
return this.source.subscribe(new FilterObserver(observer, this.predicate, this));
|
3678
|
+
};
|
3679
|
+
|
3680
|
+
FilterObservable.prototype.internalFilter = function(predicate, thisArg) {
|
3681
|
+
var self = this;
|
3682
|
+
return new FilterObservable(this.source, function(x, i, o) { return self.predicate(x, i, o) && predicate(x, i, o); }, thisArg);
|
3683
|
+
};
|
3684
|
+
|
3685
|
+
return FilterObservable;
|
3686
|
+
|
3687
|
+
}(ObservableBase));
|
3688
|
+
|
3689
|
+
function FilterObserver(observer, predicate, source) {
|
3690
|
+
this.observer = observer;
|
3691
|
+
this.predicate = predicate;
|
3692
|
+
this.source = source;
|
3693
|
+
this.i = 0;
|
3694
|
+
this.isStopped = false;
|
3695
|
+
}
|
3696
|
+
|
3697
|
+
FilterObserver.prototype.onNext = function(x) {
|
3698
|
+
if (this.isStopped) { return; }
|
3699
|
+
try {
|
3700
|
+
var shouldYield = this.predicate(x, this.i++, this.source);
|
3701
|
+
} catch (e) {
|
3702
|
+
return this.observer.onError(e);
|
3703
|
+
}
|
3704
|
+
shouldYield && this.observer.onNext(x);
|
3705
|
+
};
|
3706
|
+
FilterObserver.prototype.onError = function (e) {
|
3707
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onError(e); }
|
3708
|
+
};
|
3709
|
+
FilterObserver.prototype.onCompleted = function () {
|
3710
|
+
if(!this.isStopped) { this.isStopped = true; this.observer.onCompleted(); }
|
3711
|
+
};
|
3712
|
+
FilterObserver.prototype.dispose = function() { this.isStopped = true; };
|
3713
|
+
FilterObserver.prototype.fail = function (e) {
|
3714
|
+
if (!this.isStopped) {
|
3715
|
+
this.isStopped = true;
|
3716
|
+
this.observer.onError(e);
|
3717
|
+
return true;
|
3718
|
+
}
|
3719
|
+
return false;
|
3720
|
+
};
|
3721
|
+
|
3374
3722
|
/**
|
3375
|
-
|
3376
|
-
|
3377
|
-
|
3378
|
-
|
3379
|
-
|
3380
|
-
|
3381
|
-
|
3382
|
-
|
3383
|
-
*/
|
3384
|
-
observableProto.where = observableProto.filter = function (predicate, thisArg) {
|
3385
|
-
var source = this;
|
3386
|
-
return new AnonymousObservable(function (observer) {
|
3387
|
-
var count = 0;
|
3388
|
-
return source.subscribe(function (value) {
|
3389
|
-
var shouldRun;
|
3390
|
-
try {
|
3391
|
-
shouldRun = predicate.call(thisArg, value, count++, source);
|
3392
|
-
} catch (e) {
|
3393
|
-
observer.onError(e);
|
3394
|
-
return;
|
3395
|
-
}
|
3396
|
-
shouldRun && observer.onNext(value);
|
3397
|
-
}, observer.onError.bind(observer), observer.onCompleted.bind(observer));
|
3398
|
-
}, source);
|
3723
|
+
* Filters the elements of an observable sequence based on a predicate by incorporating the element's index.
|
3724
|
+
* @param {Function} predicate A function to test each source element for a condition; the second parameter of the function represents the index of the source element.
|
3725
|
+
* @param {Any} [thisArg] Object to use as this when executing callback.
|
3726
|
+
* @returns {Observable} An observable sequence that contains elements from the input sequence that satisfy the condition.
|
3727
|
+
*/
|
3728
|
+
observableProto.filter = observableProto.where = function (predicate, thisArg) {
|
3729
|
+
return this instanceof FilterObservable ? this.internalFilter(predicate, thisArg) :
|
3730
|
+
new FilterObservable(this, predicate, thisArg);
|
3399
3731
|
};
|
3400
3732
|
|
3401
3733
|
/**
|
@@ -3408,7 +3740,7 @@
|
|
3408
3740
|
*/
|
3409
3741
|
Observable.fromCallback = function (func, context, selector) {
|
3410
3742
|
return function () {
|
3411
|
-
var args =
|
3743
|
+
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
3412
3744
|
|
3413
3745
|
return new AnonymousObservable(function (observer) {
|
3414
3746
|
function handler() {
|
@@ -3418,8 +3750,7 @@
|
|
3418
3750
|
try {
|
3419
3751
|
results = selector(results);
|
3420
3752
|
} catch (err) {
|
3421
|
-
observer.onError(err);
|
3422
|
-
return;
|
3753
|
+
return observer.onError(err);
|
3423
3754
|
}
|
3424
3755
|
|
3425
3756
|
observer.onNext(results);
|
@@ -3449,7 +3780,7 @@
|
|
3449
3780
|
*/
|
3450
3781
|
Observable.fromNodeCallback = function (func, context, selector) {
|
3451
3782
|
return function () {
|
3452
|
-
var args =
|
3783
|
+
for(var args = [], i = 0, len = arguments.length; i < len; i++) { args.push(arguments[i]); }
|
3453
3784
|
|
3454
3785
|
return new AnonymousObservable(function (observer) {
|
3455
3786
|
function handler(err) {
|
@@ -3458,14 +3789,13 @@
|
|
3458
3789
|
return;
|
3459
3790
|
}
|
3460
3791
|
|
3461
|
-
var results =
|
3792
|
+
for(var results = [], i = 1, len = arguments.length; i < len; i++) { results.push(arguments[i]); }
|
3462
3793
|
|
3463
3794
|
if (selector) {
|
3464
3795
|
try {
|
3465
3796
|
results = selector(results);
|
3466
3797
|
} catch (e) {
|
3467
|
-
observer.onError(e);
|
3468
|
-
return;
|
3798
|
+
return observer.onError(e);
|
3469
3799
|
}
|
3470
3800
|
observer.onNext(results);
|
3471
3801
|
} else {
|
@@ -3515,19 +3845,6 @@
|
|
3515
3845
|
*/
|
3516
3846
|
Rx.config.useNativeEvents = false;
|
3517
3847
|
|
3518
|
-
// Check for Angular/jQuery/Zepto support
|
3519
|
-
var jq =
|
3520
|
-
!!root.angular && !!angular.element ? angular.element :
|
3521
|
-
(!!root.jQuery ? root.jQuery : (
|
3522
|
-
!!root.Zepto ? root.Zepto : null));
|
3523
|
-
|
3524
|
-
// Check for ember
|
3525
|
-
var ember = !!root.Ember && typeof root.Ember.addListener === 'function';
|
3526
|
-
|
3527
|
-
// Check for Backbone.Marionette. Note if using AMD add Marionette as a dependency of rxjs
|
3528
|
-
// for proper loading order!
|
3529
|
-
var marionette = !!root.Backbone && !!root.Backbone.Marionette;
|
3530
|
-
|
3531
3848
|
/**
|
3532
3849
|
* Creates an observable sequence by adding an event listener to the matching DOMElement or each item in the NodeList.
|
3533
3850
|
*
|
@@ -3550,25 +3867,13 @@
|
|
3550
3867
|
|
3551
3868
|
// Use only if non-native events are allowed
|
3552
3869
|
if (!Rx.config.useNativeEvents) {
|
3553
|
-
|
3870
|
+
// Handles jq, Angular.js, Zepto, Marionette, Ember.js
|
3871
|
+
if (typeof element.on === 'function' && typeof element.off === 'function') {
|
3554
3872
|
return fromEventPattern(
|
3555
3873
|
function (h) { element.on(eventName, h); },
|
3556
3874
|
function (h) { element.off(eventName, h); },
|
3557
3875
|
selector);
|
3558
3876
|
}
|
3559
|
-
if (ember) {
|
3560
|
-
return fromEventPattern(
|
3561
|
-
function (h) { Ember.addListener(element, eventName, h); },
|
3562
|
-
function (h) { Ember.removeListener(element, eventName, h); },
|
3563
|
-
selector);
|
3564
|
-
}
|
3565
|
-
if (jq) {
|
3566
|
-
var $elem = jq(element);
|
3567
|
-
return fromEventPattern(
|
3568
|
-
function (h) { $elem.on(eventName, h); },
|
3569
|
-
function (h) { $elem.off(eventName, h); },
|
3570
|
-
selector);
|
3571
|
-
}
|
3572
3877
|
}
|
3573
3878
|
return new AnonymousObservable(function (observer) {
|
3574
3879
|
return createEventListener(
|
@@ -3843,7 +4148,7 @@
|
|
3843
4148
|
return subscription;
|
3844
4149
|
};
|
3845
4150
|
|
3846
|
-
__super__.call(this, subject.subscribe
|
4151
|
+
__super__.call(this, function (o) { return subject.subscribe(o); });
|
3847
4152
|
}
|
3848
4153
|
|
3849
4154
|
ConnectableObservable.prototype.refCount = function () {
|
@@ -3873,15 +4178,15 @@
|
|
3873
4178
|
|
3874
4179
|
function observableTimerDateAndPeriod(dueTime, period, scheduler) {
|
3875
4180
|
return new AnonymousObservable(function (observer) {
|
3876
|
-
var
|
3877
|
-
return scheduler.
|
4181
|
+
var d = dueTime, p = normalizeTime(period);
|
4182
|
+
return scheduler.scheduleRecursiveWithAbsoluteAndState(0, d, function (count, self) {
|
3878
4183
|
if (p > 0) {
|
3879
4184
|
var now = scheduler.now();
|
3880
4185
|
d = d + p;
|
3881
4186
|
d <= now && (d = now + p);
|
3882
4187
|
}
|
3883
|
-
observer.onNext(count
|
3884
|
-
self(d);
|
4188
|
+
observer.onNext(count);
|
4189
|
+
self(count + 1, d);
|
3885
4190
|
});
|
3886
4191
|
});
|
3887
4192
|
}
|
@@ -4086,7 +4391,7 @@
|
|
4086
4391
|
* @deprecated use #debounce or #throttleWithTimeout instead.
|
4087
4392
|
*/
|
4088
4393
|
observableProto.throttle = function(dueTime, scheduler) {
|
4089
|
-
deprecate('throttle', 'debounce or throttleWithTimeout');
|
4394
|
+
//deprecate('throttle', 'debounce or throttleWithTimeout');
|
4090
4395
|
return this.debounce(dueTime, scheduler);
|
4091
4396
|
};
|
4092
4397
|
|
@@ -4218,18 +4523,16 @@
|
|
4218
4523
|
var duration = +windowDuration || 0;
|
4219
4524
|
if (duration <= 0) { throw new RangeError('windowDuration cannot be less or equal zero.'); }
|
4220
4525
|
var source = this;
|
4221
|
-
return new AnonymousObservable(function (
|
4526
|
+
return new AnonymousObservable(function (o) {
|
4222
4527
|
var lastOnNext = 0;
|
4223
4528
|
return source.subscribe(
|
4224
4529
|
function (x) {
|
4225
4530
|
var now = scheduler.now();
|
4226
4531
|
if (lastOnNext === 0 || now - lastOnNext >= duration) {
|
4227
4532
|
lastOnNext = now;
|
4228
|
-
|
4533
|
+
o.onNext(x);
|
4229
4534
|
}
|
4230
|
-
},
|
4231
|
-
observer.onError.bind(observer),
|
4232
|
-
observer.onCompleted.bind(observer)
|
4535
|
+
},function (e) { o.onError(e); }, function () { o.onCompleted(); }
|
4233
4536
|
);
|
4234
4537
|
}, source);
|
4235
4538
|
};
|
@@ -4293,7 +4596,7 @@
|
|
4293
4596
|
};
|
4294
4597
|
|
4295
4598
|
function combineLatestSource(source, subject, resultSelector) {
|
4296
|
-
return new AnonymousObservable(function (
|
4599
|
+
return new AnonymousObservable(function (o) {
|
4297
4600
|
var hasValue = [false, false],
|
4298
4601
|
hasValueAll = false,
|
4299
4602
|
isDone = false,
|
@@ -4306,20 +4609,20 @@
|
|
4306
4609
|
hasValue[i] = true;
|
4307
4610
|
if (hasValueAll || (hasValueAll = hasValue.every(identity))) {
|
4308
4611
|
if (err) {
|
4309
|
-
|
4612
|
+
o.onError(err);
|
4310
4613
|
return;
|
4311
4614
|
}
|
4312
4615
|
|
4313
4616
|
try {
|
4314
4617
|
res = resultSelector.apply(null, values);
|
4315
4618
|
} catch (ex) {
|
4316
|
-
|
4619
|
+
o.onError(ex);
|
4317
4620
|
return;
|
4318
4621
|
}
|
4319
|
-
|
4622
|
+
o.onNext(res);
|
4320
4623
|
}
|
4321
4624
|
if (isDone && values[1]) {
|
4322
|
-
|
4625
|
+
o.onCompleted();
|
4323
4626
|
}
|
4324
4627
|
}
|
4325
4628
|
|
@@ -4330,20 +4633,20 @@
|
|
4330
4633
|
},
|
4331
4634
|
function (e) {
|
4332
4635
|
if (values[1]) {
|
4333
|
-
|
4636
|
+
o.onError(e);
|
4334
4637
|
} else {
|
4335
4638
|
err = e;
|
4336
4639
|
}
|
4337
4640
|
},
|
4338
4641
|
function () {
|
4339
4642
|
isDone = true;
|
4340
|
-
values[1] &&
|
4643
|
+
values[1] && o.onCompleted();
|
4341
4644
|
}),
|
4342
4645
|
subject.subscribe(
|
4343
4646
|
function (x) {
|
4344
4647
|
next(x, 1);
|
4345
4648
|
},
|
4346
|
-
|
4649
|
+
function (e) { o.onError(e); },
|
4347
4650
|
function () {
|
4348
4651
|
isDone = true;
|
4349
4652
|
next(true, 1);
|
@@ -4356,7 +4659,7 @@
|
|
4356
4659
|
|
4357
4660
|
inherits(PausableBufferedObservable, __super__);
|
4358
4661
|
|
4359
|
-
function subscribe(
|
4662
|
+
function subscribe(o) {
|
4360
4663
|
var q = [], previousShouldFire;
|
4361
4664
|
|
4362
4665
|
var subscription =
|
@@ -4373,14 +4676,14 @@
|
|
4373
4676
|
// change in shouldFire
|
4374
4677
|
if (results.shouldFire) {
|
4375
4678
|
while (q.length > 0) {
|
4376
|
-
|
4679
|
+
o.onNext(q.shift());
|
4377
4680
|
}
|
4378
4681
|
}
|
4379
4682
|
} else {
|
4380
4683
|
previousShouldFire = results.shouldFire;
|
4381
4684
|
// new data
|
4382
4685
|
if (results.shouldFire) {
|
4383
|
-
|
4686
|
+
o.onNext(results.data);
|
4384
4687
|
} else {
|
4385
4688
|
q.push(results.data);
|
4386
4689
|
}
|
@@ -4389,16 +4692,16 @@
|
|
4389
4692
|
function (err) {
|
4390
4693
|
// Empty buffer before sending error
|
4391
4694
|
while (q.length > 0) {
|
4392
|
-
|
4695
|
+
o.onNext(q.shift());
|
4393
4696
|
}
|
4394
|
-
|
4697
|
+
o.onError(err);
|
4395
4698
|
},
|
4396
4699
|
function () {
|
4397
4700
|
// Empty buffer before sending completion
|
4398
4701
|
while (q.length > 0) {
|
4399
|
-
|
4702
|
+
o.onNext(q.shift());
|
4400
4703
|
}
|
4401
|
-
|
4704
|
+
o.onCompleted();
|
4402
4705
|
}
|
4403
4706
|
);
|
4404
4707
|
return subscription;
|
@@ -4621,31 +4924,29 @@
|
|
4621
4924
|
disposableEmpty;
|
4622
4925
|
}
|
4623
4926
|
|
4927
|
+
function setDisposable(s, state) {
|
4928
|
+
var ado = state[0], subscribe = state[1];
|
4929
|
+
try {
|
4930
|
+
ado.setDisposable(fixSubscriber(subscribe(ado)));
|
4931
|
+
} catch (e) {
|
4932
|
+
if (!ado.fail(e)) { throw e; }
|
4933
|
+
}
|
4934
|
+
}
|
4935
|
+
|
4624
4936
|
function AnonymousObservable(subscribe, parent) {
|
4625
4937
|
this.source = parent;
|
4626
|
-
if (!(this instanceof AnonymousObservable)) {
|
4627
|
-
return new AnonymousObservable(subscribe);
|
4628
|
-
}
|
4629
4938
|
|
4630
4939
|
function s(observer) {
|
4631
|
-
var setDisposable = function () {
|
4632
|
-
try {
|
4633
|
-
autoDetachObserver.setDisposable(fixSubscriber(subscribe(autoDetachObserver)));
|
4634
|
-
} catch (e) {
|
4635
|
-
if (!autoDetachObserver.fail(e)) {
|
4636
|
-
throw e;
|
4637
|
-
}
|
4638
|
-
}
|
4639
|
-
};
|
4640
4940
|
|
4641
|
-
var
|
4941
|
+
var ado = new AutoDetachObserver(observer), state = [ado, subscribe];
|
4942
|
+
|
4642
4943
|
if (currentThreadScheduler.scheduleRequired()) {
|
4643
|
-
currentThreadScheduler.
|
4944
|
+
currentThreadScheduler.scheduleWithState(state, setDisposable);
|
4644
4945
|
} else {
|
4645
|
-
setDisposable();
|
4946
|
+
setDisposable(null, state);
|
4646
4947
|
}
|
4647
4948
|
|
4648
|
-
return
|
4949
|
+
return ado;
|
4649
4950
|
}
|
4650
4951
|
|
4651
4952
|
__super__.call(this, s);
|
@@ -4672,7 +4973,7 @@
|
|
4672
4973
|
this.observer.onNext(value);
|
4673
4974
|
noError = true;
|
4674
4975
|
} catch (e) {
|
4675
|
-
|
4976
|
+
return thrower(e);
|
4676
4977
|
} finally {
|
4677
4978
|
!noError && this.dispose();
|
4678
4979
|
}
|
@@ -4682,7 +4983,7 @@
|
|
4682
4983
|
try {
|
4683
4984
|
this.observer.onError(err);
|
4684
4985
|
} catch (e) {
|
4685
|
-
|
4986
|
+
return thrower(e);
|
4686
4987
|
} finally {
|
4687
4988
|
this.dispose();
|
4688
4989
|
}
|
@@ -4692,7 +4993,7 @@
|
|
4692
4993
|
try {
|
4693
4994
|
this.observer.onCompleted();
|
4694
4995
|
} catch (e) {
|
4695
|
-
|
4996
|
+
return thrower(e);
|
4696
4997
|
} finally {
|
4697
4998
|
this.dispose();
|
4698
4999
|
}
|
@@ -4709,130 +5010,121 @@
|
|
4709
5010
|
return AutoDetachObserver;
|
4710
5011
|
}(AbstractObserver));
|
4711
5012
|
|
4712
|
-
|
4713
|
-
|
4714
|
-
|
4715
|
-
|
4716
|
-
};
|
5013
|
+
var InnerSubscription = function (subject, observer) {
|
5014
|
+
this.subject = subject;
|
5015
|
+
this.observer = observer;
|
5016
|
+
};
|
4717
5017
|
|
4718
|
-
|
4719
|
-
|
4720
|
-
|
4721
|
-
|
4722
|
-
|
4723
|
-
|
4724
|
-
|
4725
|
-
|
4726
|
-
|
4727
|
-
|
4728
|
-
|
5018
|
+
InnerSubscription.prototype.dispose = function () {
|
5019
|
+
if (!this.subject.isDisposed && this.observer !== null) {
|
5020
|
+
var idx = this.subject.observers.indexOf(this.observer);
|
5021
|
+
this.subject.observers.splice(idx, 1);
|
5022
|
+
this.observer = null;
|
5023
|
+
}
|
5024
|
+
};
|
5025
|
+
|
5026
|
+
/**
|
5027
|
+
* Represents an object that is both an observable sequence as well as an observer.
|
5028
|
+
* Each notification is broadcasted to all subscribed observers.
|
5029
|
+
*/
|
5030
|
+
var Subject = Rx.Subject = (function (__super__) {
|
5031
|
+
function subscribe(observer) {
|
5032
|
+
checkDisposed(this);
|
5033
|
+
if (!this.isStopped) {
|
5034
|
+
this.observers.push(observer);
|
5035
|
+
return new InnerSubscription(this, observer);
|
5036
|
+
}
|
5037
|
+
if (this.hasError) {
|
5038
|
+
observer.onError(this.error);
|
5039
|
+
return disposableEmpty;
|
5040
|
+
}
|
5041
|
+
observer.onCompleted();
|
5042
|
+
return disposableEmpty;
|
5043
|
+
}
|
5044
|
+
|
5045
|
+
inherits(Subject, __super__);
|
4729
5046
|
|
4730
5047
|
/**
|
4731
|
-
*
|
4732
|
-
* Each notification is broadcasted to all subscribed observers.
|
5048
|
+
* Creates a subject.
|
4733
5049
|
*/
|
4734
|
-
|
4735
|
-
|
4736
|
-
|
4737
|
-
|
4738
|
-
|
4739
|
-
|
4740
|
-
|
4741
|
-
|
4742
|
-
|
4743
|
-
|
4744
|
-
|
4745
|
-
|
4746
|
-
|
4747
|
-
|
5050
|
+
function Subject() {
|
5051
|
+
__super__.call(this, subscribe);
|
5052
|
+
this.isDisposed = false,
|
5053
|
+
this.isStopped = false,
|
5054
|
+
this.observers = [];
|
5055
|
+
this.hasError = false;
|
5056
|
+
}
|
5057
|
+
|
5058
|
+
addProperties(Subject.prototype, Observer.prototype, {
|
5059
|
+
/**
|
5060
|
+
* Indicates whether the subject has observers subscribed to it.
|
5061
|
+
* @returns {Boolean} Indicates whether the subject has observers subscribed to it.
|
5062
|
+
*/
|
5063
|
+
hasObservers: function () { return this.observers.length > 0; },
|
5064
|
+
/**
|
5065
|
+
* Notifies all subscribed observers about the end of the sequence.
|
5066
|
+
*/
|
5067
|
+
onCompleted: function () {
|
5068
|
+
checkDisposed(this);
|
5069
|
+
if (!this.isStopped) {
|
5070
|
+
this.isStopped = true;
|
5071
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5072
|
+
os[i].onCompleted();
|
5073
|
+
}
|
4748
5074
|
|
4749
|
-
|
4750
|
-
|
4751
|
-
/**
|
4752
|
-
* Creates a subject.
|
4753
|
-
* @constructor
|
4754
|
-
*/
|
4755
|
-
function Subject() {
|
4756
|
-
_super.call(this, subscribe);
|
4757
|
-
this.isDisposed = false,
|
4758
|
-
this.isStopped = false,
|
4759
|
-
this.observers = [];
|
5075
|
+
this.observers.length = 0;
|
4760
5076
|
}
|
5077
|
+
},
|
5078
|
+
/**
|
5079
|
+
* Notifies all subscribed observers about the exception.
|
5080
|
+
* @param {Mixed} error The exception to send to all observers.
|
5081
|
+
*/
|
5082
|
+
onError: function (error) {
|
5083
|
+
checkDisposed(this);
|
5084
|
+
if (!this.isStopped) {
|
5085
|
+
this.isStopped = true;
|
5086
|
+
this.error = error;
|
5087
|
+
this.hasError = true;
|
5088
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5089
|
+
os[i].onError(error);
|
5090
|
+
}
|
4761
5091
|
|
4762
|
-
|
4763
|
-
|
4764
|
-
|
4765
|
-
|
4766
|
-
|
4767
|
-
|
4768
|
-
|
4769
|
-
|
4770
|
-
|
4771
|
-
|
4772
|
-
|
4773
|
-
|
4774
|
-
|
4775
|
-
|
4776
|
-
|
4777
|
-
|
4778
|
-
|
4779
|
-
|
4780
|
-
|
4781
|
-
|
4782
|
-
|
4783
|
-
|
4784
|
-
|
4785
|
-
/**
|
4786
|
-
* Notifies all subscribed observers about the exception.
|
4787
|
-
* @param {Mixed} error The exception to send to all observers.
|
4788
|
-
*/
|
4789
|
-
onError: function (exception) {
|
4790
|
-
checkDisposed.call(this);
|
4791
|
-
if (!this.isStopped) {
|
4792
|
-
var os = this.observers.slice(0);
|
4793
|
-
this.isStopped = true;
|
4794
|
-
this.exception = exception;
|
4795
|
-
for (var i = 0, len = os.length; i < len; i++) {
|
4796
|
-
os[i].onError(exception);
|
4797
|
-
}
|
4798
|
-
|
4799
|
-
this.observers = [];
|
4800
|
-
}
|
4801
|
-
},
|
4802
|
-
/**
|
4803
|
-
* Notifies all subscribed observers about the arrival of the specified element in the sequence.
|
4804
|
-
* @param {Mixed} value The value to send to all observers.
|
4805
|
-
*/
|
4806
|
-
onNext: function (value) {
|
4807
|
-
checkDisposed.call(this);
|
4808
|
-
if (!this.isStopped) {
|
4809
|
-
var os = this.observers.slice(0);
|
4810
|
-
for (var i = 0, len = os.length; i < len; i++) {
|
4811
|
-
os[i].onNext(value);
|
4812
|
-
}
|
4813
|
-
}
|
4814
|
-
},
|
4815
|
-
/**
|
4816
|
-
* Unsubscribe all observers and release resources.
|
4817
|
-
*/
|
4818
|
-
dispose: function () {
|
4819
|
-
this.isDisposed = true;
|
4820
|
-
this.observers = null;
|
4821
|
-
}
|
4822
|
-
});
|
5092
|
+
this.observers.length = 0;
|
5093
|
+
}
|
5094
|
+
},
|
5095
|
+
/**
|
5096
|
+
* Notifies all subscribed observers about the arrival of the specified element in the sequence.
|
5097
|
+
* @param {Mixed} value The value to send to all observers.
|
5098
|
+
*/
|
5099
|
+
onNext: function (value) {
|
5100
|
+
checkDisposed(this);
|
5101
|
+
if (!this.isStopped) {
|
5102
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5103
|
+
os[i].onNext(value);
|
5104
|
+
}
|
5105
|
+
}
|
5106
|
+
},
|
5107
|
+
/**
|
5108
|
+
* Unsubscribe all observers and release resources.
|
5109
|
+
*/
|
5110
|
+
dispose: function () {
|
5111
|
+
this.isDisposed = true;
|
5112
|
+
this.observers = null;
|
5113
|
+
}
|
5114
|
+
});
|
4823
5115
|
|
4824
|
-
|
4825
|
-
|
4826
|
-
|
4827
|
-
|
4828
|
-
|
4829
|
-
|
4830
|
-
|
4831
|
-
|
4832
|
-
|
5116
|
+
/**
|
5117
|
+
* Creates a subject from the specified observer and observable.
|
5118
|
+
* @param {Observer} observer The observer used to send messages to the subject.
|
5119
|
+
* @param {Observable} observable The observable used to subscribe to messages sent from the subject.
|
5120
|
+
* @returns {Subject} Subject implemented using the given observer and observable.
|
5121
|
+
*/
|
5122
|
+
Subject.create = function (observer, observable) {
|
5123
|
+
return new AnonymousSubject(observer, observable);
|
5124
|
+
};
|
4833
5125
|
|
4834
|
-
|
4835
|
-
|
5126
|
+
return Subject;
|
5127
|
+
}(Observable));
|
4836
5128
|
|
4837
5129
|
/**
|
4838
5130
|
* Represents the result of an asynchronous operation.
|
@@ -4841,21 +5133,17 @@
|
|
4841
5133
|
var AsyncSubject = Rx.AsyncSubject = (function (__super__) {
|
4842
5134
|
|
4843
5135
|
function subscribe(observer) {
|
4844
|
-
checkDisposed
|
5136
|
+
checkDisposed(this);
|
4845
5137
|
|
4846
5138
|
if (!this.isStopped) {
|
4847
5139
|
this.observers.push(observer);
|
4848
5140
|
return new InnerSubscription(this, observer);
|
4849
5141
|
}
|
4850
5142
|
|
4851
|
-
|
4852
|
-
|
4853
|
-
|
4854
|
-
|
4855
|
-
if (ex) {
|
4856
|
-
observer.onError(ex);
|
4857
|
-
} else if (hv) {
|
4858
|
-
observer.onNext(v);
|
5143
|
+
if (this.hasError) {
|
5144
|
+
observer.onError(this.error);
|
5145
|
+
} else if (this.hasValue) {
|
5146
|
+
observer.onNext(this.value);
|
4859
5147
|
observer.onCompleted();
|
4860
5148
|
} else {
|
4861
5149
|
observer.onCompleted();
|
@@ -4875,10 +5163,9 @@
|
|
4875
5163
|
|
4876
5164
|
this.isDisposed = false;
|
4877
5165
|
this.isStopped = false;
|
4878
|
-
this.value = null;
|
4879
5166
|
this.hasValue = false;
|
4880
5167
|
this.observers = [];
|
4881
|
-
this.
|
5168
|
+
this.hasError = false;
|
4882
5169
|
}
|
4883
5170
|
|
4884
5171
|
addProperties(AsyncSubject.prototype, Observer, {
|
@@ -4887,34 +5174,32 @@
|
|
4887
5174
|
* @returns {Boolean} Indicates whether the subject has observers subscribed to it.
|
4888
5175
|
*/
|
4889
5176
|
hasObservers: function () {
|
4890
|
-
checkDisposed
|
5177
|
+
checkDisposed(this);
|
4891
5178
|
return this.observers.length > 0;
|
4892
5179
|
},
|
4893
5180
|
/**
|
4894
5181
|
* Notifies all subscribed observers about the end of the sequence, also causing the last received value to be sent out (if any).
|
4895
5182
|
*/
|
4896
5183
|
onCompleted: function () {
|
4897
|
-
var
|
4898
|
-
checkDisposed
|
5184
|
+
var i, len;
|
5185
|
+
checkDisposed(this);
|
4899
5186
|
if (!this.isStopped) {
|
4900
5187
|
this.isStopped = true;
|
4901
|
-
var os = this.observers
|
4902
|
-
|
4903
|
-
|
4904
|
-
|
4905
|
-
|
4906
|
-
|
4907
|
-
o = os[i];
|
4908
|
-
o.onNext(v);
|
5188
|
+
var os = cloneArray(this.observers), len = os.length;
|
5189
|
+
|
5190
|
+
if (this.hasValue) {
|
5191
|
+
for (i = 0; i < len; i++) {
|
5192
|
+
var o = os[i];
|
5193
|
+
o.onNext(this.value);
|
4909
5194
|
o.onCompleted();
|
4910
5195
|
}
|
4911
5196
|
} else {
|
4912
|
-
for (i = 0
|
5197
|
+
for (i = 0; i < len; i++) {
|
4913
5198
|
os[i].onCompleted();
|
4914
5199
|
}
|
4915
5200
|
}
|
4916
5201
|
|
4917
|
-
this.observers =
|
5202
|
+
this.observers.length = 0;
|
4918
5203
|
}
|
4919
5204
|
},
|
4920
5205
|
/**
|
@@ -4922,17 +5207,17 @@
|
|
4922
5207
|
* @param {Mixed} error The Error to send to all observers.
|
4923
5208
|
*/
|
4924
5209
|
onError: function (error) {
|
4925
|
-
checkDisposed
|
5210
|
+
checkDisposed(this);
|
4926
5211
|
if (!this.isStopped) {
|
4927
|
-
var os = this.observers.slice(0);
|
4928
5212
|
this.isStopped = true;
|
4929
|
-
this.
|
5213
|
+
this.hasError = true;
|
5214
|
+
this.error = error;
|
4930
5215
|
|
4931
|
-
for (var i = 0, len = os.length; i < len; i++) {
|
5216
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
4932
5217
|
os[i].onError(error);
|
4933
5218
|
}
|
4934
5219
|
|
4935
|
-
this.observers =
|
5220
|
+
this.observers.length = 0;
|
4936
5221
|
}
|
4937
5222
|
},
|
4938
5223
|
/**
|
@@ -4940,7 +5225,7 @@
|
|
4940
5225
|
* @param {Mixed} value The value to store in the subject.
|
4941
5226
|
*/
|
4942
5227
|
onNext: function (value) {
|
4943
|
-
checkDisposed
|
5228
|
+
checkDisposed(this);
|
4944
5229
|
if (this.isStopped) { return; }
|
4945
5230
|
this.value = value;
|
4946
5231
|
this.hasValue = true;
|
@@ -4962,18 +5247,22 @@
|
|
4962
5247
|
var AnonymousSubject = Rx.AnonymousSubject = (function (__super__) {
|
4963
5248
|
inherits(AnonymousSubject, __super__);
|
4964
5249
|
|
5250
|
+
function subscribe(observer) {
|
5251
|
+
return this.observable.subscribe(observer);
|
5252
|
+
}
|
5253
|
+
|
4965
5254
|
function AnonymousSubject(observer, observable) {
|
4966
5255
|
this.observer = observer;
|
4967
5256
|
this.observable = observable;
|
4968
|
-
__super__.call(this,
|
5257
|
+
__super__.call(this, subscribe);
|
4969
5258
|
}
|
4970
5259
|
|
4971
|
-
addProperties(AnonymousSubject.prototype, Observer, {
|
5260
|
+
addProperties(AnonymousSubject.prototype, Observer.prototype, {
|
4972
5261
|
onCompleted: function () {
|
4973
5262
|
this.observer.onCompleted();
|
4974
5263
|
},
|
4975
|
-
onError: function (
|
4976
|
-
this.observer.onError(
|
5264
|
+
onError: function (error) {
|
5265
|
+
this.observer.onError(error);
|
4977
5266
|
},
|
4978
5267
|
onNext: function (value) {
|
4979
5268
|
this.observer.onNext(value);
|
@@ -4989,15 +5278,14 @@
|
|
4989
5278
|
*/
|
4990
5279
|
var BehaviorSubject = Rx.BehaviorSubject = (function (__super__) {
|
4991
5280
|
function subscribe(observer) {
|
4992
|
-
checkDisposed
|
5281
|
+
checkDisposed(this);
|
4993
5282
|
if (!this.isStopped) {
|
4994
5283
|
this.observers.push(observer);
|
4995
5284
|
observer.onNext(this.value);
|
4996
5285
|
return new InnerSubscription(this, observer);
|
4997
5286
|
}
|
4998
|
-
|
4999
|
-
|
5000
|
-
observer.onError(ex);
|
5287
|
+
if (this.hasError) {
|
5288
|
+
observer.onError(this.error);
|
5001
5289
|
} else {
|
5002
5290
|
observer.onCompleted();
|
5003
5291
|
}
|
@@ -5007,7 +5295,6 @@
|
|
5007
5295
|
inherits(BehaviorSubject, __super__);
|
5008
5296
|
|
5009
5297
|
/**
|
5010
|
-
* @constructor
|
5011
5298
|
* Initializes a new instance of the BehaviorSubject class which creates a subject that caches its last value and starts with the specified value.
|
5012
5299
|
* @param {Mixed} value Initial value sent to observers when no other value has been received by the subject yet.
|
5013
5300
|
*/
|
@@ -5017,7 +5304,7 @@
|
|
5017
5304
|
this.observers = [],
|
5018
5305
|
this.isDisposed = false,
|
5019
5306
|
this.isStopped = false,
|
5020
|
-
this.
|
5307
|
+
this.hasError = false;
|
5021
5308
|
}
|
5022
5309
|
|
5023
5310
|
addProperties(BehaviorSubject.prototype, Observer, {
|
@@ -5025,47 +5312,46 @@
|
|
5025
5312
|
* Indicates whether the subject has observers subscribed to it.
|
5026
5313
|
* @returns {Boolean} Indicates whether the subject has observers subscribed to it.
|
5027
5314
|
*/
|
5028
|
-
hasObservers: function () {
|
5029
|
-
return this.observers.length > 0;
|
5030
|
-
},
|
5315
|
+
hasObservers: function () { return this.observers.length > 0; },
|
5031
5316
|
/**
|
5032
5317
|
* Notifies all subscribed observers about the end of the sequence.
|
5033
5318
|
*/
|
5034
5319
|
onCompleted: function () {
|
5035
|
-
checkDisposed
|
5320
|
+
checkDisposed(this);
|
5036
5321
|
if (this.isStopped) { return; }
|
5037
5322
|
this.isStopped = true;
|
5038
|
-
for (var i = 0, os = this.observers
|
5323
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5039
5324
|
os[i].onCompleted();
|
5040
5325
|
}
|
5041
5326
|
|
5042
|
-
this.observers =
|
5327
|
+
this.observers.length = 0;
|
5043
5328
|
},
|
5044
5329
|
/**
|
5045
5330
|
* Notifies all subscribed observers about the exception.
|
5046
5331
|
* @param {Mixed} error The exception to send to all observers.
|
5047
5332
|
*/
|
5048
5333
|
onError: function (error) {
|
5049
|
-
checkDisposed
|
5334
|
+
checkDisposed(this);
|
5050
5335
|
if (this.isStopped) { return; }
|
5051
5336
|
this.isStopped = true;
|
5052
|
-
this.
|
5337
|
+
this.hasError = true;
|
5338
|
+
this.error = error;
|
5053
5339
|
|
5054
|
-
for (var i = 0, os = this.observers
|
5340
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5055
5341
|
os[i].onError(error);
|
5056
5342
|
}
|
5057
5343
|
|
5058
|
-
this.observers =
|
5344
|
+
this.observers.length = 0;
|
5059
5345
|
},
|
5060
5346
|
/**
|
5061
5347
|
* Notifies all subscribed observers about the arrival of the specified element in the sequence.
|
5062
5348
|
* @param {Mixed} value The value to send to all observers.
|
5063
5349
|
*/
|
5064
5350
|
onNext: function (value) {
|
5065
|
-
checkDisposed
|
5351
|
+
checkDisposed(this);
|
5066
5352
|
if (this.isStopped) { return; }
|
5067
5353
|
this.value = value;
|
5068
|
-
for (var i = 0, os = this.observers
|
5354
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5069
5355
|
os[i].onNext(value);
|
5070
5356
|
}
|
5071
5357
|
},
|
@@ -5099,7 +5385,7 @@
|
|
5099
5385
|
function subscribe(observer) {
|
5100
5386
|
var so = new ScheduledObserver(this.scheduler, observer),
|
5101
5387
|
subscription = createRemovableDisposable(this, so);
|
5102
|
-
checkDisposed
|
5388
|
+
checkDisposed(this);
|
5103
5389
|
this._trim(this.scheduler.now());
|
5104
5390
|
this.observers.push(so);
|
5105
5391
|
|
@@ -5138,7 +5424,7 @@
|
|
5138
5424
|
__super__.call(this, subscribe);
|
5139
5425
|
}
|
5140
5426
|
|
5141
|
-
addProperties(ReplaySubject.prototype, Observer, {
|
5427
|
+
addProperties(ReplaySubject.prototype, Observer.prototype, {
|
5142
5428
|
/**
|
5143
5429
|
* Indicates whether the subject has observers subscribed to it.
|
5144
5430
|
* @returns {Boolean} Indicates whether the subject has observers subscribed to it.
|
@@ -5159,15 +5445,14 @@
|
|
5159
5445
|
* @param {Mixed} value The value to send to all observers.
|
5160
5446
|
*/
|
5161
5447
|
onNext: function (value) {
|
5162
|
-
checkDisposed
|
5448
|
+
checkDisposed(this);
|
5163
5449
|
if (this.isStopped) { return; }
|
5164
5450
|
var now = this.scheduler.now();
|
5165
5451
|
this.q.push({ interval: now, value: value });
|
5166
5452
|
this._trim(now);
|
5167
5453
|
|
5168
|
-
var
|
5169
|
-
|
5170
|
-
var observer = o[i];
|
5454
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5455
|
+
var observer = os[i];
|
5171
5456
|
observer.onNext(value);
|
5172
5457
|
observer.ensureActive();
|
5173
5458
|
}
|
@@ -5177,37 +5462,35 @@
|
|
5177
5462
|
* @param {Mixed} error The exception to send to all observers.
|
5178
5463
|
*/
|
5179
5464
|
onError: function (error) {
|
5180
|
-
checkDisposed
|
5465
|
+
checkDisposed(this);
|
5181
5466
|
if (this.isStopped) { return; }
|
5182
5467
|
this.isStopped = true;
|
5183
5468
|
this.error = error;
|
5184
5469
|
this.hasError = true;
|
5185
5470
|
var now = this.scheduler.now();
|
5186
5471
|
this._trim(now);
|
5187
|
-
var
|
5188
|
-
|
5189
|
-
var observer = o[i];
|
5472
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5473
|
+
var observer = os[i];
|
5190
5474
|
observer.onError(error);
|
5191
5475
|
observer.ensureActive();
|
5192
5476
|
}
|
5193
|
-
this.observers =
|
5477
|
+
this.observers.length = 0;
|
5194
5478
|
},
|
5195
5479
|
/**
|
5196
5480
|
* Notifies all subscribed observers about the end of the sequence.
|
5197
5481
|
*/
|
5198
5482
|
onCompleted: function () {
|
5199
|
-
checkDisposed
|
5483
|
+
checkDisposed(this);
|
5200
5484
|
if (this.isStopped) { return; }
|
5201
5485
|
this.isStopped = true;
|
5202
5486
|
var now = this.scheduler.now();
|
5203
5487
|
this._trim(now);
|
5204
|
-
var
|
5205
|
-
|
5206
|
-
var observer = o[i];
|
5488
|
+
for (var i = 0, os = cloneArray(this.observers), len = os.length; i < len; i++) {
|
5489
|
+
var observer = os[i];
|
5207
5490
|
observer.onCompleted();
|
5208
5491
|
observer.ensureActive();
|
5209
5492
|
}
|
5210
|
-
this.observers =
|
5493
|
+
this.observers.length = 0;
|
5211
5494
|
},
|
5212
5495
|
/**
|
5213
5496
|
* Unsubscribe all observers and release resources.
|
@@ -5221,23 +5504,46 @@
|
|
5221
5504
|
return ReplaySubject;
|
5222
5505
|
}(Observable));
|
5223
5506
|
|
5224
|
-
|
5225
|
-
|
5507
|
+
/**
|
5508
|
+
* Used to pause and resume streams.
|
5509
|
+
*/
|
5510
|
+
Rx.Pauser = (function (__super__) {
|
5511
|
+
inherits(Pauser, __super__);
|
5226
5512
|
|
5227
|
-
|
5228
|
-
|
5229
|
-
|
5230
|
-
|
5231
|
-
|
5232
|
-
|
5233
|
-
|
5234
|
-
|
5235
|
-
|
5236
|
-
|
5513
|
+
function Pauser() {
|
5514
|
+
__super__.call(this);
|
5515
|
+
}
|
5516
|
+
|
5517
|
+
/**
|
5518
|
+
* Pauses the underlying sequence.
|
5519
|
+
*/
|
5520
|
+
Pauser.prototype.pause = function () { this.onNext(false); };
|
5521
|
+
|
5522
|
+
/**
|
5523
|
+
* Resumes the underlying sequence.
|
5524
|
+
*/
|
5525
|
+
Pauser.prototype.resume = function () { this.onNext(true); };
|
5526
|
+
|
5527
|
+
return Pauser;
|
5528
|
+
}(Subject));
|
5529
|
+
|
5530
|
+
if (typeof define == 'function' && typeof define.amd == 'object' && define.amd) {
|
5531
|
+
root.Rx = Rx;
|
5532
|
+
|
5533
|
+
define(function() {
|
5534
|
+
return Rx;
|
5535
|
+
});
|
5536
|
+
} else if (freeExports && freeModule) {
|
5537
|
+
// in Node.js or RingoJS
|
5538
|
+
if (moduleExports) {
|
5539
|
+
(freeModule.exports = Rx).Rx = Rx;
|
5237
5540
|
} else {
|
5238
|
-
|
5239
|
-
root.Rx = Rx;
|
5541
|
+
freeExports.Rx = Rx;
|
5240
5542
|
}
|
5543
|
+
} else {
|
5544
|
+
// in a browser or Rhino
|
5545
|
+
root.Rx = Rx;
|
5546
|
+
}
|
5241
5547
|
|
5242
5548
|
// All code before this point will be filtered from stack traces.
|
5243
5549
|
var rEndingLine = captureLine();
|