made with requirebin
Created
October 31, 2015 00:33
-
-
Save jessehattabaugh/96d2ac22c8ea1e4c1745 to your computer and use it in GitHub Desktop.
requirebin sketch
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/** | |
* Model | |
*/ | |
var rx = require('rx'); | |
var initialState = {todos: [ | |
'get milk' | |
]}; | |
var el = document.getElementById('app'); | |
var events = rx.Observable.merge( | |
['keyup', 'submit'].map(function (ev) { | |
return rx.Observable.fromEvent(el, ev); | |
}) | |
); | |
var store = events.scan(function (prev, ev, i) { | |
//console.dir(ev); | |
if (ev.type == 'submit') ev.preventDefault(); | |
return { | |
input: ev.type == 'keyup' ? ev.target.value : prev.input, | |
todos: ev.type == 'submit' ? prev.todos.concat([prev.input]) : prev.todos | |
}; | |
}, initialState); | |
/** | |
* View | |
*/ | |
var h = require('virtual-dom/h'); | |
var diff = require('virtual-dom/diff'); | |
var patch = require('virtual-dom/patch'); | |
var createElement = require('virtual-dom/create-element'); | |
function render(state) { | |
//console.dir(state); | |
console.info('rendering'); | |
var todos = state.todos.map(function (todo) { | |
return h('li', todo); | |
}); | |
return h('form', [ | |
h('ol', todos), | |
h('input'), | |
h('button', 'add') | |
]); | |
} | |
var tree = render(initialState); | |
var rootNode = createElement(tree); | |
el.appendChild(rootNode); | |
store.subscribe(function (state) { | |
var newTree = render(state); | |
var patches = diff(tree, newTree); | |
rootNode = patch(rootNode, patches); | |
tree = newTree; | |
}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){module.exports=function split(undef){var nativeSplit=String.prototype.split,compliantExecNpcg=/()??/.exec("")[1]===undef,self;self=function(str,separator,limit){if(Object.prototype.toString.call(separator)!=="[object RegExp]"){return nativeSplit.call(str,separator,limit)}var output=[],flags=(separator.ignoreCase?"i":"")+(separator.multiline?"m":"")+(separator.extended?"x":"")+(separator.sticky?"y":""),lastLastIndex=0,separator=new RegExp(separator.source,flags+"g"),separator2,match,lastIndex,lastLength;str+="";if(!compliantExecNpcg){separator2=new RegExp("^"+separator.source+"$(?!\\s)",flags)}limit=limit===undef?-1>>>0:limit>>>0;while(match=separator.exec(str)){lastIndex=match.index+match[0].length;if(lastIndex>lastLastIndex){output.push(str.slice(lastLastIndex,match.index));if(!compliantExecNpcg&&match.length>1){match[0].replace(separator2,function(){for(var i=1;i<arguments.length-2;i++){if(arguments[i]===undef){match[i]=undef}}})}if(match.length>1&&match.index<str.length){Array.prototype.push.apply(output,match.slice(1))}lastLength=match[0].length;lastLastIndex=lastIndex;if(output.length>=limit){break}}if(separator.lastIndex===match.index){separator.lastIndex++}}if(lastLastIndex===str.length){if(lastLength||!separator.test("")){output.push("")}}else{output.push(str.slice(lastLastIndex))}return output.length>limit?output.slice(0,limit):output};return self}()},{}],2:[function(require,module,exports){"use strict";var OneVersionConstraint=require("individual/one-version");var MY_VERSION="7";OneVersionConstraint("ev-store",MY_VERSION);var hashKey="__EV_STORE_KEY@"+MY_VERSION;module.exports=EvStore;function EvStore(elem){var hash=elem[hashKey];if(!hash){hash=elem[hashKey]={}}return hash}},{"individual/one-version":4}],3:[function(require,module,exports){(function(global){"use strict";var root=typeof window!=="undefined"?window:typeof global!=="undefined"?global:{};module.exports=Individual;function Individual(key,value){if(key in root){return root[key]}root[key]=value;return value}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{}],4:[function(require,module,exports){"use strict";var Individual=require("./index.js");module.exports=OneVersion;function OneVersion(moduleName,version,defaultValue){var key="__INDIVIDUAL_ONE_VERSION_"+moduleName;var enforceKey=key+"_ENFORCE_SINGLETON";var versionValue=Individual(enforceKey,version);if(versionValue!==version){throw new Error("Can only have one copy of "+moduleName+".\n"+"You already have version "+versionValue+" installed.\n"+"This means you cannot install version "+version)}return Individual(key,defaultValue)}},{"./index.js":3}],5:[function(require,module,exports){var nativeIsArray=Array.isArray;var toString=Object.prototype.toString;module.exports=nativeIsArray||isArray;function isArray(obj){return toString.call(obj)==="[object Array]"}},{}],6:[function(require,module,exports){"use strict";var EvStore=require("ev-store");module.exports=EvHook;function EvHook(value){if(!(this instanceof EvHook)){return new EvHook(value)}this.value=value}EvHook.prototype.hook=function(node,propertyName){var es=EvStore(node);var propName=propertyName.substr(3);es[propName]=this.value};EvHook.prototype.unhook=function(node,propertyName){var es=EvStore(node);var propName=propertyName.substr(3);es[propName]=undefined}},{"ev-store":2}],7:[function(require,module,exports){"use strict";module.exports=SoftSetHook;function SoftSetHook(value){if(!(this instanceof SoftSetHook)){return new SoftSetHook(value)}this.value=value}SoftSetHook.prototype.hook=function(node,propertyName){if(node[propertyName]!==this.value){node[propertyName]=this.value}}},{}],8:[function(require,module,exports){"use strict";var isArray=require("x-is-array");var VNode=require("../vnode/vnode.js");var VText=require("../vnode/vtext.js");var isVNode=require("../vnode/is-vnode");var isVText=require("../vnode/is-vtext");var isWidget=require("../vnode/is-widget");var isHook=require("../vnode/is-vhook");var isVThunk=require("../vnode/is-thunk");var parseTag=require("./parse-tag.js");var softSetHook=require("./hooks/soft-set-hook.js");var evHook=require("./hooks/ev-hook.js");module.exports=h;function h(tagName,properties,children){var childNodes=[];var tag,props,key,namespace;if(!children&&isChildren(properties)){children=properties;props={}}props=props||properties||{};tag=parseTag(tagName,props);if(props.hasOwnProperty("key")){key=props.key;props.key=undefined}if(props.hasOwnProperty("namespace")){namespace=props.namespace;props.namespace=undefined}if(tag==="INPUT"&&!namespace&&props.hasOwnProperty("value")&&props.value!==undefined&&!isHook(props.value)){props.value=softSetHook(props.value)}transformProperties(props);if(children!==undefined&&children!==null){addChild(children,childNodes,tag,props)}return new VNode(tag,props,childNodes,key,namespace)}function addChild(c,childNodes,tag,props){if(typeof c==="string"){childNodes.push(new VText(c))}else if(typeof c==="number"){childNodes.push(new VText(String(c)))}else if(isChild(c)){childNodes.push(c)}else if(isArray(c)){for(var i=0;i<c.length;i++){addChild(c[i],childNodes,tag,props)}}else if(c===null||c===undefined){return}else{throw UnexpectedVirtualElement({foreignObject:c,parentVnode:{tagName:tag,properties:props}})}}function transformProperties(props){for(var propName in props){if(props.hasOwnProperty(propName)){var value=props[propName];if(isHook(value)){continue}if(propName.substr(0,3)==="ev-"){props[propName]=evHook(value)}}}}function isChild(x){return isVNode(x)||isVText(x)||isWidget(x)||isVThunk(x)}function isChildren(x){return typeof x==="string"||isArray(x)||isChild(x)}function UnexpectedVirtualElement(data){var err=new Error;err.type="virtual-hyperscript.unexpected.virtual-element";err.message="Unexpected virtual child passed to h().\n"+"Expected a VNode / Vthunk / VWidget / string but:\n"+"got:\n"+errorString(data.foreignObject)+".\n"+"The parent vnode is:\n"+errorString(data.parentVnode);"\n"+"Suggested fix: change your `h(..., [ ... ])` callsite.";err.foreignObject=data.foreignObject;err.parentVnode=data.parentVnode;return err}function errorString(obj){try{return JSON.stringify(obj,null," ")}catch(e){return String(obj)}}},{"../vnode/is-thunk":10,"../vnode/is-vhook":11,"../vnode/is-vnode":12,"../vnode/is-vtext":13,"../vnode/is-widget":14,"../vnode/vnode.js":16,"../vnode/vtext.js":17,"./hooks/ev-hook.js":6,"./hooks/soft-set-hook.js":7,"./parse-tag.js":9,"x-is-array":5}],9:[function(require,module,exports){"use strict";var split=require("browser-split");var classIdSplit=/([\.#]?[a-zA-Z0-9\u007F-\uFFFF_:-]+)/;var notClassId=/^\.|#/;module.exports=parseTag;function parseTag(tag,props){if(!tag){return"DIV"}var noId=!props.hasOwnProperty("id");var tagParts=split(tag,classIdSplit);var tagName=null;if(notClassId.test(tagParts[1])){tagName="DIV"}var classes,part,type,i;for(i=0;i<tagParts.length;i++){part=tagParts[i];if(!part){continue}type=part.charAt(0);if(!tagName){tagName=part}else if(type==="."){classes=classes||[];classes.push(part.substring(1,part.length))}else if(type==="#"&&noId){props.id=part.substring(1,part.length)}}if(classes){if(props.className){classes.push(props.className)}props.className=classes.join(" ")}return props.namespace?tagName:tagName.toUpperCase()}},{"browser-split":1}],10:[function(require,module,exports){module.exports=isThunk;function isThunk(t){return t&&t.type==="Thunk"}},{}],11:[function(require,module,exports){module.exports=isHook;function isHook(hook){return hook&&(typeof hook.hook==="function"&&!hook.hasOwnProperty("hook")||typeof hook.unhook==="function"&&!hook.hasOwnProperty("unhook"))}},{}],12:[function(require,module,exports){var version=require("./version");module.exports=isVirtualNode;function isVirtualNode(x){return x&&x.type==="VirtualNode"&&x.version===version}},{"./version":15}],13:[function(require,module,exports){var version=require("./version");module.exports=isVirtualText;function isVirtualText(x){return x&&x.type==="VirtualText"&&x.version===version}},{"./version":15}],14:[function(require,module,exports){module.exports=isWidget;function isWidget(w){return w&&w.type==="Widget"}},{}],15:[function(require,module,exports){module.exports="2"},{}],16:[function(require,module,exports){var version=require("./version");var isVNode=require("./is-vnode");var isWidget=require("./is-widget");var isThunk=require("./is-thunk");var isVHook=require("./is-vhook");module.exports=VirtualNode;var noProperties={};var noChildren=[];function VirtualNode(tagName,properties,children,key,namespace){this.tagName=tagName;this.properties=properties||noProperties;this.children=children||noChildren;this.key=key!=null?String(key):undefined;this.namespace=typeof namespace==="string"?namespace:null;var count=children&&children.length||0;var descendants=0;var hasWidgets=false;var hasThunks=false;var descendantHooks=false;var hooks;for(var propName in properties){if(properties.hasOwnProperty(propName)){var property=properties[propName];if(isVHook(property)&&property.unhook){if(!hooks){hooks={}}hooks[propName]=property}}}for(var i=0;i<count;i++){var child=children[i];if(isVNode(child)){descendants+=child.count||0;if(!hasWidgets&&child.hasWidgets){hasWidgets=true}if(!hasThunks&&child.hasThunks){hasThunks=true}if(!descendantHooks&&(child.hooks||child.descendantHooks)){descendantHooks=true}}else if(!hasWidgets&&isWidget(child)){if(typeof child.destroy==="function"){hasWidgets=true}}else if(!hasThunks&&isThunk(child)){hasThunks=true}}this.count=count+descendants;this.hasWidgets=hasWidgets;this.hasThunks=hasThunks;this.hooks=hooks;this.descendantHooks=descendantHooks}VirtualNode.prototype.version=version;VirtualNode.prototype.type="VirtualNode"},{"./is-thunk":10,"./is-vhook":11,"./is-vnode":12,"./is-widget":14,"./version":15}],17:[function(require,module,exports){var version=require("./version");module.exports=VirtualText;function VirtualText(text){this.text=String(text)}VirtualText.prototype.version=version;VirtualText.prototype.type="VirtualText"},{"./version":15}],"virtual-dom/h":[function(require,module,exports){var h=require("./virtual-hyperscript/index.js");module.exports=h},{"./virtual-hyperscript/index.js":8}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){"use strict";module.exports=function isObject(x){return typeof x==="object"&&x!==null}},{}],2:[function(require,module,exports){var nativeIsArray=Array.isArray;var toString=Object.prototype.toString;module.exports=nativeIsArray||isArray;function isArray(obj){return toString.call(obj)==="[object Array]"}},{}],3:[function(require,module,exports){var isVNode=require("./is-vnode");var isVText=require("./is-vtext");var isWidget=require("./is-widget");var isThunk=require("./is-thunk");module.exports=handleThunk;function handleThunk(a,b){var renderedA=a;var renderedB=b;if(isThunk(b)){renderedB=renderThunk(b,a)}if(isThunk(a)){renderedA=renderThunk(a,null)}return{a:renderedA,b:renderedB}}function renderThunk(thunk,previous){var renderedThunk=thunk.vnode;if(!renderedThunk){renderedThunk=thunk.vnode=thunk.render(previous)}if(!(isVNode(renderedThunk)||isVText(renderedThunk)||isWidget(renderedThunk))){throw new Error("thunk did not return a valid node")}return renderedThunk}},{"./is-thunk":4,"./is-vnode":6,"./is-vtext":7,"./is-widget":8}],4:[function(require,module,exports){module.exports=isThunk;function isThunk(t){return t&&t.type==="Thunk"}},{}],5:[function(require,module,exports){module.exports=isHook;function isHook(hook){return hook&&(typeof hook.hook==="function"&&!hook.hasOwnProperty("hook")||typeof hook.unhook==="function"&&!hook.hasOwnProperty("unhook"))}},{}],6:[function(require,module,exports){var version=require("./version");module.exports=isVirtualNode;function isVirtualNode(x){return x&&x.type==="VirtualNode"&&x.version===version}},{"./version":9}],7:[function(require,module,exports){var version=require("./version");module.exports=isVirtualText;function isVirtualText(x){return x&&x.type==="VirtualText"&&x.version===version}},{"./version":9}],8:[function(require,module,exports){module.exports=isWidget;function isWidget(w){return w&&w.type==="Widget"}},{}],9:[function(require,module,exports){module.exports="2"},{}],10:[function(require,module,exports){var version=require("./version");VirtualPatch.NONE=0;VirtualPatch.VTEXT=1;VirtualPatch.VNODE=2;VirtualPatch.WIDGET=3;VirtualPatch.PROPS=4;VirtualPatch.ORDER=5;VirtualPatch.INSERT=6;VirtualPatch.REMOVE=7;VirtualPatch.THUNK=8;module.exports=VirtualPatch;function VirtualPatch(type,vNode,patch){this.type=Number(type);this.vNode=vNode;this.patch=patch}VirtualPatch.prototype.version=version;VirtualPatch.prototype.type="VirtualPatch"},{"./version":9}],11:[function(require,module,exports){var isObject=require("is-object");var isHook=require("../vnode/is-vhook");module.exports=diffProps;function diffProps(a,b){var diff;for(var aKey in a){if(!(aKey in b)){diff=diff||{};diff[aKey]=undefined}var aValue=a[aKey];var bValue=b[aKey];if(aValue===bValue){continue}else if(isObject(aValue)&&isObject(bValue)){if(getPrototype(bValue)!==getPrototype(aValue)){diff=diff||{};diff[aKey]=bValue}else if(isHook(bValue)){diff=diff||{};diff[aKey]=bValue}else{var objectDiff=diffProps(aValue,bValue);if(objectDiff){diff=diff||{};diff[aKey]=objectDiff}}}else{diff=diff||{};diff[aKey]=bValue}}for(var bKey in b){if(!(bKey in a)){diff=diff||{};diff[bKey]=b[bKey]}}return diff}function getPrototype(value){if(Object.getPrototypeOf){return Object.getPrototypeOf(value)}else if(value.__proto__){return value.__proto__}else if(value.constructor){return value.constructor.prototype}}},{"../vnode/is-vhook":5,"is-object":1}],12:[function(require,module,exports){var isArray=require("x-is-array");var VPatch=require("../vnode/vpatch");var isVNode=require("../vnode/is-vnode");var isVText=require("../vnode/is-vtext");var isWidget=require("../vnode/is-widget");var isThunk=require("../vnode/is-thunk");var handleThunk=require("../vnode/handle-thunk");var diffProps=require("./diff-props");module.exports=diff;function diff(a,b){var patch={a:a};walk(a,b,patch,0);return patch}function walk(a,b,patch,index){if(a===b){return}var apply=patch[index];var applyClear=false;if(isThunk(a)||isThunk(b)){thunks(a,b,patch,index)}else if(b==null){if(!isWidget(a)){clearState(a,patch,index);apply=patch[index]}apply=appendPatch(apply,new VPatch(VPatch.REMOVE,a,b))}else if(isVNode(b)){if(isVNode(a)){if(a.tagName===b.tagName&&a.namespace===b.namespace&&a.key===b.key){var propsPatch=diffProps(a.properties,b.properties);if(propsPatch){apply=appendPatch(apply,new VPatch(VPatch.PROPS,a,propsPatch))}apply=diffChildren(a,b,patch,apply,index)}else{apply=appendPatch(apply,new VPatch(VPatch.VNODE,a,b));applyClear=true}}else{apply=appendPatch(apply,new VPatch(VPatch.VNODE,a,b));applyClear=true}}else if(isVText(b)){if(!isVText(a)){apply=appendPatch(apply,new VPatch(VPatch.VTEXT,a,b));applyClear=true}else if(a.text!==b.text){apply=appendPatch(apply,new VPatch(VPatch.VTEXT,a,b))}}else if(isWidget(b)){if(!isWidget(a)){applyClear=true}apply=appendPatch(apply,new VPatch(VPatch.WIDGET,a,b))}if(apply){patch[index]=apply}if(applyClear){clearState(a,patch,index)}}function diffChildren(a,b,patch,apply,index){var aChildren=a.children;var orderedSet=reorder(aChildren,b.children);var bChildren=orderedSet.children;var aLen=aChildren.length;var bLen=bChildren.length;var len=aLen>bLen?aLen:bLen;for(var i=0;i<len;i++){var leftNode=aChildren[i];var rightNode=bChildren[i];index+=1;if(!leftNode){if(rightNode){apply=appendPatch(apply,new VPatch(VPatch.INSERT,null,rightNode))}}else{walk(leftNode,rightNode,patch,index)}if(isVNode(leftNode)&&leftNode.count){index+=leftNode.count}}if(orderedSet.moves){apply=appendPatch(apply,new VPatch(VPatch.ORDER,a,orderedSet.moves))}return apply}function clearState(vNode,patch,index){unhook(vNode,patch,index);destroyWidgets(vNode,patch,index)}function destroyWidgets(vNode,patch,index){if(isWidget(vNode)){if(typeof vNode.destroy==="function"){patch[index]=appendPatch(patch[index],new VPatch(VPatch.REMOVE,vNode,null))}}else if(isVNode(vNode)&&(vNode.hasWidgets||vNode.hasThunks)){var children=vNode.children;var len=children.length;for(var i=0;i<len;i++){var child=children[i];index+=1;destroyWidgets(child,patch,index);if(isVNode(child)&&child.count){index+=child.count}}}else if(isThunk(vNode)){thunks(vNode,null,patch,index)}}function thunks(a,b,patch,index){var nodes=handleThunk(a,b);var thunkPatch=diff(nodes.a,nodes.b);if(hasPatches(thunkPatch)){patch[index]=new VPatch(VPatch.THUNK,null,thunkPatch)}}function hasPatches(patch){for(var index in patch){if(index!=="a"){return true}}return false}function unhook(vNode,patch,index){if(isVNode(vNode)){if(vNode.hooks){patch[index]=appendPatch(patch[index],new VPatch(VPatch.PROPS,vNode,undefinedKeys(vNode.hooks)))}if(vNode.descendantHooks||vNode.hasThunks){var children=vNode.children;var len=children.length;for(var i=0;i<len;i++){var child=children[i];index+=1;unhook(child,patch,index);if(isVNode(child)&&child.count){index+=child.count}}}}else if(isThunk(vNode)){thunks(vNode,null,patch,index)}}function undefinedKeys(obj){var result={};for(var key in obj){result[key]=undefined}return result}function reorder(aChildren,bChildren){var bChildIndex=keyIndex(bChildren);var bKeys=bChildIndex.keys;var bFree=bChildIndex.free;if(bFree.length===bChildren.length){return{children:bChildren,moves:null}}var aChildIndex=keyIndex(aChildren);var aKeys=aChildIndex.keys;var aFree=aChildIndex.free;if(aFree.length===aChildren.length){return{children:bChildren,moves:null}}var newChildren=[];var freeIndex=0;var freeCount=bFree.length;var deletedItems=0;for(var i=0;i<aChildren.length;i++){var aItem=aChildren[i];var itemIndex;if(aItem.key){if(bKeys.hasOwnProperty(aItem.key)){itemIndex=bKeys[aItem.key];newChildren.push(bChildren[itemIndex])}else{itemIndex=i-deletedItems++;newChildren.push(null)}}else{if(freeIndex<freeCount){itemIndex=bFree[freeIndex++];newChildren.push(bChildren[itemIndex])}else{itemIndex=i-deletedItems++;newChildren.push(null)}}}var lastFreeIndex=freeIndex>=bFree.length?bChildren.length:bFree[freeIndex];for(var j=0;j<bChildren.length;j++){var newItem=bChildren[j];if(newItem.key){if(!aKeys.hasOwnProperty(newItem.key)){newChildren.push(newItem)}}else if(j>=lastFreeIndex){newChildren.push(newItem)}}var simulate=newChildren.slice();var simulateIndex=0;var removes=[];var inserts=[];var simulateItem;for(var k=0;k<bChildren.length;){var wantedItem=bChildren[k];simulateItem=simulate[simulateIndex];while(simulateItem===null&&simulate.length){removes.push(remove(simulate,simulateIndex,null));simulateItem=simulate[simulateIndex]}if(!simulateItem||simulateItem.key!==wantedItem.key){if(wantedItem.key){if(simulateItem&&simulateItem.key){if(bKeys[simulateItem.key]!==k+1){removes.push(remove(simulate,simulateIndex,simulateItem.key));simulateItem=simulate[simulateIndex];if(!simulateItem||simulateItem.key!==wantedItem.key){inserts.push({key:wantedItem.key,to:k})}else{simulateIndex++}}else{inserts.push({key:wantedItem.key,to:k})}}else{inserts.push({key:wantedItem.key,to:k})}k++}else if(simulateItem&&simulateItem.key){removes.push(remove(simulate,simulateIndex,simulateItem.key))}}else{simulateIndex++;k++}}while(simulateIndex<simulate.length){simulateItem=simulate[simulateIndex];removes.push(remove(simulate,simulateIndex,simulateItem&&simulateItem.key))}if(removes.length===deletedItems&&!inserts.length){return{children:newChildren,moves:null}}return{children:newChildren,moves:{removes:removes,inserts:inserts}}}function remove(arr,index,key){arr.splice(index,1);return{from:index,key:key}}function keyIndex(children){var keys={};var free=[];var length=children.length;for(var i=0;i<length;i++){var child=children[i];if(child.key){keys[child.key]=i}else{free.push(i)}}return{keys:keys,free:free}}function appendPatch(apply,patch){if(apply){if(isArray(apply)){apply.push(patch)}else{apply=[apply,patch]}return apply}else{return patch}}},{"../vnode/handle-thunk":3,"../vnode/is-thunk":4,"../vnode/is-vnode":6,"../vnode/is-vtext":7,"../vnode/is-widget":8,"../vnode/vpatch":10,"./diff-props":11,"x-is-array":2}],"virtual-dom/diff":[function(require,module,exports){var diff=require("./vtree/diff.js");module.exports=diff},{"./vtree/diff.js":12}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){(function(global){var topLevel=typeof global!=="undefined"?global:typeof window!=="undefined"?window:{};var minDoc=require("min-document");if(typeof document!=="undefined"){module.exports=document}else{var doccy=topLevel["__GLOBAL_DOCUMENT_CACHE@4"];if(!doccy){doccy=topLevel["__GLOBAL_DOCUMENT_CACHE@4"]=minDoc}module.exports=doccy}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"min-document":1}],3:[function(require,module,exports){"use strict";module.exports=function isObject(x){return typeof x==="object"&&x!==null}},{}],4:[function(require,module,exports){var nativeIsArray=Array.isArray;var toString=Object.prototype.toString;module.exports=nativeIsArray||isArray;function isArray(obj){return toString.call(obj)==="[object Array]"}},{}],5:[function(require,module,exports){var isObject=require("is-object");var isHook=require("../vnode/is-vhook.js");module.exports=applyProperties;function applyProperties(node,props,previous){for(var propName in props){var propValue=props[propName];if(propValue===undefined){removeProperty(node,propName,propValue,previous)}else if(isHook(propValue)){removeProperty(node,propName,propValue,previous);if(propValue.hook){propValue.hook(node,propName,previous?previous[propName]:undefined)}}else{if(isObject(propValue)){patchObject(node,props,previous,propName,propValue)}else{node[propName]=propValue}}}}function removeProperty(node,propName,propValue,previous){if(previous){var previousValue=previous[propName];if(!isHook(previousValue)){if(propName==="attributes"){for(var attrName in previousValue){node.removeAttribute(attrName)}}else if(propName==="style"){for(var i in previousValue){node.style[i]=""}}else if(typeof previousValue==="string"){node[propName]=""}else{node[propName]=null}}else if(previousValue.unhook){previousValue.unhook(node,propName,propValue)}}}function patchObject(node,props,previous,propName,propValue){var previousValue=previous?previous[propName]:undefined;if(propName==="attributes"){for(var attrName in propValue){var attrValue=propValue[attrName];if(attrValue===undefined){node.removeAttribute(attrName)}else{node.setAttribute(attrName,attrValue)}}return}if(previousValue&&isObject(previousValue)&&getPrototype(previousValue)!==getPrototype(propValue)){node[propName]=propValue;return}if(!isObject(node[propName])){node[propName]={}}var replacer=propName==="style"?"":undefined;for(var k in propValue){var value=propValue[k];node[propName][k]=value===undefined?replacer:value}}function getPrototype(value){if(Object.getPrototypeOf){return Object.getPrototypeOf(value)}else if(value.__proto__){return value.__proto__}else if(value.constructor){return value.constructor.prototype}}},{"../vnode/is-vhook.js":13,"is-object":3}],6:[function(require,module,exports){var document=require("global/document");var applyProperties=require("./apply-properties");var isVNode=require("../vnode/is-vnode.js");var isVText=require("../vnode/is-vtext.js");var isWidget=require("../vnode/is-widget.js");var handleThunk=require("../vnode/handle-thunk.js");module.exports=createElement;function createElement(vnode,opts){var doc=opts?opts.document||document:document;var warn=opts?opts.warn:null;vnode=handleThunk(vnode).a;if(isWidget(vnode)){return vnode.init()}else if(isVText(vnode)){return doc.createTextNode(vnode.text)}else if(!isVNode(vnode)){if(warn){warn("Item is not a valid virtual dom node",vnode)}return null}var node=vnode.namespace===null?doc.createElement(vnode.tagName):doc.createElementNS(vnode.namespace,vnode.tagName);var props=vnode.properties;applyProperties(node,props);var children=vnode.children;for(var i=0;i<children.length;i++){var childNode=createElement(children[i],opts);if(childNode){node.appendChild(childNode)}}return node}},{"../vnode/handle-thunk.js":11,"../vnode/is-vnode.js":14,"../vnode/is-vtext.js":15,"../vnode/is-widget.js":16,"./apply-properties":5,"global/document":2}],7:[function(require,module,exports){var noChild={};module.exports=domIndex;function domIndex(rootNode,tree,indices,nodes){if(!indices||indices.length===0){return{}}else{indices.sort(ascending);return recurse(rootNode,tree,indices,nodes,0)}}function recurse(rootNode,tree,indices,nodes,rootIndex){nodes=nodes||{};if(rootNode){if(indexInRange(indices,rootIndex,rootIndex)){nodes[rootIndex]=rootNode}var vChildren=tree.children;if(vChildren){var childNodes=rootNode.childNodes;for(var i=0;i<tree.children.length;i++){rootIndex+=1;var vChild=vChildren[i]||noChild;var nextIndex=rootIndex+(vChild.count||0);if(indexInRange(indices,rootIndex,nextIndex)){recurse(childNodes[i],vChild,indices,nodes,rootIndex)}rootIndex=nextIndex}}}return nodes}function indexInRange(indices,left,right){if(indices.length===0){return false}var minIndex=0;var maxIndex=indices.length-1;var currentIndex;var currentItem;while(minIndex<=maxIndex){currentIndex=(maxIndex+minIndex)/2>>0;currentItem=indices[currentIndex];if(minIndex===maxIndex){return currentItem>=left&¤tItem<=right}else if(currentItem<left){minIndex=currentIndex+1}else if(currentItem>right){maxIndex=currentIndex-1}else{return true}}return false}function ascending(a,b){return a>b?1:-1}},{}],8:[function(require,module,exports){var applyProperties=require("./apply-properties");var isWidget=require("../vnode/is-widget.js");var VPatch=require("../vnode/vpatch.js");var updateWidget=require("./update-widget");module.exports=applyPatch;function applyPatch(vpatch,domNode,renderOptions){var type=vpatch.type;var vNode=vpatch.vNode;var patch=vpatch.patch;switch(type){case VPatch.REMOVE:return removeNode(domNode,vNode);case VPatch.INSERT:return insertNode(domNode,patch,renderOptions);case VPatch.VTEXT:return stringPatch(domNode,vNode,patch,renderOptions);case VPatch.WIDGET:return widgetPatch(domNode,vNode,patch,renderOptions);case VPatch.VNODE:return vNodePatch(domNode,vNode,patch,renderOptions);case VPatch.ORDER:reorderChildren(domNode,patch);return domNode;case VPatch.PROPS:applyProperties(domNode,patch,vNode.properties);return domNode;case VPatch.THUNK:return replaceRoot(domNode,renderOptions.patch(domNode,patch,renderOptions));default:return domNode}}function removeNode(domNode,vNode){var parentNode=domNode.parentNode;if(parentNode){parentNode.removeChild(domNode)}destroyWidget(domNode,vNode);return null}function insertNode(parentNode,vNode,renderOptions){var newNode=renderOptions.render(vNode,renderOptions);if(parentNode){parentNode.appendChild(newNode)}return parentNode}function stringPatch(domNode,leftVNode,vText,renderOptions){var newNode;if(domNode.nodeType===3){domNode.replaceData(0,domNode.length,vText.text);newNode=domNode}else{var parentNode=domNode.parentNode;newNode=renderOptions.render(vText,renderOptions);if(parentNode&&newNode!==domNode){parentNode.replaceChild(newNode,domNode)}}return newNode}function widgetPatch(domNode,leftVNode,widget,renderOptions){var updating=updateWidget(leftVNode,widget);var newNode;if(updating){newNode=widget.update(leftVNode,domNode)||domNode}else{newNode=renderOptions.render(widget,renderOptions)}var parentNode=domNode.parentNode;if(parentNode&&newNode!==domNode){parentNode.replaceChild(newNode,domNode)}if(!updating){destroyWidget(domNode,leftVNode)}return newNode}function vNodePatch(domNode,leftVNode,vNode,renderOptions){var parentNode=domNode.parentNode;var newNode=renderOptions.render(vNode,renderOptions);if(parentNode&&newNode!==domNode){parentNode.replaceChild(newNode,domNode)}return newNode}function destroyWidget(domNode,w){if(typeof w.destroy==="function"&&isWidget(w)){w.destroy(domNode)}}function reorderChildren(domNode,moves){var childNodes=domNode.childNodes;var keyMap={};var node;var remove;var insert;for(var i=0;i<moves.removes.length;i++){remove=moves.removes[i];node=childNodes[remove.from];if(remove.key){keyMap[remove.key]=node}domNode.removeChild(node)}var length=childNodes.length;for(var j=0;j<moves.inserts.length;j++){insert=moves.inserts[j];node=keyMap[insert.key];domNode.insertBefore(node,insert.to>=length++?null:childNodes[insert.to])}}function replaceRoot(oldRoot,newRoot){if(oldRoot&&newRoot&&oldRoot!==newRoot&&oldRoot.parentNode){oldRoot.parentNode.replaceChild(newRoot,oldRoot)}return newRoot}},{"../vnode/is-widget.js":16,"../vnode/vpatch.js":18,"./apply-properties":5,"./update-widget":10}],9:[function(require,module,exports){var document=require("global/document");var isArray=require("x-is-array");var render=require("./create-element");var domIndex=require("./dom-index");var patchOp=require("./patch-op");module.exports=patch;function patch(rootNode,patches,renderOptions){renderOptions=renderOptions||{};renderOptions.patch=renderOptions.patch&&renderOptions.patch!==patch?renderOptions.patch:patchRecursive;renderOptions.render=renderOptions.render||render;return renderOptions.patch(rootNode,patches,renderOptions)}function patchRecursive(rootNode,patches,renderOptions){var indices=patchIndices(patches);if(indices.length===0){return rootNode}var index=domIndex(rootNode,patches.a,indices);var ownerDocument=rootNode.ownerDocument;if(!renderOptions.document&&ownerDocument!==document){renderOptions.document=ownerDocument}for(var i=0;i<indices.length;i++){var nodeIndex=indices[i];rootNode=applyPatch(rootNode,index[nodeIndex],patches[nodeIndex],renderOptions)}return rootNode}function applyPatch(rootNode,domNode,patchList,renderOptions){if(!domNode){return rootNode}var newNode;if(isArray(patchList)){for(var i=0;i<patchList.length;i++){newNode=patchOp(patchList[i],domNode,renderOptions);if(domNode===rootNode){rootNode=newNode}}}else{newNode=patchOp(patchList,domNode,renderOptions);if(domNode===rootNode){rootNode=newNode}}return rootNode}function patchIndices(patches){var indices=[];for(var key in patches){if(key!=="a"){indices.push(Number(key))}}return indices}},{"./create-element":6,"./dom-index":7,"./patch-op":8,"global/document":2,"x-is-array":4}],10:[function(require,module,exports){var isWidget=require("../vnode/is-widget.js");module.exports=updateWidget;function updateWidget(a,b){if(isWidget(a)&&isWidget(b)){if("name"in a&&"name"in b){return a.id===b.id}else{return a.init===b.init}}return false}},{"../vnode/is-widget.js":16}],11:[function(require,module,exports){var isVNode=require("./is-vnode");var isVText=require("./is-vtext");var isWidget=require("./is-widget"); | |
var isThunk=require("./is-thunk");module.exports=handleThunk;function handleThunk(a,b){var renderedA=a;var renderedB=b;if(isThunk(b)){renderedB=renderThunk(b,a)}if(isThunk(a)){renderedA=renderThunk(a,null)}return{a:renderedA,b:renderedB}}function renderThunk(thunk,previous){var renderedThunk=thunk.vnode;if(!renderedThunk){renderedThunk=thunk.vnode=thunk.render(previous)}if(!(isVNode(renderedThunk)||isVText(renderedThunk)||isWidget(renderedThunk))){throw new Error("thunk did not return a valid node")}return renderedThunk}},{"./is-thunk":12,"./is-vnode":14,"./is-vtext":15,"./is-widget":16}],12:[function(require,module,exports){module.exports=isThunk;function isThunk(t){return t&&t.type==="Thunk"}},{}],13:[function(require,module,exports){module.exports=isHook;function isHook(hook){return hook&&(typeof hook.hook==="function"&&!hook.hasOwnProperty("hook")||typeof hook.unhook==="function"&&!hook.hasOwnProperty("unhook"))}},{}],14:[function(require,module,exports){var version=require("./version");module.exports=isVirtualNode;function isVirtualNode(x){return x&&x.type==="VirtualNode"&&x.version===version}},{"./version":17}],15:[function(require,module,exports){var version=require("./version");module.exports=isVirtualText;function isVirtualText(x){return x&&x.type==="VirtualText"&&x.version===version}},{"./version":17}],16:[function(require,module,exports){module.exports=isWidget;function isWidget(w){return w&&w.type==="Widget"}},{}],17:[function(require,module,exports){module.exports="2"},{}],18:[function(require,module,exports){var version=require("./version");VirtualPatch.NONE=0;VirtualPatch.VTEXT=1;VirtualPatch.VNODE=2;VirtualPatch.WIDGET=3;VirtualPatch.PROPS=4;VirtualPatch.ORDER=5;VirtualPatch.INSERT=6;VirtualPatch.REMOVE=7;VirtualPatch.THUNK=8;module.exports=VirtualPatch;function VirtualPatch(type,vNode,patch){this.type=Number(type);this.vNode=vNode;this.patch=patch}VirtualPatch.prototype.version=version;VirtualPatch.prototype.type="VirtualPatch"},{"./version":17}],"virtual-dom/patch":[function(require,module,exports){var patch=require("./vdom/patch.js");module.exports=patch},{"./vdom/patch.js":9}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){},{}],2:[function(require,module,exports){(function(global){var topLevel=typeof global!=="undefined"?global:typeof window!=="undefined"?window:{};var minDoc=require("min-document");if(typeof document!=="undefined"){module.exports=document}else{var doccy=topLevel["__GLOBAL_DOCUMENT_CACHE@4"];if(!doccy){doccy=topLevel["__GLOBAL_DOCUMENT_CACHE@4"]=minDoc}module.exports=doccy}}).call(this,typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{"min-document":1}],3:[function(require,module,exports){"use strict";module.exports=function isObject(x){return typeof x==="object"&&x!==null}},{}],4:[function(require,module,exports){var isObject=require("is-object");var isHook=require("../vnode/is-vhook.js");module.exports=applyProperties;function applyProperties(node,props,previous){for(var propName in props){var propValue=props[propName];if(propValue===undefined){removeProperty(node,propName,propValue,previous)}else if(isHook(propValue)){removeProperty(node,propName,propValue,previous);if(propValue.hook){propValue.hook(node,propName,previous?previous[propName]:undefined)}}else{if(isObject(propValue)){patchObject(node,props,previous,propName,propValue)}else{node[propName]=propValue}}}}function removeProperty(node,propName,propValue,previous){if(previous){var previousValue=previous[propName];if(!isHook(previousValue)){if(propName==="attributes"){for(var attrName in previousValue){node.removeAttribute(attrName)}}else if(propName==="style"){for(var i in previousValue){node.style[i]=""}}else if(typeof previousValue==="string"){node[propName]=""}else{node[propName]=null}}else if(previousValue.unhook){previousValue.unhook(node,propName,propValue)}}}function patchObject(node,props,previous,propName,propValue){var previousValue=previous?previous[propName]:undefined;if(propName==="attributes"){for(var attrName in propValue){var attrValue=propValue[attrName];if(attrValue===undefined){node.removeAttribute(attrName)}else{node.setAttribute(attrName,attrValue)}}return}if(previousValue&&isObject(previousValue)&&getPrototype(previousValue)!==getPrototype(propValue)){node[propName]=propValue;return}if(!isObject(node[propName])){node[propName]={}}var replacer=propName==="style"?"":undefined;for(var k in propValue){var value=propValue[k];node[propName][k]=value===undefined?replacer:value}}function getPrototype(value){if(Object.getPrototypeOf){return Object.getPrototypeOf(value)}else if(value.__proto__){return value.__proto__}else if(value.constructor){return value.constructor.prototype}}},{"../vnode/is-vhook.js":8,"is-object":3}],5:[function(require,module,exports){var document=require("global/document");var applyProperties=require("./apply-properties");var isVNode=require("../vnode/is-vnode.js");var isVText=require("../vnode/is-vtext.js");var isWidget=require("../vnode/is-widget.js");var handleThunk=require("../vnode/handle-thunk.js");module.exports=createElement;function createElement(vnode,opts){var doc=opts?opts.document||document:document;var warn=opts?opts.warn:null;vnode=handleThunk(vnode).a;if(isWidget(vnode)){return vnode.init()}else if(isVText(vnode)){return doc.createTextNode(vnode.text)}else if(!isVNode(vnode)){if(warn){warn("Item is not a valid virtual dom node",vnode)}return null}var node=vnode.namespace===null?doc.createElement(vnode.tagName):doc.createElementNS(vnode.namespace,vnode.tagName);var props=vnode.properties;applyProperties(node,props);var children=vnode.children;for(var i=0;i<children.length;i++){var childNode=createElement(children[i],opts);if(childNode){node.appendChild(childNode)}}return node}},{"../vnode/handle-thunk.js":6,"../vnode/is-vnode.js":9,"../vnode/is-vtext.js":10,"../vnode/is-widget.js":11,"./apply-properties":4,"global/document":2}],6:[function(require,module,exports){var isVNode=require("./is-vnode");var isVText=require("./is-vtext");var isWidget=require("./is-widget");var isThunk=require("./is-thunk");module.exports=handleThunk;function handleThunk(a,b){var renderedA=a;var renderedB=b;if(isThunk(b)){renderedB=renderThunk(b,a)}if(isThunk(a)){renderedA=renderThunk(a,null)}return{a:renderedA,b:renderedB}}function renderThunk(thunk,previous){var renderedThunk=thunk.vnode;if(!renderedThunk){renderedThunk=thunk.vnode=thunk.render(previous)}if(!(isVNode(renderedThunk)||isVText(renderedThunk)||isWidget(renderedThunk))){throw new Error("thunk did not return a valid node")}return renderedThunk}},{"./is-thunk":7,"./is-vnode":9,"./is-vtext":10,"./is-widget":11}],7:[function(require,module,exports){module.exports=isThunk;function isThunk(t){return t&&t.type==="Thunk"}},{}],8:[function(require,module,exports){module.exports=isHook;function isHook(hook){return hook&&(typeof hook.hook==="function"&&!hook.hasOwnProperty("hook")||typeof hook.unhook==="function"&&!hook.hasOwnProperty("unhook"))}},{}],9:[function(require,module,exports){var version=require("./version");module.exports=isVirtualNode;function isVirtualNode(x){return x&&x.type==="VirtualNode"&&x.version===version}},{"./version":12}],10:[function(require,module,exports){var version=require("./version");module.exports=isVirtualText;function isVirtualText(x){return x&&x.type==="VirtualText"&&x.version===version}},{"./version":12}],11:[function(require,module,exports){module.exports=isWidget;function isWidget(w){return w&&w.type==="Widget"}},{}],12:[function(require,module,exports){module.exports="2"},{}],"virtual-dom/create-element":[function(require,module,exports){var createElement=require("./vdom/create-element.js");module.exports=createElement},{"./vdom/create-element.js":5}]},{},[]);require=function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s}({1:[function(require,module,exports){var process=module.exports={};process.nextTick=function(){var canSetImmediate=typeof window!=="undefined"&&window.setImmediate;var canMutationObserver=typeof window!=="undefined"&&window.MutationObserver;var canPost=typeof window!=="undefined"&&window.postMessage&&window.addEventListener;if(canSetImmediate){return function(f){return window.setImmediate(f)}}var queue=[];if(canMutationObserver){var hiddenDiv=document.createElement("div");var observer=new MutationObserver(function(){var queueList=queue.slice();queue.length=0;queueList.forEach(function(fn){fn()})});observer.observe(hiddenDiv,{attributes:true});return function nextTick(fn){if(!queue.length){hiddenDiv.setAttribute("yes","no")}queue.push(fn)}}if(canPost){window.addEventListener("message",function(ev){var source=ev.source;if((source===window||source===null)&&ev.data==="process-tick"){ev.stopPropagation();if(queue.length>0){var fn=queue.shift();fn()}}},true);return function nextTick(fn){queue.push(fn);window.postMessage("process-tick","*")}}return function nextTick(fn){setTimeout(fn,0)}}();process.title="browser";process.browser=true;process.env={};process.argv=[];function noop(){}process.on=noop;process.addListener=noop;process.once=noop;process.off=noop;process.removeListener=noop;process.removeAllListeners=noop;process.emit=noop;process.binding=function(name){throw new Error("process.binding is not supported")};process.cwd=function(){return"/"};process.chdir=function(dir){throw new Error("process.chdir is not supported")}},{}],rx:[function(require,module,exports){(function(process,global){(function(undefined){var objectTypes={"function":true,object:true};function checkGlobal(value){return value&&value.Object===Object?value:null}var freeExports=objectTypes[typeof exports]&&exports&&!exports.nodeType?exports:null;var freeModule=objectTypes[typeof module]&&module&&!module.nodeType?module:null;var freeGlobal=checkGlobal(freeExports&&freeModule&&typeof global==="object"&&global);var freeSelf=checkGlobal(objectTypes[typeof self]&&self);var freeWindow=checkGlobal(objectTypes[typeof window]&&window);var moduleExports=freeModule&&freeModule.exports===freeExports?freeExports:null;var thisGlobal=checkGlobal(objectTypes[typeof this]&&this);var root=freeGlobal||freeWindow!==(thisGlobal&&thisGlobal.window)&&freeWindow||freeSelf||thisGlobal||Function("return this")();var Rx={internals:{},config:{Promise:root.Promise},helpers:{}};var noop=Rx.helpers.noop=function(){},identity=Rx.helpers.identity=function(x){return x},defaultNow=Rx.helpers.defaultNow=Date.now,defaultComparer=Rx.helpers.defaultComparer=function(x,y){return isEqual(x,y)},defaultSubComparer=Rx.helpers.defaultSubComparer=function(x,y){return x>y?1:x<y?-1:0},defaultKeySerializer=Rx.helpers.defaultKeySerializer=function(x){return x.toString()},defaultError=Rx.helpers.defaultError=function(err){throw err},isPromise=Rx.helpers.isPromise=function(p){return!!p&&typeof p.subscribe!=="function"&&typeof p.then==="function"},isFunction=Rx.helpers.isFunction=function(){var isFn=function(value){return typeof value=="function"||false};if(isFn(/x/)){isFn=function(value){return typeof value=="function"&&toString.call(value)=="[object Function]"}}return isFn}();function cloneArray(arr){for(var a=[],i=0,len=arr.length;i<len;i++){a.push(arr[i])}return a}var errorObj={e:{}};function tryCatcherGen(tryCatchTarget){return function tryCatcher(){try{return tryCatchTarget.apply(this,arguments)}catch(e){errorObj.e=e;return errorObj}}}var tryCatch=Rx.internals.tryCatch=function tryCatch(fn){if(!isFunction(fn)){throw new TypeError("fn must be a function")}return tryCatcherGen(fn)};function thrower(e){throw e}Rx.config.longStackSupport=false;var hasStacks=false,stacks=tryCatch(function(){throw new Error})();hasStacks=!!stacks.e&&!!stacks.e.stack;var rStartingLine=captureLine(),rFileName;var STACK_JUMP_SEPARATOR="From previous event:";function makeStackTraceLong(error,observable){if(hasStacks&&observable.stack&&typeof error==="object"&&error!==null&&error.stack&&error.stack.indexOf(STACK_JUMP_SEPARATOR)===-1){var stacks=[];for(var o=observable;!!o;o=o.source){if(o.stack){stacks.unshift(o.stack)}}stacks.unshift(error.stack);var concatedStacks=stacks.join("\n"+STACK_JUMP_SEPARATOR+"\n");error.stack=filterStackString(concatedStacks)}}function filterStackString(stackString){var lines=stackString.split("\n"),desiredLines=[];for(var i=0,len=lines.length;i<len;i++){var line=lines[i];if(!isInternalFrame(line)&&!isNodeFrame(line)&&line){desiredLines.push(line)}}return desiredLines.join("\n")}function isInternalFrame(stackLine){var fileNameAndLineNumber=getFileNameAndLineNumber(stackLine);if(!fileNameAndLineNumber){return false}var fileName=fileNameAndLineNumber[0],lineNumber=fileNameAndLineNumber[1];return fileName===rFileName&&lineNumber>=rStartingLine&&lineNumber<=rEndingLine}function isNodeFrame(stackLine){return stackLine.indexOf("(module.js:")!==-1||stackLine.indexOf("(node.js:")!==-1}function captureLine(){if(!hasStacks){return}try{throw new Error}catch(e){var lines=e.stack.split("\n");var firstLine=lines[0].indexOf("@")>0?lines[1]:lines[2];var fileNameAndLineNumber=getFileNameAndLineNumber(firstLine);if(!fileNameAndLineNumber){return}rFileName=fileNameAndLineNumber[0];return fileNameAndLineNumber[1]}}function getFileNameAndLineNumber(stackLine){var attempt1=/at .+ \((.+):(\d+):(?:\d+)\)$/.exec(stackLine);if(attempt1){return[attempt1[1],Number(attempt1[2])]}var attempt2=/at ([^ ]+):(\d+):(?:\d+)$/.exec(stackLine);if(attempt2){return[attempt2[1],Number(attempt2[2])]}var attempt3=/.*@(.+):(\d+)$/.exec(stackLine);if(attempt3){return[attempt3[1],Number(attempt3[2])]}}var EmptyError=Rx.EmptyError=function(){this.message="Sequence contains no elements.";Error.call(this)};EmptyError.prototype=Object.create(Error.prototype);EmptyError.prototype.name="EmptyError";var ObjectDisposedError=Rx.ObjectDisposedError=function(){this.message="Object has been disposed";Error.call(this)};ObjectDisposedError.prototype=Object.create(Error.prototype);ObjectDisposedError.prototype.name="ObjectDisposedError";var ArgumentOutOfRangeError=Rx.ArgumentOutOfRangeError=function(){this.message="Argument out of range";Error.call(this)};ArgumentOutOfRangeError.prototype=Object.create(Error.prototype);ArgumentOutOfRangeError.prototype.name="ArgumentOutOfRangeError";var NotSupportedError=Rx.NotSupportedError=function(message){this.message=message||"This operation is not supported";Error.call(this)};NotSupportedError.prototype=Object.create(Error.prototype);NotSupportedError.prototype.name="NotSupportedError";var NotImplementedError=Rx.NotImplementedError=function(message){this.message=message||"This operation is not implemented";Error.call(this)};NotImplementedError.prototype=Object.create(Error.prototype);NotImplementedError.prototype.name="NotImplementedError";var notImplemented=Rx.helpers.notImplemented=function(){throw new NotImplementedError};var notSupported=Rx.helpers.notSupported=function(){throw new NotSupportedError};var $iterator$=typeof Symbol==="function"&&Symbol.iterator||"_es6shim_iterator_";if(root.Set&&typeof(new root.Set)["@@iterator"]==="function"){$iterator$="@@iterator"}var doneEnumerator=Rx.doneEnumerator={done:true,value:undefined};var isIterable=Rx.helpers.isIterable=function(o){return o&&o[$iterator$]!==undefined};var isArrayLike=Rx.helpers.isArrayLike=function(o){return o&&o.length!==undefined};Rx.helpers.iterator=$iterator$;var bindCallback=Rx.internals.bindCallback=function(func,thisArg,argCount){if(typeof thisArg==="undefined"){return func}switch(argCount){case 0:return function(){return func.call(thisArg)};case 1:return function(arg){return func.call(thisArg,arg)};case 2:return function(value,index){return func.call(thisArg,value,index)};case 3:return function(value,index,collection){return func.call(thisArg,value,index,collection)}}return function(){return func.apply(thisArg,arguments)}};var dontEnums=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],dontEnumsLength=dontEnums.length;var argsClass="[object Arguments]",arrayClass="[object Array]",boolClass="[object Boolean]",dateClass="[object Date]",errorClass="[object Error]",funcClass="[object Function]",numberClass="[object Number]",objectClass="[object Object]",regexpClass="[object RegExp]",stringClass="[object String]";var toString=Object.prototype.toString,hasOwnProperty=Object.prototype.hasOwnProperty,supportsArgsClass=toString.call(arguments)==argsClass,supportNodeClass,errorProto=Error.prototype,objectProto=Object.prototype,stringProto=String.prototype,propertyIsEnumerable=objectProto.propertyIsEnumerable;try{supportNodeClass=!(toString.call(document)==objectClass&&!({toString:0}+""))}catch(e){supportNodeClass=true}var nonEnumProps={};nonEnumProps[arrayClass]=nonEnumProps[dateClass]=nonEnumProps[numberClass]={constructor:true,toLocaleString:true,toString:true,valueOf:true};nonEnumProps[boolClass]=nonEnumProps[stringClass]={constructor:true,toString:true,valueOf:true};nonEnumProps[errorClass]=nonEnumProps[funcClass]=nonEnumProps[regexpClass]={constructor:true,toString:true};nonEnumProps[objectClass]={constructor:true};var support={};(function(){var ctor=function(){this.x=1},props=[];ctor.prototype={valueOf:1,y:1};for(var key in new ctor){props.push(key)}for(key in arguments){}support.enumErrorProps=propertyIsEnumerable.call(errorProto,"message")||propertyIsEnumerable.call(errorProto,"name");support.enumPrototypes=propertyIsEnumerable.call(ctor,"prototype");support.nonEnumArgs=key!=0;support.nonEnumShadows=!/valueOf/.test(props)})(1);var isObject=Rx.internals.isObject=function(value){var type=typeof value;return value&&(type=="function"||type=="object")||false};function keysIn(object){var result=[];if(!isObject(object)){return result}if(support.nonEnumArgs&&object.length&&isArguments(object)){object=slice.call(object)}var skipProto=support.enumPrototypes&&typeof object=="function",skipErrorProps=support.enumErrorProps&&(object===errorProto||object instanceof Error);for(var key in object){if(!(skipProto&&key=="prototype")&&!(skipErrorProps&&(key=="message"||key=="name"))){result.push(key)}}if(support.nonEnumShadows&&object!==objectProto){var ctor=object.constructor,index=-1,length=dontEnumsLength;if(object===(ctor&&ctor.prototype)){var className=object===stringProto?stringClass:object===errorProto?errorClass:toString.call(object),nonEnum=nonEnumProps[className]}while(++index<length){key=dontEnums[index];if(!(nonEnum&&nonEnum[key])&&hasOwnProperty.call(object,key)){result.push(key)}}}return result}function internalFor(object,callback,keysFunc){var index=-1,props=keysFunc(object),length=props.length;while(++index<length){var key=props[index];if(callback(object[key],key,object)===false){break}}return object}function internalForIn(object,callback){return internalFor(object,callback,keysIn)}function isNode(value){return typeof value.toString!="function"&&typeof(value+"")=="string"}var isArguments=function(value){return value&&typeof value=="object"?toString.call(value)==argsClass:false};if(!supportsArgsClass){isArguments=function(value){return value&&typeof value=="object"?hasOwnProperty.call(value,"callee"):false}}var isEqual=Rx.internals.isEqual=function(x,y){return deepEquals(x,y,[],[])};function deepEquals(a,b,stackA,stackB){if(a===b){return a!==0||1/a==1/b}var type=typeof a,otherType=typeof b;if(a===a&&(a==null||b==null||type!="function"&&type!="object"&&otherType!="function"&&otherType!="object")){return false}var className=toString.call(a),otherClass=toString.call(b);if(className==argsClass){className=objectClass}if(otherClass==argsClass){otherClass=objectClass}if(className!=otherClass){return false}switch(className){case boolClass:case dateClass:return+a==+b;case numberClass:return a!=+a?b!=+b:a==0?1/a==1/b:a==+b;case regexpClass:case stringClass:return a==String(b)}var isArr=className==arrayClass;if(!isArr){if(className!=objectClass||!support.nodeClass&&(isNode(a)||isNode(b))){return false}var ctorA=!support.argsObject&&isArguments(a)?Object:a.constructor,ctorB=!support.argsObject&&isArguments(b)?Object:b.constructor;if(ctorA!=ctorB&&!(hasOwnProperty.call(a,"constructor")&&hasOwnProperty.call(b,"constructor"))&&!(isFunction(ctorA)&&ctorA instanceof ctorA&&isFunction(ctorB)&&ctorB instanceof ctorB)&&("constructor"in a&&"constructor"in b)){return false}}var initedStack=!stackA;stackA||(stackA=[]);stackB||(stackB=[]);var length=stackA.length;while(length--){if(stackA[length]==a){return stackB[length]==b}}var size=0;var result=true;stackA.push(a);stackB.push(b);if(isArr){length=a.length;size=b.length;result=size==length;if(result){while(size--){var index=length,value=b[size];if(!(result=deepEquals(a[size],value,stackA,stackB))){break}}}}else{internalForIn(b,function(value,key,b){if(hasOwnProperty.call(b,key)){size++;return result=hasOwnProperty.call(a,key)&&deepEquals(a[key],value,stackA,stackB)}});if(result){internalForIn(a,function(value,key,a){if(hasOwnProperty.call(a,key)){return result=--size>-1}})}}stackA.pop();stackB.pop();return result}var hasProp={}.hasOwnProperty,slice=Array.prototype.slice;var inherits=Rx.internals.inherits=function(child,parent){function __(){this.constructor=child}__.prototype=parent.prototype;child.prototype=new __};var addProperties=Rx.internals.addProperties=function(obj){for(var sources=[],i=1,len=arguments.length;i<len;i++){sources.push(arguments[i])}for(var idx=0,ln=sources.length;idx<ln;idx++){var source=sources[idx];for(var prop in source){obj[prop]=source[prop]}}};var addRef=Rx.internals.addRef=function(xs,r){return new AnonymousObservable(function(observer){return new BinaryDisposable(r.getDisposable(),xs.subscribe(observer))})};function arrayInitialize(count,factory){var a=new Array(count);for(var i=0;i<count;i++){a[i]=factory()}return a}function IndexedItem(id,value){this.id=id;this.value=value}IndexedItem.prototype.compareTo=function(other){var c=this.value.compareTo(other.value);c===0&&(c=this.id-other.id);return c};var PriorityQueue=Rx.internals.PriorityQueue=function(capacity){this.items=new Array(capacity);this.length=0};var priorityProto=PriorityQueue.prototype;priorityProto.isHigherPriority=function(left,right){return this.items[left].compareTo(this.items[right])<0};priorityProto.percolate=function(index){if(index>=this.length||index<0){return}var parent=index-1>>1;if(parent<0||parent===index){return}if(this.isHigherPriority(index,parent)){var temp=this.items[index];this.items[index]=this.items[parent];this.items[parent]=temp;this.percolate(parent)}};priorityProto.heapify=function(index){+index||(index=0);if(index>=this.length||index<0){return}var left=2*index+1,right=2*index+2,first=index;if(left<this.length&&this.isHigherPriority(left,first)){first=left}if(right<this.length&&this.isHigherPriority(right,first)){first=right}if(first!==index){var temp=this.items[index];this.items[index]=this.items[first];this.items[first]=temp;this.heapify(first)}};priorityProto.peek=function(){return this.items[0].value};priorityProto.removeAt=function(index){this.items[index]=this.items[--this.length];this.items[this.length]=undefined;this.heapify()};priorityProto.dequeue=function(){var result=this.peek();this.removeAt(0);return result};priorityProto.enqueue=function(item){var index=this.length++;this.items[index]=new IndexedItem(PriorityQueue.count++,item);this.percolate(index)};priorityProto.remove=function(item){for(var i=0;i<this.length;i++){if(this.items[i].value===item){this.removeAt(i);return true}}return false};PriorityQueue.count=0;var CompositeDisposable=Rx.CompositeDisposable=function(){var args=[],i,len;if(Array.isArray(arguments[0])){args=arguments[0];len=args.length}else{len=arguments.length;args=new Array(len);for(i=0;i<len;i++){args[i]=arguments[i]}}this.disposables=args;this.isDisposed=false;this.length=args.length};var CompositeDisposablePrototype=CompositeDisposable.prototype;CompositeDisposablePrototype.add=function(item){if(this.isDisposed){item.dispose()}else{this.disposables.push(item);this.length++}};CompositeDisposablePrototype.remove=function(item){var shouldDispose=false;if(!this.isDisposed){var idx=this.disposables.indexOf(item);if(idx!==-1){shouldDispose=true;this.disposables.splice(idx,1);this.length--;item.dispose()}}return shouldDispose};CompositeDisposablePrototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;var len=this.disposables.length,currentDisposables=new Array(len);for(var i=0;i<len;i++){currentDisposables[i]=this.disposables[i]}this.disposables=[];this.length=0;for(i=0;i<len;i++){currentDisposables[i].dispose()}}};var Disposable=Rx.Disposable=function(action){this.isDisposed=false;this.action=action||noop};Disposable.prototype.dispose=function(){if(!this.isDisposed){this.action();this.isDisposed=true}};var disposableCreate=Disposable.create=function(action){return new Disposable(action)};var disposableEmpty=Disposable.empty={dispose:noop};var isDisposable=Disposable.isDisposable=function(d){return d&&isFunction(d.dispose)};var checkDisposed=Disposable.checkDisposed=function(disposable){if(disposable.isDisposed){throw new ObjectDisposedError}};var disposableFixup=Disposable._fixup=function(result){return isDisposable(result)?result:disposableEmpty};var SingleAssignmentDisposable=Rx.SingleAssignmentDisposable=function(){this.isDisposed=false;this.current=null};SingleAssignmentDisposable.prototype.getDisposable=function(){return this.current};SingleAssignmentDisposable.prototype.setDisposable=function(value){if(this.current){throw new Error("Disposable has already been assigned")}var shouldDispose=this.isDisposed;!shouldDispose&&(this.current=value);shouldDispose&&value&&value.dispose()};SingleAssignmentDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;var old=this.current;this.current=null;old&&old.dispose()}};var SerialDisposable=Rx.SerialDisposable=function(){this.isDisposed=false;this.current=null};SerialDisposable.prototype.getDisposable=function(){return this.current};SerialDisposable.prototype.setDisposable=function(value){var shouldDispose=this.isDisposed;if(!shouldDispose){var old=this.current;this.current=value}old&&old.dispose();shouldDispose&&value&&value.dispose()};SerialDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;var old=this.current;this.current=null}old&&old.dispose()};var BinaryDisposable=Rx.BinaryDisposable=function(first,second){this._first=first;this._second=second;this.isDisposed=false};BinaryDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;var old1=this._first;this._first=null;old1&&old1.dispose();var old2=this._second;this._second=null;old2&&old2.dispose()}};var NAryDisposable=Rx.NAryDisposable=function(disposables){this._disposables=disposables;this.isDisposed=false};NAryDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;for(var i=0,len=this._disposables.length;i<len;i++){this._disposables[i].dispose()}this._disposables.length=0}};var RefCountDisposable=Rx.RefCountDisposable=function(){function InnerDisposable(disposable){this.disposable=disposable;this.disposable.count++;this.isInnerDisposed=false}InnerDisposable.prototype.dispose=function(){if(!this.disposable.isDisposed&&!this.isInnerDisposed){this.isInnerDisposed=true;this.disposable.count--;if(this.disposable.count===0&&this.disposable.isPrimaryDisposed){this.disposable.isDisposed=true;this.disposable.underlyingDisposable.dispose()}}};function RefCountDisposable(disposable){this.underlyingDisposable=disposable;this.isDisposed=false;this.isPrimaryDisposed=false;this.count=0}RefCountDisposable.prototype.dispose=function(){if(!this.isDisposed&&!this.isPrimaryDisposed){this.isPrimaryDisposed=true;if(this.count===0){this.isDisposed=true;this.underlyingDisposable.dispose()}}};RefCountDisposable.prototype.getDisposable=function(){return this.isDisposed?disposableEmpty:new InnerDisposable(this)};return RefCountDisposable}();function ScheduledDisposable(scheduler,disposable){this.scheduler=scheduler;this.disposable=disposable;this.isDisposed=false}function scheduleItem(s,self){if(!self.isDisposed){self.isDisposed=true;self.disposable.dispose()}}ScheduledDisposable.prototype.dispose=function(){this.scheduler.schedule(this,scheduleItem)};var ScheduledItem=Rx.internals.ScheduledItem=function(scheduler,state,action,dueTime,comparer){this.scheduler=scheduler;this.state=state;this.action=action;this.dueTime=dueTime;this.comparer=comparer||defaultSubComparer;this.disposable=new SingleAssignmentDisposable};ScheduledItem.prototype.invoke=function(){this.disposable.setDisposable(this.invokeCore())};ScheduledItem.prototype.compareTo=function(other){return this.comparer(this.dueTime,other.dueTime)};ScheduledItem.prototype.isCancelled=function(){return this.disposable.isDisposed};ScheduledItem.prototype.invokeCore=function(){return disposableFixup(this.action(this.scheduler,this.state))};var Scheduler=Rx.Scheduler=function(){function Scheduler(){}Scheduler.isScheduler=function(s){return s instanceof Scheduler};var schedulerProto=Scheduler.prototype;schedulerProto.schedule=function(state,action){throw new NotImplementedError};schedulerProto.scheduleFuture=function(state,dueTime,action){var dt=dueTime;dt instanceof Date&&(dt=dt-this.now());dt=Scheduler.normalize(dt);if(dt===0){return this.schedule(state,action)}return this._scheduleFuture(state,dt,action)};schedulerProto._scheduleFuture=function(state,dueTime,action){throw new NotImplementedError};Scheduler.now=defaultNow;Scheduler.prototype.now=defaultNow;Scheduler.normalize=function(timeSpan){timeSpan<0&&(timeSpan=0);return timeSpan};return Scheduler}();var normalizeTime=Scheduler.normalize,isScheduler=Scheduler.isScheduler;(function(schedulerProto){function invokeRecImmediate(scheduler,pair){var state=pair[0],action=pair[1],group=new CompositeDisposable;action(state,innerAction);return group;function innerAction(state2){var isAdded=false,isDone=false;var d=scheduler.schedule(state2,scheduleWork);if(!isDone){group.add(d);isAdded=true}function scheduleWork(_,state3){if(isAdded){group.remove(d)}else{isDone=true}action(state3,innerAction);return disposableEmpty}}}function invokeRecDate(scheduler,pair){var state=pair[0],action=pair[1],group=new CompositeDisposable;action(state,innerAction);return group;function innerAction(state2,dueTime1){var isAdded=false,isDone=false;var d=scheduler.scheduleFuture(state2,dueTime1,scheduleWork);if(!isDone){group.add(d);isAdded=true}function scheduleWork(_,state3){if(isAdded){group.remove(d)}else{isDone=true}action(state3,innerAction);return disposableEmpty}}}schedulerProto.scheduleRecursive=function(state,action){return this.schedule([state,action],invokeRecImmediate)};schedulerProto.scheduleRecursiveFuture=function(state,dueTime,action){return this.scheduleFuture([state,action],dueTime,invokeRecDate)}})(Scheduler.prototype);(function(schedulerProto){Scheduler.prototype.schedulePeriodic=function(state,period,action){if(typeof root.setInterval==="undefined"){throw new NotSupportedError}period=normalizeTime(period);var s=state,id=root.setInterval(function(){s=action(s)},period);return disposableCreate(function(){root.clearInterval(id)})}})(Scheduler.prototype);(function(schedulerProto){schedulerProto.catchError=schedulerProto["catch"]=function(handler){ | |
return new CatchScheduler(this,handler)}})(Scheduler.prototype);var SchedulePeriodicRecursive=Rx.internals.SchedulePeriodicRecursive=function(){function createTick(self){return function tick(command,recurse){recurse(0,self._period);var state=tryCatch(self._action)(self._state);if(state===errorObj){self._cancel.dispose();thrower(state.e)}self._state=state}}function SchedulePeriodicRecursive(scheduler,state,period,action){this._scheduler=scheduler;this._state=state;this._period=period;this._action=action}SchedulePeriodicRecursive.prototype.start=function(){var d=new SingleAssignmentDisposable;this._cancel=d;d.setDisposable(this._scheduler.scheduleRecursiveFuture(0,this._period,createTick(this)));return d};return SchedulePeriodicRecursive}();var ImmediateScheduler=function(__super__){inherits(ImmediateScheduler,__super__);function ImmediateScheduler(){__super__.call(this)}ImmediateScheduler.prototype.schedule=function(state,action){return disposableFixup(action(this,state))};return ImmediateScheduler}(Scheduler);var immediateScheduler=Scheduler.immediate=new ImmediateScheduler;var CurrentThreadScheduler=function(__super__){var queue;function runTrampoline(){while(queue.length>0){var item=queue.dequeue();!item.isCancelled()&&item.invoke()}}inherits(CurrentThreadScheduler,__super__);function CurrentThreadScheduler(){__super__.call(this)}CurrentThreadScheduler.prototype.schedule=function(state,action){var si=new ScheduledItem(this,state,action,this.now());if(!queue){queue=new PriorityQueue(4);queue.enqueue(si);var result=tryCatch(runTrampoline)();queue=null;if(result===errorObj){thrower(result.e)}}else{queue.enqueue(si)}return si.disposable};CurrentThreadScheduler.prototype.scheduleRequired=function(){return!queue};return CurrentThreadScheduler}(Scheduler);var currentThreadScheduler=Scheduler.currentThread=new CurrentThreadScheduler;var scheduleMethod,clearMethod;var localTimer=function(){var localSetTimeout,localClearTimeout=noop;if(!!root.setTimeout){localSetTimeout=root.setTimeout;localClearTimeout=root.clearTimeout}else if(!!root.WScript){localSetTimeout=function(fn,time){root.WScript.Sleep(time);fn()}}else{throw new NotSupportedError}return{setTimeout:localSetTimeout,clearTimeout:localClearTimeout}}();var localSetTimeout=localTimer.setTimeout,localClearTimeout=localTimer.clearTimeout;(function(){var nextHandle=1,tasksByHandle={},currentlyRunning=false;clearMethod=function(handle){delete tasksByHandle[handle]};function runTask(handle){if(currentlyRunning){localSetTimeout(function(){runTask(handle)},0)}else{var task=tasksByHandle[handle];if(task){currentlyRunning=true;var result=tryCatch(task)();clearMethod(handle);currentlyRunning=false;if(result===errorObj){thrower(result.e)}}}}var reNative=new RegExp("^"+String(toString).replace(/[.*+?^${}()|[\]\\]/g,"\\$&").replace(/toString| for [^\]]+/g,".*?")+"$");var setImmediate=typeof(setImmediate=freeGlobal&&moduleExports&&freeGlobal.setImmediate)=="function"&&!reNative.test(setImmediate)&&setImmediate;function postMessageSupported(){if(!root.postMessage||root.importScripts){return false}var isAsync=false,oldHandler=root.onmessage;root.onmessage=function(){isAsync=true};root.postMessage("","*");root.onmessage=oldHandler;return isAsync}if(isFunction(setImmediate)){scheduleMethod=function(action){var id=nextHandle++;tasksByHandle[id]=action;setImmediate(function(){runTask(id)});return id}}else if(typeof process!=="undefined"&&{}.toString.call(process)==="[object process]"){scheduleMethod=function(action){var id=nextHandle++;tasksByHandle[id]=action;process.nextTick(function(){runTask(id)});return id}}else if(postMessageSupported()){var MSG_PREFIX="ms.rx.schedule"+Math.random();var onGlobalPostMessage=function(event){if(typeof event.data==="string"&&event.data.substring(0,MSG_PREFIX.length)===MSG_PREFIX){runTask(event.data.substring(MSG_PREFIX.length))}};root.addEventListener("message",onGlobalPostMessage,false);scheduleMethod=function(action){var id=nextHandle++;tasksByHandle[id]=action;root.postMessage(MSG_PREFIX+currentId,"*");return id}}else if(!!root.MessageChannel){var channel=new root.MessageChannel;channel.port1.onmessage=function(e){runTask(e.data)};scheduleMethod=function(action){var id=nextHandle++;tasksByHandle[id]=action;channel.port2.postMessage(id);return id}}else if("document"in root&&"onreadystatechange"in root.document.createElement("script")){scheduleMethod=function(action){var scriptElement=root.document.createElement("script");var id=nextHandle++;tasksByHandle[id]=action;scriptElement.onreadystatechange=function(){runTask(id);scriptElement.onreadystatechange=null;scriptElement.parentNode.removeChild(scriptElement);scriptElement=null};root.document.documentElement.appendChild(scriptElement);return id}}else{scheduleMethod=function(action){var id=nextHandle++;tasksByHandle[id]=action;localSetTimeout(function(){runTask(id)},0);return id}}})();var DefaultScheduler=function(__super__){inherits(DefaultScheduler,__super__);function DefaultScheduler(){__super__.call(this)}function scheduleAction(disposable,action,scheduler,state){return function schedule(){!disposable.isDisposed&&disposable.setDisposable(Disposable._fixup(action(scheduler,state)))}}function ClearDisposable(method,id){this._id=id;this._method=method;this.isDisposed=false}ClearDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;this._method.call(null,this._id)}};DefaultScheduler.prototype.schedule=function(state,action){var disposable=new SingleAssignmentDisposable,id=scheduleMethod(scheduleAction(disposable,action,this,state));return new BinaryDisposable(disposable,new ClearDisposable(clearMethod,id))};DefaultScheduler.prototype._scheduleFuture=function(state,dueTime,action){if(dueTime===0){return this.schedule(state,action)}var disposable=new SingleAssignmentDisposable,id=localSetTimeout(scheduleAction(disposable,action,this,state),dueTime);return new BinaryDisposable(disposable,new ClearDisposable(localClearTimeout,id))};return DefaultScheduler}(Scheduler);var defaultScheduler=Scheduler["default"]=Scheduler.async=new DefaultScheduler;var CatchScheduler=function(__super__){inherits(CatchScheduler,__super__);function CatchScheduler(scheduler,handler){this._scheduler=scheduler;this._handler=handler;this._recursiveOriginal=null;this._recursiveWrapper=null;__super__.call(this)}CatchScheduler.prototype.schedule=function(state,action){return this._scheduler.schedule(state,this._wrap(action))};CatchScheduler.prototype._scheduleFuture=function(state,dueTime,action){return this._scheduler.schedule(state,dueTime,this._wrap(action))};CatchScheduler.prototype.now=function(){return this._scheduler.now()};CatchScheduler.prototype._clone=function(scheduler){return new CatchScheduler(scheduler,this._handler)};CatchScheduler.prototype._wrap=function(action){var parent=this;return function(self,state){var res=tryCatch(action)(parent._getRecursiveWrapper(self),state);if(res===errorObj){if(!parent._handler(res.e)){thrower(res.e)}return disposableEmpty}return disposableFixup(ret)}};CatchScheduler.prototype._getRecursiveWrapper=function(scheduler){if(this._recursiveOriginal!==scheduler){this._recursiveOriginal=scheduler;var wrapper=this._clone(scheduler);wrapper._recursiveOriginal=scheduler;wrapper._recursiveWrapper=wrapper;this._recursiveWrapper=wrapper}return this._recursiveWrapper};CatchScheduler.prototype.schedulePeriodic=function(state,period,action){var self=this,failed=false,d=new SingleAssignmentDisposable;d.setDisposable(this._scheduler.schedulePeriodic(state,period,function(state1){if(failed){return null}var res=tryCatch(action)(state1);if(res===errorObj){failed=true;if(!self._handler(res.e)){thrower(res.e)}d.dispose();return null}return ret}));return d};return CatchScheduler}(Scheduler);var Notification=Rx.Notification=function(){function Notification(){}Notification.prototype._accept=function(onNext,onError,onCompleted){throw new NotImplementedError};Notification.prototype._acceptObservable=function(onNext,onError,onCompleted){throw new NotImplementedError};Notification.prototype.accept=function(observerOrOnNext,onError,onCompleted){return observerOrOnNext&&typeof observerOrOnNext==="object"?this._acceptObservable(observerOrOnNext):this._accept(observerOrOnNext,onError,onCompleted)};Notification.prototype.toObservable=function(scheduler){var self=this;isScheduler(scheduler)||(scheduler=immediateScheduler);return new AnonymousObservable(function(o){return scheduler.schedule(self,function(_,notification){notification._acceptObservable(o);notification.kind==="N"&&o.onCompleted()})})};return Notification}();var OnNextNotification=function(__super__){inherits(OnNextNotification,__super__);function OnNextNotification(value){this.value=value;this.kind="N"}OnNextNotification.prototype._accept=function(onNext){return onNext(this.value)};OnNextNotification.prototype._acceptObservable=function(o){return o.onNext(this.value)};OnNextNotification.prototype.toString=function(){return"OnNext("+this.value+")"};return OnNextNotification}(Notification);var OnErrorNotification=function(__super__){inherits(OnErrorNotification,__super__);function OnErrorNotification(error){this.error=error;this.kind="E"}OnErrorNotification.prototype._accept=function(onNext,onError){return onError(this.error)};OnErrorNotification.prototype._acceptObservable=function(o){return o.onError(this.error)};OnErrorNotification.prototype.toString=function(){return"OnError("+this.error+")"};return OnErrorNotification}(Notification);var OnCompletedNotification=function(__super__){inherits(OnCompletedNotification,__super__);function OnCompletedNotification(){this.kind="C"}OnCompletedNotification.prototype._accept=function(onNext,onError,onCompleted){return onCompleted()};OnCompletedNotification.prototype._acceptObservable=function(o){return o.onCompleted()};OnCompletedNotification.prototype.toString=function(){return"OnCompleted()"};return OnCompletedNotification}(Notification);var notificationCreateOnNext=Notification.createOnNext=function(value){return new OnNextNotification(value)};var notificationCreateOnError=Notification.createOnError=function(error){return new OnErrorNotification(error)};var notificationCreateOnCompleted=Notification.createOnCompleted=function(){return new OnCompletedNotification};var Observer=Rx.Observer=function(){};Observer.prototype.toNotifier=function(){var observer=this;return function(n){return n.accept(observer)}};Observer.prototype.asObserver=function(){var self=this;return new AnonymousObserver(function(x){self.onNext(x)},function(err){self.onError(err)},function(){self.onCompleted()})};Observer.prototype.checked=function(){return new CheckedObserver(this)};var observerCreate=Observer.create=function(onNext,onError,onCompleted){onNext||(onNext=noop);onError||(onError=defaultError);onCompleted||(onCompleted=noop);return new AnonymousObserver(onNext,onError,onCompleted)};Observer.fromNotifier=function(handler,thisArg){var cb=bindCallback(handler,thisArg,1);return new AnonymousObserver(function(x){return cb(notificationCreateOnNext(x))},function(e){return cb(notificationCreateOnError(e))},function(){return cb(notificationCreateOnCompleted())})};Observer.prototype.notifyOn=function(scheduler){return new ObserveOnObserver(scheduler,this)};Observer.prototype.makeSafe=function(disposable){return new AnonymousSafeObserver(this._onNext,this._onError,this._onCompleted,disposable)};var AbstractObserver=Rx.internals.AbstractObserver=function(__super__){inherits(AbstractObserver,__super__);function AbstractObserver(){this.isStopped=false}AbstractObserver.prototype.next=notImplemented;AbstractObserver.prototype.error=notImplemented;AbstractObserver.prototype.completed=notImplemented;AbstractObserver.prototype.onNext=function(value){!this.isStopped&&this.next(value)};AbstractObserver.prototype.onError=function(error){if(!this.isStopped){this.isStopped=true;this.error(error)}};AbstractObserver.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=true;this.completed()}};AbstractObserver.prototype.dispose=function(){this.isStopped=true};AbstractObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.error(e);return true}return false};return AbstractObserver}(Observer);var AnonymousObserver=Rx.AnonymousObserver=function(__super__){inherits(AnonymousObserver,__super__);function AnonymousObserver(onNext,onError,onCompleted){__super__.call(this);this._onNext=onNext;this._onError=onError;this._onCompleted=onCompleted}AnonymousObserver.prototype.next=function(value){this._onNext(value)};AnonymousObserver.prototype.error=function(error){this._onError(error)};AnonymousObserver.prototype.completed=function(){this._onCompleted()};return AnonymousObserver}(AbstractObserver);var CheckedObserver=function(__super__){inherits(CheckedObserver,__super__);function CheckedObserver(observer){__super__.call(this);this._observer=observer;this._state=0}var CheckedObserverPrototype=CheckedObserver.prototype;CheckedObserverPrototype.onNext=function(value){this.checkAccess();var res=tryCatch(this._observer.onNext).call(this._observer,value);this._state=0;res===errorObj&&thrower(res.e)};CheckedObserverPrototype.onError=function(err){this.checkAccess();var res=tryCatch(this._observer.onError).call(this._observer,err);this._state=2;res===errorObj&&thrower(res.e)};CheckedObserverPrototype.onCompleted=function(){this.checkAccess();var res=tryCatch(this._observer.onCompleted).call(this._observer);this._state=2;res===errorObj&&thrower(res.e)};CheckedObserverPrototype.checkAccess=function(){if(this._state===1){throw new Error("Re-entrancy detected")}if(this._state===2){throw new Error("Observer completed")}if(this._state===0){this._state=1}};return CheckedObserver}(Observer);var ScheduledObserver=Rx.internals.ScheduledObserver=function(__super__){inherits(ScheduledObserver,__super__);function ScheduledObserver(scheduler,observer){__super__.call(this);this.scheduler=scheduler;this.observer=observer;this.isAcquired=false;this.hasFaulted=false;this.queue=[];this.disposable=new SerialDisposable}ScheduledObserver.prototype.next=function(value){var self=this;this.queue.push(function(){self.observer.onNext(value)})};ScheduledObserver.prototype.error=function(e){var self=this;this.queue.push(function(){self.observer.onError(e)})};ScheduledObserver.prototype.completed=function(){var self=this;this.queue.push(function(){self.observer.onCompleted()})};ScheduledObserver.prototype.ensureActive=function(){var isOwner=false;if(!this.hasFaulted&&this.queue.length>0){isOwner=!this.isAcquired;this.isAcquired=true}if(isOwner){this.disposable.setDisposable(this.scheduler.scheduleRecursive(this,function(parent,self){var work;if(parent.queue.length>0){work=parent.queue.shift()}else{parent.isAcquired=false;return}var res=tryCatch(work)();if(res===errorObj){parent.queue=[];parent.hasFaulted=true;return thrower(res.e)}self(parent)}))}};ScheduledObserver.prototype.dispose=function(){__super__.prototype.dispose.call(this);this.disposable.dispose()};return ScheduledObserver}(AbstractObserver);var ObserveOnObserver=function(__super__){inherits(ObserveOnObserver,__super__);function ObserveOnObserver(scheduler,observer,cancel){__super__.call(this,scheduler,observer);this._cancel=cancel}ObserveOnObserver.prototype.next=function(value){__super__.prototype.next.call(this,value);this.ensureActive()};ObserveOnObserver.prototype.error=function(e){__super__.prototype.error.call(this,e);this.ensureActive()};ObserveOnObserver.prototype.completed=function(){__super__.prototype.completed.call(this);this.ensureActive()};ObserveOnObserver.prototype.dispose=function(){__super__.prototype.dispose.call(this);this._cancel&&this._cancel.dispose();this._cancel=null};return ObserveOnObserver}(ScheduledObserver);var observableProto;var Observable=Rx.Observable=function(){function makeSubscribe(self,subscribe){return function(o){var oldOnError=o.onError;o.onError=function(e){makeStackTraceLong(e,self);oldOnError.call(o,e)};return subscribe.call(self,o)}}function Observable(){if(Rx.config.longStackSupport&&hasStacks){var oldSubscribe=this._subscribe;var e=tryCatch(thrower)(new Error).e;this.stack=e.stack.substring(e.stack.indexOf("\n")+1);this._subscribe=makeSubscribe(this,oldSubscribe)}}observableProto=Observable.prototype;Observable.isObservable=function(o){return o&&isFunction(o.subscribe)};observableProto.subscribe=observableProto.forEach=function(oOrOnNext,onError,onCompleted){return this._subscribe(typeof oOrOnNext==="object"?oOrOnNext:observerCreate(oOrOnNext,onError,onCompleted))};observableProto.subscribeOnNext=function(onNext,thisArg){return this._subscribe(observerCreate(typeof thisArg!=="undefined"?function(x){onNext.call(thisArg,x)}:onNext))};observableProto.subscribeOnError=function(onError,thisArg){return this._subscribe(observerCreate(null,typeof thisArg!=="undefined"?function(e){onError.call(thisArg,e)}:onError))};observableProto.subscribeOnCompleted=function(onCompleted,thisArg){return this._subscribe(observerCreate(null,null,typeof thisArg!=="undefined"?function(){onCompleted.call(thisArg)}:onCompleted))};return Observable}();var ObservableBase=Rx.ObservableBase=function(__super__){inherits(ObservableBase,__super__);function fixSubscriber(subscriber){return subscriber&&isFunction(subscriber.dispose)?subscriber:isFunction(subscriber)?disposableCreate(subscriber):disposableEmpty}function setDisposable(s,state){var ado=state[0],self=state[1];var sub=tryCatch(self.subscribeCore).call(self,ado);if(sub===errorObj&&!ado.fail(errorObj.e)){thrower(errorObj.e)}ado.setDisposable(fixSubscriber(sub))}function ObservableBase(){__super__.call(this)}ObservableBase.prototype._subscribe=function(o){var ado=new AutoDetachObserver(o),state=[ado,this];if(currentThreadScheduler.scheduleRequired()){currentThreadScheduler.schedule(state,setDisposable)}else{setDisposable(null,state)}return ado};ObservableBase.prototype.subscribeCore=notImplemented;return ObservableBase}(Observable);var FlatMapObservable=Rx.FlatMapObservable=function(__super__){inherits(FlatMapObservable,__super__);function FlatMapObservable(source,selector,resultSelector,thisArg){this.resultSelector=isFunction(resultSelector)?resultSelector:null;this.selector=bindCallback(isFunction(selector)?selector:function(){return selector},thisArg,3);this.source=source;__super__.call(this)}FlatMapObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o,this.selector,this.resultSelector,this))};inherits(InnerObserver,AbstractObserver);function InnerObserver(observer,selector,resultSelector,source){this.i=0;this.selector=selector;this.resultSelector=resultSelector;this.source=source;this.o=observer;AbstractObserver.call(this)}InnerObserver.prototype._wrapResult=function(result,x,i){return this.resultSelector?result.map(function(y,i2){return this.resultSelector(x,y,i,i2)},this):result};InnerObserver.prototype.next=function(x){var i=this.i++;var result=tryCatch(this.selector)(x,i,this.source);if(result===errorObj){return this.o.onError(result.e)}isPromise(result)&&(result=observableFromPromise(result));(isArrayLike(result)||isIterable(result))&&(result=Observable.from(result));this.o.onNext(this._wrapResult(result,x,i))};InnerObserver.prototype.error=function(e){this.o.onError(e)};InnerObserver.prototype.onCompleted=function(){this.o.onCompleted()};return FlatMapObservable}(ObservableBase);var Enumerable=Rx.internals.Enumerable=function(){};function IsDisposedDisposable(state){this._s=state;this.isDisposed=false}IsDisposedDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;this._s.isDisposed=true}};var ConcatEnumerableObservable=function(__super__){inherits(ConcatEnumerableObservable,__super__);function ConcatEnumerableObservable(sources){this.sources=sources;__super__.call(this)}ConcatEnumerableObservable.prototype.subscribeCore=function(o){var state={isDisposed:false},subscription=new SerialDisposable;var cancelable=currentThreadScheduler.scheduleRecursive(this.sources[$iterator$](),function(e,self){if(state.isDisposed){return}var currentItem=tryCatch(e.next).call(e);if(currentItem===errorObj){return o.onError(currentItem.e)}if(currentItem.done){return o.onCompleted()}var currentValue=currentItem.value;isPromise(currentValue)&&(currentValue=observableFromPromise(currentValue));var d=new SingleAssignmentDisposable;subscription.setDisposable(d);d.setDisposable(currentValue.subscribe(new InnerObserver(o,self,e)))});return new NAryDisposable([subscription,cancelable,new IsDisposedDisposable(state)])};inherits(InnerObserver,AbstractObserver);function InnerObserver(o,s,e){this._o=o;this._s=s;this._e=e;AbstractObserver.call(this)}InnerObserver.prototype.onNext=function(x){this._o.onNext(x)};InnerObserver.prototype.onError=function(e){this._o.onError(e)};InnerObserver.prototype.onCompleted=function(){this._s(this._e)};return ConcatEnumerableObservable}(ObservableBase);Enumerable.prototype.concat=function(){return new ConcatEnumerableObservable(this)};var CatchErrorObservable=function(__super__){inherits(CatchErrorObservable,__super__);function CatchErrorObservable(sources){this.sources=sources;__super__.call(this)}CatchErrorObservable.prototype.subscribeCore=function(o){var e=this.sources[$iterator$]();var state={isDisposed:false},subscription=new SerialDisposable;var cancelable=currentThreadScheduler.scheduleRecursive(null,function(lastException,self){if(state.isDisposed){return}var currentItem=tryCatch(e.next).call(e);if(currentItem===errorObj){return o.onError(currentItem.e)}if(currentItem.done){return lastException!==null?o.onError(lastException):o.onCompleted()}var currentValue=currentItem.value;isPromise(currentValue)&&(currentValue=observableFromPromise(currentValue));var d=new SingleAssignmentDisposable;subscription.setDisposable(d);d.setDisposable(currentValue.subscribe(new InnerObserver(o,self)))});return new NAryDisposable([subscription,cancelable,new IsDisposedDisposable(state)])};inherits(InnerObserver,AbstractObserver);function InnerObserver(o,recurse){this._o=o;this._recurse=recurse;AbstractObserver.call(this)}InnerObserver.prototype.next=function(x){this._o.onNext(x)};InnerObserver.prototype.error=function(e){this._recurse(e)};InnerObserver.prototype.completed=function(){this._o.onCompleted()};return CatchErrorObservable}(ObservableBase);Enumerable.prototype.catchError=function(){return new CatchErrorObservable(this)};Enumerable.prototype.catchErrorWhen=function(notificationHandler){var sources=this;return new AnonymousObservable(function(o){var exceptions=new Subject,notifier=new Subject,handled=notificationHandler(exceptions),notificationDisposable=handled.subscribe(notifier);var e=sources[$iterator$]();var state={isDisposed:false},lastException,subscription=new SerialDisposable;var cancelable=currentThreadScheduler.scheduleRecursive(null,function(_,self){if(state.isDisposed){return}var currentItem=tryCatch(e.next).call(e);if(currentItem===errorObj){return o.onError(currentItem.e)}if(currentItem.done){if(lastException){o.onError(lastException)}else{o.onCompleted()}return}var currentValue=currentItem.value;isPromise(currentValue)&&(currentValue=observableFromPromise(currentValue));var outer=new SingleAssignmentDisposable;var inner=new SingleAssignmentDisposable;subscription.setDisposable(new BinaryDisposable(inner,outer));outer.setDisposable(currentValue.subscribe(function(x){o.onNext(x)},function(exn){inner.setDisposable(notifier.subscribe(self,function(ex){o.onError(ex)},function(){o.onCompleted()}));exceptions.onNext(exn)},function(){o.onCompleted()}))});return new NAryDisposable([notificationDisposable,subscription,cancelable,new IsDisposedDisposable(state)])})};var RepeatEnumerable=function(__super__){inherits(RepeatEnumerable,__super__);function RepeatEnumerable(v,c){this.v=v;this.c=c==null?-1:c}RepeatEnumerable.prototype[$iterator$]=function(){return new RepeatEnumerator(this)};function RepeatEnumerator(p){this.v=p.v;this.l=p.c}RepeatEnumerator.prototype.next=function(){if(this.l===0){return doneEnumerator}if(this.l>0){this.l--}return{done:false,value:this.v}};return RepeatEnumerable}(Enumerable);var enumerableRepeat=Enumerable.repeat=function(value,repeatCount){return new RepeatEnumerable(value,repeatCount)};var OfEnumerable=function(__super__){inherits(OfEnumerable,__super__);function OfEnumerable(s,fn,thisArg){this.s=s;this.fn=fn?bindCallback(fn,thisArg,3):null}OfEnumerable.prototype[$iterator$]=function(){return new OfEnumerator(this)};function OfEnumerator(p){this.i=-1;this.s=p.s;this.l=this.s.length;this.fn=p.fn}OfEnumerator.prototype.next=function(){return++this.i<this.l?{done:false,value:!this.fn?this.s[this.i]:this.fn(this.s[this.i],this.i,this.s)}:doneEnumerator};return OfEnumerable}(Enumerable);var enumerableOf=Enumerable.of=function(source,selector,thisArg){return new OfEnumerable(source,selector,thisArg)};var ObserveOnObservable=function(__super__){inherits(ObserveOnObservable,__super__);function ObserveOnObservable(source,s){this.source=source;this._s=s;__super__.call(this)}ObserveOnObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new ObserveOnObserver(this._s,o))};return ObserveOnObservable}(ObservableBase);observableProto.observeOn=function(scheduler){return new ObserveOnObservable(this,scheduler)};var SubscribeOnObservable=function(__super__){inherits(SubscribeOnObservable,__super__);function SubscribeOnObservable(source,s){this.source=source;this._s=s;__super__.call(this)}function scheduleMethod(scheduler,state){var source=state[0],d=state[1],o=state[2];d.setDisposable(new ScheduledDisposable(scheduler,source.subscribe(o)))}SubscribeOnObservable.prototype.subscribeCore=function(o){var m=new SingleAssignmentDisposable,d=new SerialDisposable;d.setDisposable(m);m.setDisposable(this._s.schedule([this.source,d,o],scheduleMethod));return d};return SubscribeOnObservable}(ObservableBase);observableProto.subscribeOn=function(scheduler){return new SubscribeOnObservable(this,scheduler)};var FromPromiseObservable=function(__super__){inherits(FromPromiseObservable,__super__);function FromPromiseObservable(p,s){this._p=p;this._s=s;__super__.call(this)}function scheduleNext(s,state){var o=state[0],data=state[1];o.onNext(data);o.onCompleted()}function scheduleError(s,state){var o=state[0],err=state[1];o.onError(err)}FromPromiseObservable.prototype.subscribeCore=function(o){var sad=new SingleAssignmentDisposable,self=this;this._p.then(function(data){sad.setDisposable(self._s.schedule([o,data],scheduleNext))},function(err){sad.setDisposable(self._s.schedule([o,err],scheduleError))});return sad};return FromPromiseObservable}(ObservableBase);var observableFromPromise=Observable.fromPromise=function(promise,scheduler){scheduler||(scheduler=defaultScheduler);return new FromPromiseObservable(promise,scheduler)};observableProto.toPromise=function(promiseCtor){promiseCtor||(promiseCtor=Rx.config.Promise);if(!promiseCtor){throw new NotSupportedError("Promise type not provided nor in Rx.config.Promise")}var source=this;return new promiseCtor(function(resolve,reject){var value;source.subscribe(function(v){value=v},reject,function(){resolve(value)})})};var ToArrayObservable=function(__super__){inherits(ToArrayObservable,__super__);function ToArrayObservable(source){this.source=source;__super__.call(this)}ToArrayObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o))};inherits(InnerObserver,AbstractObserver);function InnerObserver(o){this.o=o;this.a=[];AbstractObserver.call(this)}InnerObserver.prototype.next=function(x){this.a.push(x)};InnerObserver.prototype.error=function(e){this.o.onError(e)};InnerObserver.prototype.completed=function(){this.o.onNext(this.a);this.o.onCompleted()};return ToArrayObservable}(ObservableBase);observableProto.toArray=function(){return new ToArrayObservable(this)};Observable.create=function(subscribe,parent){return new AnonymousObservable(subscribe,parent)};var Defer=function(__super__){inherits(Defer,__super__);function Defer(factory){this._f=factory;__super__.call(this)}Defer.prototype.subscribeCore=function(o){var result=tryCatch(this._f)();if(result===errorObj){return observableThrow(result.e).subscribe(o)}isPromise(result)&&(result=observableFromPromise(result));return result.subscribe(o)};return Defer}(ObservableBase);var observableDefer=Observable.defer=function(observableFactory){return new Defer(observableFactory)};var EmptyObservable=function(__super__){inherits(EmptyObservable,__super__);function EmptyObservable(scheduler){this.scheduler=scheduler;__super__.call(this)}EmptyObservable.prototype.subscribeCore=function(observer){var sink=new EmptySink(observer,this.scheduler);return sink.run()};function EmptySink(observer,scheduler){this.observer=observer;this.scheduler=scheduler}function scheduleItem(s,state){state.onCompleted();return disposableEmpty}EmptySink.prototype.run=function(){var state=this.observer;return this.scheduler===immediateScheduler?scheduleItem(null,state):this.scheduler.schedule(state,scheduleItem)};return EmptyObservable}(ObservableBase);var EMPTY_OBSERVABLE=new EmptyObservable(immediateScheduler);var observableEmpty=Observable.empty=function(scheduler){isScheduler(scheduler)||(scheduler=immediateScheduler);return scheduler===immediateScheduler?EMPTY_OBSERVABLE:new EmptyObservable(scheduler)};var FromObservable=function(__super__){inherits(FromObservable,__super__);function FromObservable(iterable,mapper,scheduler){this.iterable=iterable;this.mapper=mapper;this.scheduler=scheduler;__super__.call(this)}FromObservable.prototype.subscribeCore=function(o){var sink=new FromSink(o,this);return sink.run()};return FromObservable}(ObservableBase);var FromSink=function(){function FromSink(o,parent){this.o=o;this.parent=parent}FromSink.prototype.run=function(){var list=Object(this.parent.iterable),it=getIterable(list),o=this.o,mapper=this.parent.mapper;function loopRecursive(i,recurse){var next=tryCatch(it.next).call(it);if(next===errorObj){return o.onError(next.e)}if(next.done){return o.onCompleted()}var result=next.value;if(isFunction(mapper)){result=tryCatch(mapper)(result,i);if(result===errorObj){return o.onError(result.e)}}o.onNext(result);recurse(i+1)}return this.parent.scheduler.scheduleRecursive(0,loopRecursive)};return FromSink}();var maxSafeInteger=Math.pow(2,53)-1;function StringIterable(s){this._s=s}StringIterable.prototype[$iterator$]=function(){return new StringIterator(this._s)};function StringIterator(s){this._s=s;this._l=s.length;this._i=0}StringIterator.prototype[$iterator$]=function(){return this};StringIterator.prototype.next=function(){return this._i<this._l?{done:false,value:this._s.charAt(this._i++)}:doneEnumerator};function ArrayIterable(a){this._a=a}ArrayIterable.prototype[$iterator$]=function(){return new ArrayIterator(this._a)};function ArrayIterator(a){this._a=a;this._l=toLength(a);this._i=0}ArrayIterator.prototype[$iterator$]=function(){return this};ArrayIterator.prototype.next=function(){return this._i<this._l?{done:false,value:this._a[this._i++]}:doneEnumerator};function numberIsFinite(value){return typeof value==="number"&&root.isFinite(value)}function isNan(n){return n!==n}function getIterable(o){var i=o[$iterator$],it;if(!i&&typeof o==="string"){it=new StringIterable(o);return it[$iterator$]()}if(!i&&o.length!==undefined){it=new ArrayIterable(o);return it[$iterator$]()}if(!i){throw new TypeError("Object is not iterable")}return o[$iterator$]()}function sign(value){var number=+value;if(number===0){return number}if(isNaN(number)){return number}return number<0?-1:1}function toLength(o){var len=+o.length;if(isNaN(len)){return 0}if(len===0||!numberIsFinite(len)){return len}len=sign(len)*Math.floor(Math.abs(len));if(len<=0){return 0}if(len>maxSafeInteger){return maxSafeInteger}return len}var observableFrom=Observable.from=function(iterable,mapFn,thisArg,scheduler){if(iterable==null){throw new Error("iterable cannot be null.")}if(mapFn&&!isFunction(mapFn)){throw new Error("mapFn when provided must be a function"); | |
}if(mapFn){var mapper=bindCallback(mapFn,thisArg,2)}isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new FromObservable(iterable,mapper,scheduler)};var FromArrayObservable=function(__super__){inherits(FromArrayObservable,__super__);function FromArrayObservable(args,scheduler){this.args=args;this.scheduler=scheduler;__super__.call(this)}FromArrayObservable.prototype.subscribeCore=function(observer){var sink=new FromArraySink(observer,this);return sink.run()};return FromArrayObservable}(ObservableBase);function FromArraySink(observer,parent){this.observer=observer;this.parent=parent}function loopRecursive(args,observer){var len=args.length;return function loop(i,recurse){if(i<len){observer.onNext(args[i]);recurse(i+1)}else{observer.onCompleted()}}}FromArraySink.prototype.run=function(){return this.parent.scheduler.scheduleRecursive(0,loopRecursive(this.parent.args,this.observer))};var observableFromArray=Observable.fromArray=function(array,scheduler){isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new FromArrayObservable(array,scheduler)};var GenerateObservable=function(__super__){inherits(GenerateObservable,__super__);function GenerateObservable(state,cndFn,itrFn,resFn,s){this._state=state;this._cndFn=cndFn;this._itrFn=itrFn;this._resFn=resFn;this._s=s;this._first=true;__super__.call(this)}function scheduleRecursive(self,recurse){if(self._first){self._first=false}else{self._state=tryCatch(self._itrFn)(self._state);if(self._state===errorObj){return self._o.onError(self._state.e)}}var hasResult=tryCatch(self._cndFn)(self._state);if(hasResult===errorObj){return self._o.onError(hasResult.e)}if(hasResult){var result=tryCatch(self._resFn)(self._state);if(result===errorObj){return self._o.onError(result.e)}self._o.onNext(result);recurse(self)}else{self._o.onCompleted()}}GenerateObservable.prototype.subscribeCore=function(o){this._o=o;return this._s.scheduleRecursive(this,scheduleRecursive)};return GenerateObservable}(ObservableBase);Observable.generate=function(initialState,condition,iterate,resultSelector,scheduler){isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new GenerateObservable(initialState,condition,iterate,resultSelector,scheduler)};function observableOf(scheduler,array){isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new FromArrayObservable(array,scheduler)}Observable.of=function(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return new FromArrayObservable(args,currentThreadScheduler)};Observable.ofWithScheduler=function(scheduler){var len=arguments.length,args=new Array(len-1);for(var i=1;i<len;i++){args[i-1]=arguments[i]}return new FromArrayObservable(args,scheduler)};Observable.ofArrayChanges=function(array){if(!Array.isArray(array)){throw new TypeError("Array.observe only accepts arrays.")}if(typeof Array.observe!=="function"&&typeof Array.unobserve!=="function"){throw new TypeError("Array.observe is not supported on your platform")}return new AnonymousObservable(function(observer){function observerFn(changes){for(var i=0,len=changes.length;i<len;i++){observer.onNext(changes[i])}}Array.observe(array,observerFn);return function(){Array.unobserve(array,observerFn)}})};Observable.ofObjectChanges=function(obj){if(obj==null){throw new TypeError("object must not be null or undefined.")}if(typeof Object.observe!=="function"&&typeof Object.unobserve!=="function"){throw new TypeError("Object.observe is not supported on your platform")}return new AnonymousObservable(function(observer){function observerFn(changes){for(var i=0,len=changes.length;i<len;i++){observer.onNext(changes[i])}}Object.observe(obj,observerFn);return function(){Object.unobserve(obj,observerFn)}})};var NeverObservable=function(__super__){inherits(NeverObservable,__super__);function NeverObservable(){__super__.call(this)}NeverObservable.prototype.subscribeCore=function(observer){return disposableEmpty};return NeverObservable}(ObservableBase);var NEVER_OBSERVABLE=new NeverObservable;var observableNever=Observable.never=function(){return NEVER_OBSERVABLE};var PairsObservable=function(__super__){inherits(PairsObservable,__super__);function PairsObservable(obj,scheduler){this.obj=obj;this.keys=Object.keys(obj);this.scheduler=scheduler;__super__.call(this)}PairsObservable.prototype.subscribeCore=function(observer){var sink=new PairsSink(observer,this);return sink.run()};return PairsObservable}(ObservableBase);function PairsSink(observer,parent){this.observer=observer;this.parent=parent}PairsSink.prototype.run=function(){var observer=this.observer,obj=this.parent.obj,keys=this.parent.keys,len=keys.length;function loopRecursive(i,recurse){if(i<len){var key=keys[i];observer.onNext([key,obj[key]]);recurse(i+1)}else{observer.onCompleted()}}return this.parent.scheduler.scheduleRecursive(0,loopRecursive)};Observable.pairs=function(obj,scheduler){scheduler||(scheduler=currentThreadScheduler);return new PairsObservable(obj,scheduler)};var RangeObservable=function(__super__){inherits(RangeObservable,__super__);function RangeObservable(start,count,scheduler){this.start=start;this.rangeCount=count;this.scheduler=scheduler;__super__.call(this)}RangeObservable.prototype.subscribeCore=function(observer){var sink=new RangeSink(observer,this);return sink.run()};return RangeObservable}(ObservableBase);var RangeSink=function(){function RangeSink(observer,parent){this.observer=observer;this.parent=parent}function loopRecursive(start,count,observer){return function loop(i,recurse){if(i<count){observer.onNext(start+i);recurse(i+1)}else{observer.onCompleted()}}}RangeSink.prototype.run=function(){return this.parent.scheduler.scheduleRecursive(0,loopRecursive(this.parent.start,this.parent.rangeCount,this.observer))};return RangeSink}();Observable.range=function(start,count,scheduler){isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new RangeObservable(start,count,scheduler)};var RepeatObservable=function(__super__){inherits(RepeatObservable,__super__);function RepeatObservable(value,repeatCount,scheduler){this.value=value;this.repeatCount=repeatCount==null?-1:repeatCount;this.scheduler=scheduler;__super__.call(this)}RepeatObservable.prototype.subscribeCore=function(observer){var sink=new RepeatSink(observer,this);return sink.run()};return RepeatObservable}(ObservableBase);function RepeatSink(observer,parent){this.observer=observer;this.parent=parent}RepeatSink.prototype.run=function(){var observer=this.observer,value=this.parent.value;function loopRecursive(i,recurse){if(i===-1||i>0){observer.onNext(value);i>0&&i--}if(i===0){return observer.onCompleted()}recurse(i)}return this.parent.scheduler.scheduleRecursive(this.parent.repeatCount,loopRecursive)};Observable.repeat=function(value,repeatCount,scheduler){isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new RepeatObservable(value,repeatCount,scheduler)};var JustObservable=function(__super__){inherits(JustObservable,__super__);function JustObservable(value,scheduler){this.value=value;this.scheduler=scheduler;__super__.call(this)}JustObservable.prototype.subscribeCore=function(observer){var sink=new JustSink(observer,this.value,this.scheduler);return sink.run()};function JustSink(observer,value,scheduler){this.observer=observer;this.value=value;this.scheduler=scheduler}function scheduleItem(s,state){var value=state[0],observer=state[1];observer.onNext(value);observer.onCompleted();return disposableEmpty}JustSink.prototype.run=function(){var state=[this.value,this.observer];return this.scheduler===immediateScheduler?scheduleItem(null,state):this.scheduler.schedule(state,scheduleItem)};return JustObservable}(ObservableBase);var observableReturn=Observable["return"]=Observable.just=function(value,scheduler){isScheduler(scheduler)||(scheduler=immediateScheduler);return new JustObservable(value,scheduler)};var ThrowObservable=function(__super__){inherits(ThrowObservable,__super__);function ThrowObservable(error,scheduler){this.error=error;this.scheduler=scheduler;__super__.call(this)}ThrowObservable.prototype.subscribeCore=function(o){var sink=new ThrowSink(o,this);return sink.run()};function ThrowSink(o,p){this.o=o;this.p=p}function scheduleItem(s,state){var e=state[0],o=state[1];o.onError(e)}ThrowSink.prototype.run=function(){return this.p.scheduler.schedule([this.p.error,this.o],scheduleItem)};return ThrowObservable}(ObservableBase);var observableThrow=Observable["throw"]=function(error,scheduler){isScheduler(scheduler)||(scheduler=immediateScheduler);return new ThrowObservable(error,scheduler)};var UsingObservable=function(__super__){inherits(UsingObservable,__super__);function UsingObservable(resFn,obsFn){this._resFn=resFn;this._obsFn=obsFn;__super__.call(this)}UsingObservable.prototype.subscribeCore=function(o){var disposable=disposableEmpty;var resource=tryCatch(this._resFn)();if(resource===errorObj){return new BinaryDisposable(observableThrow(resource.e).subscribe(o),disposable)}resource&&(disposable=resource);var source=tryCatch(this._obsFn)(resource);if(source===errorObj){return new BinaryDisposable(observableThrow(source.e).subscribe(o),disposable)}return new BinaryDisposable(source.subscribe(o),disposable)};return UsingObservable}(ObservableBase);Observable.using=function(resourceFactory,observableFactory){return new UsingObservable(resourceFactory,observableFactory)};observableProto.amb=function(rightSource){var leftSource=this;return new AnonymousObservable(function(observer){var choice,leftChoice="L",rightChoice="R",leftSubscription=new SingleAssignmentDisposable,rightSubscription=new SingleAssignmentDisposable;isPromise(rightSource)&&(rightSource=observableFromPromise(rightSource));function choiceL(){if(!choice){choice=leftChoice;rightSubscription.dispose()}}function choiceR(){if(!choice){choice=rightChoice;leftSubscription.dispose()}}var leftSubscribe=observerCreate(function(left){choiceL();choice===leftChoice&&observer.onNext(left)},function(e){choiceL();choice===leftChoice&&observer.onError(e)},function(){choiceL();choice===leftChoice&&observer.onCompleted()});var rightSubscribe=observerCreate(function(right){choiceR();choice===rightChoice&&observer.onNext(right)},function(e){choiceR();choice===rightChoice&&observer.onError(e)},function(){choiceR();choice===rightChoice&&observer.onCompleted()});leftSubscription.setDisposable(leftSource.subscribe(leftSubscribe));rightSubscription.setDisposable(rightSource.subscribe(rightSubscribe));return new BinaryDisposable(leftSubscription,rightSubscription)})};function amb(p,c){return p.amb(c)}Observable.amb=function(){var acc=observableNever(),items;if(Array.isArray(arguments[0])){items=arguments[0]}else{var len=arguments.length;items=new Array(items);for(var i=0;i<len;i++){items[i]=arguments[i]}}for(var i=0,len=items.length;i<len;i++){acc=amb(acc,items[i])}return acc};var CatchObservable=function(__super__){inherits(CatchObservable,__super__);function CatchObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}CatchObservable.prototype.subscribeCore=function(o){var d1=new SingleAssignmentDisposable,subscription=new SerialDisposable;subscription.setDisposable(d1);d1.setDisposable(this.source.subscribe(new CatchObserver(o,subscription,this._fn)));return subscription};return CatchObservable}(ObservableBase);var CatchObserver=function(__super__){inherits(CatchObserver,__super__);function CatchObserver(o,s,fn){this._o=o;this._s=s;this._fn=fn;__super__.call(this)}CatchObserver.prototype.next=function(x){this._o.onNext(x)};CatchObserver.prototype.completed=function(){return this._o.onCompleted()};CatchObserver.prototype.error=function(e){var result=tryCatch(this._fn)(e);if(result===errorObj){return this._o.onError(result.e)}isPromise(result)&&(result=observableFromPromise(result));var d=new SingleAssignmentDisposable;this._s.setDisposable(d);d.setDisposable(result.subscribe(this._o))};return CatchObserver}(AbstractObserver);observableProto["catch"]=function(handlerOrSecond){return isFunction(handlerOrSecond)?new CatchObservable(this,handlerOrSecond):observableCatch([this,handlerOrSecond])};var observableCatch=Observable["catch"]=function(){var items;if(Array.isArray(arguments[0])){items=arguments[0]}else{var len=arguments.length;items=new Array(len);for(var i=0;i<len;i++){items[i]=arguments[i]}}return enumerableOf(items).catchError()};observableProto.combineLatest=function(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}if(Array.isArray(args[0])){args[0].unshift(this)}else{args.unshift(this)}return combineLatest.apply(this,args)};function falseFactory(){return false}function argumentsToArray(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return args}var CombineLatestObservable=function(__super__){inherits(CombineLatestObservable,__super__);function CombineLatestObservable(params,cb){this._params=params;this._cb=cb;__super__.call(this)}CombineLatestObservable.prototype.subscribeCore=function(observer){var len=this._params.length,subscriptions=new Array(len);var state={hasValue:arrayInitialize(len,falseFactory),hasValueAll:false,isDone:arrayInitialize(len,falseFactory),values:new Array(len)};for(var i=0;i<len;i++){var source=this._params[i],sad=new SingleAssignmentDisposable;subscriptions[i]=sad;isPromise(source)&&(source=observableFromPromise(source));sad.setDisposable(source.subscribe(new CombineLatestObserver(observer,i,this._cb,state)))}return new NAryDisposable(subscriptions)};return CombineLatestObservable}(ObservableBase);var CombineLatestObserver=function(__super__){inherits(CombineLatestObserver,__super__);function CombineLatestObserver(o,i,cb,state){this._o=o;this._i=i;this._cb=cb;this._state=state;__super__.call(this)}function notTheSame(i){return function(x,j){return j!==i}}CombineLatestObserver.prototype.next=function(x){this._state.values[this._i]=x;this._state.hasValue[this._i]=true;if(this._state.hasValueAll||(this._state.hasValueAll=this._state.hasValue.every(identity))){var res=tryCatch(this._cb).apply(null,this._state.values);if(res===errorObj){return this._o.onError(res.e)}this._o.onNext(res)}else if(this._state.isDone.filter(notTheSame(this._i)).every(identity)){this._o.onCompleted()}};CombineLatestObserver.prototype.error=function(e){this._o.onError(e)};CombineLatestObserver.prototype.completed=function(){this._state.isDone[this._i]=true;this._state.isDone.every(identity)&&this._o.onCompleted()};return CombineLatestObserver}(AbstractObserver);var combineLatest=Observable.combineLatest=function(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}var resultSelector=isFunction(args[len-1])?args.pop():argumentsToArray;Array.isArray(args[0])&&(args=args[0]);return new CombineLatestObservable(args,resultSelector)};observableProto.concat=function(){for(var args=[],i=0,len=arguments.length;i<len;i++){args.push(arguments[i])}args.unshift(this);return observableConcat.apply(null,args)};var ConcatObservable=function(__super__){inherits(ConcatObservable,__super__);function ConcatObservable(sources){this.sources=sources;__super__.call(this)}ConcatObservable.prototype.subscribeCore=function(o){var sink=new ConcatSink(this.sources,o);return sink.run()};function ConcatSink(sources,o){this.sources=sources;this.o=o}ConcatSink.prototype.run=function(){var isDisposed,subscription=new SerialDisposable,sources=this.sources,length=sources.length,o=this.o;var cancelable=immediateScheduler.scheduleRecursive(0,function(i,self){if(isDisposed){return}if(i===length){return o.onCompleted()}var currentValue=sources[i];isPromise(currentValue)&&(currentValue=observableFromPromise(currentValue));var d=new SingleAssignmentDisposable;subscription.setDisposable(d);d.setDisposable(currentValue.subscribe(function(x){o.onNext(x)},function(e){o.onError(e)},function(){self(i+1)}))});return new CompositeDisposable(subscription,cancelable,disposableCreate(function(){isDisposed=true}))};return ConcatObservable}(ObservableBase);var observableConcat=Observable.concat=function(){var args;if(Array.isArray(arguments[0])){args=arguments[0]}else{args=new Array(arguments.length);for(var i=0,len=arguments.length;i<len;i++){args[i]=arguments[i]}}return new ConcatObservable(args)};observableProto.concatAll=function(){return this.merge(1)};var MergeObservable=function(__super__){inherits(MergeObservable,__super__);function MergeObservable(source,maxConcurrent){this.source=source;this.maxConcurrent=maxConcurrent;__super__.call(this)}MergeObservable.prototype.subscribeCore=function(observer){var g=new CompositeDisposable;g.add(this.source.subscribe(new MergeObserver(observer,this.maxConcurrent,g)));return g};return MergeObservable}(ObservableBase);var MergeObserver=function(){function MergeObserver(o,max,g){this.o=o;this.max=max;this.g=g;this.done=false;this.q=[];this.activeCount=0;this.isStopped=false}MergeObserver.prototype.handleSubscribe=function(xs){var sad=new SingleAssignmentDisposable;this.g.add(sad);isPromise(xs)&&(xs=observableFromPromise(xs));sad.setDisposable(xs.subscribe(new InnerObserver(this,sad)))};MergeObserver.prototype.onNext=function(innerSource){if(this.isStopped){return}if(this.activeCount<this.max){this.activeCount++;this.handleSubscribe(innerSource)}else{this.q.push(innerSource)}};MergeObserver.prototype.onError=function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e)}};MergeObserver.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=true;this.done=true;this.activeCount===0&&this.o.onCompleted()}};MergeObserver.prototype.dispose=function(){this.isStopped=true};MergeObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e);return true}return false};function InnerObserver(parent,sad){this.parent=parent;this.sad=sad;this.isStopped=false}InnerObserver.prototype.onNext=function(x){if(!this.isStopped){this.parent.o.onNext(x)}};InnerObserver.prototype.onError=function(e){if(!this.isStopped){this.isStopped=true;this.parent.o.onError(e)}};InnerObserver.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=true;var parent=this.parent;parent.g.remove(this.sad);if(parent.q.length>0){parent.handleSubscribe(parent.q.shift())}else{parent.activeCount--;parent.done&&parent.activeCount===0&&parent.o.onCompleted()}}};InnerObserver.prototype.dispose=function(){this.isStopped=true};InnerObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.parent.o.onError(e);return true}return false};return MergeObserver}();observableProto.merge=function(maxConcurrentOrOther){return typeof maxConcurrentOrOther!=="number"?observableMerge(this,maxConcurrentOrOther):new MergeObservable(this,maxConcurrentOrOther)};var observableMerge=Observable.merge=function(){var scheduler,sources=[],i,len=arguments.length;if(!arguments[0]){scheduler=immediateScheduler;for(i=1;i<len;i++){sources.push(arguments[i])}}else if(isScheduler(arguments[0])){scheduler=arguments[0];for(i=1;i<len;i++){sources.push(arguments[i])}}else{scheduler=immediateScheduler;for(i=0;i<len;i++){sources.push(arguments[i])}}if(Array.isArray(sources[0])){sources=sources[0]}return observableOf(scheduler,sources).mergeAll()};var MergeAllObservable=function(__super__){inherits(MergeAllObservable,__super__);function MergeAllObservable(source){this.source=source;__super__.call(this)}MergeAllObservable.prototype.subscribeCore=function(observer){var g=new CompositeDisposable,m=new SingleAssignmentDisposable;g.add(m);m.setDisposable(this.source.subscribe(new MergeAllObserver(observer,g)));return g};function MergeAllObserver(o,g){this.o=o;this.g=g;this.isStopped=false;this.done=false}MergeAllObserver.prototype.onNext=function(innerSource){if(this.isStopped){return}var sad=new SingleAssignmentDisposable;this.g.add(sad);isPromise(innerSource)&&(innerSource=observableFromPromise(innerSource));sad.setDisposable(innerSource.subscribe(new InnerObserver(this,sad)))};MergeAllObserver.prototype.onError=function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e)}};MergeAllObserver.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=true;this.done=true;this.g.length===1&&this.o.onCompleted()}};MergeAllObserver.prototype.dispose=function(){this.isStopped=true};MergeAllObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e);return true}return false};function InnerObserver(parent,sad){this.parent=parent;this.sad=sad;this.isStopped=false}InnerObserver.prototype.onNext=function(x){if(!this.isStopped){this.parent.o.onNext(x)}};InnerObserver.prototype.onError=function(e){if(!this.isStopped){this.isStopped=true;this.parent.o.onError(e)}};InnerObserver.prototype.onCompleted=function(){if(!this.isStopped){var parent=this.parent;this.isStopped=true;parent.g.remove(this.sad);parent.done&&parent.g.length===1&&parent.o.onCompleted()}};InnerObserver.prototype.dispose=function(){this.isStopped=true};InnerObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.parent.o.onError(e);return true}return false};return MergeAllObservable}(ObservableBase);observableProto.mergeAll=function(){return new MergeAllObservable(this)};var CompositeError=Rx.CompositeError=function(errors){this.innerErrors=errors;this.message="This contains multiple errors. Check the innerErrors";Error.call(this)};CompositeError.prototype=Object.create(Error.prototype);CompositeError.prototype.name="CompositeError";var MergeDelayErrorObservable=function(__super__){inherits(MergeDelayErrorObservable,__super__);function MergeDelayErrorObservable(source){this.source=source;__super__.call(this)}MergeDelayErrorObservable.prototype.subscribeCore=function(o){var group=new CompositeDisposable,m=new SingleAssignmentDisposable,state={isStopped:false,errors:[],o:o};group.add(m);m.setDisposable(this.source.subscribe(new MergeDelayErrorObserver(group,state)));return group};return MergeDelayErrorObservable}(ObservableBase);var MergeDelayErrorObserver=function(__super__){inherits(MergeDelayErrorObserver,__super__);function MergeDelayErrorObserver(group,state){this._group=group;this._state=state;__super__.call(this)}function setCompletion(o,errors){if(errors.length===0){o.onCompleted()}else if(errors.length===1){o.onError(errors[0])}else{o.onError(new CompositeError(errors))}}MergeDelayErrorObserver.prototype.next=function(x){var inner=new SingleAssignmentDisposable;this._group.add(inner);isPromise(x)&&(x=observableFromPromise(x));inner.setDisposable(x.subscribe(new InnerObserver(inner,this._group,this._state)))};MergeDelayErrorObserver.prototype.error=function(e){this._state.errors.push(e);this._state.isStopped=true;this._group.length===1&&setCompletion(this._state.o,this._state.errors)};MergeDelayErrorObserver.prototype.completed=function(){this._state.isStopped=true;this._group.length===1&&setCompletion(this._state.o,this._state.errors)};inherits(InnerObserver,__super__);function InnerObserver(inner,group,state){this._inner=inner;this._group=group;this._state=state;__super__.call(this)}InnerObserver.prototype.next=function(x){this._state.o.onNext(x)};InnerObserver.prototype.error=function(e){this._state.errors.push(e);this._group.remove(this._inner);this._state.isStopped&&this._group.length===1&&setCompletion(this._state.o,this._state.errors)};InnerObserver.prototype.completed=function(){this._group.remove(this._inner);this._state.isStopped&&this._group.length===1&&setCompletion(this._state.o,this._state.errors)};return MergeDelayErrorObserver}(AbstractObserver);Observable.mergeDelayError=function(){var args;if(Array.isArray(arguments[0])){args=arguments[0]}else{var len=arguments.length;args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}}var source=observableOf(null,args);return new MergeDelayErrorObservable(source)};observableProto.onErrorResumeNext=function(second){if(!second){throw new Error("Second observable is required")}return onErrorResumeNext([this,second])};var OnErrorResumeNextObservable=function(__super__){inherits(OnErrorResumeNextObservable,__super__);function OnErrorResumeNextObservable(sources){this.sources=sources;__super__.call(this)}function scheduleMethod(state,recurse){if(state.pos<state.sources.length){var current=state.sources[state.pos++];isPromise(current)&&(current=observableFromPromise(current));var d=new SingleAssignmentDisposable;state.subscription.setDisposable(d);d.setDisposable(current.subscribe(new OnErrorResumeNextObserver(state,recurse)))}else{state.o.onCompleted()}}OnErrorResumeNextObservable.prototype.subscribeCore=function(o){var subscription=new SerialDisposable,state={pos:0,subscription:subscription,o:o,sources:this.sources},cancellable=immediateScheduler.scheduleRecursive(state,scheduleMethod);return new BinaryDisposable(subscription,cancellable)};return OnErrorResumeNextObservable}(ObservableBase);var OnErrorResumeNextObserver=function(__super__){inherits(OnErrorResumeNextObserver,__super__);function OnErrorResumeNextObserver(state,recurse){this._state=state;this._recurse=recurse;__super__.call(this)}OnErrorResumeNextObserver.prototype.next=function(x){this._state.o.onNext(x)};OnErrorResumeNextObserver.prototype.error=function(){this._recurse(this._state)};OnErrorResumeNextObserver.prototype.completed=function(){this._recurse(this._state)};return OnErrorResumeNextObserver}(AbstractObserver);var onErrorResumeNext=Observable.onErrorResumeNext=function(){var sources=[];if(Array.isArray(arguments[0])){sources=arguments[0]}else{var len=arguments.length;sources=new Array(len);for(var i=0;i<len;i++){sources[i]=arguments[i]}}return new OnErrorResumeNextObservable(sources)};var SkipUntilObservable=function(__super__){inherits(SkipUntilObservable,__super__);function SkipUntilObservable(source,other){this._s=source;this._o=isPromise(other)?observableFromPromise(other):other;this._open=false;__super__.call(this)}SkipUntilObservable.prototype.subscribeCore=function(o){var leftSubscription=new SingleAssignmentDisposable;leftSubscription.setDisposable(this._s.subscribe(new SkipUntilSourceObserver(o,this)));isPromise(this._o)&&(this._o=observableFromPromise(this._o));var rightSubscription=new SingleAssignmentDisposable;rightSubscription.setDisposable(this._o.subscribe(new SkipUntilOtherObserver(o,this,rightSubscription)));return new BinaryDisposable(leftSubscription,rightSubscription)};return SkipUntilObservable}(ObservableBase);var SkipUntilSourceObserver=function(__super__){inherits(SkipUntilSourceObserver,__super__);function SkipUntilSourceObserver(o,p){this._o=o;this._p=p;__super__.call(this)}SkipUntilSourceObserver.prototype.next=function(x){this._p._open&&this._o.onNext(x)};SkipUntilSourceObserver.prototype.error=function(err){this._o.onError(err)};SkipUntilSourceObserver.prototype.onCompleted=function(){this._p._open&&this._o.onCompleted()};return SkipUntilSourceObserver}(AbstractObserver);var SkipUntilOtherObserver=function(__super__){inherits(SkipUntilOtherObserver,__super__);function SkipUntilOtherObserver(o,p,r){this._o=o;this._p=p;this._r=r;__super__.call(this)}SkipUntilOtherObserver.prototype.next=function(){this._p._open=true;this._r.dispose()};SkipUntilOtherObserver.prototype.error=function(err){this._o.onError(err)};SkipUntilOtherObserver.prototype.onCompleted=function(){this._r.dispose()};return SkipUntilOtherObserver}(AbstractObserver);observableProto.skipUntil=function(other){return new SkipUntilObservable(this,other)};var SwitchObservable=function(__super__){inherits(SwitchObservable,__super__);function SwitchObservable(source){this.source=source;__super__.call(this)}SwitchObservable.prototype.subscribeCore=function(o){var inner=new SerialDisposable,s=this.source.subscribe(new SwitchObserver(o,inner));return new BinaryDisposable(s,inner)};inherits(SwitchObserver,AbstractObserver);function SwitchObserver(o,inner){this.o=o;this.inner=inner;this.stopped=false;this.latest=0;this.hasLatest=false;AbstractObserver.call(this)}SwitchObserver.prototype.next=function(innerSource){var d=new SingleAssignmentDisposable,id=++this.latest;this.hasLatest=true;this.inner.setDisposable(d);isPromise(innerSource)&&(innerSource=observableFromPromise(innerSource));d.setDisposable(innerSource.subscribe(new InnerObserver(this,id)))};SwitchObserver.prototype.error=function(e){this.o.onError(e)};SwitchObserver.prototype.completed=function(){this.stopped=true;!this.hasLatest&&this.o.onCompleted()};inherits(InnerObserver,AbstractObserver);function InnerObserver(parent,id){this.parent=parent;this.id=id;AbstractObserver.call(this)}InnerObserver.prototype.next=function(x){this.parent.latest===this.id&&this.parent.o.onNext(x)};InnerObserver.prototype.error=function(e){this.parent.latest===this.id&&this.parent.o.onError(e)};InnerObserver.prototype.completed=function(){if(this.parent.latest===this.id){this.parent.hasLatest=false;this.parent.isStopped&&this.parent.o.onCompleted()}};return SwitchObservable}(ObservableBase);observableProto["switch"]=observableProto.switchLatest=function(){return new SwitchObservable(this)};var TakeUntilObservable=function(__super__){inherits(TakeUntilObservable,__super__);function TakeUntilObservable(source,other){this.source=source;this.other=isPromise(other)?observableFromPromise(other):other;__super__.call(this)}TakeUntilObservable.prototype.subscribeCore=function(o){return new BinaryDisposable(this.source.subscribe(o),this.other.subscribe(new TakeUntilObserver(o)))};return TakeUntilObservable}(ObservableBase);var TakeUntilObserver=function(__super__){inherits(TakeUntilObserver,__super__);function TakeUntilObserver(o){this._o=o;__super__.call(this)}TakeUntilObserver.prototype.next=function(){this._o.onCompleted()};TakeUntilObserver.prototype.error=function(err){this._o.onError(err)};TakeUntilObserver.prototype.onCompleted=noop;return TakeUntilObserver}(AbstractObserver);observableProto.takeUntil=function(other){return new TakeUntilObservable(this,other)};function falseFactory(){return false}function argumentsToArray(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return args}var WithLatestFromObservable=function(__super__){inherits(WithLatestFromObservable,__super__);function WithLatestFromObservable(source,sources,resultSelector){this._s=source;this._ss=sources;this._cb=resultSelector;__super__.call(this)}WithLatestFromObservable.prototype.subscribeCore=function(o){var len=this._ss.length;var state={hasValue:arrayInitialize(len,falseFactory),hasValueAll:false,values:new Array(len)};var n=this._ss.length,subscriptions=new Array(n+1);for(var i=0;i<n;i++){var other=this._ss[i],sad=new SingleAssignmentDisposable;isPromise(other)&&(other=observableFromPromise(other));sad.setDisposable(other.subscribe(new WithLatestFromOtherObserver(o,i,state)));subscriptions[i]=sad}var sad=new SingleAssignmentDisposable;sad.setDisposable(this._s.subscribe(new WithLatestFromSourceObserver(o,this._cb,state)));subscriptions[n]=sad;return new NAryDisposable(subscriptions)};return WithLatestFromObservable}(ObservableBase);var WithLatestFromOtherObserver=function(__super__){inherits(WithLatestFromOtherObserver,__super__);function WithLatestFromOtherObserver(o,i,state){this._o=o;this._i=i;this._state=state;__super__.call(this)}WithLatestFromOtherObserver.prototype.next=function(x){this._state.values[this._i]=x;this._state.hasValue[this._i]=true;this._state.hasValueAll=this._state.hasValue.every(identity)};WithLatestFromOtherObserver.prototype.error=function(e){this._o.onError(e)};WithLatestFromOtherObserver.prototype.completed=noop;return WithLatestFromOtherObserver}(AbstractObserver);var WithLatestFromSourceObserver=function(__super__){inherits(WithLatestFromSourceObserver,__super__);function WithLatestFromSourceObserver(o,cb,state){this._o=o;this._cb=cb;this._state=state;__super__.call(this)}WithLatestFromSourceObserver.prototype.next=function(x){var allValues=[x].concat(this._state.values);if(!this._state.hasValueAll){return}var res=tryCatch(this._cb).apply(null,allValues);if(res===errorObj){ | |
return this._o.onError(res.e)}this._o.onNext(res)};WithLatestFromSourceObserver.prototype.error=function(e){this._o.onError(e)};WithLatestFromSourceObserver.prototype.completed=function(){this._o.onCompleted()};return WithLatestFromSourceObserver}(AbstractObserver);observableProto.withLatestFrom=function(){if(arguments.length===0){throw new Error("invalid arguments")}var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}var resultSelector=isFunction(args[len-1])?args.pop():argumentsToArray;Array.isArray(args[0])&&(args=args[0]);return new WithLatestFromObservable(this,args,resultSelector)};function falseFactory(){return false}function emptyArrayFactory(){return[]}var ZipObservable=function(__super__){inherits(ZipObservable,__super__);function ZipObservable(sources,resultSelector){this._s=sources;this._cb=resultSelector;__super__.call(this)}ZipObservable.prototype.subscribeCore=function(observer){var n=this._s.length,subscriptions=new Array(n);done=arrayInitialize(n,falseFactory),q=arrayInitialize(n,emptyArrayFactory);for(var i=0;i<n;i++){var source=this._s[i],sad=new SingleAssignmentDisposable;subscriptions[i]=sad;isPromise(source)&&(source=observableFromPromise(source));sad.setDisposable(source.subscribe(new ZipObserver(observer,i,this,q,done)))}return new NAryDisposable(subscriptions)};return ZipObservable}(ObservableBase);var ZipObserver=function(__super__){inherits(ZipObserver,__super__);function ZipObserver(o,i,p,q,d){this._o=o;this._i=i;this._p=p;this._q=q;this._d=d;__super__.call(this)}function notEmpty(x){return x.length>0}function shiftEach(x){return x.shift()}function notTheSame(i){return function(x,j){return j!==i}}ZipObserver.prototype.next=function(x){this._q[this._i].push(x);if(this._q.every(notEmpty)){var queuedValues=this._q.map(shiftEach);var res=tryCatch(this._p._cb).apply(null,queuedValues);if(res===errorObj){return this._o.onError(res.e)}this._o.onNext(res)}else if(this._d.filter(notTheSame(this._i)).every(identity)){this._o.onCompleted()}};ZipObserver.prototype.error=function(e){this._o.onError(e)};ZipObserver.prototype.completed=function(){this._d[this._i]=true;this._d.every(identity)&&this._o.onCompleted()};return ZipObserver}(AbstractObserver);observableProto.zip=function(){if(arguments.length===0){throw new Error("invalid arguments")}var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}var resultSelector=isFunction(args[len-1])?args.pop():argumentsToArray;Array.isArray(args[0])&&(args=args[0]);var parent=this;args.unshift(parent);return new ZipObservable(args,resultSelector)};Observable.zip=function(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}if(Array.isArray(args[0])){args=isFunction(args[1])?args[0].concat(args[1]):args[0]}var first=args.shift();return first.zip.apply(first,args)};function falseFactory(){return false}function emptyArrayFactory(){return[]}function argumentsToArray(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return args}observableProto.zipIterable=function(){if(arguments.length===0){throw new Error("invalid arguments")}var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}var resultSelector=isFunction(args[len-1])?args.pop():argumentsToArray;var parent=this;args.unshift(parent);return new AnonymousObservable(function(o){var n=args.length,queues=arrayInitialize(n,emptyArrayFactory),isDone=arrayInitialize(n,falseFactory);var subscriptions=new Array(n);for(var idx=0;idx<n;idx++){(function(i){var source=args[i],sad=new SingleAssignmentDisposable;(isArrayLike(source)||isIterable(source))&&(source=observableFrom(source));sad.setDisposable(source.subscribe(function(x){queues[i].push(x);if(queues.every(function(x){return x.length>0})){var queuedValues=queues.map(function(x){return x.shift()}),res=tryCatch(resultSelector).apply(parent,queuedValues);if(res===errorObj){return o.onError(res.e)}o.onNext(res)}else if(isDone.filter(function(x,j){return j!==i}).every(identity)){o.onCompleted()}},function(e){o.onError(e)},function(){isDone[i]=true;isDone.every(identity)&&o.onCompleted()}));subscriptions[i]=sad})(idx)}return new CompositeDisposable(subscriptions)},parent)};function asObservable(source){return function subscribe(o){return source.subscribe(o)}}observableProto.asObservable=function(){return new AnonymousObservable(asObservable(this),this)};function toArray(x){return x.toArray()}function notEmpty(x){return x.length>0}observableProto.bufferWithCount=function(count,skip){typeof skip!=="number"&&(skip=count);return this.windowWithCount(count,skip).flatMap(toArray).filter(notEmpty)};var DematerializeObservable=function(__super__){inherits(DematerializeObservable,__super__);function DematerializeObservable(source){this.source=source;__super__.call(this)}DematerializeObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new DematerializeObserver(o))};return DematerializeObservable}(ObservableBase);var DematerializeObserver=function(__super__){inherits(DematerializeObserver,__super__);function DematerializeObserver(o){this._o=o;__super__.call(this)}DematerializeObserver.prototype.next=function(x){x.accept(this._o)};DematerializeObserver.prototype.error=function(e){this._o.onError(e)};DematerializeObserver.prototype.completed=function(){this._o.onCompleted()};return DematerializeObserver}(AbstractObserver);observableProto.dematerialize=function(){return new DematerializeObservable(this)};var DistinctUntilChangedObservable=function(__super__){inherits(DistinctUntilChangedObservable,__super__);function DistinctUntilChangedObservable(source,keyFn,comparer){this.source=source;this.keyFn=keyFn;this.comparer=comparer;__super__.call(this)}DistinctUntilChangedObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new DistinctUntilChangedObserver(o,this.keyFn,this.comparer))};return DistinctUntilChangedObservable}(ObservableBase);var DistinctUntilChangedObserver=function(__super__){inherits(DistinctUntilChangedObserver,__super__);function DistinctUntilChangedObserver(o,keyFn,comparer){this.o=o;this.keyFn=keyFn;this.comparer=comparer;this.hasCurrentKey=false;this.currentKey=null;__super__.call(this)}DistinctUntilChangedObserver.prototype.next=function(x){var key=x,comparerEquals;if(isFunction(this.keyFn)){key=tryCatch(this.keyFn)(x);if(key===errorObj){return this.o.onError(key.e)}}if(this.hasCurrentKey){comparerEquals=tryCatch(this.comparer)(this.currentKey,key);if(comparerEquals===errorObj){return this.o.onError(comparerEquals.e)}}if(!this.hasCurrentKey||!comparerEquals){this.hasCurrentKey=true;this.currentKey=key;this.o.onNext(x)}};DistinctUntilChangedObserver.prototype.error=function(e){this.o.onError(e)};DistinctUntilChangedObserver.prototype.completed=function(){this.o.onCompleted()};return DistinctUntilChangedObserver}(AbstractObserver);observableProto.distinctUntilChanged=function(keyFn,comparer){comparer||(comparer=defaultComparer);return new DistinctUntilChangedObservable(this,keyFn,comparer)};var TapObservable=function(__super__){inherits(TapObservable,__super__);function TapObservable(source,observerOrOnNext,onError,onCompleted){this.source=source;this._oN=observerOrOnNext;this._oE=onError;this._oC=onCompleted;__super__.call(this)}TapObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o,this))};inherits(InnerObserver,AbstractObserver);function InnerObserver(o,p){this.o=o;this.t=!p._oN||isFunction(p._oN)?observerCreate(p._oN||noop,p._oE||noop,p._oC||noop):p._oN;this.isStopped=false;AbstractObserver.call(this)}InnerObserver.prototype.next=function(x){var res=tryCatch(this.t.onNext).call(this.t,x);if(res===errorObj){this.o.onError(res.e)}this.o.onNext(x)};InnerObserver.prototype.error=function(err){var res=tryCatch(this.t.onError).call(this.t,err);if(res===errorObj){return this.o.onError(res.e)}this.o.onError(err)};InnerObserver.prototype.completed=function(){var res=tryCatch(this.t.onCompleted).call(this.t);if(res===errorObj){return this.o.onError(res.e)}this.o.onCompleted()};return TapObservable}(ObservableBase);observableProto["do"]=observableProto.tap=observableProto.doAction=function(observerOrOnNext,onError,onCompleted){return new TapObservable(this,observerOrOnNext,onError,onCompleted)};observableProto.doOnNext=observableProto.tapOnNext=function(onNext,thisArg){return this.tap(typeof thisArg!=="undefined"?function(x){onNext.call(thisArg,x)}:onNext)};observableProto.doOnError=observableProto.tapOnError=function(onError,thisArg){return this.tap(noop,typeof thisArg!=="undefined"?function(e){onError.call(thisArg,e)}:onError)};observableProto.doOnCompleted=observableProto.tapOnCompleted=function(onCompleted,thisArg){return this.tap(noop,null,typeof thisArg!=="undefined"?function(){onCompleted.call(thisArg)}:onCompleted)};observableProto["finally"]=function(action){var source=this;return new AnonymousObservable(function(observer){var subscription=tryCatch(source.subscribe).call(source,observer);if(subscription===errorObj){action();return thrower(subscription.e)}return disposableCreate(function(){var r=tryCatch(subscription.dispose).call(subscription);action();r===errorObj&&thrower(r.e)})},this)};var IgnoreElementsObservable=function(__super__){inherits(IgnoreElementsObservable,__super__);function IgnoreElementsObservable(source){this.source=source;__super__.call(this)}IgnoreElementsObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o))};function InnerObserver(o){this.o=o;this.isStopped=false}InnerObserver.prototype.onNext=noop;InnerObserver.prototype.onError=function(err){if(!this.isStopped){this.isStopped=true;this.o.onError(err)}};InnerObserver.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=true;this.o.onCompleted()}};InnerObserver.prototype.dispose=function(){this.isStopped=true};InnerObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.observer.onError(e);return true}return false};return IgnoreElementsObservable}(ObservableBase);observableProto.ignoreElements=function(){return new IgnoreElementsObservable(this)};var MaterializeObservable=function(__super__){inherits(MaterializeObservable,__super__);function MaterializeObservable(source,fn){this.source=source;__super__.call(this)}MaterializeObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new MaterializeObserver(o))};return MaterializeObservable}(ObservableBase);var MaterializeObserver=function(__super__){inherits(MaterializeObserver,__super__);function MaterializeObserver(o){this._o=o;__super__.call(this)}MaterializeObserver.prototype.next=function(x){this._o.onNext(notificationCreateOnNext(x))};MaterializeObserver.prototype.error=function(e){this._o.onNext(notificationCreateOnError(e));this._o.onCompleted()};MaterializeObserver.prototype.completed=function(){this._o.onNext(notificationCreateOnCompleted());this._o.onCompleted()};return MaterializeObserver}(AbstractObserver);observableProto.materialize=function(){return new MaterializeObservable(this)};observableProto.repeat=function(repeatCount){return enumerableRepeat(this,repeatCount).concat()};observableProto.retry=function(retryCount){return enumerableRepeat(this,retryCount).catchError()};observableProto.retryWhen=function(notifier){return enumerableRepeat(this).catchErrorWhen(notifier)};var ScanObservable=function(__super__){inherits(ScanObservable,__super__);function ScanObservable(source,accumulator,hasSeed,seed){this.source=source;this.accumulator=accumulator;this.hasSeed=hasSeed;this.seed=seed;__super__.call(this)}ScanObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new ScanObserver(o,this))};return ScanObservable}(ObservableBase);var ScanObserver=function(__super__){inherits(ScanObserver,__super__);function ScanObserver(o,parent){this._o=o;this._p=parent;this._fn=parent.accumulator;this._hs=parent.hasSeed;this._s=parent.seed;this._ha=false;this._a=null;this._hv=false;this._i=0;__super__.call(this)}ScanObserver.prototype.next=function(x){!this._hv&&(this._hv=true);if(this._ha){this._a=tryCatch(this._fn)(this._a,x,this._i,this._p)}else{this._a=this._hs?tryCatch(this._fn)(this._s,x,this._i,this._p):x;this._ha=true}if(this._a===errorObj){return this._o.onError(this._a.e)}this._o.onNext(this._a);this._i++};ScanObserver.prototype.error=function(e){this._o.onError(e)};ScanObserver.prototype.completed=function(){!this._hv&&this._hs&&this._o.onNext(this._s);this._o.onCompleted()};return ScanObserver}(AbstractObserver);observableProto.scan=function(){var hasSeed=false,seed,accumulator=arguments[0];if(arguments.length===2){hasSeed=true;seed=arguments[1]}return new ScanObservable(this,accumulator,hasSeed,seed)};var SkipLastObservable=function(__super__){inherits(SkipLastObservable,__super__);function SkipLastObservable(source,c){this.source=source;this._c=c;__super__.call(this)}SkipLastObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new SkipLastObserver(o,this._c))};return SkipLastObservable}(ObservableBase);var SkipLastObserver=function(__super__){inherits(SkipLastObserver,__super__);function SkipLastObserver(o,c){this._o=o;this._c=c;this._q=[];__super__.call(this)}SkipLastObserver.prototype.next=function(x){this._q.push(x);this._q.length>this._c&&this._o.onNext(this._q.shift())};SkipLastObserver.prototype.error=function(e){this._o.onError(e)};SkipLastObserver.prototype.completed=function(){this._o.onCompleted()};return SkipLastObserver}(AbstractObserver);observableProto.skipLast=function(count){if(count<0){throw new ArgumentOutOfRangeError}return new SkipLastObservable(this,count)};observableProto.startWith=function(){var values,scheduler,start=0;if(!!arguments.length&&isScheduler(arguments[0])){scheduler=arguments[0];start=1}else{scheduler=immediateScheduler}for(var args=[],i=start,len=arguments.length;i<len;i++){args.push(arguments[i])}return enumerableOf([observableFromArray(args,scheduler),this]).concat()};var TakeLastObserver=function(__super__){inherits(TakeLastObserver,__super__);function TakeLastObserver(o,c){this._o=o;this._c=c;this._q=[];__super__.call(this)}TakeLastObserver.prototype.next=function(x){this._q.push(x);this._q.length>this._c&&this._q.shift()};TakeLastObserver.prototype.error=function(e){this._o.onError(e)};TakeLastObserver.prototype.completed=function(){while(this._q.length>0){this._o.onNext(this._q.shift())}this._o.onCompleted()};return TakeLastObserver}(AbstractObserver);observableProto.takeLast=function(count){if(count<0){throw new ArgumentOutOfRangeError}var source=this;return new AnonymousObservable(function(o){return source.subscribe(new TakeLastObserver(o,count))},source)};var TakeLastBufferObserver=function(__super__){inherits(TakeLastBufferObserver,__super__);function TakeLastBufferObserver(o,c){this._o=o;this._c=c;this._q=[];__super__.call(this)}TakeLastBufferObserver.prototype.next=function(x){this._q.push(x);this._q.length>this._c&&this._q.shift()};TakeLastBufferObserver.prototype.error=function(e){this._o.onError(e)};TakeLastBufferObserver.prototype.completed=function(){this._o.onNext(this._q);this._o.onCompleted()};return TakeLastBufferObserver}(AbstractObserver);observableProto.takeLastBuffer=function(count){if(count<0){throw new ArgumentOutOfRangeError}var source=this;return new AnonymousObservable(function(o){return source.subscribe(new TakeLastBufferObserver(o,count))},source)};observableProto.windowWithCount=function(count,skip){var source=this;+count||(count=0);Math.abs(count)===Infinity&&(count=0);if(count<=0){throw new ArgumentOutOfRangeError}skip==null&&(skip=count);+skip||(skip=0);Math.abs(skip)===Infinity&&(skip=0);if(skip<=0){throw new ArgumentOutOfRangeError}return new AnonymousObservable(function(observer){var m=new SingleAssignmentDisposable,refCountDisposable=new RefCountDisposable(m),n=0,q=[];function createWindow(){var s=new Subject;q.push(s);observer.onNext(addRef(s,refCountDisposable))}createWindow();m.setDisposable(source.subscribe(function(x){for(var i=0,len=q.length;i<len;i++){q[i].onNext(x)}var c=n-count+1;c>=0&&c%skip===0&&q.shift().onCompleted();++n%skip===0&&createWindow()},function(e){while(q.length>0){q.shift().onError(e)}observer.onError(e)},function(){while(q.length>0){q.shift().onCompleted()}observer.onCompleted()}));return refCountDisposable},source)};function concatMap(source,selector,thisArg){var selectorFunc=bindCallback(selector,thisArg,3);return source.map(function(x,i){var result=selectorFunc(x,i,source);isPromise(result)&&(result=observableFromPromise(result));(isArrayLike(result)||isIterable(result))&&(result=observableFrom(result));return result}).concatAll()}observableProto.selectConcat=observableProto.concatMap=function(selector,resultSelector,thisArg){if(isFunction(selector)&&isFunction(resultSelector)){return this.concatMap(function(x,i){var selectorResult=selector(x,i);isPromise(selectorResult)&&(selectorResult=observableFromPromise(selectorResult));(isArrayLike(selectorResult)||isIterable(selectorResult))&&(selectorResult=observableFrom(selectorResult));return selectorResult.map(function(y,i2){return resultSelector(x,y,i,i2)})})}return isFunction(selector)?concatMap(this,selector,thisArg):concatMap(this,function(){return selector})};observableProto.concatMapObserver=observableProto.selectConcatObserver=function(onNext,onError,onCompleted,thisArg){var source=this,onNextFunc=bindCallback(onNext,thisArg,2),onErrorFunc=bindCallback(onError,thisArg,1),onCompletedFunc=bindCallback(onCompleted,thisArg,0);return new AnonymousObservable(function(observer){var index=0;return source.subscribe(function(x){var result;try{result=onNextFunc(x,index++)}catch(e){observer.onError(e);return}isPromise(result)&&(result=observableFromPromise(result));observer.onNext(result)},function(err){var result;try{result=onErrorFunc(err)}catch(e){observer.onError(e);return}isPromise(result)&&(result=observableFromPromise(result));observer.onNext(result);observer.onCompleted()},function(){var result;try{result=onCompletedFunc()}catch(e){observer.onError(e);return}isPromise(result)&&(result=observableFromPromise(result));observer.onNext(result);observer.onCompleted()})},this).concatAll()};var DefaultIfEmptyObserver=function(__super__){inherits(DefaultIfEmptyObserver,__super__);function DefaultIfEmptyObserver(o,d){this._o=o;this._d=d;this._f=false;__super__.call(this)}DefaultIfEmptyObserver.prototype.next=function(x){this._f=true;this._o.onNext(x)};DefaultIfEmptyObserver.prototype.error=function(e){this._o.onError(e)};DefaultIfEmptyObserver.prototype.completed=function(){!this._f&&this._o.onNext(this._d);this._o.onCompleted()};return DefaultIfEmptyObserver}(AbstractObserver);observableProto.defaultIfEmpty=function(defaultValue){var source=this;defaultValue===undefined&&(defaultValue=null);return new AnonymousObservable(function(o){return source.subscribe(new DefaultIfEmptyObserver(o,defaultValue))},source)};function arrayIndexOfComparer(array,item,comparer){for(var i=0,len=array.length;i<len;i++){if(comparer(array[i],item)){return i}}return-1}function HashSet(comparer){this.comparer=comparer;this.set=[]}HashSet.prototype.push=function(value){var retValue=arrayIndexOfComparer(this.set,value,this.comparer)===-1;retValue&&this.set.push(value);return retValue};var DistinctObservable=function(__super__){inherits(DistinctObservable,__super__);function DistinctObservable(source,keyFn,cmpFn){this.source=source;this._keyFn=keyFn;this._cmpFn=cmpFn;__super__.call(this)}DistinctObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new DistinctObserver(o,this._keyFn,this._cmpFn))};return DistinctObservable}(ObservableBase);var DistinctObserver=function(__super__){inherits(DistinctObserver,__super__);function DistinctObserver(o,keyFn,cmpFn){this._o=o;this._keyFn=keyFn;this._h=new HashSet(cmpFn);__super__.call(this)}DistinctObserver.prototype.next=function(x){var key=x;if(isFunction(this._keyFn)){key=tryCatch(this._keyFn)(x);if(key===errorObj){return this._o.onError(key.e)}}this._h.push(key)&&this._o.onNext(x)};DistinctObserver.prototype.error=function(e){this._o.onError(e)};DistinctObserver.prototype.completed=function(){this._o.onCompleted()};return DistinctObserver}(AbstractObserver);observableProto.distinct=function(keySelector,comparer){comparer||(comparer=defaultComparer);return new DistinctObservable(this,keySelector,comparer)};observableProto.groupBy=function(keySelector,elementSelector){return this.groupByUntil(keySelector,elementSelector,observableNever)};observableProto.groupByUntil=function(keySelector,elementSelector,durationSelector){var source=this;return new AnonymousObservable(function(o){var map=new Map,groupDisposable=new CompositeDisposable,refCountDisposable=new RefCountDisposable(groupDisposable),handleError=function(e){return function(item){item.onError(e)}};groupDisposable.add(source.subscribe(function(x){var key=tryCatch(keySelector)(x);if(key===errorObj){map.forEach(handleError(key.e));return o.onError(key.e)}var fireNewMapEntry=false,writer=map.get(key);if(writer===undefined){writer=new Subject;map.set(key,writer);fireNewMapEntry=true}if(fireNewMapEntry){var group=new GroupedObservable(key,writer,refCountDisposable),durationGroup=new GroupedObservable(key,writer);var duration=tryCatch(durationSelector)(durationGroup);if(duration===errorObj){map.forEach(handleError(duration.e));return o.onError(duration.e)}o.onNext(group);var md=new SingleAssignmentDisposable;groupDisposable.add(md);md.setDisposable(duration.take(1).subscribe(noop,function(e){map.forEach(handleError(e));o.onError(e)},function(){if(map["delete"](key)){writer.onCompleted()}groupDisposable.remove(md)}))}var element=x;if(isFunction(elementSelector)){element=tryCatch(elementSelector)(x);if(element===errorObj){map.forEach(handleError(element.e));return o.onError(element.e)}}writer.onNext(element)},function(e){map.forEach(handleError(e));o.onError(e)},function(){map.forEach(function(item){item.onCompleted()});o.onCompleted()}));return refCountDisposable},source)};var MapObservable=function(__super__){inherits(MapObservable,__super__);function MapObservable(source,selector,thisArg){this.source=source;this.selector=bindCallback(selector,thisArg,3);__super__.call(this)}function innerMap(selector,self){return function(x,i,o){return selector.call(this,self.selector(x,i,o),i,o)}}MapObservable.prototype.internalMap=function(selector,thisArg){return new MapObservable(this.source,innerMap(selector,this),thisArg)};MapObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o,this.selector,this))};inherits(InnerObserver,AbstractObserver);function InnerObserver(o,selector,source){this.o=o;this.selector=selector;this.source=source;this.i=0;AbstractObserver.call(this)}InnerObserver.prototype.next=function(x){var result=tryCatch(this.selector)(x,this.i++,this.source);if(result===errorObj){return this.o.onError(result.e)}this.o.onNext(result)};InnerObserver.prototype.error=function(e){this.o.onError(e)};InnerObserver.prototype.completed=function(){this.o.onCompleted()};return MapObservable}(ObservableBase);observableProto.map=observableProto.select=function(selector,thisArg){var selectorFn=typeof selector==="function"?selector:function(){return selector};return this instanceof MapObservable?this.internalMap(selectorFn,thisArg):new MapObservable(this,selectorFn,thisArg)};function plucker(args,len){return function mapper(x){var currentProp=x;for(var i=0;i<len;i++){var p=currentProp[args[i]];if(typeof p!=="undefined"){currentProp=p}else{return undefined}}return currentProp}}observableProto.pluck=function(){var len=arguments.length,args=new Array(len);if(len===0){throw new Error("List of properties cannot be empty.")}for(var i=0;i<len;i++){args[i]=arguments[i]}return this.map(plucker(args,len))};observableProto.flatMap=observableProto.selectMany=function(selector,resultSelector,thisArg){return new FlatMapObservable(this,selector,resultSelector,thisArg).mergeAll()};observableProto.flatMapObserver=observableProto.selectManyObserver=function(onNext,onError,onCompleted,thisArg){var source=this;return new AnonymousObservable(function(observer){var index=0;return source.subscribe(function(x){var result;try{result=onNext.call(thisArg,x,index++)}catch(e){observer.onError(e);return}isPromise(result)&&(result=observableFromPromise(result));observer.onNext(result)},function(err){var result;try{result=onError.call(thisArg,err)}catch(e){observer.onError(e);return}isPromise(result)&&(result=observableFromPromise(result));observer.onNext(result);observer.onCompleted()},function(){var result;try{result=onCompleted.call(thisArg)}catch(e){observer.onError(e);return}isPromise(result)&&(result=observableFromPromise(result));observer.onNext(result);observer.onCompleted()})},source).mergeAll()};Rx.Observable.prototype.flatMapLatest=function(selector,resultSelector,thisArg){return new FlatMapObservable(this,selector,resultSelector,thisArg).switchLatest()};var SkipObservable=function(__super__){inherits(SkipObservable,__super__);function SkipObservable(source,count){this.source=source;this.skipCount=count;__super__.call(this)}SkipObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o,this.skipCount))};function InnerObserver(o,c){this.c=c;this.r=c;this.o=o;this.isStopped=false}InnerObserver.prototype.onNext=function(x){if(this.isStopped){return}if(this.r<=0){this.o.onNext(x)}else{this.r--}};InnerObserver.prototype.onError=function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e)}};InnerObserver.prototype.onCompleted=function(){if(!this.isStopped){this.isStopped=true;this.o.onCompleted()}};InnerObserver.prototype.dispose=function(){this.isStopped=true};InnerObserver.prototype.fail=function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e);return true}return false};return SkipObservable}(ObservableBase);observableProto.skip=function(count){if(count<0){throw new ArgumentOutOfRangeError}return new SkipObservable(this,count)};var SkipWhileObservable=function(__super__){inherits(SkipWhileObservable,__super__);function SkipWhileObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}SkipWhileObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new SkipWhileObserver(o,this))};return SkipWhileObservable}(ObservableBase);var SkipWhileObserver=function(__super__){inherits(SkipWhileObserver,__super__);function SkipWhileObserver(o,p){this._o=o;this._p=p;this._i=0;this._r=false;__super__.call(this)}SkipWhileObserver.prototype.next=function(x){if(!this._r){var res=tryCatch(this._p._fn)(x,this._i++,this._p);if(res===errorObj){return this._o.onError(res.e)}this._r=!res}this._r&&this._o.onNext(x)};SkipWhileObserver.prototype.error=function(e){this._o.onError(e)};SkipWhileObserver.prototype.completed=function(){this._o.onCompleted()};return SkipWhileObserver}(AbstractObserver);observableProto.skipWhile=function(predicate,thisArg){var fn=bindCallback(predicate,thisArg,3);return new SkipWhileObservable(this,fn)};var TakeObservable=function(__super__){inherits(TakeObservable,__super__);function TakeObservable(source,count){this.source=source;this.takeCount=count;__super__.call(this)}TakeObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o,this.takeCount))};function InnerObserver(o,c){this.o=o;this.c=c;this.r=c;this.isStopped=false}InnerObserver.prototype={onNext:function(x){if(this.isStopped){return}if(this.r-->0){this.o.onNext(x);this.r<=0&&this.o.onCompleted()}},onError:function(err){if(!this.isStopped){this.isStopped=true;this.o.onError(err)}},onCompleted:function(){if(!this.isStopped){this.isStopped=true;this.o.onCompleted()}},dispose:function(){this.isStopped=true},fail:function(e){if(!this.isStopped){this.isStopped=true;this.o.onError(e);return true}return false}};return TakeObservable}(ObservableBase);observableProto.take=function(count,scheduler){if(count<0){throw new ArgumentOutOfRangeError}if(count===0){return observableEmpty(scheduler)}return new TakeObservable(this,count)};var TakeWhileObservable=function(__super__){inherits(TakeWhileObservable,__super__);function TakeWhileObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}TakeWhileObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new TakeWhileObserver(o,this))};return TakeWhileObservable}(ObservableBase);var TakeWhileObserver=function(__super__){inherits(TakeWhileObserver,__super__);function TakeWhileObserver(o,p){this._o=o;this._p=p;this._i=0;this._r=true;__super__.call(this)}TakeWhileObserver.prototype.next=function(x){if(this._r){this._r=tryCatch(this._p._fn)(x,this._i++,this._p);if(this._r===errorObj){return this._o.onError(this._r.e)}}if(this._r){this._o.onNext(x)}else{this._o.onCompleted()}};TakeWhileObserver.prototype.error=function(e){this._o.onError(e)};TakeWhileObserver.prototype.completed=function(){this._o.onCompleted()};return TakeWhileObserver}(AbstractObserver);observableProto.takeWhile=function(predicate,thisArg){var fn=bindCallback(predicate,thisArg,3);return new TakeWhileObservable(this,fn)};var FilterObservable=function(__super__){inherits(FilterObservable,__super__);function FilterObservable(source,predicate,thisArg){this.source=source;this.predicate=bindCallback(predicate,thisArg,3);__super__.call(this)}FilterObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new InnerObserver(o,this.predicate,this))};function innerPredicate(predicate,self){return function(x,i,o){return self.predicate(x,i,o)&&predicate.call(this,x,i,o)}}FilterObservable.prototype.internalFilter=function(predicate,thisArg){return new FilterObservable(this.source,innerPredicate(predicate,this),thisArg)};inherits(InnerObserver,AbstractObserver);function InnerObserver(o,predicate,source){this.o=o;this.predicate=predicate;this.source=source;this.i=0;AbstractObserver.call(this)}InnerObserver.prototype.next=function(x){var shouldYield=tryCatch(this.predicate)(x,this.i++,this.source);if(shouldYield===errorObj){return this.o.onError(shouldYield.e)}shouldYield&&this.o.onNext(x)};InnerObserver.prototype.error=function(e){this.o.onError(e)};InnerObserver.prototype.completed=function(){this.o.onCompleted()};return FilterObservable}(ObservableBase);observableProto.filter=observableProto.where=function(predicate,thisArg){return this instanceof FilterObservable?this.internalFilter(predicate,thisArg):new FilterObservable(this,predicate,thisArg)};var ExtremaByObservable=function(__super__){inherits(ExtremaByObservable,__super__);function ExtremaByObservable(source,k,c){this.source=source;this._k=k;this._c=c;__super__.call(this)}ExtremaByObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new ExtremaByObserver(o,this._k,this._c))};return ExtremaByObservable}(ObservableBase);var ExtremaByObserver=function(__super__){inherits(ExtremaByObserver,__super__);function ExtremaByObserver(o,k,c){this._o=o;this._k=k;this._c=c;this._v=null;this._hv=false;this._l=[];__super__.call(this)}ExtremaByObserver.prototype.next=function(x){var key=tryCatch(this._k)(x);if(key===errorObj){return this._o.onError(key.e)}var comparison=0;if(!this._hv){this._hv=true;this._v=key}else{comparison=tryCatch(this._c)(key,this._v);if(comparison===errorObj){return this._o.onError(comparison.e)}}if(comparison>0){this._v=key;this._l=[]}if(comparison>=0){this._l.push(x)}};ExtremaByObserver.prototype.error=function(e){this._o.onError(e)};ExtremaByObserver.prototype.completed=function(){this._o.onNext(this._l);this._o.onCompleted()};return ExtremaByObserver}(AbstractObserver);function firstOnly(x){if(x.length===0){throw new EmptyError}return x[0]}var ReduceObservable=function(__super__){inherits(ReduceObservable,__super__);function ReduceObservable(source,accumulator,hasSeed,seed){this.source=source;this.accumulator=accumulator;this.hasSeed=hasSeed;this.seed=seed; | |
__super__.call(this)}ReduceObservable.prototype.subscribeCore=function(observer){return this.source.subscribe(new ReduceObserver(observer,this))};return ReduceObservable}(ObservableBase);var ReduceObserver=function(__super__){inherits(ReduceObserver,__super__);function ReduceObserver(o,parent){this._o=o;this._p=parent;this._fn=parent.accumulator;this._hs=parent.hasSeed;this._s=parent.seed;this._ha=false;this._a=null;this._hv=false;this._i=0;__super__.call(this)}ReduceObserver.prototype.next=function(x){!this._hv&&(this._hv=true);if(this._ha){this._a=tryCatch(this._fn)(this._a,x,this._i,this._p)}else{this._a=this._hs?tryCatch(this._fn)(this._s,x,this._i,this._p):x;this._ha=true}if(this._a===errorObj){return this._o.onError(this._a.e)}this._i++};ReduceObserver.prototype.error=function(e){this._o.onError(e)};ReduceObserver.prototype.completed=function(){this._hv&&this._o.onNext(this._a);!this._hv&&this._hs&&this._o.onNext(this._s);!this._hv&&!this._hs&&this._o.onError(new EmptyError);this._o.onCompleted()};return ReduceObserver}(AbstractObserver);observableProto.reduce=function(){var hasSeed=false,seed,accumulator=arguments[0];if(arguments.length===2){hasSeed=true;seed=arguments[1]}return new ReduceObservable(this,accumulator,hasSeed,seed)};var SomeObservable=function(__super__){inherits(SomeObservable,__super__);function SomeObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}SomeObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new SomeObserver(o,this._fn,this.source))};return SomeObservable}(ObservableBase);var SomeObserver=function(__super__){inherits(SomeObserver,__super__);function SomeObserver(o,fn,s){this._o=o;this._fn=fn;this._s=s;this._i=0;__super__.call(this)}SomeObserver.prototype.next=function(x){var result=tryCatch(this._fn)(x,this._i++,this._s);if(result===errorObj){return this._o.onError(result.e)}if(Boolean(result)){this._o.onNext(true);this._o.onCompleted()}};SomeObserver.prototype.error=function(e){this._o.onError(e)};SomeObserver.prototype.completed=function(){this._o.onNext(false);this._o.onCompleted()};return SomeObserver}(AbstractObserver);observableProto.some=function(predicate,thisArg){var fn=bindCallback(predicate,thisArg,3);return new SomeObservable(this,fn)};var IsEmptyObservable=function(__super__){inherits(IsEmptyObservable,__super__);function IsEmptyObservable(source){this.source=source;__super__.call(this)}IsEmptyObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new IsEmptyObserver(o))};return IsEmptyObservable}(ObservableBase);var IsEmptyObserver=function(__super__){inherits(IsEmptyObserver,__super__);function IsEmptyObserver(o){this._o=o;__super__.call(this)}IsEmptyObserver.prototype.next=function(){this._o.onNext(false);this._o.onCompleted()};IsEmptyObserver.prototype.error=function(e){this._o.onError(e)};IsEmptyObserver.prototype.completed=function(){this._o.onNext(true);this._o.onCompleted()};return IsEmptyObserver}(AbstractObserver);observableProto.isEmpty=function(){return new IsEmptyObservable(this)};var EveryObservable=function(__super__){inherits(EveryObservable,__super__);function EveryObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}EveryObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new EveryObserver(o,this._fn,this.source))};return EveryObservable}(ObservableBase);var EveryObserver=function(__super__){inherits(EveryObserver,__super__);function EveryObserver(o,fn,s){this._o=o;this._fn=fn;this._s=s;this._i=0;__super__.call(this)}EveryObserver.prototype.next=function(x){var result=tryCatch(this._fn)(x,this._i++,this._s);if(result===errorObj){return this._o.onError(result.e)}if(!Boolean(result)){this._o.onNext(false);this._o.onCompleted()}};EveryObserver.prototype.error=function(e){this._o.onError(e)};EveryObserver.prototype.completed=function(){this._o.onNext(true);this._o.onCompleted()};return EveryObserver}(AbstractObserver);observableProto.every=function(predicate,thisArg){var fn=bindCallback(predicate,thisArg,3);return new EveryObservable(this,fn)};var IncludesObservable=function(__super__){inherits(IncludesObservable,__super__);function IncludesObservable(source,elem,idx){var n=+idx||0;Math.abs(n)===Infinity&&(n=0);this.source=source;this._elem=elem;this._n=n;__super__.call(this)}IncludesObservable.prototype.subscribeCore=function(o){if(this._n<0){o.onNext(false);o.onCompleted();return disposableEmpty}return this.source.subscribe(new IncludesObserver(o,this._elem,this._n))};return IncludesObservable}(ObservableBase);var IncludesObserver=function(__super__){inherits(IncludesObserver,__super__);function IncludesObserver(o,elem,n){this._o=o;this._elem=elem;this._n=n;this._i=0;__super__.call(this)}function comparer(a,b){return a===0&&b===0||(a===b||isNaN(a)&&isNaN(b))}IncludesObserver.prototype.next=function(x){if(this._i++>=this._n&&comparer(x,this._elem)){this._o.onNext(true);this._o.onCompleted()}};IncludesObserver.prototype.error=function(e){this._o.onError(e)};IncludesObserver.prototype.completed=function(){this._o.onNext(false);this._o.onCompleted()};return IncludesObserver}(AbstractObserver);observableProto.includes=function(searchElement,fromIndex){return new IncludesObservable(this,searchElement,fromIndex)};var CountObservable=function(__super__){inherits(CountObservable,__super__);function CountObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}CountObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new CountObserver(o,this._fn,this.source))};return CountObservable}(ObservableBase);var CountObserver=function(__super__){inherits(CountObserver,__super__);function CountObserver(o,fn,s){this._o=o;this._fn=fn;this._s=s;this._i=0;this._c=0;__super__.call(this)}CountObserver.prototype.next=function(x){if(this._fn){var result=tryCatch(this._fn)(x,this._i++,this._s);if(result===errorObj){return this._o.onError(result.e)}Boolean(result)&&this._c++}else{this._c++}};CountObserver.prototype.error=function(e){this._o.onError(e)};CountObserver.prototype.completed=function(){this._o.onNext(this._c);this._o.onCompleted()};return CountObserver}(AbstractObserver);observableProto.count=function(predicate,thisArg){var fn=bindCallback(predicate,thisArg,3);return new CountObservable(this,fn)};var IndexOfObservable=function(__super__){inherits(IndexOfObservable,__super__);function IndexOfObservable(source,e,n){this.source=source;this._e=e;this._n=n;__super__.call(this)}IndexOfObservable.prototype.subscribeCore=function(o){if(this._n<0){o.onNext(-1);o.onCompleted();return disposableEmpty}return this.source.subscribe(new IndexOfObserver(o,this._e,this._n))};return IndexOfObservable}(ObservableBase);var IndexOfObserver=function(__super__){inherits(IndexOfObserver,__super__);function IndexOfObserver(o,e,n){this._o=o;this._e=e;this._n=n;this._i=0;__super__.call(this)}IndexOfObserver.prototype.next=function(x){if(this._i>=this._n&&x===this._e){this._o.onNext(this._i);this._o.onCompleted()}this._i++};IndexOfObserver.prototype.error=function(e){this._o.onError(e)};IndexOfObserver.prototype.completed=function(){this._o.onNext(-1);this._o.onCompleted()};return IndexOfObserver}(AbstractObserver);observableProto.indexOf=function(searchElement,fromIndex){var n=+fromIndex||0;Math.abs(n)===Infinity&&(n=0);return new IndexOfObservable(this,searchElement,n)};var SumObservable=function(__super__){inherits(SumObservable,__super__);function SumObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}SumObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new SumObserver(o,this._fn,this.source))};return SumObservable}(ObservableBase);var SumObserver=function(__super__){inherits(SumObserver,__super__);function SumObserver(o,fn,s){this._o=o;this._fn=fn;this._s=s;this._i=0;this._c=0;__super__.call(this)}SumObserver.prototype.next=function(x){if(this._fn){var result=tryCatch(this._fn)(x,this._i++,this._s);if(result===errorObj){return this._o.onError(result.e)}this._c+=result}else{this._c+=x}};SumObserver.prototype.error=function(e){this._o.onError(e)};SumObserver.prototype.completed=function(){this._o.onNext(this._c);this._o.onCompleted()};return SumObserver}(AbstractObserver);observableProto.sum=function(keySelector,thisArg){var fn=bindCallback(keySelector,thisArg,3);return new SumObservable(this,fn)};observableProto.minBy=function(keySelector,comparer){comparer||(comparer=defaultSubComparer);return new ExtremaByObservable(this,keySelector,function(x,y){return comparer(x,y)*-1})};observableProto.min=function(comparer){return this.minBy(identity,comparer).map(function(x){return firstOnly(x)})};observableProto.maxBy=function(keySelector,comparer){comparer||(comparer=defaultSubComparer);return new ExtremaByObservable(this,keySelector,comparer)};observableProto.max=function(comparer){return this.maxBy(identity,comparer).map(function(x){return firstOnly(x)})};var AverageObservable=function(__super__){inherits(AverageObservable,__super__);function AverageObservable(source,fn){this.source=source;this._fn=fn;__super__.call(this)}AverageObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new AverageObserver(o,this._fn,this.source))};return AverageObservable}(ObservableBase);var AverageObserver=function(__super__){inherits(AverageObserver,__super__);function AverageObserver(o,fn,s){this._o=o;this._fn=fn;this._s=s;this._c=0;this._t=0;__super__.call(this)}AverageObserver.prototype.next=function(x){if(this._fn){var r=tryCatch(this._fn)(x,this._c++,this._s);if(r===errorObj){return this._o.onError(r.e)}this._t+=r}else{this._c++;this._t+=x}};AverageObserver.prototype.error=function(e){this._o.onError(e)};AverageObserver.prototype.completed=function(){if(this._c===0){return this._o.onError(new EmptyError)}this._o.onNext(this._t/this._c);this._o.onCompleted()};return AverageObserver}(AbstractObserver);observableProto.average=function(keySelector,thisArg){var source=this,fn;if(isFunction(keySelector)){fn=bindCallback(keySelector,thisArg,3)}return new AverageObservable(source,fn)};observableProto.sequenceEqual=function(second,comparer){var first=this;comparer||(comparer=defaultComparer);return new AnonymousObservable(function(o){var donel=false,doner=false,ql=[],qr=[];var subscription1=first.subscribe(function(x){if(qr.length>0){var v=qr.shift();var equal=tryCatch(comparer)(v,x);if(equal===errorObj){return o.onError(equal.e)}if(!equal){o.onNext(false);o.onCompleted()}}else if(doner){o.onNext(false);o.onCompleted()}else{ql.push(x)}},function(e){o.onError(e)},function(){donel=true;if(ql.length===0){if(qr.length>0){o.onNext(false);o.onCompleted()}else if(doner){o.onNext(true);o.onCompleted()}}});(isArrayLike(second)||isIterable(second))&&(second=observableFrom(second));isPromise(second)&&(second=observableFromPromise(second));var subscription2=second.subscribe(function(x){if(ql.length>0){var v=ql.shift();var equal=tryCatch(comparer)(v,x);if(equal===errorObj){return o.onError(equal.e)}if(!equal){o.onNext(false);o.onCompleted()}}else if(donel){o.onNext(false);o.onCompleted()}else{qr.push(x)}},function(e){o.onError(e)},function(){doner=true;if(qr.length===0){if(ql.length>0){o.onNext(false);o.onCompleted()}else if(donel){o.onNext(true);o.onCompleted()}}});return new BinaryDisposable(subscription1,subscription2)},first)};var ElementAtObservable=function(__super__){inherits(ElementAtObservable,__super__);function ElementAtObservable(source,i,d){this.source=source;this._i=i;this._d=d;__super__.call(this)}ElementAtObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new ElementAtObserver(o,this._i,this._d))};return ElementAtObservable}(ObservableBase);var ElementAtObserver=function(__super__){inherits(ElementAtObserver,__super__);function ElementAtObserver(o,i,d){this._o=o;this._i=i;this._d=d;__super__.call(this)}ElementAtObserver.prototype.next=function(x){if(this._i--===0){this._o.onNext(x);this._o.onCompleted()}};ElementAtObserver.prototype.error=function(e){this._o.onError(e)};ElementAtObserver.prototype.completed=function(){if(this._d===undefined){this._o.onError(new ArgumentOutOfRangeError)}else{this._o.onNext(this._d);this._o.onCompleted()}};return ElementAtObserver}(AbstractObserver);observableProto.elementAt=function(index,defaultValue){if(index<0){throw new ArgumentOutOfRangeError}return new ElementAtObservable(this,index,defaultValue)};var SingleObserver=function(__super__){inherits(SingleObserver,__super__);function SingleObserver(o,obj,s){this._o=o;this._obj=obj;this._s=s;this._i=0;this._hv=false;this._v=null;__super__.call(this)}SingleObserver.prototype.next=function(x){var shouldYield=false;if(this._obj.predicate){var res=tryCatch(this._obj.predicate)(x,this._i++,this._s);if(res===errorObj){return this._o.onError(res.e)}Boolean(res)&&(shouldYield=true)}else if(!this._obj.predicate){shouldYield=true}if(shouldYield){if(this._hv){return this._o.onError(new Error("Sequence contains more than one matching element"))}this._hv=true;this._v=x}};SingleObserver.prototype.error=function(e){this._o.onError(e)};SingleObserver.prototype.completed=function(){if(this._hv){this._o.onNext(this._v);this._o.onCompleted()}else if(this._obj.defaultValue===undefined){this._o.onError(new EmptyError)}else{this._o.onNext(this._obj.defaultValue);this._o.onCompleted()}};return SingleObserver}(AbstractObserver);observableProto.single=function(predicate,thisArg){var obj={},source=this;if(typeof arguments[0]==="object"){obj=arguments[0]}else{obj={predicate:arguments[0],thisArg:arguments[1],defaultValue:arguments[2]}}if(isFunction(obj.predicate)){var fn=obj.predicate;obj.predicate=bindCallback(fn,obj.thisArg,3)}return new AnonymousObservable(function(o){return source.subscribe(new SingleObserver(o,obj,source))},source)};var FirstObservable=function(__super__){inherits(FirstObservable,__super__);function FirstObservable(source,obj){this.source=source;this._obj=obj;__super__.call(this)}FirstObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new FirstObserver(o,this._obj,this.source))};return FirstObservable}(ObservableBase);var FirstObserver=function(__super__){inherits(FirstObserver,__super__);function FirstObserver(o,obj,s){this._o=o;this._obj=obj;this._s=s;this._i=0;__super__.call(this)}FirstObserver.prototype.next=function(x){if(this._obj.predicate){var res=tryCatch(this._obj.predicate)(x,this._i++,this._s);if(res===errorObj){return this._o.onError(res.e)}if(Boolean(res)){this._o.onNext(x);this._o.onCompleted()}}else if(!this._obj.predicate){this._o.onNext(x);this._o.onCompleted()}};FirstObserver.prototype.error=function(e){this._o.onError(e)};FirstObserver.prototype.completed=function(){if(this._obj.defaultValue===undefined){this._o.onError(new EmptyError)}else{this._o.onNext(this._obj.defaultValue);this._o.onCompleted()}};return FirstObserver}(AbstractObserver);observableProto.first=function(){var obj={},source=this;if(typeof arguments[0]==="object"){obj=arguments[0]}else{obj={predicate:arguments[0],thisArg:arguments[1],defaultValue:arguments[2]}}if(isFunction(obj.predicate)){var fn=obj.predicate;obj.predicate=bindCallback(fn,obj.thisArg,3)}return new FirstObservable(this,obj)};var LastObservable=function(__super__){inherits(LastObservable,__super__);function LastObservable(source,obj){this.source=source;this._obj=obj;__super__.call(this)}LastObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new LastObserver(o,this._obj,this.source))};return LastObservable}(ObservableBase);var LastObserver=function(__super__){inherits(LastObserver,__super__);function LastObserver(o,obj,s){this._o=o;this._obj=obj;this._s=s;this._i=0;this._hv=false;this._v=null;__super__.call(this)}LastObserver.prototype.next=function(x){var shouldYield=false;if(this._obj.predicate){var res=tryCatch(this._obj.predicate)(x,this._i++,this._s);if(res===errorObj){return this._o.onError(res.e)}Boolean(res)&&(shouldYield=true)}else if(!this._obj.predicate){shouldYield=true}if(shouldYield){this._hv=true;this._v=x}};LastObserver.prototype.error=function(e){this._o.onError(e)};LastObserver.prototype.completed=function(){if(this._hv){this._o.onNext(this._v);this._o.onCompleted()}else if(this._obj.defaultValue===undefined){this._o.onError(new EmptyError)}else{this._o.onNext(this._obj.defaultValue);this._o.onCompleted()}};return LastObserver}(AbstractObserver);observableProto.last=function(){var obj={},source=this;if(typeof arguments[0]==="object"){obj=arguments[0]}else{obj={predicate:arguments[0],thisArg:arguments[1],defaultValue:arguments[2]}}if(isFunction(obj.predicate)){var fn=obj.predicate;obj.predicate=bindCallback(fn,obj.thisArg,3)}return new LastObservable(this,obj)};var FindValueObserver=function(__super__){inherits(FindValueObserver,__super__);function FindValueObserver(observer,source,callback,yieldIndex){this._o=observer;this._s=source;this._cb=callback;this._y=yieldIndex;this._i=0;__super__.call(this)}FindValueObserver.prototype.next=function(x){var shouldRun=tryCatch(this._cb)(x,this._i,this._s);if(shouldRun===errorObj){return this._o.onError(shouldRun.e)}if(shouldRun){this._o.onNext(this._y?this._i:x);this._o.onCompleted()}else{this._i++}};FindValueObserver.prototype.error=function(e){this._o.onError(e)};FindValueObserver.prototype.completed=function(){this._y&&this._o.onNext(-1);this._o.onCompleted()};return FindValueObserver}(AbstractObserver);function findValue(source,predicate,thisArg,yieldIndex){var callback=bindCallback(predicate,thisArg,3);return new AnonymousObservable(function(o){return source.subscribe(new FindValueObserver(o,source,callback,yieldIndex))},source)}observableProto.find=function(predicate,thisArg){return findValue(this,predicate,thisArg,false)};observableProto.findIndex=function(predicate,thisArg){return findValue(this,predicate,thisArg,true)};var ToSetObservable=function(__super__){inherits(ToSetObservable,__super__);function ToSetObservable(source){this.source=source;__super__.call(this)}ToSetObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new ToSetObserver(o))};return ToSetObservable}(ObservableBase);var ToSetObserver=function(__super__){inherits(ToSetObserver,__super__);function ToSetObserver(o){this._o=o;this._s=new root.Set;__super__.call(this)}ToSetObserver.prototype.next=function(x){this._s.add(x)};ToSetObserver.prototype.error=function(e){this._o.onError(e)};ToSetObserver.prototype.completed=function(){this._o.onNext(this._s);this._o.onCompleted()};return ToSetObserver}(AbstractObserver);observableProto.toSet=function(){if(typeof root.Set==="undefined"){throw new TypeError}return new ToSetObservable(this)};var ToMapObservable=function(__super__){inherits(ToMapObservable,__super__);function ToMapObservable(source,k,e){this.source=source;this._k=k;this._e=e;__super__.call(this)}ToMapObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new ToMapObserver(o,this._k,this._e))};return ToMapObservable}(ObservableBase);var ToMapObserver=function(__super__){inherits(ToMapObserver,__super__);function ToMapObserver(o,k,e){this._o=o;this._k=k;this._e=e;this._m=new root.Map;__super__.call(this)}ToMapObserver.prototype.next=function(x){var key=tryCatch(this._k)(x);if(key===errorObj){return this._o.onError(key.e)}var elem=x;if(this._e){elem=tryCatch(this._e)(x);if(elem===errorObj){return this._o.onError(elem.e)}}this._m.set(key,elem)};ToMapObserver.prototype.error=function(e){this._o.onError(e)};ToMapObserver.prototype.completed=function(){this._o.onNext(this._m);this._o.onCompleted()};return ToMapObserver}(AbstractObserver);observableProto.toMap=function(keySelector,elementSelector){if(typeof root.Map==="undefined"){throw new TypeError}return new ToMapObservable(this,keySelector,elementSelector)};var SliceObservable=function(__super__){inherits(SliceObservable,__super__);function SliceObservable(source,b,e){this.source=source;this._b=b;this._e=e;__super__.call(this)}SliceObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new SliceObserver(o,this._b,this._e))};return SliceObservable}(ObservableBase);var SliceObserver=function(__super__){inherits(SliceObserver,__super__);function SliceObserver(o,b,e){this._o=o;this._b=b;this._e=e;this._i=0;__super__.call(this)}SliceObserver.prototype.next=function(x){if(this._i>=this._b){if(this._e===this._i){this._o.onCompleted()}else{this._o.onNext(x)}}this._i++};SliceObserver.prototype.error=function(e){this._o.onError(e)};SliceObserver.prototype.completed=function(){this._o.onCompleted()};return SliceObserver}(AbstractObserver);observableProto.slice=function(begin,end){var start=begin||0;if(start<0){throw new Rx.ArgumentOutOfRangeError}if(typeof end==="number"&&end<start){throw new Rx.ArgumentOutOfRangeError}return new SliceObservable(this,start,end)};var LastIndexOfObservable=function(__super__){inherits(LastIndexOfObservable,__super__);function LastIndexOfObservable(source,e,n){this.source=source;this._e=e;this._n=n;__super__.call(this)}LastIndexOfObservable.prototype.subscribeCore=function(o){if(this._n<0){o.onNext(-1);o.onCompleted();return disposableEmpty}return this.source.subscribe(new LastIndexOfObserver(o,this._e,this._n))};return LastIndexOfObservable}(ObservableBase);var LastIndexOfObserver=function(__super__){inherits(LastIndexOfObserver,__super__);function LastIndexOfObserver(o,e,n){this._o=o;this._e=e;this._n=n;this._v=0;this._hv=false;this._i=0;__super__.call(this)}LastIndexOfObserver.prototype.next=function(x){if(this._i>=this._n&&x===this._e){this._hv=true;this._v=this._i}this._i++};LastIndexOfObserver.prototype.error=function(e){this._o.onError(e)};LastIndexOfObserver.prototype.completed=function(){if(this._hv){this._o.onNext(this._v)}else{this._o.onNext(-1)}this._o.onCompleted()};return LastIndexOfObserver}(AbstractObserver);observableProto.lastIndexOf=function(searchElement,fromIndex){var n=+fromIndex||0;Math.abs(n)===Infinity&&(n=0);return new LastIndexOfObservable(this,searchElement,n)};Observable.wrap=function(fn){function createObservable(){return Observable.spawn.call(this,fn.apply(this,arguments))}createObservable.__generatorFunction__=fn;return createObservable};var spawn=Observable.spawn=function(){var gen=arguments[0],self=this,args=[];for(var i=1,len=arguments.length;i<len;i++){args.push(arguments[i])}return new AnonymousObservable(function(o){var g=new CompositeDisposable;if(isFunction(gen)){gen=gen.apply(self,args)}if(!gen||!isFunction(gen.next)){o.onNext(gen);return o.onCompleted()}function processGenerator(res){var ret=tryCatch(gen.next).call(gen,res);if(ret===errorObj){return o.onError(ret.e)}next(ret)}processGenerator();function onError(err){var ret=tryCatch(gen.next).call(gen,err);if(ret===errorObj){return o.onError(ret.e)}next(ret)}function next(ret){if(ret.done){o.onNext(ret.value);o.onCompleted();return}var obs=toObservable.call(self,ret.value);var value=null;var hasValue=false;if(Observable.isObservable(obs)){g.add(obs.subscribe(function(val){hasValue=true;value=val},onError,function(){hasValue&&processGenerator(value)}))}else{onError(new TypeError("type not supported"))}}return g})};function toObservable(obj){if(!obj){return obj}if(Observable.isObservable(obj)){return obj}if(isPromise(obj)){return Observable.fromPromise(obj)}if(isGeneratorFunction(obj)||isGenerator(obj)){return spawn.call(this,obj)}if(isFunction(obj)){return thunkToObservable.call(this,obj)}if(isArrayLike(obj)||isIterable(obj)){return arrayToObservable.call(this,obj)}if(isObject(obj)){return objectToObservable.call(this,obj)}return obj}function arrayToObservable(obj){return Observable.from(obj).concatMap(function(o){if(Observable.isObservable(o)||isObject(o)){return toObservable.call(null,o)}else{return Rx.Observable.just(o)}}).toArray()}function objectToObservable(obj){var results=new obj.constructor,keys=Object.keys(obj),observables=[];for(var i=0,len=keys.length;i<len;i++){var key=keys[i];var observable=toObservable.call(this,obj[key]);if(observable&&Observable.isObservable(observable)){defer(observable,key)}else{results[key]=obj[key]}}return Observable.forkJoin.apply(Observable,observables).map(function(){return results});function defer(observable,key){results[key]=undefined;observables.push(observable.map(function(next){results[key]=next}))}}function thunkToObservable(fn){var self=this;return new AnonymousObservable(function(o){fn.call(self,function(){var err=arguments[0],res=arguments[1];if(err){return o.onError(err)}if(arguments.length>2){var args=[];for(var i=1,len=arguments.length;i<len;i++){args.push(arguments[i])}res=args}o.onNext(res);o.onCompleted()})})}function isGenerator(obj){return isFunction(obj.next)&&isFunction(obj.throw)}function isGeneratorFunction(obj){var ctor=obj.constructor;if(!ctor){return false}if(ctor.name==="GeneratorFunction"||ctor.displayName==="GeneratorFunction"){return true}return isGenerator(ctor.prototype)}function isObject(val){return Object==val.constructor}Observable.start=function(func,context,scheduler){return observableToAsync(func,context,scheduler)()};var observableToAsync=Observable.toAsync=function(func,context,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return function(){var args=arguments,subject=new AsyncSubject;scheduler.schedule(null,function(){var result;try{result=func.apply(context,args)}catch(e){subject.onError(e);return}subject.onNext(result);subject.onCompleted()});return subject.asObservable()}};function createCbObservable(fn,ctx,selector,args){var o=new AsyncSubject;args.push(createCbHandler(o,ctx,selector));fn.apply(ctx,args);return o.asObservable()}function createCbHandler(o,ctx,selector){return function handler(){var len=arguments.length,results=new Array(len);for(var i=0;i<len;i++){results[i]=arguments[i]}if(isFunction(selector)){results=tryCatch(selector).apply(ctx,results);if(results===errorObj){return o.onError(results.e)}o.onNext(results)}else{if(results.length<=1){o.onNext(results[0])}else{o.onNext(results)}}o.onCompleted()}}Observable.fromCallback=function(fn,ctx,selector){return function(){typeof ctx==="undefined"&&(ctx=this);var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return createCbObservable(fn,ctx,selector,args)}};function createNodeObservable(fn,ctx,selector,args){var o=new AsyncSubject;args.push(createNodeHandler(o,ctx,selector));fn.apply(ctx,args);return o.asObservable()}function createNodeHandler(o,ctx,selector){return function handler(){var err=arguments[0];if(err){return o.onError(err)}var len=arguments.length,results=[];for(var i=1;i<len;i++){results[i-1]=arguments[i]}if(isFunction(selector)){var results=tryCatch(selector).apply(ctx,results);if(results===errorObj){return o.onError(results.e)}o.onNext(results)}else{if(results.length<=1){o.onNext(results[0])}else{o.onNext(results)}}o.onCompleted()}}Observable.fromNodeCallback=function(fn,ctx,selector){return function(){typeof ctx==="undefined"&&(ctx=this);var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return createNodeObservable(fn,ctx,selector,args)}};function isNodeList(el){if(root.StaticNodeList){return el instanceof root.StaticNodeList||el instanceof root.NodeList}else{return Object.prototype.toString.call(el)==="[object NodeList]"}}function ListenDisposable(e,n,fn){this._e=e;this._n=n;this._fn=fn;this._e.addEventListener(this._n,this._fn,false);this.isDisposed=false}ListenDisposable.prototype.dispose=function(){if(!this.isDisposed){this._e.removeEventListener(this._n,this._fn,false);this.isDisposed=true}};function createEventListener(el,eventName,handler){var disposables=new CompositeDisposable;var elemToString=Object.prototype.toString.call(el);if(isNodeList(el)||elemToString==="[object HTMLCollection]"){for(var i=0,len=el.length;i<len;i++){disposables.add(createEventListener(el.item(i),eventName,handler))}}else if(el){disposables.add(new ListenDisposable(el,eventName,handler))}return disposables}Rx.config.useNativeEvents=false;var EventObservable=function(__super__){inherits(EventObservable,__super__);function EventObservable(el,name,fn){this._el=el;this._n=name;this._fn=fn;__super__.call(this)}function createHandler(o,fn){return function handler(){var results=arguments[0];if(isFunction(fn)){results=tryCatch(fn).apply(null,arguments);if(results===errorObj){return o.onError(results.e)}}o.onNext(results)}}EventObservable.prototype.subscribeCore=function(o){return createEventListener(this._el,this._n,createHandler(o,this._fn))};return EventObservable}(ObservableBase);Observable.fromEvent=function(element,eventName,selector){if(element.addListener){return fromEventPattern(function(h){element.addListener(eventName,h)},function(h){element.removeListener(eventName,h)},selector)}if(!Rx.config.useNativeEvents){if(typeof element.on==="function"&&typeof element.off==="function"){return fromEventPattern(function(h){element.on(eventName,h)},function(h){element.off(eventName,h)},selector)}}return new EventObservable(element,eventName,selector).publish().refCount()};var EventPatternObservable=function(__super__){inherits(EventPatternObservable,__super__);function EventPatternObservable(add,del,fn){this._add=add;this._del=del;this._fn=fn;__super__.call(this)}function createHandler(o,fn){return function handler(){var results=arguments[0];if(isFunction(fn)){results=tryCatch(fn).apply(null,arguments);if(results===errorObj){return o.onError(results.e)}}o.onNext(results)}}EventPatternObservable.prototype.subscribeCore=function(o){var fn=createHandler(o,this._fn);var returnValue=this._add(fn);return new EventPatternDisposable(this._del,fn,returnValue)};function EventPatternDisposable(del,fn,ret){this._del=del;this._fn=fn;this._ret=ret;this.isDisposed=false}EventPatternDisposable.prototype.dispose=function(){if(!this.isDisposed){isFunction(this._del)&&this._del(this._fn,this._ret)}};return EventPatternObservable}(ObservableBase);var fromEventPattern=Observable.fromEventPattern=function(addHandler,removeHandler,selector){return new EventPatternObservable(addHandler,removeHandler,selector).publish().refCount()};Observable.startAsync=function(functionAsync){var promise=tryCatch(functionAsync)();if(promise===errorObj){return observableThrow(promise.e)}return observableFromPromise(promise)};var PausableObservable=function(__super__){inherits(PausableObservable,__super__);function PausableObservable(source,pauser){this.source=source;this.controller=new Subject;if(pauser&&pauser.subscribe){this.pauser=this.controller.merge(pauser)}else{this.pauser=this.controller}__super__.call(this)}PausableObservable.prototype._subscribe=function(o){var conn=this.source.publish(),subscription=conn.subscribe(o),connection=disposableEmpty;var pausable=this.pauser.distinctUntilChanged().subscribe(function(b){if(b){connection=conn.connect()}else{connection.dispose();connection=disposableEmpty}});return new NAryDisposable([subscription,connection,pausable])};PausableObservable.prototype.pause=function(){this.controller.onNext(false)};PausableObservable.prototype.resume=function(){this.controller.onNext(true)};return PausableObservable}(Observable);observableProto.pausable=function(pauser){return new PausableObservable(this,pauser)};function combineLatestSource(source,subject,resultSelector){return new AnonymousObservable(function(o){var hasValue=[false,false],hasValueAll=false,isDone=false,values=new Array(2),err;function next(x,i){values[i]=x;hasValue[i]=true;if(hasValueAll||(hasValueAll=hasValue.every(identity))){if(err){return o.onError(err)}var res=tryCatch(resultSelector).apply(null,values);if(res===errorObj){return o.onError(res.e)}o.onNext(res)}isDone&&values[1]&&o.onCompleted()}return new BinaryDisposable(source.subscribe(function(x){next(x,0)},function(e){if(values[1]){o.onError(e)}else{err=e}},function(){isDone=true;values[1]&&o.onCompleted()}),subject.subscribe(function(x){next(x,1)},function(e){o.onError(e)},function(){isDone=true;next(true,1)}))},source)}var PausableBufferedObservable=function(__super__){ | |
inherits(PausableBufferedObservable,__super__);function PausableBufferedObservable(source,pauser){this.source=source;this.controller=new Subject;if(pauser&&pauser.subscribe){this.pauser=this.controller.merge(pauser)}else{this.pauser=this.controller}__super__.call(this)}PausableBufferedObservable.prototype._subscribe=function(o){var q=[],previousShouldFire;function drainQueue(){while(q.length>0){o.onNext(q.shift())}}var subscription=combineLatestSource(this.source,this.pauser.startWith(false).distinctUntilChanged(),function(data,shouldFire){return{data:data,shouldFire:shouldFire}}).subscribe(function(results){if(previousShouldFire!==undefined&&results.shouldFire!==previousShouldFire){previousShouldFire=results.shouldFire;if(results.shouldFire){drainQueue()}}else{previousShouldFire=results.shouldFire;if(results.shouldFire){o.onNext(results.data)}else{q.push(results.data)}}},function(err){drainQueue();o.onError(err)},function(){drainQueue();o.onCompleted()});return subscription};PausableBufferedObservable.prototype.pause=function(){this.controller.onNext(false)};PausableBufferedObservable.prototype.resume=function(){this.controller.onNext(true)};return PausableBufferedObservable}(Observable);observableProto.pausableBuffered=function(subject){return new PausableBufferedObservable(this,subject)};var ControlledObservable=function(__super__){inherits(ControlledObservable,__super__);function ControlledObservable(source,enableQueue,scheduler){__super__.call(this);this.subject=new ControlledSubject(enableQueue,scheduler);this.source=source.multicast(this.subject).refCount()}ControlledObservable.prototype._subscribe=function(o){return this.source.subscribe(o)};ControlledObservable.prototype.request=function(numberOfItems){return this.subject.request(numberOfItems==null?-1:numberOfItems)};return ControlledObservable}(Observable);var ControlledSubject=function(__super__){inherits(ControlledSubject,__super__);function ControlledSubject(enableQueue,scheduler){enableQueue==null&&(enableQueue=true);__super__.call(this);this.subject=new Subject;this.enableQueue=enableQueue;this.queue=enableQueue?[]:null;this.requestedCount=0;this.requestedDisposable=null;this.error=null;this.hasFailed=false;this.hasCompleted=false;this.scheduler=scheduler||currentThreadScheduler}addProperties(ControlledSubject.prototype,Observer,{_subscribe:function(o){return this.subject.subscribe(o)},onCompleted:function(){this.hasCompleted=true;if(!this.enableQueue||this.queue.length===0){this.subject.onCompleted();this.disposeCurrentRequest()}else{this.queue.push(Notification.createOnCompleted())}},onError:function(error){this.hasFailed=true;this.error=error;if(!this.enableQueue||this.queue.length===0){this.subject.onError(error);this.disposeCurrentRequest()}else{this.queue.push(Notification.createOnError(error))}},onNext:function(value){if(this.requestedCount<=0){this.enableQueue&&this.queue.push(Notification.createOnNext(value))}else{this.requestedCount--===0&&this.disposeCurrentRequest();this.subject.onNext(value)}},_processRequest:function(numberOfItems){if(this.enableQueue){while(this.queue.length>0&&(numberOfItems>0||this.queue[0].kind!=="N")){var first=this.queue.shift();first.accept(this.subject);if(first.kind==="N"){numberOfItems--}else{this.disposeCurrentRequest();this.queue=[]}}}return numberOfItems},request:function(number){this.disposeCurrentRequest();var self=this;this.requestedDisposable=this.scheduler.schedule(number,function(s,i){var remaining=self._processRequest(i);var stopped=self.hasCompleted||self.hasFailed;if(!stopped&&remaining>0){self.requestedCount=remaining;return disposableCreate(function(){self.requestedCount=0})}});return this.requestedDisposable},disposeCurrentRequest:function(){if(this.requestedDisposable){this.requestedDisposable.dispose();this.requestedDisposable=null}}});return ControlledSubject}(Observable);observableProto.controlled=function(enableQueue,scheduler){if(enableQueue&&isScheduler(enableQueue)){scheduler=enableQueue;enableQueue=true}if(enableQueue==null){enableQueue=true}return new ControlledObservable(this,enableQueue,scheduler)};var StopAndWaitObservable=function(__super__){inherits(StopAndWaitObservable,__super__);function StopAndWaitObservable(source){__super__.call(this);this.source=source}function scheduleMethod(s,self){self.source.request(1)}StopAndWaitObservable.prototype._subscribe=function(o){this.subscription=this.source.subscribe(new StopAndWaitObserver(o,this,this.subscription));return new BinaryDisposable(this.subscription,defaultScheduler.schedule(this,scheduleMethod))};var StopAndWaitObserver=function(__sub__){inherits(StopAndWaitObserver,__sub__);function StopAndWaitObserver(observer,observable,cancel){__sub__.call(this);this.observer=observer;this.observable=observable;this.cancel=cancel;this.scheduleDisposable=null}StopAndWaitObserver.prototype.completed=function(){this.observer.onCompleted();this.dispose()};StopAndWaitObserver.prototype.error=function(error){this.observer.onError(error);this.dispose()};function innerScheduleMethod(s,self){self.observable.source.request(1)}StopAndWaitObserver.prototype.next=function(value){this.observer.onNext(value);this.scheduleDisposable=defaultScheduler.schedule(this,innerScheduleMethod)};StopAndWaitObservable.dispose=function(){this.observer=null;if(this.cancel){this.cancel.dispose();this.cancel=null}if(this.scheduleDisposable){this.scheduleDisposable.dispose();this.scheduleDisposable=null}__sub__.prototype.dispose.call(this)};return StopAndWaitObserver}(AbstractObserver);return StopAndWaitObservable}(Observable);ControlledObservable.prototype.stopAndWait=function(){return new StopAndWaitObservable(this)};var WindowedObservable=function(__super__){inherits(WindowedObservable,__super__);function WindowedObservable(source,windowSize){__super__.call(this);this.source=source;this.windowSize=windowSize}function scheduleMethod(s,self){self.source.request(self.windowSize)}WindowedObservable.prototype._subscribe=function(o){this.subscription=this.source.subscribe(new WindowedObserver(o,this,this.subscription));return new BinaryDisposable(this.subscription,defaultScheduler.schedule(this,scheduleMethod))};var WindowedObserver=function(__sub__){inherits(WindowedObserver,__sub__);function WindowedObserver(observer,observable,cancel){this.observer=observer;this.observable=observable;this.cancel=cancel;this.received=0;this.scheduleDisposable=null;__sub__.call(this)}WindowedObserver.prototype.completed=function(){this.observer.onCompleted();this.dispose()};WindowedObserver.prototype.error=function(error){this.observer.onError(error);this.dispose()};function innerScheduleMethod(s,self){self.observable.source.request(self.observable.windowSize)}WindowedObserver.prototype.next=function(value){this.observer.onNext(value);this.received=++this.received%this.observable.windowSize;this.received===0&&(this.scheduleDisposable=defaultScheduler.schedule(this,innerScheduleMethod))};WindowedObserver.prototype.dispose=function(){this.observer=null;if(this.cancel){this.cancel.dispose();this.cancel=null}if(this.scheduleDisposable){this.scheduleDisposable.dispose();this.scheduleDisposable=null}__sub__.prototype.dispose.call(this)};return WindowedObserver}(AbstractObserver);return WindowedObservable}(Observable);ControlledObservable.prototype.windowed=function(windowSize){return new WindowedObservable(this,windowSize)};observableProto.pipe=function(dest){var source=this.pausableBuffered();function onDrain(){source.resume()}dest.addListener("drain",onDrain);source.subscribe(function(x){!dest.write(String(x))&&source.pause()},function(err){dest.emit("error",err)},function(){!dest._isStdio&&dest.end();dest.removeListener("drain",onDrain)});source.resume();return dest};var MulticastObservable=function(__super__){inherits(MulticastObservable,__super__);function MulticastObservable(source,fn1,fn2){this.source=source;this._fn1=fn1;this._fn2=fn2;__super__.call(this)}MulticastObservable.prototype.subscribeCore=function(o){var connectable=this.source.multicast(this._fn1());return new BinaryDisposable(this._fn2(connectable).subscribe(o),connectable.connect())};return MulticastObservable}(ObservableBase);observableProto.multicast=function(subjectOrSubjectSelector,selector){return isFunction(subjectOrSubjectSelector)?new MulticastObservable(this,subjectOrSubjectSelector,selector):new ConnectableObservable(this,subjectOrSubjectSelector)};observableProto.publish=function(selector){return selector&&isFunction(selector)?this.multicast(function(){return new Subject},selector):this.multicast(new Subject)};observableProto.share=function(){return this.publish().refCount()};observableProto.publishLast=function(selector){return selector&&isFunction(selector)?this.multicast(function(){return new AsyncSubject},selector):this.multicast(new AsyncSubject)};observableProto.publishValue=function(initialValueOrSelector,initialValue){return arguments.length===2?this.multicast(function(){return new BehaviorSubject(initialValue)},initialValueOrSelector):this.multicast(new BehaviorSubject(initialValueOrSelector))};observableProto.shareValue=function(initialValue){return this.publishValue(initialValue).refCount()};observableProto.replay=function(selector,bufferSize,windowSize,scheduler){return selector&&isFunction(selector)?this.multicast(function(){return new ReplaySubject(bufferSize,windowSize,scheduler)},selector):this.multicast(new ReplaySubject(bufferSize,windowSize,scheduler))};observableProto.shareReplay=function(bufferSize,windowSize,scheduler){return this.replay(null,bufferSize,windowSize,scheduler).refCount()};var InnerSubscription=function(s,o){this._s=s;this._o=o};InnerSubscription.prototype.dispose=function(){if(!this._s.isDisposed&&this._o!==null){var idx=this._s.observers.indexOf(this._o);this._s.observers.splice(idx,1);this._o=null}};var RefCountObservable=function(__super__){inherits(RefCountObservable,__super__);function RefCountObservable(source){this.source=source;this._count=0;this._connectableSubscription=null;__super__.call(this)}RefCountObservable.prototype.subscribeCore=function(o){var shouldConnect=++this._count===1,subscription=this.source.subscribe(o);shouldConnect&&(this._connectableSubscription=this.source.connect());return new RefCountDisposable(this,subscription)};function RefCountDisposable(p,s){this._p=p;this._s=s;this.isDisposed=false}RefCountDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;this._s.dispose();--this._p._count===0&&this._p._connectableSubscription.dispose()}};return RefCountObservable}(ObservableBase);var ConnectableObservable=Rx.ConnectableObservable=function(__super__){inherits(ConnectableObservable,__super__);function ConnectableObservable(source,subject){this.source=source;this._hasSubscription=false;this._subscription=null;this._sourceObservable=source.asObservable();this._subject=subject;__super__.call(this)}function ConnectDisposable(parent){this._p=parent;this.isDisposed=false}ConnectDisposable.prototype.dispose=function(){if(!this.isDisposed){this.isDisposed=true;this._p._hasSubscription=false}};ConnectableObservable.prototype.connect=function(){if(!this._hasSubscription){this._hasSubscription=true;this._subscription=new BinaryDisposable(this._sourceObservable.subscribe(this._subject),new ConnectDisposable(this))}return this._subscription};ConnectableObservable.prototype._subscribe=function(o){return this._subject.subscribe(o)};ConnectableObservable.prototype.refCount=function(){return new RefCountObservable(this)};return ConnectableObservable}(Observable);observableProto.singleInstance=function(){var source=this,hasObservable=false,observable;function getObservable(){if(!hasObservable){hasObservable=true;observable=source.finally(function(){hasObservable=false}).publish().refCount()}return observable}return new AnonymousObservable(function(o){return getObservable().subscribe(o)})};observableProto.join=function(right,leftDurationSelector,rightDurationSelector,resultSelector){var left=this;return new AnonymousObservable(function(o){var group=new CompositeDisposable;var leftDone=false,rightDone=false;var leftId=0,rightId=0;var leftMap=new Map,rightMap=new Map;var handleError=function(e){o.onError(e)};group.add(left.subscribe(function(value){var id=leftId++,md=new SingleAssignmentDisposable;leftMap.set(id,value);group.add(md);var duration=tryCatch(leftDurationSelector)(value);if(duration===errorObj){return o.onError(duration.e)}md.setDisposable(duration.take(1).subscribe(noop,handleError,function(){leftMap["delete"](id)&&leftMap.size===0&&leftDone&&o.onCompleted();group.remove(md)}));rightMap.forEach(function(v){var result=tryCatch(resultSelector)(value,v);if(result===errorObj){return o.onError(result.e)}o.onNext(result)})},handleError,function(){leftDone=true;(rightDone||leftMap.size===0)&&o.onCompleted()}));group.add(right.subscribe(function(value){var id=rightId++,md=new SingleAssignmentDisposable;rightMap.set(id,value);group.add(md);var duration=tryCatch(rightDurationSelector)(value);if(duration===errorObj){return o.onError(duration.e)}md.setDisposable(duration.take(1).subscribe(noop,handleError,function(){rightMap["delete"](id)&&rightMap.size===0&&rightDone&&o.onCompleted();group.remove(md)}));leftMap.forEach(function(v){var result=tryCatch(resultSelector)(v,value);if(result===errorObj){return o.onError(result.e)}o.onNext(result)})},handleError,function(){rightDone=true;(leftDone||rightMap.size===0)&&o.onCompleted()}));return group},left)};observableProto.groupJoin=function(right,leftDurationSelector,rightDurationSelector,resultSelector){var left=this;return new AnonymousObservable(function(o){var group=new CompositeDisposable;var r=new RefCountDisposable(group);var leftMap=new Map,rightMap=new Map;var leftId=0,rightId=0;var handleError=function(e){return function(v){v.onError(e)}};function handleError(e){}group.add(left.subscribe(function(value){var s=new Subject;var id=leftId++;leftMap.set(id,s);var result=tryCatch(resultSelector)(value,addRef(s,r));if(result===errorObj){leftMap.forEach(handleError(result.e));return o.onError(result.e)}o.onNext(result);rightMap.forEach(function(v){s.onNext(v)});var md=new SingleAssignmentDisposable;group.add(md);var duration=tryCatch(leftDurationSelector)(value);if(duration===errorObj){leftMap.forEach(handleError(duration.e));return o.onError(duration.e)}md.setDisposable(duration.take(1).subscribe(noop,function(e){leftMap.forEach(handleError(e));o.onError(e)},function(){leftMap["delete"](id)&&s.onCompleted();group.remove(md)}))},function(e){leftMap.forEach(handleError(e));o.onError(e)},function(){o.onCompleted()}));group.add(right.subscribe(function(value){var id=rightId++;rightMap.set(id,value);var md=new SingleAssignmentDisposable;group.add(md);var duration=tryCatch(rightDurationSelector)(value);if(duration===errorObj){leftMap.forEach(handleError(duration.e));return o.onError(duration.e)}md.setDisposable(duration.take(1).subscribe(noop,function(e){leftMap.forEach(handleError(e));o.onError(e)},function(){rightMap["delete"](id);group.remove(md)}));leftMap.forEach(function(v){v.onNext(value)})},function(e){leftMap.forEach(handleError(e));o.onError(e)}));return r},left)};function toArray(x){return x.toArray()}observableProto.buffer=function(){return this.window.apply(this,arguments).flatMap(toArray)};observableProto.window=function(windowOpeningsOrClosingSelector,windowClosingSelector){if(arguments.length===1&&typeof arguments[0]!=="function"){return observableWindowWithBoundaries.call(this,windowOpeningsOrClosingSelector)}return typeof windowOpeningsOrClosingSelector==="function"?observableWindowWithClosingSelector.call(this,windowOpeningsOrClosingSelector):observableWindowWithOpenings.call(this,windowOpeningsOrClosingSelector,windowClosingSelector)};function observableWindowWithOpenings(windowOpenings,windowClosingSelector){return windowOpenings.groupJoin(this,windowClosingSelector,observableEmpty,function(_,win){return win})}function observableWindowWithBoundaries(windowBoundaries){var source=this;return new AnonymousObservable(function(observer){var win=new Subject,d=new CompositeDisposable,r=new RefCountDisposable(d);observer.onNext(addRef(win,r));d.add(source.subscribe(function(x){win.onNext(x)},function(err){win.onError(err);observer.onError(err)},function(){win.onCompleted();observer.onCompleted()}));isPromise(windowBoundaries)&&(windowBoundaries=observableFromPromise(windowBoundaries));d.add(windowBoundaries.subscribe(function(w){win.onCompleted();win=new Subject;observer.onNext(addRef(win,r))},function(err){win.onError(err);observer.onError(err)},function(){win.onCompleted();observer.onCompleted()}));return r},source)}function observableWindowWithClosingSelector(windowClosingSelector){var source=this;return new AnonymousObservable(function(observer){var m=new SerialDisposable,d=new CompositeDisposable(m),r=new RefCountDisposable(d),win=new Subject;observer.onNext(addRef(win,r));d.add(source.subscribe(function(x){win.onNext(x)},function(err){win.onError(err);observer.onError(err)},function(){win.onCompleted();observer.onCompleted()}));function createWindowClose(){var windowClose;try{windowClose=windowClosingSelector()}catch(e){observer.onError(e);return}isPromise(windowClose)&&(windowClose=observableFromPromise(windowClose));var m1=new SingleAssignmentDisposable;m.setDisposable(m1);m1.setDisposable(windowClose.take(1).subscribe(noop,function(err){win.onError(err);observer.onError(err)},function(){win.onCompleted();win=new Subject;observer.onNext(addRef(win,r));createWindowClose()}))}createWindowClose();return r},source)}var PairwiseObservable=function(__super__){inherits(PairwiseObservable,__super__);function PairwiseObservable(source){this.source=source;__super__.call(this)}PairwiseObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new PairwiseObserver(o))};return PairwiseObservable}(ObservableBase);var PairwiseObserver=function(__super__){inherits(PairwiseObserver,__super__);function PairwiseObserver(o){this._o=o;this._p=null;this._hp=false}PairwiseObserver.prototype.next=function(x){if(this._hp){this._o.onNext([this._p,x])}else{this._hp=true}this._p=x};PairwiseObserver.prototype.error=function(err){this._o.onError(err)};PairwiseObserver.prototype.completed=function(){this._o.onCompleted()};return PairwiseObserver}(AbstractObserver);observableProto.pairwise=function(){return new PairwiseObservable(this)};observableProto.partition=function(predicate,thisArg){var fn=bindCallback(predicate,thisArg,3);return[this.filter(predicate,thisArg),this.filter(function(x,i,o){return!fn(x,i,o)})]};var WhileEnumerable=function(__super__){inherits(WhileEnumerable,__super__);function WhileEnumerable(c,s){this.c=c;this.s=s}WhileEnumerable.prototype[$iterator$]=function(){var self=this;return{next:function(){return self.c()?{done:false,value:self.s}:{done:true,value:void 0}}}};return WhileEnumerable}(Enumerable);function enumerableWhile(condition,source){return new WhileEnumerable(condition,source)}observableProto.letBind=observableProto["let"]=function(func){return func(this)};Observable["if"]=function(condition,thenSource,elseSourceOrScheduler){return observableDefer(function(){elseSourceOrScheduler||(elseSourceOrScheduler=observableEmpty());isPromise(thenSource)&&(thenSource=observableFromPromise(thenSource));isPromise(elseSourceOrScheduler)&&(elseSourceOrScheduler=observableFromPromise(elseSourceOrScheduler));typeof elseSourceOrScheduler.now==="function"&&(elseSourceOrScheduler=observableEmpty(elseSourceOrScheduler));return condition()?thenSource:elseSourceOrScheduler})};Observable["for"]=Observable.forIn=function(sources,resultSelector,thisArg){return enumerableOf(sources,resultSelector,thisArg).concat()};var observableWhileDo=Observable["while"]=Observable.whileDo=function(condition,source){isPromise(source)&&(source=observableFromPromise(source));return enumerableWhile(condition,source).concat()};observableProto.doWhile=function(condition){return observableConcat([this,observableWhileDo(condition,this)])};Observable["case"]=function(selector,sources,defaultSourceOrScheduler){return observableDefer(function(){isPromise(defaultSourceOrScheduler)&&(defaultSourceOrScheduler=observableFromPromise(defaultSourceOrScheduler));defaultSourceOrScheduler||(defaultSourceOrScheduler=observableEmpty());isScheduler(defaultSourceOrScheduler)&&(defaultSourceOrScheduler=observableEmpty(defaultSourceOrScheduler));var result=sources[selector()];isPromise(result)&&(result=observableFromPromise(result));return result||defaultSourceOrScheduler})};var ExpandObservable=function(__super__){inherits(ExpandObservable,__super__);function ExpandObservable(source,fn,scheduler){this.source=source;this._fn=fn;this._scheduler=scheduler;__super__.call(this)}function scheduleRecursive(args,recurse){var state=args[0],self=args[1];var work;if(state.q.length>0){work=state.q.shift()}else{state.isAcquired=false;return}var m1=new SingleAssignmentDisposable;state.d.add(m1);m1.setDisposable(work.subscribe(new ExpandObserver(state,self,m1)));recurse([state,self])}ExpandObservable.prototype._ensureActive=function(state){var isOwner=false;if(state.q.length>0){isOwner=!state.isAcquired;state.isAcquired=true}isOwner&&state.m.setDisposable(this._scheduler.scheduleRecursive([state,this],scheduleRecursive))};ExpandObservable.prototype.subscribeCore=function(o){var m=new SerialDisposable,d=new CompositeDisposable(m),state={q:[],m:m,d:d,activeCount:0,isAcquired:false,o:o};state.q.push(this.source);state.activeCount++;this._ensureActive(state);return d};return ExpandObservable}(ObservableBase);var ExpandObserver=function(__super__){inherits(ExpandObserver,__super__);function ExpandObserver(state,parent,m1){this._s=state;this._p=parent;this._m1=m1;__super__.call(this)}ExpandObserver.prototype.next=function(x){this._s.o.onNext(x);var result=tryCatch(this._p._fn)(x);if(result===errorObj){return this._s.o.onError(result.e)}this._s.q.push(result);this._s.activeCount++;this._p._ensureActive(this._s)};ExpandObserver.prototype.error=function(e){this._s.o.onError(e)};ExpandObserver.prototype.completed=function(){this._s.d.remove(this._m1);this._s.activeCount--;this._s.activeCount===0&&this._s.o.onCompleted()};return ExpandObserver}(AbstractObserver);observableProto.expand=function(selector,scheduler){isScheduler(scheduler)||(scheduler=currentThreadScheduler);return new ExpandObservable(this,selector,scheduler)};function argumentsToArray(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}return args}var ForkJoinObservable=function(__super__){inherits(ForkJoinObservable,__super__);function ForkJoinObservable(sources,cb){this._sources=sources;this._cb=cb;__super__.call(this)}ForkJoinObservable.prototype.subscribeCore=function(o){if(this._sources.length===0){o.onCompleted();return disposableEmpty}var count=this._sources.length;var state={finished:false,hasResults:new Array(count),hasCompleted:new Array(count),results:new Array(count)};var subscriptions=new CompositeDisposable;for(var i=0,len=this._sources.length;i<len;i++){var source=this._sources[i];isPromise(source)&&(source=observableFromPromise(source));subscriptions.add(source.subscribe(new ForkJoinObserver(o,state,i,this._cb,subscriptions)))}return subscriptions};return ForkJoinObservable}(ObservableBase);var ForkJoinObserver=function(__super__){inherits(ForkJoinObserver,__super__);function ForkJoinObserver(o,s,i,cb,subs){this._o=o;this._s=s;this._i=i;this._cb=cb;this._subs=subs;__super__.call(this)}ForkJoinObserver.prototype.next=function(x){if(!this._s.finished){this._s.hasResults[this._i]=true;this._s.results[this._i]=x}};ForkJoinObserver.prototype.error=function(e){this._s.finished=true;this._o.onError(e);this._subs.dispose()};ForkJoinObserver.prototype.completed=function(){if(!this._s.finished){if(!this._s.hasResults[this._i]){return this._o.onCompleted()}this._s.hasCompleted[this._i]=true;for(var i=0;i<this._s.results.length;i++){if(!this._s.hasCompleted[i]){return}}this._s.finished=true;var res=tryCatch(this._cb).apply(null,this._s.results);if(res===errorObj){return this._o.onError(res.e)}this._o.onNext(res);this._o.onCompleted()}};return ForkJoinObserver}(AbstractObserver);Observable.forkJoin=function(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}var resultSelector=isFunction(args[len-1])?args.pop():argumentsToArray;Array.isArray(args[0])&&(args=args[0]);return new ForkJoinObservable(args,resultSelector)};observableProto.forkJoin=function(){var len=arguments.length,args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}if(Array.isArray(args[0])){args[0].unshift(this)}else{args.unshift(this)}return Observable.forkJoin.apply(null,args)};observableProto.manySelect=observableProto.extend=function(selector,scheduler){isScheduler(scheduler)||(scheduler=Rx.Scheduler.immediate);var source=this;return observableDefer(function(){var chain;return source.map(function(x){var curr=new ChainObservable(x);chain&&chain.onNext(x);chain=curr;return curr}).tap(noop,function(e){chain&&chain.onError(e)},function(){chain&&chain.onCompleted()}).observeOn(scheduler).map(selector)},source)};var ChainObservable=function(__super__){inherits(ChainObservable,__super__);function ChainObservable(head){__super__.call(this);this.head=head;this.tail=new AsyncSubject}addProperties(ChainObservable.prototype,Observer,{_subscribe:function(o){var g=new CompositeDisposable;g.add(currentThreadScheduler.schedule(this,function(_,self){o.onNext(self.head);g.add(self.tail.mergeAll().subscribe(o))}));return g},onCompleted:function(){this.onNext(Observable.empty())},onError:function(e){this.onNext(Observable["throw"](e))},onNext:function(v){this.tail.onNext(v);this.tail.onCompleted()}});return ChainObservable}(Observable);var Map=root.Map||function(){function Map(){this.size=0;this._values=[];this._keys=[]}Map.prototype["delete"]=function(key){var i=this._keys.indexOf(key);if(i===-1){return false}this._values.splice(i,1);this._keys.splice(i,1);this.size--;return true};Map.prototype.get=function(key){var i=this._keys.indexOf(key);return i===-1?undefined:this._values[i]};Map.prototype.set=function(key,value){var i=this._keys.indexOf(key);if(i===-1){this._keys.push(key);this._values.push(value);this.size++}else{this._values[i]=value}return this};Map.prototype.forEach=function(cb,thisArg){for(var i=0;i<this.size;i++){cb.call(thisArg,this._values[i],this._keys[i])}};return Map}();function Pattern(patterns){this.patterns=patterns}Pattern.prototype.and=function(other){return new Pattern(this.patterns.concat(other))};Pattern.prototype.thenDo=function(selector){return new Plan(this,selector)};function Plan(expression,selector){this.expression=expression;this.selector=selector}function handleOnError(o){return function(e){o.onError(e)}}function handleOnNext(self,observer){return function onNext(){var result=tryCatch(self.selector).apply(self,arguments);if(result===errorObj){return observer.onError(result.e)}observer.onNext(result)}}Plan.prototype.activate=function(externalSubscriptions,observer,deactivate){var joinObservers=[],errHandler=handleOnError(observer);for(var i=0,len=this.expression.patterns.length;i<len;i++){joinObservers.push(planCreateObserver(externalSubscriptions,this.expression.patterns[i],errHandler))}var activePlan=new ActivePlan(joinObservers,handleOnNext(this,observer),function(){for(var j=0,jlen=joinObservers.length;j<jlen;j++){joinObservers[j].removeActivePlan(activePlan)}deactivate(activePlan)});for(i=0,len=joinObservers.length;i<len;i++){joinObservers[i].addActivePlan(activePlan)}return activePlan};function planCreateObserver(externalSubscriptions,observable,onError){var entry=externalSubscriptions.get(observable);if(!entry){var observer=new JoinObserver(observable,onError);externalSubscriptions.set(observable,observer);return observer}return entry}function ActivePlan(joinObserverArray,onNext,onCompleted){this.joinObserverArray=joinObserverArray;this.onNext=onNext;this.onCompleted=onCompleted;this.joinObservers=new Map;for(var i=0,len=this.joinObserverArray.length;i<len;i++){var joinObserver=this.joinObserverArray[i];this.joinObservers.set(joinObserver,joinObserver)}}ActivePlan.prototype.dequeue=function(){this.joinObservers.forEach(function(v){v.queue.shift()})};ActivePlan.prototype.match=function(){var i,len,hasValues=true;for(i=0,len=this.joinObserverArray.length;i<len;i++){if(this.joinObserverArray[i].queue.length===0){hasValues=false;break}}if(hasValues){var firstValues=[],isCompleted=false;for(i=0,len=this.joinObserverArray.length;i<len;i++){firstValues.push(this.joinObserverArray[i].queue[0]);this.joinObserverArray[i].queue[0].kind==="C"&&(isCompleted=true)}if(isCompleted){this.onCompleted()}else{this.dequeue();var values=[];for(i=0,len=firstValues.length;i<firstValues.length;i++){values.push(firstValues[i].value)}this.onNext.apply(this,values)}}};var JoinObserver=function(__super__){inherits(JoinObserver,__super__);function JoinObserver(source,onError){__super__.call(this);this.source=source;this.onError=onError;this.queue=[];this.activePlans=[];this.subscription=new SingleAssignmentDisposable;this.isDisposed=false}var JoinObserverPrototype=JoinObserver.prototype;JoinObserverPrototype.next=function(notification){if(!this.isDisposed){if(notification.kind==="E"){return this.onError(notification.error)}this.queue.push(notification);var activePlans=this.activePlans.slice(0);for(var i=0,len=activePlans.length;i<len;i++){activePlans[i].match()}}};JoinObserverPrototype.error=noop;JoinObserverPrototype.completed=noop;JoinObserverPrototype.addActivePlan=function(activePlan){this.activePlans.push(activePlan)};JoinObserverPrototype.subscribe=function(){this.subscription.setDisposable(this.source.materialize().subscribe(this))};JoinObserverPrototype.removeActivePlan=function(activePlan){this.activePlans.splice(this.activePlans.indexOf(activePlan),1);this.activePlans.length===0&&this.dispose()};JoinObserverPrototype.dispose=function(){__super__.prototype.dispose.call(this);if(!this.isDisposed){this.isDisposed=true;this.subscription.dispose()}};return JoinObserver}(AbstractObserver);observableProto.and=function(right){return new Pattern([this,right])};observableProto.thenDo=function(selector){return new Pattern([this]).thenDo(selector)};Observable.when=function(){var len=arguments.length,plans;if(Array.isArray(arguments[0])){plans=arguments[0]}else{plans=new Array(len);for(var i=0;i<len;i++){plans[i]=arguments[i]}}return new AnonymousObservable(function(o){var activePlans=[],externalSubscriptions=new Map;var outObserver=observerCreate(function(x){o.onNext(x)},function(err){externalSubscriptions.forEach(function(v){v.onError(err)});o.onError(err)},function(x){o.onCompleted()});try{for(var i=0,len=plans.length;i<len;i++){activePlans.push(plans[i].activate(externalSubscriptions,outObserver,function(activePlan){var idx=activePlans.indexOf(activePlan);activePlans.splice(idx,1);activePlans.length===0&&o.onCompleted()}))}}catch(e){observableThrow(e).subscribe(o)}var group=new CompositeDisposable;externalSubscriptions.forEach(function(joinObserver){joinObserver.subscribe();group.add(joinObserver)});return group})};var TimerObservable=function(__super__){inherits(TimerObservable,__super__);function TimerObservable(dt,s){this._dt=dt;this._s=s;__super__.call(this)}TimerObservable.prototype.subscribeCore=function(o){return this._s.scheduleFuture(o,this._dt,scheduleMethod)};function scheduleMethod(s,o){o.onNext(0);o.onCompleted()}return TimerObservable}(ObservableBase);function _observableTimer(dueTime,scheduler){return new TimerObservable(dueTime,scheduler)}function observableTimerDateAndPeriod(dueTime,period,scheduler){return new AnonymousObservable(function(observer){var d=dueTime,p=normalizeTime(period);return scheduler.scheduleRecursiveFuture(0,d,function(count,self){if(p>0){var now=scheduler.now();d=new Date(d.getTime()+p);d.getTime()<=now&&(d=new Date(now+p))}observer.onNext(count);self(count+1,new Date(d)); | |
})})}function observableTimerTimeSpanAndPeriod(dueTime,period,scheduler){return dueTime===period?new AnonymousObservable(function(observer){return scheduler.schedulePeriodic(0,period,function(count){observer.onNext(count);return count+1})}):observableDefer(function(){return observableTimerDateAndPeriod(new Date(scheduler.now()+dueTime),period,scheduler)})}var observableinterval=Observable.interval=function(period,scheduler){return observableTimerTimeSpanAndPeriod(period,period,isScheduler(scheduler)?scheduler:defaultScheduler)};var observableTimer=Observable.timer=function(dueTime,periodOrScheduler,scheduler){var period;isScheduler(scheduler)||(scheduler=defaultScheduler);if(periodOrScheduler!=null&&typeof periodOrScheduler==="number"){period=periodOrScheduler}else if(isScheduler(periodOrScheduler)){scheduler=periodOrScheduler}if((dueTime instanceof Date||typeof dueTime==="number")&&period===undefined){return _observableTimer(dueTime,scheduler)}if(dueTime instanceof Date&&period!==undefined){return observableTimerDateAndPeriod(dueTime.getTime(),periodOrScheduler,scheduler)}return observableTimerTimeSpanAndPeriod(dueTime,period,scheduler)};function observableDelayRelative(source,dueTime,scheduler){return new AnonymousObservable(function(o){var active=false,cancelable=new SerialDisposable,exception=null,q=[],running=false,subscription;subscription=source.materialize().timestamp(scheduler).subscribe(function(notification){var d,shouldRun;if(notification.value.kind==="E"){q=[];q.push(notification);exception=notification.value.error;shouldRun=!running}else{q.push({value:notification.value,timestamp:notification.timestamp+dueTime});shouldRun=!active;active=true}if(shouldRun){if(exception!==null){o.onError(exception)}else{d=new SingleAssignmentDisposable;cancelable.setDisposable(d);d.setDisposable(scheduler.scheduleRecursiveFuture(null,dueTime,function(_,self){var e,recurseDueTime,result,shouldRecurse;if(exception!==null){return}running=true;do{result=null;if(q.length>0&&q[0].timestamp-scheduler.now()<=0){result=q.shift().value}if(result!==null){result.accept(o)}}while(result!==null);shouldRecurse=false;recurseDueTime=0;if(q.length>0){shouldRecurse=true;recurseDueTime=Math.max(0,q[0].timestamp-scheduler.now())}else{active=false}e=exception;running=false;if(e!==null){o.onError(e)}else if(shouldRecurse){self(null,recurseDueTime)}}))}}});return new BinaryDisposable(subscription,cancelable)},source)}function observableDelayAbsolute(source,dueTime,scheduler){return observableDefer(function(){return observableDelayRelative(source,dueTime-scheduler.now(),scheduler)})}function delayWithSelector(source,subscriptionDelay,delayDurationSelector){var subDelay,selector;if(isFunction(subscriptionDelay)){selector=subscriptionDelay}else{subDelay=subscriptionDelay;selector=delayDurationSelector}return new AnonymousObservable(function(o){var delays=new CompositeDisposable,atEnd=false,subscription=new SerialDisposable;function start(){subscription.setDisposable(source.subscribe(function(x){var delay=tryCatch(selector)(x);if(delay===errorObj){return o.onError(delay.e)}var d=new SingleAssignmentDisposable;delays.add(d);d.setDisposable(delay.subscribe(function(){o.onNext(x);delays.remove(d);done()},function(e){o.onError(e)},function(){o.onNext(x);delays.remove(d);done()}))},function(e){o.onError(e)},function(){atEnd=true;subscription.dispose();done()}))}function done(){atEnd&&delays.length===0&&o.onCompleted()}if(!subDelay){start()}else{subscription.setDisposable(subDelay.subscribe(start,function(e){o.onError(e)},start))}return new BinaryDisposable(subscription,delays)},this)}observableProto.delay=function(){var firstArg=arguments[0];if(typeof firstArg==="number"||firstArg instanceof Date){var dueTime=firstArg,scheduler=arguments[1];isScheduler(scheduler)||(scheduler=defaultScheduler);return dueTime instanceof Date?observableDelayAbsolute(this,dueTime,scheduler):observableDelayRelative(this,dueTime,scheduler)}else if(Observable.isObservable(firstArg)||isFunction(firstArg)){return delayWithSelector(this,firstArg,arguments[1])}else{throw new Error("Invalid arguments")}};var DebounceObservable=function(__super__){inherits(DebounceObservable,__super__);function DebounceObservable(source,dt,s){isScheduler(s)||(s=defaultScheduler);this.source=source;this._dt=dt;this._s=s;__super__.call(this)}DebounceObservable.prototype.subscribeCore=function(o){var cancelable=new SerialDisposable;return new BinaryDisposable(this.source.subscribe(new DebounceObserver(o,this.source,this._dt,this._s,cancelable)),cancelable)};return DebounceObservable}(ObservableBase);var DebounceObserver=function(__super__){inherits(DebounceObserver,__super__);function DebounceObserver(observer,source,dueTime,scheduler,cancelable){this._o=observer;this._s=source;this._d=dueTime;this._scheduler=scheduler;this._c=cancelable;this._v=null;this._hv=false;this._id=0;__super__.call(this)}DebounceObserver.prototype.next=function(x){this._hv=true;this._v=x;var currentId=++this._id,d=new SingleAssignmentDisposable;this._c.setDisposable(d);d.setDisposable(this._scheduler.scheduleFuture(this,this._d,function(_,self){self._hv&&self._id===currentId&&self._o.onNext(x);self._hv=false}))};DebounceObserver.prototype.error=function(e){this._c.dispose();this._o.onError(e);this._hv=false;this._id++};DebounceObserver.prototype.completed=function(){this._c.dispose();this._hv&&this._o.onNext(this._v);this._o.onCompleted();this._hv=false;this._id++};return DebounceObserver}(AbstractObserver);function debounceWithSelector(source,durationSelector){return new AnonymousObservable(function(o){var value,hasValue=false,cancelable=new SerialDisposable,id=0;var subscription=source.subscribe(function(x){var throttle=tryCatch(durationSelector)(x);if(throttle===errorObj){return o.onError(throttle.e)}isPromise(throttle)&&(throttle=observableFromPromise(throttle));hasValue=true;value=x;id++;var currentid=id,d=new SingleAssignmentDisposable;cancelable.setDisposable(d);d.setDisposable(throttle.subscribe(function(){hasValue&&id===currentid&&o.onNext(value);hasValue=false;d.dispose()},function(e){o.onError(e)},function(){hasValue&&id===currentid&&o.onNext(value);hasValue=false;d.dispose()}))},function(e){cancelable.dispose();o.onError(e);hasValue=false;id++},function(){cancelable.dispose();hasValue&&o.onNext(value);o.onCompleted();hasValue=false;id++});return new BinaryDisposable(subscription,cancelable)},source)}observableProto.debounce=function(){if(isFunction(arguments[0])){return debounceWithSelector(this,arguments[0])}else if(typeof arguments[0]==="number"){return new DebounceObservable(this,arguments[0],arguments[1])}else{throw new Error("Invalid arguments")}};observableProto.windowWithTime=function(timeSpan,timeShiftOrScheduler,scheduler){var source=this,timeShift;timeShiftOrScheduler==null&&(timeShift=timeSpan);isScheduler(scheduler)||(scheduler=defaultScheduler);if(typeof timeShiftOrScheduler==="number"){timeShift=timeShiftOrScheduler}else if(isScheduler(timeShiftOrScheduler)){timeShift=timeSpan;scheduler=timeShiftOrScheduler}return new AnonymousObservable(function(observer){var groupDisposable,nextShift=timeShift,nextSpan=timeSpan,q=[],refCountDisposable,timerD=new SerialDisposable,totalTime=0;groupDisposable=new CompositeDisposable(timerD),refCountDisposable=new RefCountDisposable(groupDisposable);function createTimer(){var m=new SingleAssignmentDisposable,isSpan=false,isShift=false;timerD.setDisposable(m);if(nextSpan===nextShift){isSpan=true;isShift=true}else if(nextSpan<nextShift){isSpan=true}else{isShift=true}var newTotalTime=isSpan?nextSpan:nextShift,ts=newTotalTime-totalTime;totalTime=newTotalTime;if(isSpan){nextSpan+=timeShift}if(isShift){nextShift+=timeShift}m.setDisposable(scheduler.scheduleFuture(null,ts,function(){if(isShift){var s=new Subject;q.push(s);observer.onNext(addRef(s,refCountDisposable))}isSpan&&q.shift().onCompleted();createTimer()}))}q.push(new Subject);observer.onNext(addRef(q[0],refCountDisposable));createTimer();groupDisposable.add(source.subscribe(function(x){for(var i=0,len=q.length;i<len;i++){q[i].onNext(x)}},function(e){for(var i=0,len=q.length;i<len;i++){q[i].onError(e)}observer.onError(e)},function(){for(var i=0,len=q.length;i<len;i++){q[i].onCompleted()}observer.onCompleted()}));return refCountDisposable},source)};observableProto.windowWithTimeOrCount=function(timeSpan,count,scheduler){var source=this;isScheduler(scheduler)||(scheduler=defaultScheduler);return new AnonymousObservable(function(observer){var timerD=new SerialDisposable,groupDisposable=new CompositeDisposable(timerD),refCountDisposable=new RefCountDisposable(groupDisposable),n=0,windowId=0,s=new Subject;function createTimer(id){var m=new SingleAssignmentDisposable;timerD.setDisposable(m);m.setDisposable(scheduler.scheduleFuture(null,timeSpan,function(){if(id!==windowId){return}n=0;var newId=++windowId;s.onCompleted();s=new Subject;observer.onNext(addRef(s,refCountDisposable));createTimer(newId)}))}observer.onNext(addRef(s,refCountDisposable));createTimer(0);groupDisposable.add(source.subscribe(function(x){var newId=0,newWindow=false;s.onNext(x);if(++n===count){newWindow=true;n=0;newId=++windowId;s.onCompleted();s=new Subject;observer.onNext(addRef(s,refCountDisposable))}newWindow&&createTimer(newId)},function(e){s.onError(e);observer.onError(e)},function(){s.onCompleted();observer.onCompleted()}));return refCountDisposable},source)};function toArray(x){return x.toArray()}observableProto.bufferWithTime=function(timeSpan,timeShiftOrScheduler,scheduler){return this.windowWithTime(timeSpan,timeShiftOrScheduler,scheduler).flatMap(toArray)};function toArray(x){return x.toArray()}observableProto.bufferWithTimeOrCount=function(timeSpan,count,scheduler){return this.windowWithTimeOrCount(timeSpan,count,scheduler).flatMap(toArray)};var TimeIntervalObservable=function(__super__){inherits(TimeIntervalObservable,__super__);function TimeIntervalObservable(source,s){this.source=source;this._s=s;__super__.call(this)}TimeIntervalObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new TimeIntervalObserver(o,this._s))};return TimeIntervalObservable}(ObservableBase);var TimeIntervalObserver=function(__super__){inherits(TimeIntervalObserver,__super__);function TimeIntervalObserver(o,s){this._o=o;this._s=s;this._l=s.now();__super__.call(this)}TimeIntervalObserver.prototype.next=function(x){var now=this._s.now(),span=now-this._l;this._l=now;this._o.onNext({value:x,interval:span})};TimeIntervalObserver.prototype.error=function(e){this._o.onError(e)};TimeIntervalObserver.prototype.completed=function(){this._o.onCompleted()};return TimeIntervalObserver}(AbstractObserver);observableProto.timeInterval=function(scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new TimeIntervalObservable(this,scheduler)};var TimestampObservable=function(__super__){inherits(TimestampObservable,__super__);function TimestampObservable(source,s){this.source=source;this._s=s;__super__.call(this)}TimestampObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new TimestampObserver(o,this._s))};return TimestampObservable}(ObservableBase);var TimestampObserver=function(__super__){inherits(TimestampObserver,__super__);function TimestampObserver(o,s){this._o=o;this._s=s;__super__.call(this)}TimestampObserver.prototype.next=function(x){this._o.onNext({value:x,timestamp:this._s.now()})};TimestampObserver.prototype.error=function(e){this._o.onError(e)};TimestampObserver.prototype.completed=function(){this._o.onCompleted()};return TimestampObserver}(AbstractObserver);observableProto.timestamp=function(scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new TimestampObservable(this,scheduler)};function sampleObservable(source,sampler){return new AnonymousObservable(function(o){var atEnd=false,value,hasValue=false;function sampleSubscribe(){if(hasValue){hasValue=false;o.onNext(value)}atEnd&&o.onCompleted()}var sourceSubscription=new SingleAssignmentDisposable;sourceSubscription.setDisposable(source.subscribe(function(newValue){hasValue=true;value=newValue},function(e){o.onError(e)},function(){atEnd=true;sourceSubscription.dispose()}));return new BinaryDisposable(sourceSubscription,sampler.subscribe(sampleSubscribe,function(e){o.onError(e)},sampleSubscribe))},source)}observableProto.sample=observableProto.throttleLatest=function(intervalOrSampler,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return typeof intervalOrSampler==="number"?sampleObservable(this,observableinterval(intervalOrSampler,scheduler)):sampleObservable(this,intervalOrSampler)};var TimeoutError=Rx.TimeoutError=function(message){this.message=message||"Timeout has occurred";this.name="TimeoutError";Error.call(this)};TimeoutError.prototype=Object.create(Error.prototype);function timeoutWithSelector(source,firstTimeout,timeoutDurationSelector,other){if(isFunction(firstTimeout)){other=timeoutDurationSelector;timeoutDurationSelector=firstTimeout;firstTimeout=observableNever()}Observable.isObservable(other)||(other=observableThrow(new TimeoutError));return new AnonymousObservable(function(o){var subscription=new SerialDisposable,timer=new SerialDisposable,original=new SingleAssignmentDisposable;subscription.setDisposable(original);var id=0,switched=false;function setTimer(timeout){var myId=id,d=new SingleAssignmentDisposable;function timerWins(){switched=myId===id;return switched}timer.setDisposable(d);d.setDisposable(timeout.subscribe(function(){timerWins()&&subscription.setDisposable(other.subscribe(o));d.dispose()},function(e){timerWins()&&o.onError(e)},function(){timerWins()&&subscription.setDisposable(other.subscribe(o))}))}setTimer(firstTimeout);function oWins(){var res=!switched;if(res){id++}return res}original.setDisposable(source.subscribe(function(x){if(oWins()){o.onNext(x);var timeout=tryCatch(timeoutDurationSelector)(x);if(timeout===errorObj){return o.onError(timeout.e)}setTimer(isPromise(timeout)?observableFromPromise(timeout):timeout)}},function(e){oWins()&&o.onError(e)},function(){oWins()&&o.onCompleted()}));return new BinaryDisposable(subscription,timer)},source)}function timeout(source,dueTime,other,scheduler){if(isScheduler(other)){scheduler=other;other=observableThrow(new TimeoutError)}if(other instanceof Error){other=observableThrow(other)}isScheduler(scheduler)||(scheduler=defaultScheduler);Observable.isObservable(other)||(other=observableThrow(new TimeoutError));return new AnonymousObservable(function(o){var id=0,original=new SingleAssignmentDisposable,subscription=new SerialDisposable,switched=false,timer=new SerialDisposable;subscription.setDisposable(original);function createTimer(){var myId=id;timer.setDisposable(scheduler.scheduleFuture(null,dueTime,function(){switched=id===myId;if(switched){isPromise(other)&&(other=observableFromPromise(other));subscription.setDisposable(other.subscribe(o))}}))}createTimer();original.setDisposable(source.subscribe(function(x){if(!switched){id++;o.onNext(x);createTimer()}},function(e){if(!switched){id++;o.onError(e)}},function(){if(!switched){id++;o.onCompleted()}}));return new BinaryDisposable(subscription,timer)},source)}observableProto.timeout=function(){var firstArg=arguments[0];if(firstArg instanceof Date||typeof firstArg==="number"){return timeout(this,firstArg,arguments[1],arguments[2])}else if(Observable.isObservable(firstArg)||isFunction(firstArg)){return timeoutWithSelector(this,firstArg,arguments[1],arguments[2])}else{throw new Error("Invalid arguments")}};var GenerateAbsoluteObservable=function(__super__){inherits(GenerateAbsoluteObservable,__super__);function GenerateAbsoluteObservable(state,cndFn,itrFn,resFn,timeFn,s){this._state=state;this._cndFn=cndFn;this._itrFn=itrFn;this._resFn=resFn;this._timeFn=timeFn;this._s=s;this._first=true;this._hasResult=false;__super__.call(this)}function scheduleRecursive(self,recurse){self._hasResult&&self._o.onNext(self._state);if(self._first){self._first=false}else{self._state=tryCatch(self._itrFn)(self._state);if(self._state===errorObj){return self._o.onError(self._state.e)}}self._hasResult=tryCatch(self._cndFn)(self._state);if(self._hasResult===errorObj){return self._o.onError(self._hasResult.e)}if(self._hasResult){var result=tryCatch(self._resFn)(self._state);if(result===errorObj){return self._o.onError(result.e)}var time=tryCatch(self._timeFn)(self._state);if(time===errorObj){return self._o.onError(time.e)}recurse(self,time)}else{self._o.onCompleted()}}GenerateAbsoluteObservable.prototype.subscribeCore=function(o){this._o=o;return this._s.scheduleRecursiveFuture(this,new Date(this._s.now()),scheduleRecursive)};return GenerateAbsoluteObservable}(ObservableBase);Observable.generateWithAbsoluteTime=function(initialState,condition,iterate,resultSelector,timeSelector,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new GenerateAbsoluteObservable(initialState,condition,iterate,resultSelector,timeSelector,scheduler)};var GenerateRelativeObservable=function(__super__){inherits(GenerateRelativeObservable,__super__);function GenerateRelativeObservable(state,cndFn,itrFn,resFn,timeFn,s){this._state=state;this._cndFn=cndFn;this._itrFn=itrFn;this._resFn=resFn;this._timeFn=timeFn;this._s=s;this._first=true;this._hasResult=false;__super__.call(this)}function scheduleRecursive(self,recurse){self._hasResult&&self._o.onNext(self._state);if(self._first){self._first=false}else{self._state=tryCatch(self._itrFn)(self._state);if(self._state===errorObj){return self._o.onError(self._state.e)}}self._hasResult=tryCatch(self._cndFn)(self._state);if(self._hasResult===errorObj){return self._o.onError(self._hasResult.e)}if(self._hasResult){var result=tryCatch(self._resFn)(self._state);if(result===errorObj){return self._o.onError(result.e)}var time=tryCatch(self._timeFn)(self._state);if(time===errorObj){return self._o.onError(time.e)}recurse(self,time)}else{self._o.onCompleted()}}GenerateRelativeObservable.prototype.subscribeCore=function(o){this._o=o;return this._s.scheduleRecursiveFuture(this,0,scheduleRecursive)};return GenerateRelativeObservable}(ObservableBase);Observable.generateWithRelativeTime=function(initialState,condition,iterate,resultSelector,timeSelector,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new GenerateRelativeObservable(initialState,condition,iterate,resultSelector,timeSelector,scheduler)};var DelaySubscription=function(__super__){inherits(DelaySubscription,__super__);function DelaySubscription(source,dt,s){this.source=source;this._dt=dt;this._s=s;__super__.call(this)}DelaySubscription.prototype.subscribeCore=function(o){var d=new SerialDisposable;d.setDisposable(this._s.scheduleFuture([this.source,o,d],this._dt,scheduleMethod));return d};function scheduleMethod(s,state){var source=state[0],o=state[1],d=state[2];d.setDisposable(source.subscribe(o))}return DelaySubscription}(ObservableBase);observableProto.delaySubscription=function(dueTime,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new DelaySubscription(this,dueTime,scheduler)};var SkipLastWithTimeObservable=function(__super__){inherits(SkipLastWithTimeObservable,__super__);function SkipLastWithTimeObservable(source,d,s){this.source=source;this._d=d;this._s=s;__super__.call(this)}SkipLastWithTimeObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new SkipLastWithTimeObserver(o,this))};return SkipLastWithTimeObservable}(ObservableBase);var SkipLastWithTimeObserver=function(__super__){inherits(SkipLastWithTimeObserver,__super__);function SkipLastWithTimeObserver(o,p){this._o=o;this._s=p._s;this._d=p._d;this._q=[];__super__.call(this)}SkipLastWithTimeObserver.prototype.next=function(x){var now=this._s.now();this._q.push({interval:now,value:x});while(this._q.length>0&&now-this._q[0].interval>=this._d){this._o.onNext(this._q.shift().value)}};SkipLastWithTimeObserver.prototype.error=function(e){this._o.onError(e)};SkipLastWithTimeObserver.prototype.completed=function(){var now=this._s.now();while(this._q.length>0&&now-this._q[0].interval>=this._d){this._o.onNext(this._q.shift().value)}this._o.onCompleted()};return SkipLastWithTimeObserver}(AbstractObserver);observableProto.skipLastWithTime=function(duration,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new SkipLastWithTimeObservable(this,duration,scheduler)};var TakeLastWithTimeObservable=function(__super__){inherits(TakeLastWithTimeObservable,__super__);function TakeLastWithTimeObservable(source,d,s){this.source=source;this._d=d;this._s=s;__super__.call(this)}TakeLastWithTimeObservable.prototype.subscribeCore=function(o){return this.source.subscribe(new TakeLastWithTimeObserver(o,this._d,this._s))};return TakeLastWithTimeObservable}(ObservableBase);var TakeLastWithTimeObserver=function(__super__){inherits(TakeLastWithTimeObserver,__super__);function TakeLastWithTimeObserver(o,d,s){this._o=o;this._d=d;this._s=s;this._q=[];__super__.call(this)}TakeLastWithTimeObserver.prototype.next=function(x){var now=this._s.now();this._q.push({interval:now,value:x});while(this._q.length>0&&now-this._q[0].interval>=this._d){this._q.shift()}};TakeLastWithTimeObserver.prototype.error=function(e){this._o.onError(e)};TakeLastWithTimeObserver.prototype.completed=function(){var now=this._s.now();while(this._q.length>0){var next=this._q.shift();if(now-next.interval<=this._d){this._o.onNext(next.value)}}this._o.onCompleted()};return TakeLastWithTimeObserver}(AbstractObserver);observableProto.takeLastWithTime=function(duration,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new TakeLastWithTimeObservable(this,duration,scheduler)};observableProto.takeLastBufferWithTime=function(duration,scheduler){var source=this;isScheduler(scheduler)||(scheduler=defaultScheduler);return new AnonymousObservable(function(o){var q=[];return source.subscribe(function(x){var now=scheduler.now();q.push({interval:now,value:x});while(q.length>0&&now-q[0].interval>=duration){q.shift()}},function(e){o.onError(e)},function(){var now=scheduler.now(),res=[];while(q.length>0){var next=q.shift();now-next.interval<=duration&&res.push(next.value)}o.onNext(res);o.onCompleted()})},source)};var TakeWithTimeObservable=function(__super__){inherits(TakeWithTimeObservable,__super__);function TakeWithTimeObservable(source,d,s){this.source=source;this._d=d;this._s=s;__super__.call(this)}function scheduleMethod(s,o){o.onCompleted()}TakeWithTimeObservable.prototype.subscribeCore=function(o){return new BinaryDisposable(this._s.scheduleFuture(o,this._d,scheduleMethod),this.source.subscribe(o))};return TakeWithTimeObservable}(ObservableBase);observableProto.takeWithTime=function(duration,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new TakeWithTimeObservable(this,duration,scheduler)};var SkipWithTimeObservable=function(__super__){inherits(SkipWithTimeObservable,__super__);function SkipWithTimeObservable(source,d,s){this.source=source;this._d=d;this._s=s;this._open=false;__super__.call(this)}function scheduleMethod(s,self){self._open=true}SkipWithTimeObservable.prototype.subscribeCore=function(o){return new BinaryDisposable(this._s.scheduleFuture(this,this._d,scheduleMethod),this.source.subscribe(new SkipWithTimeObserver(o,this)))};return SkipWithTimeObservable}(ObservableBase);var SkipWithTimeObserver=function(__super__){inherits(SkipWithTimeObserver,__super__);function SkipWithTimeObserver(o,p){this._o=o;this._p=p;__super__.call(this)}SkipWithTimeObserver.prototype.next=function(x){this._p._open&&this._o.onNext(x)};SkipWithTimeObserver.prototype.error=function(e){this._o.onError(e)};SkipWithTimeObserver.prototype.completed=function(){this._o.onCompleted()};return SkipWithTimeObserver}(AbstractObserver);observableProto.skipWithTime=function(duration,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new SkipWithTimeObservable(this,duration,scheduler)};var SkipUntilWithTimeObservable=function(__super__){inherits(SkipUntilWithTimeObservable,__super__);function SkipUntilWithTimeObservable(source,startTime,scheduler){this.source=source;this._st=startTime;this._s=scheduler;__super__.call(this)}function scheduleMethod(s,state){state._open=true}SkipUntilWithTimeObservable.prototype.subscribeCore=function(o){this._open=false;return new BinaryDisposable(this._s.scheduleFuture(this,this._st,scheduleMethod),this.source.subscribe(new SkipUntilWithTimeObserver(o,this)))};return SkipUntilWithTimeObservable}(ObservableBase);var SkipUntilWithTimeObserver=function(__super__){inherits(SkipUntilWithTimeObserver,__super__);function SkipUntilWithTimeObserver(o,p){this._o=o;this._p=p;__super__.call(this)}SkipUntilWithTimeObserver.prototype.next=function(x){this._p._open&&this._o.onNext(x)};SkipUntilWithTimeObserver.prototype.error=function(e){this._o.onError(e)};SkipUntilWithTimeObserver.prototype.completed=function(){this._o.onCompleted()};return SkipUntilWithTimeObserver}(AbstractObserver);observableProto.skipUntilWithTime=function(startTime,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);return new SkipUntilWithTimeObservable(this,startTime,scheduler)};observableProto.takeUntilWithTime=function(endTime,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);var source=this;return new AnonymousObservable(function(o){return new BinaryDisposable(scheduler.scheduleFuture(o,endTime,function(_,o){o.onCompleted()}),source.subscribe(o))},source)};observableProto.throttle=function(windowDuration,scheduler){isScheduler(scheduler)||(scheduler=defaultScheduler);var duration=+windowDuration||0;if(duration<=0){throw new RangeError("windowDuration cannot be less or equal zero.")}var source=this;return new AnonymousObservable(function(o){var lastOnNext=0;return source.subscribe(function(x){var now=scheduler.now();if(lastOnNext===0||now-lastOnNext>=duration){lastOnNext=now;o.onNext(x)}},function(e){o.onError(e)},function(){o.onCompleted()})},source)};var TransduceObserver=function(__super__){inherits(TransduceObserver,__super__);function TransduceObserver(o,xform){this._o=o;this._xform=xform;__super__.call(this)}TransduceObserver.prototype.next=function(x){var res=tryCatch(this._xform["@@transducer/step"]).call(this._xform,this._o,x);if(res===errorObj){this._o.onError(res.e)}};TransduceObserver.prototype.error=function(e){this._o.onError(e)};TransduceObserver.prototype.completed=function(){this._xform["@@transducer/result"](this._o)};return TransduceObserver}(AbstractObserver);function transformForObserver(o){return{"@@transducer/init":function(){return o},"@@transducer/step":function(obs,input){return obs.onNext(input)},"@@transducer/result":function(obs){return obs.onCompleted()}}}observableProto.transduce=function(transducer){var source=this;return new AnonymousObservable(function(o){var xform=transducer(transformForObserver(o));return source.subscribe(new TransduceObserver(o,xform))},source)};var SwitchFirstObservable=function(__super__){inherits(SwitchFirstObservable,__super__);function SwitchFirstObservable(source){this.source=source;__super__.call(this)}SwitchFirstObservable.prototype.subscribeCore=function(o){var m=new SingleAssignmentDisposable,g=new CompositeDisposable,state={hasCurrent:false,isStopped:false,o:o,g:g};g.add(m);m.setDisposable(this.source.subscribe(new SwitchFirstObserver(state)));return g};return SwitchFirstObservable}(ObservableBase);var SwitchFirstObserver=function(__super__){inherits(SwitchFirstObserver,__super__);function SwitchFirstObserver(state){this._s=state;__super__.call(this)}SwitchFirstObserver.prototype.next=function(x){if(!this._s.hasCurrent){this._s.hasCurrent=true;isPromise(x)&&(x=observableFromPromise(x));var inner=new SingleAssignmentDisposable;this._s.g.add(inner);inner.setDisposable(x.subscribe(new InnerObserver(this._s,inner)))}};SwitchFirstObserver.prototype.error=function(e){this._s.o.onError(e)};SwitchFirstObserver.prototype.completed=function(){this._s.isStopped=true;!this._s.hasCurrent&&this._s.g.length===1&&this._s.o.onCompleted()};inherits(InnerObserver,__super__);function InnerObserver(state,inner){this._s=state;this._i=inner;__super__.call(this)}InnerObserver.prototype.next=function(x){this._s.o.onNext(x)};InnerObserver.prototype.error=function(e){this._s.o.onError(e)};InnerObserver.prototype.completed=function(){this._s.g.remove(this._i);this._s.hasCurrent=false;this._s.isStopped&&this._s.g.length===1&&this._s.o.onCompleted()};return SwitchFirstObserver}(AbstractObserver);observableProto.switchFirst=function(){return new SwitchFirstObservable(this)};observableProto.flatMapFirst=observableProto.selectManyFirst=function(selector,resultSelector,thisArg){return new FlatMapObservable(this,selector,resultSelector,thisArg).switchFirst()};Rx.Observable.prototype.flatMapWithMaxConcurrent=function(limit,selector,resultSelector,thisArg){return new FlatMapObservable(this,selector,resultSelector,thisArg).merge(limit)};var VirtualTimeScheduler=Rx.VirtualTimeScheduler=function(__super__){inherits(VirtualTimeScheduler,__super__);function VirtualTimeScheduler(initialClock,comparer){this.clock=initialClock;this.comparer=comparer;this.isEnabled=false;this.queue=new PriorityQueue(1024);__super__.call(this)}var VirtualTimeSchedulerPrototype=VirtualTimeScheduler.prototype;VirtualTimeSchedulerPrototype.now=function(){return this.toAbsoluteTime(this.clock)};VirtualTimeSchedulerPrototype.schedule=function(state,action){return this.scheduleAbsolute(state,this.clock,action)};VirtualTimeSchedulerPrototype.scheduleFuture=function(state,dueTime,action){var dt=dueTime instanceof Date?this.toRelativeTime(dueTime-this.now()):this.toRelativeTime(dueTime);return this.scheduleRelative(state,dt,action)};VirtualTimeSchedulerPrototype.add=notImplemented;VirtualTimeSchedulerPrototype.toAbsoluteTime=notImplemented;VirtualTimeSchedulerPrototype.toRelativeTime=notImplemented;VirtualTimeSchedulerPrototype.schedulePeriodic=function(state,period,action){var s=new SchedulePeriodicRecursive(this,state,period,action);return s.start()};VirtualTimeSchedulerPrototype.scheduleRelative=function(state,dueTime,action){var runAt=this.add(this.clock,dueTime);return this.scheduleAbsolute(state,runAt,action)};VirtualTimeSchedulerPrototype.start=function(){if(!this.isEnabled){this.isEnabled=true;do{var next=this.getNext();if(next!==null){this.comparer(next.dueTime,this.clock)>0&&(this.clock=next.dueTime);next.invoke()}else{this.isEnabled=false}}while(this.isEnabled)}};VirtualTimeSchedulerPrototype.stop=function(){this.isEnabled=false};VirtualTimeSchedulerPrototype.advanceTo=function(time){var dueToClock=this.comparer(this.clock,time);if(this.comparer(this.clock,time)>0){throw new ArgumentOutOfRangeError}if(dueToClock===0){return}if(!this.isEnabled){this.isEnabled=true;do{var next=this.getNext();if(next!==null&&this.comparer(next.dueTime,time)<=0){this.comparer(next.dueTime,this.clock)>0&&(this.clock=next.dueTime);next.invoke()}else{this.isEnabled=false}}while(this.isEnabled);this.clock=time}};VirtualTimeSchedulerPrototype.advanceBy=function(time){var dt=this.add(this.clock,time),dueToClock=this.comparer(this.clock,dt);if(dueToClock>0){throw new ArgumentOutOfRangeError}if(dueToClock===0){return}this.advanceTo(dt)};VirtualTimeSchedulerPrototype.sleep=function(time){var dt=this.add(this.clock,time);if(this.comparer(this.clock,dt)>=0){throw new ArgumentOutOfRangeError}this.clock=dt};VirtualTimeSchedulerPrototype.getNext=function(){while(this.queue.length>0){var next=this.queue.peek();if(next.isCancelled()){this.queue.dequeue()}else{return next}}return null};VirtualTimeSchedulerPrototype.scheduleAbsolute=function(state,dueTime,action){var self=this;function run(scheduler,state1){self.queue.remove(si);return action(scheduler,state1)}var si=new ScheduledItem(this,state,run,dueTime,this.comparer);this.queue.enqueue(si);return si.disposable};return VirtualTimeScheduler}(Scheduler);Rx.HistoricalScheduler=function(__super__){inherits(HistoricalScheduler,__super__);function HistoricalScheduler(initialClock,comparer){ | |
var clock=initialClock==null?0:initialClock;var cmp=comparer||defaultSubComparer;__super__.call(this,clock,cmp)}var HistoricalSchedulerProto=HistoricalScheduler.prototype;HistoricalSchedulerProto.add=function(absolute,relative){return absolute+relative};HistoricalSchedulerProto.toAbsoluteTime=function(absolute){return new Date(absolute).getTime()};HistoricalSchedulerProto.toRelativeTime=function(timeSpan){return timeSpan};return HistoricalScheduler}(Rx.VirtualTimeScheduler);function OnNextPredicate(predicate){this.predicate=predicate}OnNextPredicate.prototype.equals=function(other){if(other===this){return true}if(other==null){return false}if(other.kind!=="N"){return false}return this.predicate(other.value)};function OnErrorPredicate(predicate){this.predicate=predicate}OnErrorPredicate.prototype.equals=function(other){if(other===this){return true}if(other==null){return false}if(other.kind!=="E"){return false}return this.predicate(other.error)};var ReactiveTest=Rx.ReactiveTest={created:100,subscribed:200,disposed:1e3,onNext:function(ticks,value){return typeof value==="function"?new Recorded(ticks,new OnNextPredicate(value)):new Recorded(ticks,Notification.createOnNext(value))},onError:function(ticks,error){return typeof error==="function"?new Recorded(ticks,new OnErrorPredicate(error)):new Recorded(ticks,Notification.createOnError(error))},onCompleted:function(ticks){return new Recorded(ticks,Notification.createOnCompleted())},subscribe:function(start,end){return new Subscription(start,end)}};var Recorded=Rx.Recorded=function(time,value,comparer){this.time=time;this.value=value;this.comparer=comparer||defaultComparer};Recorded.prototype.equals=function(other){return this.time===other.time&&this.comparer(this.value,other.value)};Recorded.prototype.toString=function(){return this.value.toString()+"@"+this.time};var Subscription=Rx.Subscription=function(start,end){this.subscribe=start;this.unsubscribe=end||Number.MAX_VALUE};Subscription.prototype.equals=function(other){return this.subscribe===other.subscribe&&this.unsubscribe===other.unsubscribe};Subscription.prototype.toString=function(){return"("+this.subscribe+", "+(this.unsubscribe===Number.MAX_VALUE?"Infinite":this.unsubscribe)+")"};var MockDisposable=Rx.MockDisposable=function(scheduler){this.scheduler=scheduler;this.disposes=[];this.disposes.push(this.scheduler.clock)};MockDisposable.prototype.dispose=function(){this.disposes.push(this.scheduler.clock)};var MockObserver=function(__super__){inherits(MockObserver,__super__);function MockObserver(scheduler){__super__.call(this);this.scheduler=scheduler;this.messages=[]}var MockObserverPrototype=MockObserver.prototype;MockObserverPrototype.onNext=function(value){this.messages.push(new Recorded(this.scheduler.clock,Notification.createOnNext(value)))};MockObserverPrototype.onError=function(e){this.messages.push(new Recorded(this.scheduler.clock,Notification.createOnError(e)))};MockObserverPrototype.onCompleted=function(){this.messages.push(new Recorded(this.scheduler.clock,Notification.createOnCompleted()))};return MockObserver}(Observer);function MockPromise(scheduler,messages){var self=this;this.scheduler=scheduler;this.messages=messages;this.subscriptions=[];this.observers=[];for(var i=0,len=this.messages.length;i<len;i++){var message=this.messages[i],notification=message.value;(function(innerNotification){scheduler.scheduleAbsolute(null,message.time,function(){var obs=self.observers.slice(0);for(var j=0,jLen=obs.length;j<jLen;j++){innerNotification.accept(obs[j])}return disposableEmpty})})(notification)}}MockPromise.prototype.then=function(onResolved,onRejected){var self=this;this.subscriptions.push(new Subscription(this.scheduler.clock));var index=this.subscriptions.length-1;var newPromise;var observer=Rx.Observer.create(function(x){var retValue=onResolved(x);if(retValue&&typeof retValue.then==="function"){newPromise=retValue}else{var ticks=self.scheduler.clock;newPromise=new MockPromise(self.scheduler,[Rx.ReactiveTest.onNext(ticks,undefined),Rx.ReactiveTest.onCompleted(ticks)])}var idx=self.observers.indexOf(observer);self.observers.splice(idx,1);self.subscriptions[index]=new Subscription(self.subscriptions[index].subscribe,self.scheduler.clock)},function(err){onRejected(err);var idx=self.observers.indexOf(observer);self.observers.splice(idx,1);self.subscriptions[index]=new Subscription(self.subscriptions[index].subscribe,self.scheduler.clock)});this.observers.push(observer);return newPromise||new MockPromise(this.scheduler,this.messages)};var HotObservable=function(__super__){inherits(HotObservable,__super__);function HotObservable(scheduler,messages){__super__.call(this);var message,notification,observable=this;this.scheduler=scheduler;this.messages=messages;this.subscriptions=[];this.observers=[];for(var i=0,len=this.messages.length;i<len;i++){message=this.messages[i];notification=message.value;(function(innerNotification){scheduler.scheduleAbsolute(null,message.time,function(){var obs=observable.observers.slice(0);for(var j=0,jLen=obs.length;j<jLen;j++){innerNotification.accept(obs[j])}return disposableEmpty})})(notification)}}HotObservable.prototype._subscribe=function(o){var observable=this;this.observers.push(o);this.subscriptions.push(new Subscription(this.scheduler.clock));var index=this.subscriptions.length-1;return disposableCreate(function(){var idx=observable.observers.indexOf(o);observable.observers.splice(idx,1);observable.subscriptions[index]=new Subscription(observable.subscriptions[index].subscribe,observable.scheduler.clock)})};return HotObservable}(Observable);var ColdObservable=function(__super__){inherits(ColdObservable,__super__);function ColdObservable(scheduler,messages){__super__.call(this);this.scheduler=scheduler;this.messages=messages;this.subscriptions=[]}ColdObservable.prototype._subscribe=function(o){var message,notification,observable=this;this.subscriptions.push(new Subscription(this.scheduler.clock));var index=this.subscriptions.length-1;var d=new CompositeDisposable;for(var i=0,len=this.messages.length;i<len;i++){message=this.messages[i];notification=message.value;(function(innerNotification){d.add(observable.scheduler.scheduleRelative(null,message.time,function(){innerNotification.accept(o);return disposableEmpty}))})(notification)}return disposableCreate(function(){observable.subscriptions[index]=new Subscription(observable.subscriptions[index].subscribe,observable.scheduler.clock);d.dispose()})};return ColdObservable}(Observable);Rx.TestScheduler=function(__super__){inherits(TestScheduler,__super__);function baseComparer(x,y){return x>y?1:x<y?-1:0}function TestScheduler(){__super__.call(this,0,baseComparer)}TestScheduler.prototype.scheduleAbsolute=function(state,dueTime,action){dueTime<=this.clock&&(dueTime=this.clock+1);return __super__.prototype.scheduleAbsolute.call(this,state,dueTime,action)};TestScheduler.prototype.add=function(absolute,relative){return absolute+relative};TestScheduler.prototype.toAbsoluteTime=function(absolute){return new Date(absolute).getTime()};TestScheduler.prototype.toRelativeTime=function(timeSpan){return timeSpan};TestScheduler.prototype.startScheduler=function(createFn,settings){settings||(settings={});settings.created==null&&(settings.created=ReactiveTest.created);settings.subscribed==null&&(settings.subscribed=ReactiveTest.subscribed);settings.disposed==null&&(settings.disposed=ReactiveTest.disposed);var observer=this.createObserver(),source,subscription;this.scheduleAbsolute(null,settings.created,function(){source=createFn();return disposableEmpty});this.scheduleAbsolute(null,settings.subscribed,function(){subscription=source.subscribe(observer);return disposableEmpty});this.scheduleAbsolute(null,settings.disposed,function(){subscription.dispose();return disposableEmpty});this.start();return observer};TestScheduler.prototype.createHotObservable=function(){var len=arguments.length,args;if(Array.isArray(arguments[0])){args=arguments[0]}else{args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}}return new HotObservable(this,args)};TestScheduler.prototype.createColdObservable=function(){var len=arguments.length,args;if(Array.isArray(arguments[0])){args=arguments[0]}else{args=new Array(len);for(var i=0;i<len;i++){args[i]=arguments[i]}}return new ColdObservable(this,args)};TestScheduler.prototype.createResolvedPromise=function(ticks,value){return new MockPromise(this,[Rx.ReactiveTest.onNext(ticks,value),Rx.ReactiveTest.onCompleted(ticks)])};TestScheduler.prototype.createRejectedPromise=function(ticks,reason){return new MockPromise(this,[Rx.ReactiveTest.onError(ticks,reason)])};TestScheduler.prototype.createObserver=function(){return new MockObserver(this)};return TestScheduler}(VirtualTimeScheduler);var AnonymousObservable=Rx.AnonymousObservable=function(__super__){inherits(AnonymousObservable,__super__);function fixSubscriber(subscriber){return subscriber&&isFunction(subscriber.dispose)?subscriber:isFunction(subscriber)?disposableCreate(subscriber):disposableEmpty}function setDisposable(s,state){var ado=state[0],self=state[1];var sub=tryCatch(self.__subscribe).call(self,ado);if(sub===errorObj&&!ado.fail(errorObj.e)){thrower(errorObj.e)}ado.setDisposable(fixSubscriber(sub))}function AnonymousObservable(subscribe,parent){this.source=parent;this.__subscribe=subscribe;__super__.call(this)}AnonymousObservable.prototype._subscribe=function(o){var ado=new AutoDetachObserver(o),state=[ado,this];if(currentThreadScheduler.scheduleRequired()){currentThreadScheduler.schedule(state,setDisposable)}else{setDisposable(null,state)}return ado};return AnonymousObservable}(Observable);var AutoDetachObserver=function(__super__){inherits(AutoDetachObserver,__super__);function AutoDetachObserver(observer){__super__.call(this);this.observer=observer;this.m=new SingleAssignmentDisposable}var AutoDetachObserverPrototype=AutoDetachObserver.prototype;AutoDetachObserverPrototype.next=function(value){var result=tryCatch(this.observer.onNext).call(this.observer,value);if(result===errorObj){this.dispose();thrower(result.e)}};AutoDetachObserverPrototype.error=function(err){var result=tryCatch(this.observer.onError).call(this.observer,err);this.dispose();result===errorObj&&thrower(result.e)};AutoDetachObserverPrototype.completed=function(){var result=tryCatch(this.observer.onCompleted).call(this.observer);this.dispose();result===errorObj&&thrower(result.e)};AutoDetachObserverPrototype.setDisposable=function(value){this.m.setDisposable(value)};AutoDetachObserverPrototype.getDisposable=function(){return this.m.getDisposable()};AutoDetachObserverPrototype.dispose=function(){__super__.prototype.dispose.call(this);this.m.dispose()};return AutoDetachObserver}(AbstractObserver);var UnderlyingObservable=function(__super__){inherits(UnderlyingObservable,__super__);function UnderlyingObservable(m,u){this._m=m;this._u=u;__super__.call(this)}UnderlyingObservable.prototype.subscribeCore=function(o){return new BinaryDisposable(this._m.getDisposable(),this._u.subscribe(o))};return UnderlyingObservable}(ObservableBase);var GroupedObservable=function(__super__){inherits(GroupedObservable,__super__);function GroupedObservable(key,underlyingObservable,mergedDisposable){__super__.call(this);this.key=key;this.underlyingObservable=!mergedDisposable?underlyingObservable:new UnderlyingObservable(mergedDisposable,underlyingObservable)}GroupedObservable.prototype._subscribe=function(o){return this.underlyingObservable.subscribe(o)};return GroupedObservable}(Observable);var Subject=Rx.Subject=function(__super__){inherits(Subject,__super__);function Subject(){__super__.call(this);this.isDisposed=false;this.isStopped=false;this.observers=[];this.hasError=false}addProperties(Subject.prototype,Observer.prototype,{_subscribe:function(o){checkDisposed(this);if(!this.isStopped){this.observers.push(o);return new InnerSubscription(this,o)}if(this.hasError){o.onError(this.error);return disposableEmpty}o.onCompleted();return disposableEmpty},hasObservers:function(){return this.observers.length>0},onCompleted:function(){checkDisposed(this);if(!this.isStopped){this.isStopped=true;for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onCompleted()}this.observers.length=0}},onError:function(error){checkDisposed(this);if(!this.isStopped){this.isStopped=true;this.error=error;this.hasError=true;for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onError(error)}this.observers.length=0}},onNext:function(value){checkDisposed(this);if(!this.isStopped){for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onNext(value)}}},dispose:function(){this.isDisposed=true;this.observers=null}});Subject.create=function(observer,observable){return new AnonymousSubject(observer,observable)};return Subject}(Observable);var AsyncSubject=Rx.AsyncSubject=function(__super__){inherits(AsyncSubject,__super__);function AsyncSubject(){__super__.call(this);this.isDisposed=false;this.isStopped=false;this.hasValue=false;this.observers=[];this.hasError=false}addProperties(AsyncSubject.prototype,Observer.prototype,{_subscribe:function(o){checkDisposed(this);if(!this.isStopped){this.observers.push(o);return new InnerSubscription(this,o)}if(this.hasError){o.onError(this.error)}else if(this.hasValue){o.onNext(this.value);o.onCompleted()}else{o.onCompleted()}return disposableEmpty},hasObservers:function(){checkDisposed(this);return this.observers.length>0},onCompleted:function(){var i,len;checkDisposed(this);if(!this.isStopped){this.isStopped=true;var os=cloneArray(this.observers),len=os.length;if(this.hasValue){for(i=0;i<len;i++){var o=os[i];o.onNext(this.value);o.onCompleted()}}else{for(i=0;i<len;i++){os[i].onCompleted()}}this.observers.length=0}},onError:function(error){checkDisposed(this);if(!this.isStopped){this.isStopped=true;this.hasError=true;this.error=error;for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onError(error)}this.observers.length=0}},onNext:function(value){checkDisposed(this);if(this.isStopped){return}this.value=value;this.hasValue=true},dispose:function(){this.isDisposed=true;this.observers=null;this.error=null;this.value=null}});return AsyncSubject}(Observable);var BehaviorSubject=Rx.BehaviorSubject=function(__super__){inherits(BehaviorSubject,__super__);function BehaviorSubject(value){__super__.call(this);this.value=value;this.observers=[];this.isDisposed=false;this.isStopped=false;this.hasError=false}addProperties(BehaviorSubject.prototype,Observer.prototype,{_subscribe:function(o){checkDisposed(this);if(!this.isStopped){this.observers.push(o);o.onNext(this.value);return new InnerSubscription(this,o)}if(this.hasError){o.onError(this.error)}else{o.onCompleted()}return disposableEmpty},getValue:function(){checkDisposed(this);if(this.hasError){throw this.error}return this.value},hasObservers:function(){return this.observers.length>0},onCompleted:function(){checkDisposed(this);if(this.isStopped){return}this.isStopped=true;for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onCompleted()}this.observers.length=0},onError:function(error){checkDisposed(this);if(this.isStopped){return}this.isStopped=true;this.hasError=true;this.error=error;for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onError(error)}this.observers.length=0},onNext:function(value){checkDisposed(this);if(this.isStopped){return}this.value=value;for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){os[i].onNext(value)}},dispose:function(){this.isDisposed=true;this.observers=null;this.value=null;this.error=null}});return BehaviorSubject}(Observable);var ReplaySubject=Rx.ReplaySubject=function(__super__){var maxSafeInteger=Math.pow(2,53)-1;function createRemovableDisposable(subject,observer){return disposableCreate(function(){observer.dispose();!subject.isDisposed&&subject.observers.splice(subject.observers.indexOf(observer),1)})}inherits(ReplaySubject,__super__);function ReplaySubject(bufferSize,windowSize,scheduler){this.bufferSize=bufferSize==null?maxSafeInteger:bufferSize;this.windowSize=windowSize==null?maxSafeInteger:windowSize;this.scheduler=scheduler||currentThreadScheduler;this.q=[];this.observers=[];this.isStopped=false;this.isDisposed=false;this.hasError=false;this.error=null;__super__.call(this)}addProperties(ReplaySubject.prototype,Observer.prototype,{_subscribe:function(o){checkDisposed(this);var so=new ScheduledObserver(this.scheduler,o),subscription=createRemovableDisposable(this,so);this._trim(this.scheduler.now());this.observers.push(so);for(var i=0,len=this.q.length;i<len;i++){so.onNext(this.q[i].value)}if(this.hasError){so.onError(this.error)}else if(this.isStopped){so.onCompleted()}so.ensureActive();return subscription},hasObservers:function(){return this.observers.length>0},_trim:function(now){while(this.q.length>this.bufferSize){this.q.shift()}while(this.q.length>0&&now-this.q[0].interval>this.windowSize){this.q.shift()}},onNext:function(value){checkDisposed(this);if(this.isStopped){return}var now=this.scheduler.now();this.q.push({interval:now,value:value});this._trim(now);for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){var observer=os[i];observer.onNext(value);observer.ensureActive()}},onError:function(error){checkDisposed(this);if(this.isStopped){return}this.isStopped=true;this.error=error;this.hasError=true;var now=this.scheduler.now();this._trim(now);for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){var observer=os[i];observer.onError(error);observer.ensureActive()}this.observers.length=0},onCompleted:function(){checkDisposed(this);if(this.isStopped){return}this.isStopped=true;var now=this.scheduler.now();this._trim(now);for(var i=0,os=cloneArray(this.observers),len=os.length;i<len;i++){var observer=os[i];observer.onCompleted();observer.ensureActive()}this.observers.length=0},dispose:function(){this.isDisposed=true;this.observers=null}});return ReplaySubject}(Observable);var AnonymousSubject=Rx.AnonymousSubject=function(__super__){inherits(AnonymousSubject,__super__);function AnonymousSubject(observer,observable){this.observer=observer;this.observable=observable;__super__.call(this)}addProperties(AnonymousSubject.prototype,Observer.prototype,{_subscribe:function(o){return this.observable.subscribe(o)},onCompleted:function(){this.observer.onCompleted()},onError:function(error){this.observer.onError(error)},onNext:function(value){this.observer.onNext(value)}});return AnonymousSubject}(Observable);Rx.Pauser=function(__super__){inherits(Pauser,__super__);function Pauser(){__super__.call(this)}Pauser.prototype.pause=function(){this.onNext(false)};Pauser.prototype.resume=function(){this.onNext(true)};return Pauser}(Subject);if(typeof define=="function"&&typeof define.amd=="object"&&define.amd){root.Rx=Rx;define(function(){return Rx})}else if(freeExports&&freeModule){if(moduleExports){(freeModule.exports=Rx).Rx=Rx}else{freeExports.Rx=Rx}}else{root.Rx=Rx}var rEndingLine=captureLine()}).call(this)}).call(this,require("_process"),typeof global!=="undefined"?global:typeof self!=="undefined"?self:typeof window!=="undefined"?window:{})},{_process:1}]},{},[]);var rx=require("rx");var initialState={todos:["get milk"]};var el=document.getElementById("app");var events=rx.Observable.merge(["keyup","submit"].map(function(ev){return rx.Observable.fromEvent(el,ev)}));var store=events.scan(function(prev,ev,i){if(ev.type=="submit")ev.preventDefault();return{input:ev.type=="keyup"?ev.target.value:prev.input,todos:ev.type=="submit"?prev.todos.concat([prev.input]):prev.todos}},initialState);var h=require("virtual-dom/h");var diff=require("virtual-dom/diff");var patch=require("virtual-dom/patch");var createElement=require("virtual-dom/create-element");function render(state){console.info("rendering");var todos=state.todos.map(function(todo){return h("li",todo)});return h("form",[h("ol",todos),h("input"),h("button","add")])}var tree=render(initialState);var rootNode=createElement(tree);el.appendChild(rootNode);store.subscribe(function(state){var newTree=render(state);var patches=diff(tree,newTree);rootNode=patch(rootNode,patches);tree=newTree}); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
{ | |
"name": "requirebin-sketch", | |
"version": "1.0.0", | |
"dependencies": { | |
"virtual-dom": "2.1.1", | |
"rx": "4.0.6" | |
} | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<div id="app"></div> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<!-- contents of this file will be placed inside the <head> --> |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment