storybook-coconut
Version:
Storybook for coconut: View coconut.vdom components in isolation with hot reloading.
1,504 lines (1,503 loc) • 41.1 kB
JavaScript
// Generated by Haxe 4.0.5
(function ($hx_exports, $global) { "use strict";
var $estr = function() { return js_Boot.__string_rec(this,''); },$hxEnums = $hxEnums || {},$_;
function $extend(from, fields) {
var proto = Object.create(from);
for (var name in fields) proto[name] = fields[name];
if( fields.toString !== Object.prototype.toString ) proto.toString = fields.toString;
return proto;
}
var HxOverrides = function() { };
HxOverrides.__name__ = true;
HxOverrides.iter = function(a) {
return { cur : 0, arr : a, hasNext : function() {
return this.cur < this.arr.length;
}, next : function() {
return this.arr[this.cur++];
}};
};
Math.__name__ = true;
var coconut_diffing_Differ = function(applicator) {
this.applicator = applicator;
};
coconut_diffing_Differ.__name__ = true;
coconut_diffing_Differ.prototype = {
_renderAll: function(nodes,later,parent,$with) {
var byType = new haxe_ds_ObjectMap();
var childList = [];
var process = null;
process = function(nodes1) {
if(nodes1 != null) {
var _g = 0;
while(_g < nodes1.length) {
var n = nodes1[_g];
++_g;
if(n != null) {
switch(n._hx_index) {
case 0:
var n1 = n.n;
childList.push(coconut_diffing_RNode.RNative(null,n1,null));
break;
case 1:
var w = n.w;
$with.widgetInst(w);
var ref = [null];
var key = coconut_diffing__$Key_Key_$Impl_$.ofObject(w);
var type = coconut_diffing_Differ.WIDGET_INST;
var n2 = coconut_diffing_RNode.RWidget(w,null);
var registry;
var _g1 = byType.h[type.__id__];
if(_g1 == null) {
var v = new coconut_diffing_TypeRegistry();
byType.set(type,v);
registry = v;
} else {
var v1 = _g1;
registry = v1;
}
if(ref[0] != null) {
var process1 = (function(ref1,r) {
return function() {
ref1[0](r[0]);
};
})(ref,[w]);
later(process1);
}
if(key == null) {
registry.put(n2);
} else {
var k = key;
registry.set(k,n2);
}
childList.push(n2);
break;
case 2:
var nodes2 = n.nodes;
process(nodes2);
break;
case 3:
var children = n.children;
var attr = n.a;
var key1 = n.key;
var ref2 = n.ref;
var type1 = n.type;
var real = $with.native(type1,key1,attr,children);
var ref3 = [ref2];
var n3 = coconut_diffing_RNode.RNative(attr,real,ref2);
var registry1;
var _g2 = byType.h[type1.__id__];
if(_g2 == null) {
var v2 = new coconut_diffing_TypeRegistry();
byType.set(type1,v2);
registry1 = v2;
} else {
var v3 = _g2;
registry1 = v3;
}
if(ref3[0] != null) {
var process2 = (function(ref4,r1) {
return function() {
ref4[0](r1[0]);
};
})(ref3,[real]);
later(process2);
}
if(key1 == null) {
registry1.put(n3);
} else {
var k1 = key1;
registry1.set(k1,n3);
}
childList.push(n3);
break;
case 4:
var a = n.a;
var key2 = n.key;
var ref5 = n.ref;
var type2 = n.type;
var w1 = $with.widget(type2,key2,a);
var ref6 = [ref5];
var n4 = coconut_diffing_RNode.RWidget(w1,ref5);
var registry2;
var _g3 = byType.h[type2.__id__];
if(_g3 == null) {
var v4 = new coconut_diffing_TypeRegistry();
byType.set(type2,v4);
registry2 = v4;
} else {
var v5 = _g3;
registry2 = v5;
}
if(ref6[0] != null) {
var process3 = (function(ref7,r2) {
return function() {
ref7[0](r2[0]);
};
})(ref6,[w1]);
later(process3);
}
if(key2 == null) {
registry2.put(n4);
} else {
var k2 = key2;
registry2.set(k2,n4);
}
childList.push(n4);
break;
}
}
}
}
};
process(nodes);
return new coconut_diffing_Rendered(byType,childList);
}
,renderAll: function(nodes,parent,later) {
var _gthis = this;
return this._renderAll(nodes,later,parent,{ native : function(type,_,attr,children) {
return _gthis.createNative(type,attr,children,parent,later);
}, widget : function(t,_1,a) {
return _gthis.createWidget(t,a,parent,later);
}, widgetInst : function(w) {
_gthis.mountInstance(w,parent,later);
}});
}
,mountInstance: function(w,parent,later) {
if(w._coco_alive) {
tink_core_TypedError.withData(null,"Same widget instance mounted twice",w,{ fileName : "coconut/diffing/Differ.hx", lineNumber : 93, className : "coconut.diffing.Differ", methodName : "mountInstance"});
}
w._coco_initialize(this,parent,later);
}
,createWidget: function(t,a,parent,later) {
var ret = t.create(a);
ret._coco_initialize(this,parent,later);
return ret;
}
,updateAll: function(before,nodes,parent,later) {
var _gthis = this;
var _g = 0;
var _g1 = before.childList;
while(_g < _g1.length) {
var node = _g1[_g];
++_g;
switch(node._hx_index) {
case 0:
var _g11 = node.r;
var _g2 = node.a;
var f = node.ref;
if(f != null) {
f(null);
}
break;
case 1:
var _g3 = node.w;
var f1 = node.ref;
if(f1 != null) {
f1(null);
}
break;
default:
}
}
var previous = function(t,key) {
var _g21 = before.byType.h[t.__id__];
if(_g21 == null) {
return null;
} else {
var v = _g21;
if(key == null) {
return v.pull();
} else {
return v.get(key);
}
}
};
var native = function(type,key1,nuAttr,nuChildren) {
var _g22 = previous(type,key1);
if(_g22 == null) {
return _gthis.createNative(type,nuAttr,nuChildren,parent,later);
} else if(_g22._hx_index == 0) {
var _g5 = _g22.ref;
var r = _g22.r;
var oldAttr = _g22.a;
type.update(r,oldAttr,nuAttr);
_gthis._render(nuChildren,r,parent,later);
return r;
} else {
throw new js__$Boot_HaxeError("assert");
}
};
var after = this._renderAll(nodes,later,parent,{ native : native, widget : function(type1,key2,attr) {
var _g23 = previous(type1,key2);
if(_g23 == null) {
return _gthis.createWidget(type1,attr,parent,later);
} else if(_g23._hx_index == 1) {
var _g4 = _g23.ref;
var w = _g23.w;
type1.update(attr,w);
return w;
} else {
throw new js__$Boot_HaxeError("assert");
}
}, widgetInst : function(w1) {
var _g24 = previous(coconut_diffing_Differ.WIDGET_INST,coconut_diffing__$Key_Key_$Impl_$.ofObject(w1));
if(_g24 == null) {
_gthis.mountInstance(w1,parent,later);
} else if(_g24._hx_index == 1) {
var _g41 = _g24.ref;
var w2 = _g24.w;
} else {
throw new js__$Boot_HaxeError("assert");
}
return;
}});
var registry = before.byType.iterator();
while(registry.hasNext()) {
var registry1 = registry.next();
var f2 = $bind(this,this.destroyRender);
if(registry1.keyed != null) {
var _this = registry1.keyed;
var v1 = new haxe_ds__$StringMap_StringMapIterator(_this,_this.arrayKeys());
while(v1.hasNext()) {
var v2 = v1.next();
f2(v2);
}
}
if(registry1.unkeyed != null) {
var _g6 = 0;
var _g12 = registry1.unkeyed;
while(_g6 < _g12.length) {
var v3 = _g12[_g6];
++_g6;
f2(v3);
}
}
}
return after;
}
,destroyRender: function(r) {
switch(r._hx_index) {
case 0:
var _g2 = r.ref;
var _g = r.a;
var real = r.r;
var _g1 = this.applicator.unsetLastRender(real);
if(_g1 != null) {
var _g11 = _g1.byType;
var children = _g1.childList;
var _g3 = 0;
while(_g3 < children.length) {
var c = children[_g3];
++_g3;
this.destroyRender(c);
}
}
break;
case 1:
var _g4 = r.ref;
var w = r.w;
w._coco_teardown();
break;
}
}
,_render: function(nodes,target,parent,later) {
var lastCount = 0;
var ret;
var _g = this.applicator.getLastRender(target);
if(_g == null) {
ret = this.renderAll(nodes,parent,later);
} else {
var v = _g;
lastCount = v.justCount();
ret = this.updateAll(v,nodes,parent,later);
}
this.applicator.setLastRender(target,ret);
this.setChildren(later,lastCount,this.applicator.traverseChildren(target),ret);
return ret;
}
,setChildren: function(later,previousCount,cursor,next,log) {
var insertedCount = 0;
var currentCount = 0;
next.each(later,function(r) {
currentCount += 1;
if(r == cursor.current()) {
cursor.step();
} else if(cursor.insert(r)) {
insertedCount += 1;
}
});
var deleteCount = previousCount + insertedCount - currentCount;
if(log) {
console.log("coconut/diffing/Differ.hx:197:",deleteCount);
}
var _g = 0;
var _g1 = deleteCount;
while(_g < _g1) {
var i = _g++;
if(!cursor.delete()) {
break;
}
}
}
,render: function(virtual,target) {
var _gthis = this;
this.run(function(later) {
return _gthis._render(virtual,target,null,later);
});
}
,run: function(f) {
var after = [];
var ret = f(function(later) {
if(later != null) {
after.push(later);
}
});
var _g = 0;
while(_g < after.length) {
var f1 = after[_g];
++_g;
f1();
}
return ret;
}
,createNative: function(type,attr,children,parent,later) {
var ret = type.create(attr);
if(children != null) {
this._render(children,ret,parent,later);
}
return ret;
}
,__class__: coconut_diffing_Differ
};
var coconut_diffing__$Key_Key_$Impl_$ = {};
coconut_diffing__$Key_Key_$Impl_$.__name__ = true;
coconut_diffing__$Key_Key_$Impl_$.ofFloat = function(f) {
if(f == null) {
return "null";
} else {
return "" + f;
}
};
coconut_diffing__$Key_Key_$Impl_$.ofObject = function(o) {
return coconut_diffing__$Key_Key_$Impl_$.ofFloat(o.__id__ || (o.__id__ = $global.$haxeUID++));
};
var coconut_diffing_RNode = $hxEnums["coconut.diffing.RNode"] = { __ename__ : true, __constructs__ : ["RNative","RWidget"]
,RNative: ($_=function(a,r,ref) { return {_hx_index:0,a:a,r:r,ref:ref,__enum__:"coconut.diffing.RNode",toString:$estr}; },$_.__params__ = ["a","r","ref"],$_)
,RWidget: ($_=function(w,ref) { return {_hx_index:1,w:w,ref:ref,__enum__:"coconut.diffing.RNode",toString:$estr}; },$_.__params__ = ["w","ref"],$_)
};
var coconut_diffing_Rendered = function(byType,childList) {
this.byType = byType;
this.childList = childList;
};
coconut_diffing_Rendered.__name__ = true;
coconut_diffing_Rendered.prototype = {
justCount: function() {
var ret = 0;
var _g = 0;
var _g1 = this.childList;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
var ret1;
switch(c._hx_index) {
case 0:
var _g3 = c.ref;
var _g2 = c.r;
var _g11 = c.a;
ret1 = 1;
break;
case 1:
var _g5 = c.ref;
var w = c.w;
ret1 = w._coco_lastRender.justCount();
break;
}
ret += ret1;
}
return ret;
}
,each: function(later,f) {
var rec = null;
rec = function(children) {
var _g = 0;
while(_g < children.length) {
var c = children[_g];
++_g;
switch(c._hx_index) {
case 0:
var _g2 = c.ref;
var _g1 = c.a;
var r = c.r;
f(r);
break;
case 1:
var _g4 = c.ref;
var w = c.w;
rec(w._coco_getRender(later).childList);
break;
}
}
};
rec(this.childList);
}
,__class__: coconut_diffing_Rendered
};
var coconut_diffing_TypeRegistry = function() {
};
coconut_diffing_TypeRegistry.__name__ = true;
coconut_diffing_TypeRegistry.prototype = {
get: function(key) {
if(this.keyed == null) {
return null;
} else {
var this1 = this.keyed;
var _this = this1;
var _g = __map_reserved[key] != null ? _this.getReserved(key) : _this.h[key];
if(_g == null) {
return null;
} else {
var v = _g;
this1.remove(key);
return v;
}
}
}
,set: function(key,value) {
if(this.keyed == null) {
var this1 = new haxe_ds_StringMap();
this.keyed = this1;
}
var _this = this.keyed;
if(__map_reserved[key] != null) {
_this.setReserved(key,value);
} else {
_this.h[key] = value;
}
}
,put: function(v) {
if(this.unkeyed == null) {
this.unkeyed = [];
}
this.unkeyed.push(v);
}
,pull: function() {
if(this.unkeyed == null) {
return null;
} else {
return this.unkeyed.shift();
}
}
,__class__: coconut_diffing_TypeRegistry
};
var coconut_diffing_VNodeData = $hxEnums["coconut.diffing.VNodeData"] = { __ename__ : true, __constructs__ : ["VNativeInst","VWidgetInst","VMany","VNative","VWidget"]
,VNativeInst: ($_=function(n) { return {_hx_index:0,n:n,__enum__:"coconut.diffing.VNodeData",toString:$estr}; },$_.__params__ = ["n"],$_)
,VWidgetInst: ($_=function(w) { return {_hx_index:1,w:w,__enum__:"coconut.diffing.VNodeData",toString:$estr}; },$_.__params__ = ["w"],$_)
,VMany: ($_=function(nodes) { return {_hx_index:2,nodes:nodes,__enum__:"coconut.diffing.VNodeData",toString:$estr}; },$_.__params__ = ["nodes"],$_)
,VNative: ($_=function(type,ref,key,a,children) { return {_hx_index:3,type:type,ref:ref,key:key,a:a,children:children,__enum__:"coconut.diffing.VNodeData",toString:$estr}; },$_.__params__ = ["type","ref","key","a","children"],$_)
,VWidget: ($_=function(type,ref,key,a) { return {_hx_index:4,type:type,ref:ref,key:key,a:a,__enum__:"coconut.diffing.VNodeData",toString:$estr}; },$_.__params__ = ["type","ref","key","a"],$_)
};
var haxe_ds_List = function() {
this.length = 0;
};
haxe_ds_List.__name__ = true;
haxe_ds_List.prototype = {
push: function(item) {
var x = new haxe_ds__$List_ListNode(item,this.h);
this.h = x;
if(this.q == null) {
this.q = x;
}
this.length++;
}
,first: function() {
if(this.h == null) {
return null;
} else {
return this.h.item;
}
}
,pop: function() {
if(this.h == null) {
return null;
}
var x = this.h.item;
this.h = this.h.next;
if(this.h == null) {
this.q = null;
}
this.length--;
return x;
}
,__class__: haxe_ds_List
};
var tink_state__$Observable_Observable_$Impl_$ = {};
tink_state__$Observable_Observable_$Impl_$.__name__ = true;
tink_state__$Observable_Observable_$Impl_$.get_value = function(this1) {
return tink_state__$Observable_Observable_$Impl_$.measure(this1).a;
};
tink_state__$Observable_Observable_$Impl_$.map = function(this1,f) {
return tink_state__$Observable_Observable_$Impl_$.create(function() {
var m = tink_state__$Observable_Observable_$Impl_$.measure(this1);
var this2 = new tink_core_MPair(f(m.a),m.b);
var this3 = this2;
return this3;
});
};
tink_state__$Observable_Observable_$Impl_$.measure = function(this1) {
var before = tink_state__$Observable_Observable_$Impl_$.stack.first();
tink_state__$Observable_Observable_$Impl_$.stack.push(this1);
var p = this1.poll();
if(js_Boot.getClass(before) == tink_state__$Observable_AutoObservable) {
before.subscribe(this1,p);
}
tink_state__$Observable_Observable_$Impl_$.stack.pop();
return p;
};
tink_state__$Observable_Observable_$Impl_$.schedule = function(f) {
var _g = tink_state__$Observable_Observable_$Impl_$.scheduled;
if(_g == null) {
f();
} else {
var v = _g;
v.push(f);
tink_state__$Observable_Observable_$Impl_$.scheduleUpdate();
}
};
tink_state__$Observable_Observable_$Impl_$.scheduleUpdate = function() {
if(!tink_state__$Observable_Observable_$Impl_$.isScheduled) {
tink_state__$Observable_Observable_$Impl_$.isScheduled = true;
if(tink_state__$Observable_Observable_$Impl_$.hasRAF) {
window.requestAnimationFrame(function(_) {
tink_state__$Observable_Observable_$Impl_$.scheduledRun();
});
} else {
tink_core__$Callback_Callback_$Impl_$.defer(tink_state__$Observable_Observable_$Impl_$.scheduledRun);
}
}
};
tink_state__$Observable_Observable_$Impl_$.scheduledRun = function() {
tink_state__$Observable_Observable_$Impl_$.isScheduled = false;
tink_state__$Observable_Observable_$Impl_$.updatePending();
};
tink_state__$Observable_Observable_$Impl_$.updatePending = function(maxSeconds) {
if(maxSeconds == null) {
maxSeconds = .01;
}
var end = Date.now() / 1000 + maxSeconds;
while(true) {
var old = tink_state__$Observable_Observable_$Impl_$.scheduled;
tink_state__$Observable_Observable_$Impl_$.scheduled = [];
var _g = 0;
while(_g < old.length) {
var o = old[_g];
++_g;
o();
}
if(!(tink_state__$Observable_Observable_$Impl_$.scheduled.length > 0 && Date.now() / 1000 < end)) {
break;
}
}
if(tink_state__$Observable_Observable_$Impl_$.scheduled.length > 0) {
tink_state__$Observable_Observable_$Impl_$.scheduleUpdate();
return true;
} else {
return false;
}
};
tink_state__$Observable_Observable_$Impl_$.create = function(f,comparator) {
return new tink_state__$Observable_SimpleObservable(f,comparator);
};
tink_state__$Observable_Observable_$Impl_$.untracked = function(f) {
tink_state__$Observable_Observable_$Impl_$.stack.push(null);
return tink_core_TypedError.tryFinally(f,($_=tink_state__$Observable_Observable_$Impl_$.stack,$bind($_,$_.pop)));
};
var tink_core__$Callback_Callback_$Impl_$ = {};
tink_core__$Callback_Callback_$Impl_$.__name__ = true;
tink_core__$Callback_Callback_$Impl_$.invoke = function(this1,data) {
if(tink_core__$Callback_Callback_$Impl_$.depth < 500) {
tink_core__$Callback_Callback_$Impl_$.depth++;
this1(data);
tink_core__$Callback_Callback_$Impl_$.depth--;
} else {
var _e = this1;
var f = function(data1) {
tink_core__$Callback_Callback_$Impl_$.invoke(_e,data1);
};
var data2 = data;
tink_core__$Callback_Callback_$Impl_$.defer(function() {
f(data2);
});
}
};
tink_core__$Callback_Callback_$Impl_$.fromNiladic = function(f) {
return f;
};
tink_core__$Callback_Callback_$Impl_$.defer = function(f) {
haxe_Timer.delay(f,0);
};
var haxe_Timer = function(time_ms) {
var me = this;
this.id = setInterval(function() {
me.run();
},time_ms);
};
haxe_Timer.__name__ = true;
haxe_Timer.delay = function(f,time_ms) {
var t = new haxe_Timer(time_ms);
t.run = function() {
t.stop();
f();
};
return t;
};
haxe_Timer.prototype = {
stop: function() {
if(this.id == null) {
return;
}
clearInterval(this.id);
this.id = null;
}
,run: function() {
}
,__class__: haxe_Timer
};
var coconut_diffing_Widget = function(rendered,mounted,updated,unmounting) {
this._coco_pendingChildren = [];
this._coco_alive = false;
this._coco_invalid = false;
var _gthis = this;
this._coco_vStructure = tink_state__$Observable_Observable_$Impl_$.map(rendered,tink_state__$Observable_Transform_$Impl_$.plain(function(r) {
if(r == null) {
return _gthis._coco_differ.applicator.placeholder(_gthis);
} else if(r._hx_index == 2) {
var nodes = r.nodes;
var isEmpty = null;
isEmpty = function(nodes1) {
var _g = 0;
while(_g < nodes1.length) {
var n = nodes1[_g];
++_g;
if(n != null) {
if(n._hx_index == 2) {
var nodes2 = n.nodes;
if(!isEmpty(nodes2)) {
return false;
}
} else {
return false;
}
}
}
return true;
};
if(isEmpty(nodes)) {
return _gthis._coco_differ.applicator.placeholder(_gthis);
} else {
return r;
}
} else {
return r;
}
}));
this._coco_viewMounted = mounted;
this._coco_viewUpdated = updated;
this._coco_viewUnmounting = unmounting;
};
coconut_diffing_Widget.__name__ = true;
coconut_diffing_Widget.prototype = {
_coco_getRender: function(later) {
if(this._coco_invalid) {
this._coco_invalid = false;
var nuSnapshot = this._coco_poll().a;
this._coco_arm();
if(nuSnapshot != this._coco_lastSnapshot) {
this._coco_lastSnapshot = nuSnapshot;
this._coco_lastRender = this._coco_differ.updateAll(this._coco_lastRender,[nuSnapshot],this,later);
later(this._coco_viewUpdated);
}
}
return this._coco_lastRender;
}
,_coco_poll: function() {
var _e = this._coco_vStructure;
return tink_state__$Observable_Observable_$Impl_$.untracked(function() {
return tink_state__$Observable_Observable_$Impl_$.measure(_e);
});
}
,_coco_scheduleChild: function(child) {
this._coco_pendingChildren.push(child);
this._coco_invalidate();
}
,_coco_invalidate: function() {
if(!this._coco_invalid) {
this._coco_invalid = true;
if(this._coco_parent != null) {
this._coco_parent._coco_scheduleChild(this);
} else {
var f = $bind(this,this._coco_update);
var later = null;
var tmp = function() {
f(later);
};
coconut_diffing_Widget.defer(tmp);
}
}
}
,_coco_updateChildren: function(later) {
if(this._coco_pendingChildren.length > 0) {
var _g = 0;
var _g1 = this._coco_pendingChildren.splice(0,this._coco_pendingChildren.length);
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
c._coco_update(later);
}
}
}
,_coco_performUpdate: function(later) {
var previous = this._coco_lastRender;
var next = this._coco_getRender(later);
this._coco_updateChildren(later);
if(previous == next) {
return;
}
var previousCount = 0;
var first = null;
previous.each(later,function(r) {
if(first == null) {
first = r;
}
previousCount += 1;
});
var tmp = this._coco_differ;
var tmp1 = this._coco_differ.applicator.traverseSiblings(first);
tmp.setChildren(later,previousCount,tmp1,next);
}
,_coco_update: function(later) {
if(this._coco_invalid && this._coco_alive) {
if(later == null) {
this._coco_differ.run($bind(this,this._coco_performUpdate));
} else {
this._coco_performUpdate(later);
}
}
}
,_coco_arm: function() {
var this1 = this._coco_link;
if(this1 != null) {
this1.cancel();
}
this._coco_link = this._coco_poll().b.handle(tink_core__$Callback_Callback_$Impl_$.fromNiladic($bind(this,this._coco_invalidate)));
}
,_coco_teardown: function() {
this._coco_alive = false;
this._coco_viewUnmounting();
var _g = 0;
var _g1 = this._coco_lastRender.childList;
while(_g < _g1.length) {
var c = _g1[_g];
++_g;
var _this = this._coco_differ;
switch(c._hx_index) {
case 0:
var _g2 = c.ref;
var _g3 = c.a;
var real = c.r;
var _g4 = _this.applicator.unsetLastRender(real);
if(_g4 != null) {
var _g11 = _g4.byType;
var children = _g4.childList;
var _g5 = 0;
while(_g5 < children.length) {
var c1 = children[_g5];
++_g5;
_this.destroyRender(c1);
}
}
break;
case 1:
var _g41 = c.ref;
var w = c.w;
w._coco_teardown();
break;
}
}
}
,_coco_initialize: function(differ,parent,later) {
this._coco_alive = true;
this._coco_parent = parent;
this._coco_differ = differ;
this._coco_lastRender = differ.renderAll([this._coco_lastSnapshot = this._coco_poll().a],this,later);
this._coco_arm();
later(this._coco_viewMounted);
}
,__class__: coconut_diffing_Widget
};
var coconut_vdom__$Html_Text = function() {
};
coconut_vdom__$Html_Text.__name__ = true;
coconut_vdom__$Html_Text.prototype = {
create: function(text) {
return window.document.createTextNode(text);
}
,update: function(target,old,nu) {
if(nu != old) {
target.textContent = nu;
}
}
,__class__: coconut_vdom__$Html_Text
};
var coconut_vdom__$Renderer_DomBackend = function() {
};
coconut_vdom__$Renderer_DomBackend.__name__ = true;
coconut_vdom__$Renderer_DomBackend.prototype = {
unsetLastRender: function(target) {
var ret = target._coco_;
delete(target["_coco_"]);
return ret;
}
,traverseSiblings: function(first) {
return new coconut_vdom__$Renderer_DomCursor(first.parentNode,first);
}
,traverseChildren: function(parent) {
return new coconut_vdom__$Renderer_DomCursor(parent,parent.firstChild);
}
,placeholder: function(target) {
return coconut_vdom__$Renderer_DomBackend.PLACEHOLDER;
}
,getLastRender: function(target) {
return target._coco_;
}
,setLastRender: function(target,r) {
target._coco_ = r;
}
,__class__: coconut_vdom__$Renderer_DomBackend
};
var coconut_vdom_Renderer = function() { };
coconut_vdom_Renderer.__name__ = true;
coconut_vdom_Renderer.mountInto = $hx_exports["mount"] = function(target,vdom) {
coconut_vdom_Renderer.DIFFER.render([vdom],target);
};
var coconut_vdom__$Renderer_DomCursor = function(parent,cur) {
this.parent = parent;
this.cur = cur;
};
coconut_vdom__$Renderer_DomCursor.__name__ = true;
coconut_vdom__$Renderer_DomCursor.prototype = {
insert: function(real) {
var inserted = real.parentNode != this.parent;
this.parent.insertBefore(real,this.cur);
return inserted;
}
,step: function() {
var _g = this.cur;
if(_g == null) {
return false;
} else {
var v = _g;
return (this.cur = v.nextSibling) != null;
}
}
,'delete': function() {
var _g = this.cur;
if(_g == null) {
return false;
} else {
var v = _g;
this.cur = v.nextSibling;
this.parent.removeChild(v);
return true;
}
}
,current: function() {
return this.cur;
}
,__class__: coconut_vdom__$Renderer_DomCursor
};
var haxe_StackItem = $hxEnums["haxe.StackItem"] = { __ename__ : true, __constructs__ : ["CFunction","Module","FilePos","Method","LocalFunction"]
,CFunction: {_hx_index:0,__enum__:"haxe.StackItem",toString:$estr}
,Module: ($_=function(m) { return {_hx_index:1,m:m,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["m"],$_)
,FilePos: ($_=function(s,file,line,column) { return {_hx_index:2,s:s,file:file,line:line,column:column,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["s","file","line","column"],$_)
,Method: ($_=function(classname,method) { return {_hx_index:3,classname:classname,method:method,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["classname","method"],$_)
,LocalFunction: ($_=function(v) { return {_hx_index:4,v:v,__enum__:"haxe.StackItem",toString:$estr}; },$_.__params__ = ["v"],$_)
};
var haxe_ds__$List_ListNode = function(item,next) {
this.item = item;
this.next = next;
};
haxe_ds__$List_ListNode.__name__ = true;
haxe_ds__$List_ListNode.prototype = {
__class__: haxe_ds__$List_ListNode
};
var haxe_ds_ObjectMap = function() {
this.h = { __keys__ : { }};
};
haxe_ds_ObjectMap.__name__ = true;
haxe_ds_ObjectMap.prototype = {
set: function(key,value) {
var id = key.__id__;
if(id == null) {
id = (key.__id__ = $global.$haxeUID++);
}
this.h[id] = value;
this.h.__keys__[id] = key;
}
,keys: function() {
var a = [];
for( var key in this.h.__keys__ ) {
if(this.h.hasOwnProperty(key)) {
a.push(this.h.__keys__[key]);
}
}
return HxOverrides.iter(a);
}
,iterator: function() {
return { ref : this.h, it : this.keys(), hasNext : function() {
return this.it.hasNext();
}, next : function() {
var i = this.it.next();
return this.ref[i.__id__];
}};
}
,__class__: haxe_ds_ObjectMap
};
var haxe_ds_Option = $hxEnums["haxe.ds.Option"] = { __ename__ : true, __constructs__ : ["Some","None"]
,Some: ($_=function(v) { return {_hx_index:0,v:v,__enum__:"haxe.ds.Option",toString:$estr}; },$_.__params__ = ["v"],$_)
,None: {_hx_index:1,__enum__:"haxe.ds.Option",toString:$estr}
};
var haxe_ds__$StringMap_StringMapIterator = function(map,keys) {
this.map = map;
this.keys = keys;
this.index = 0;
this.count = keys.length;
};
haxe_ds__$StringMap_StringMapIterator.__name__ = true;
haxe_ds__$StringMap_StringMapIterator.prototype = {
hasNext: function() {
return this.index < this.count;
}
,next: function() {
var _this = this.map;
var key = this.keys[this.index++];
if(__map_reserved[key] != null) {
return _this.getReserved(key);
} else {
return _this.h[key];
}
}
,__class__: haxe_ds__$StringMap_StringMapIterator
};
var haxe_ds_StringMap = function() {
this.h = { };
};
haxe_ds_StringMap.__name__ = true;
haxe_ds_StringMap.prototype = {
setReserved: function(key,value) {
if(this.rh == null) {
this.rh = { };
}
this.rh["$" + key] = value;
}
,getReserved: function(key) {
if(this.rh == null) {
return null;
} else {
return this.rh["$" + key];
}
}
,remove: function(key) {
if(__map_reserved[key] != null) {
key = "$" + key;
if(this.rh == null || !this.rh.hasOwnProperty(key)) {
return false;
}
delete(this.rh[key]);
return true;
} else {
if(!this.h.hasOwnProperty(key)) {
return false;
}
delete(this.h[key]);
return true;
}
}
,arrayKeys: function() {
var out = [];
for( var key in this.h ) {
if(this.h.hasOwnProperty(key)) {
out.push(key);
}
}
if(this.rh != null) {
for( var key in this.rh ) {
if(key.charCodeAt(0) == 36) {
out.push(key.substr(1));
}
}
}
return out;
}
,__class__: haxe_ds_StringMap
};
var js__$Boot_HaxeError = function(val) {
Error.call(this);
this.val = val;
if(Error.captureStackTrace) {
Error.captureStackTrace(this,js__$Boot_HaxeError);
}
};
js__$Boot_HaxeError.__name__ = true;
js__$Boot_HaxeError.__super__ = Error;
js__$Boot_HaxeError.prototype = $extend(Error.prototype,{
__class__: js__$Boot_HaxeError
});
var js_Boot = function() { };
js_Boot.__name__ = true;
js_Boot.getClass = function(o) {
if(o == null) {
return null;
} else if(((o) instanceof Array)) {
return Array;
} else {
var cl = o.__class__;
if(cl != null) {
return cl;
}
var name = js_Boot.__nativeClassName(o);
if(name != null) {
return js_Boot.__resolveNativeClass(name);
}
return null;
}
};
js_Boot.__string_rec = function(o,s) {
if(o == null) {
return "null";
}
if(s.length >= 5) {
return "<...>";
}
var t = typeof(o);
if(t == "function" && (o.__name__ || o.__ename__)) {
t = "object";
}
switch(t) {
case "function":
return "<function>";
case "object":
if(o.__enum__) {
var e = $hxEnums[o.__enum__];
var n = e.__constructs__[o._hx_index];
var con = e[n];
if(con.__params__) {
s = s + "\t";
return n + "(" + ((function($this) {
var $r;
var _g = [];
{
var _g1 = 0;
var _g2 = con.__params__;
while(true) {
if(!(_g1 < _g2.length)) {
break;
}
var p = _g2[_g1];
_g1 = _g1 + 1;
_g.push(js_Boot.__string_rec(o[p],s));
}
}
$r = _g;
return $r;
}(this))).join(",") + ")";
} else {
return n;
}
}
if(((o) instanceof Array)) {
var str = "[";
s += "\t";
var _g3 = 0;
var _g11 = o.length;
while(_g3 < _g11) {
var i = _g3++;
str += (i > 0 ? "," : "") + js_Boot.__string_rec(o[i],s);
}
str += "]";
return str;
}
var tostr;
try {
tostr = o.toString;
} catch( e1 ) {
var e2 = ((e1) instanceof js__$Boot_HaxeError) ? e1.val : e1;
return "???";
}
if(tostr != null && tostr != Object.toString && typeof(tostr) == "function") {
var s2 = o.toString();
if(s2 != "[object Object]") {
return s2;
}
}
var str1 = "{\n";
s += "\t";
var hasp = o.hasOwnProperty != null;
var k = null;
for( k in o ) {
if(hasp && !o.hasOwnProperty(k)) {
continue;
}
if(k == "prototype" || k == "__class__" || k == "__super__" || k == "__interfaces__" || k == "__properties__") {
continue;
}
if(str1.length != 2) {
str1 += ", \n";
}
str1 += s + k + " : " + js_Boot.__string_rec(o[k],s);
}
s = s.substring(1);
str1 += "\n" + s + "}";
return str1;
case "string":
return o;
default:
return String(o);
}
};
js_Boot.__nativeClassName = function(o) {
var name = js_Boot.__toStr.call(o).slice(8,-1);
if(name == "Object" || name == "Function" || name == "Math" || name == "JSON") {
return null;
}
return name;
};
js_Boot.__resolveNativeClass = function(name) {
return $global[name];
};
var tink_core__$Callback_ListCell = function(cb,list) {
if(cb == null) {
throw new js__$Boot_HaxeError("callback expected but null received");
}
this.cb = cb;
this.list = list;
};
tink_core__$Callback_ListCell.__name__ = true;
tink_core__$Callback_ListCell.prototype = {
cancel: function() {
if(this.list != null) {
var list = this.list;
this.cb = null;
this.list = null;
if(--list.used < list.used >> 1) {
list.compact();
}
}
}
,__class__: tink_core__$Callback_ListCell
};
var tink_core_CallbackList = function() {
this.busy = false;
this.queue = [];
this.used = 0;
this.cells = [];
};
tink_core_CallbackList.__name__ = true;
tink_core_CallbackList.prototype = {
ondrain: function() {
}
,invoke: function(data,destructive) {
if(this.busy) {
var f = $bind(this,this.invoke);
var data1 = data;
var destructive1 = destructive;
var tmp = function() {
f(data1,destructive1);
return;
};
this.queue.push(tmp);
} else {
this.busy = true;
var length = this.cells.length;
var _g = 0;
var _g1 = length;
while(_g < _g1) {
var i = _g++;
var _this = this.cells[i];
if(_this.list != null) {
tink_core__$Callback_Callback_$Impl_$.invoke(_this.cb,data);
}
}
this.busy = false;
if(destructive) {
var added = this.cells.length - length;
var _g2 = 0;
var _g3 = length;
while(_g2 < _g3) {
var i1 = _g2++;
var _this1 = this.cells[i1];
_this1.cb = null;
_this1.list = null;
}
var _g4 = 0;
var _g5 = added;
while(_g4 < _g5) {
var i2 = _g4++;
this.cells[i2] = this.cells[length + i2];
}
this.resize(added);
} else if(this.used < this.cells.length) {
this.compact();
}
if(this.queue.length > 0) {
(this.queue.shift())();
}
}
}
,compact: function() {
if(this.busy) {
return;
} else if(this.used == 0) {
this.resize(0);
this.ondrain();
} else {
var compacted = 0;
var _g = 0;
var _g1 = this.cells.length;
while(_g < _g1) {
var i = _g++;
var _g2 = this.cells[i];
var _g21 = _g2.list;
if(_g2.cb != null) {
var v = _g2;
if(compacted != i) {
this.cells[compacted] = v;
}
if(++compacted == this.used) {
break;
}
}
}
this.resize(this.used);
}
}
,resize: function(length) {
this.cells.length = length;
}
,__class__: tink_core_CallbackList
};
var tink_core_TypedError = function(code,message,pos) {
if(code == null) {
code = 500;
}
this.code = code;
this.message = message;
this.pos = pos;
this.exceptionStack = [];
this.callStack = [];
};
tink_core_TypedError.__name__ = true;
tink_core_TypedError.withData = function(code,message,data,pos) {
return tink_core_TypedError.typed(code,message,data,pos);
};
tink_core_TypedError.typed = function(code,message,data,pos) {
var ret = new tink_core_TypedError(code,message,pos);
ret.data = data;
return ret;
};
tink_core_TypedError.tryFinally = function(f,cleanup) {
try { return f(); } finally { cleanup(); }
return null;
};
tink_core_TypedError.prototype = {
__class__: tink_core_TypedError
};
var tink_core_Noise = $hxEnums["tink.core.Noise"] = { __ename__ : true, __constructs__ : ["Noise"]
,Noise: {_hx_index:0,__enum__:"tink.core.Noise",toString:$estr}
};
var tink_core_FutureTrigger = function() {
this.list = new tink_core_CallbackList();
};
tink_core_FutureTrigger.__name__ = true;
tink_core_FutureTrigger.prototype = {
handle: function(callback) {
var _g = this.list;
if(_g == null) {
tink_core__$Callback_Callback_$Impl_$.invoke(callback,this.result);
return null;
} else {
var v = _g;
var node = new tink_core__$Callback_ListCell(callback,v);
v.cells.push(node);
v.used++;
return node;
}
}
,trigger: function(result) {
if(this.list == null) {
return false;
} else {
var list = this.list;
this.list = null;
this.result = result;
list.invoke(result,true);
return true;
}
}
,__class__: tink_core_FutureTrigger
};
var tink_core_MPair = function(a,b) {
this.a = a;
this.b = b;
};
tink_core_MPair.__name__ = true;
tink_core_MPair.prototype = {
__class__: tink_core_MPair
};
var tink_state__$Observable_SimpleObservable = function(f,comparator) {
this._poll = f;
this.comparator = comparator;
};
tink_state__$Observable_SimpleObservable.__name__ = true;
tink_state__$Observable_SimpleObservable.prototype = {
resetCache: function(_) {
this.cache = null;
}
,poll: function() {
var count = 0;
var last = null;
while(this.cache == null) {
var cache = this.cache = this._poll();
if(last == cache) {
throw new js__$Boot_HaxeError("Polling loops on the same value");
}
last = cache;
cache.b.handle($bind(this,this.resetCache));
if(count++ >= 100) {
throw new js__$Boot_HaxeError("Polling not concluded after 100 iterations");
}
}
return this.cache;
}
,getComparator: function() {
return this.comparator;
}
,__class__: tink_state__$Observable_SimpleObservable
};
var tink_state__$Observable_Transform_$Impl_$ = {};
tink_state__$Observable_Transform_$Impl_$.__name__ = true;
tink_state__$Observable_Transform_$Impl_$.plain = function(f) {
var this1 = f;
return this1;
};
var tink_state__$Observable_DependencyOf = function(data,initial,trigger) {
this.data = data;
this.comparator = data.getComparator();
this.last = initial.a;
this.link = initial.b.handle($bind(trigger,trigger.trigger));
};
tink_state__$Observable_DependencyOf.__name__ = true;
tink_state__$Observable_DependencyOf.prototype = {
changed: function() {
var _g = this.comparator;
if(_g == null) {
return this.last != tink_state__$Observable_Observable_$Impl_$.get_value(this.data);
} else {
var f = _g;
return !f(this.last,tink_state__$Observable_Observable_$Impl_$.get_value(this.data));
}
}
,unlink: function() {
var this1 = this.link;
if(this1 != null) {
this1.cancel();
}
}
,resubscribe: function(trigger) {
var next = tink_state__$Observable_Observable_$Impl_$.measure(this.data).b.handle(function(_) {
trigger.trigger(tink_core_Noise.Noise);
});
var this1 = this.link;
if(this1 != null) {
this1.cancel();
}
this.link = next;
}
,__class__: tink_state__$Observable_DependencyOf
};
var tink_state__$Observable_AutoObservable = function(comp,comparator) {
var _gthis = this;
tink_state__$Observable_SimpleObservable.call(this,function() {
_gthis.trigger = new tink_core_FutureTrigger();
if(_gthis.dependencies != null) {
var changed = false;
var _g = 0;
var _g1 = _gthis.dependencies;
while(_g < _g1.length) {
var d = _g1[_g];
++_g;
if(d.changed()) {
changed = true;
break;
}
}
if(changed) {
var _g2 = 0;
var _g3 = _gthis.dependencies;
while(_g2 < _g3.length) {
var d1 = _g3[_g2];
++_g2;
d1.unlink();
}
} else {
var _g21 = 0;
var _g31 = _gthis.dependencies;
while(_g21 < _g31.length) {
var d2 = _g31[_g21];
++_g21;
d2.resubscribe(_gthis.trigger);
}
var this1 = new tink_core_MPair(_gthis.last,_gthis.trigger);
var this2 = this1;
return this2;
}
}
_gthis.dependencies = [];
_gthis.isSubscribed = new haxe_ds_ObjectMap();
var this3 = new tink_core_MPair(_gthis.last = comp.f(),_gthis.trigger);
var this4 = this3;
return this4;
},comparator);
};
tink_state__$Observable_AutoObservable.__name__ = true;
tink_state__$Observable_AutoObservable.__super__ = tink_state__$Observable_SimpleObservable;
tink_state__$Observable_AutoObservable.prototype = $extend(tink_state__$Observable_SimpleObservable.prototype,{
subscribe: function(dependency,initial) {
if(!this.isSubscribed.h[dependency.__id__]) {
this.isSubscribed.set(dependency,true);
this.dependencies.push(new tink_state__$Observable_DependencyOf(dependency,initial,this.trigger));
}
}
,__class__: tink_state__$Observable_AutoObservable
});
function $bind(o,m) { if( m == null ) return null; if( m.__id__ == null ) m.__id__ = $global.$haxeUID++; var f; if( o.hx__closures__ == null ) o.hx__closures__ = {}; else f = o.hx__closures__[m.__id__]; if( f == null ) { f = m.bind(o); o.hx__closures__[m.__id__] = f; } return f; }
$global.$haxeUID |= 0;
String.prototype.__class__ = String;
String.__name__ = true;
Array.__name__ = true;
haxe_ds_ObjectMap.count = 0;
var __map_reserved = {};
Object.defineProperty(js__$Boot_HaxeError.prototype,"message",{ get : function() {
return String(this.val);
}});
js_Boot.__toStr = ({ }).toString;
coconut_diffing_Differ.WIDGET_INST = { };
tink_state__$Observable_Observable_$Impl_$.stack = new haxe_ds_List();
tink_state__$Observable_Observable_$Impl_$.scheduled = [];
tink_state__$Observable_Observable_$Impl_$.hasRAF = typeof window != 'undefined' && 'requestAnimationFrame' in window;
tink_state__$Observable_Observable_$Impl_$.isScheduled = false;
tink_core__$Callback_Callback_$Impl_$.depth = 0;
coconut_diffing_Widget.defer = tink_state__$Observable_Observable_$Impl_$.schedule;
coconut_vdom__$Html_Text.inst = new coconut_vdom__$Html_Text();
coconut_vdom__$Renderer_DomBackend.PLACEHOLDER = coconut_diffing_VNodeData.VNative(coconut_vdom__$Html_Text.inst,null,null,"",null);
coconut_vdom_Renderer.DIFFER = new coconut_diffing_Differ(new coconut_vdom__$Renderer_DomBackend());
})(typeof exports != "undefined" ? exports : typeof window != "undefined" ? window : typeof self != "undefined" ? self : this, typeof window != "undefined" ? window : typeof global != "undefined" ? global : typeof self != "undefined" ? self : this);