goog.provide('shadow.object'); shadow.object.console_friendly = shadow.util.console_friendly; shadow.object.log = shadow.util.log; shadow.object.debug = shadow.util.log; shadow.object.info = shadow.util.log; shadow.object.warn = shadow.util.log; shadow.object.error = shadow.util.log; shadow.object.obj_id = cljs.core.atom.cljs$core$IFn$_invoke$arity$1((0)); shadow.object.next_id = (function shadow$object$next_id(){ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(shadow.object.obj_id,cljs.core.inc); }); shadow.object.object_defs = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); shadow.object.behavior_fns = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); shadow.object.instances = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); shadow.object.instance_parent = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); shadow.object.instance_children = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); shadow.object.events = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); shadow.object.define_event = (function shadow$object$define_event(event_name,desc,args){ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.events,cljs.core.assoc,event_name,new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"id","id",-1388402092),event_name,new cljs.core.Keyword(null,"description","description",-1428560544),desc,new cljs.core.Keyword(null,"args","args",1315556576),args], null)); }); shadow.object.unmunge = (function shadow$object$unmunge(s){ return clojure.string.replace(clojure.string.replace(s,/_DOT_/,"."),/_/,"-"); }); shadow.object.define_event(new cljs.core.Keyword(null,"init","init",-1875481434),"object initialization",cljs.core.PersistentVector.EMPTY); shadow.object.define_event(new cljs.core.Keyword(null,"destroy","destroy",-843660405),"object descruction",new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"cause","cause",231901252),"cause of destruction, :parent means the parent was destroyed, :direct is default"], null)], null)); shadow.object.define_event(new cljs.core.Keyword("dom","init","dom/init",-1875647652),"called after the dom was created but has not entered the document yet",new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"dom","dom",-1236537922),"the dom that was created"], null)], null)); shadow.object.define_event(new cljs.core.Keyword("dom","entered","dom/entered",506699596),"should be called whenever a dom node is added to the document, since that\n is not in control of this library its up to you to call this\n use (so/notify-tree! your-obj :dom/entered) to notify the node and every child you created",cljs.core.PersistentVector.EMPTY); shadow.object.define_event(new cljs.core.Keyword(null,"bind-children-update","bind-children-update",-1610690160),"need to rethink this",cljs.core.PersistentVector.EMPTY); /** * @interface */ shadow.object.IObject = function(){}; var shadow$object$IObject$_id$dyn_38468 = (function (this$){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (shadow.object._id[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); } else { var m__5372__auto__ = (shadow.object._id["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); } else { throw cljs.core.missing_protocol("IObject.-id",this$); } } }); shadow.object._id = (function shadow$object$_id(this$){ if((((!((this$ == null)))) && ((!((this$.shadow$object$IObject$_id$arity$1 == null)))))){ return this$.shadow$object$IObject$_id$arity$1(this$); } else { return shadow$object$IObject$_id$dyn_38468(this$); } }); var shadow$object$IObject$_type$dyn_38469 = (function (this$){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (shadow.object._type[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); } else { var m__5372__auto__ = (shadow.object._type["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); } else { throw cljs.core.missing_protocol("IObject.-type",this$); } } }); shadow.object._type = (function shadow$object$_type(this$){ if((((!((this$ == null)))) && ((!((this$.shadow$object$IObject$_type$arity$1 == null)))))){ return this$.shadow$object$IObject$_type$arity$1(this$); } else { return shadow$object$IObject$_type$dyn_38469(this$); } }); var shadow$object$IObject$_data$dyn_38470 = (function (this$){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (shadow.object._data[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); } else { var m__5372__auto__ = (shadow.object._data["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); } else { throw cljs.core.missing_protocol("IObject.-data",this$); } } }); shadow.object._data = (function shadow$object$_data(this$){ if((((!((this$ == null)))) && ((!((this$.shadow$object$IObject$_data$arity$1 == null)))))){ return this$.shadow$object$IObject$_data$arity$1(this$); } else { return shadow$object$IObject$_data$dyn_38470(this$); } }); var shadow$object$IObject$_update$dyn_38471 = (function (this$,update_fn){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (shadow.object._update[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,update_fn) : m__5374__auto__.call(null,this$,update_fn)); } else { var m__5372__auto__ = (shadow.object._update["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,update_fn) : m__5372__auto__.call(null,this$,update_fn)); } else { throw cljs.core.missing_protocol("IObject.-update",this$); } } }); /** * update and notify watches */ shadow.object._update = (function shadow$object$_update(this$,update_fn){ if((((!((this$ == null)))) && ((!((this$.shadow$object$IObject$_update$arity$2 == null)))))){ return this$.shadow$object$IObject$_update$arity$2(this$,update_fn); } else { return shadow$object$IObject$_update$dyn_38471(this$,update_fn); } }); var shadow$object$IObject$_destroy_BANG_$dyn_38472 = (function (this$,cause){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (shadow.object._destroy_BANG_[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,cause) : m__5374__auto__.call(null,this$,cause)); } else { var m__5372__auto__ = (shadow.object._destroy_BANG_["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,cause) : m__5372__auto__.call(null,this$,cause)); } else { throw cljs.core.missing_protocol("IObject.-destroy!",this$); } } }); shadow.object._destroy_BANG_ = (function shadow$object$_destroy_BANG_(this$,cause){ if((((!((this$ == null)))) && ((!((this$.shadow$object$IObject$_destroy_BANG_$arity$2 == null)))))){ return this$.shadow$object$IObject$_destroy_BANG_$arity$2(this$,cause); } else { return shadow$object$IObject$_destroy_BANG_$dyn_38472(this$,cause); } }); shadow.object.get_type = (function shadow$object$get_type(this$){ return shadow.object._type(this$); }); shadow.object.get_type_attr = (function shadow$object$get_type_attr(var_args){ var G__37488 = arguments.length; switch (G__37488) { case 2: return shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2 = (function (oref,key){ if((oref == null)){ return null; } else { var type_id = (((oref instanceof cljs.core.Keyword))?oref:shadow.object._type(oref)); return cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.object_defs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type_id,key], null)); } })); (shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$3 = (function (oref,key,default$){ if((oref == null)){ return default$; } else { var type_id = (((oref instanceof cljs.core.Keyword))?oref:shadow.object._type(oref)); return cljs.core.get_in.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(shadow.object.object_defs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type_id,key], null),default$); } })); (shadow.object.get_type_attr.cljs$lang$maxFixedArity = 3); shadow.object.get_dom = (function shadow$object$get_dom(oref){ return new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311).cljs$core$IFn$_invoke$arity$1(oref); }); goog.exportSymbol('shadow.object.get_dom', shadow.object.get_dom); shadow.object.get_by_id = (function shadow$object$get_by_id(id){ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instances),id); }); goog.exportSymbol('shadow.object.get_by_id', shadow.object.get_by_id); shadow.object.get_from_dom = (function shadow$object$get_from_dom(dom){ var oid = shadow.dom.data(dom,new cljs.core.Keyword(null,"oid","oid",-768692334)); if(cljs.core.truth_(oid)){ return shadow.object.get_by_id(parseInt(oid,(10))); } else { return null; } }); goog.exportSymbol('shadow.object.get_from_dom', shadow.object.get_from_dom); shadow.object.is_object_QMARK_ = (function shadow$object$is_object_QMARK_(obj_or_dom){ var or__5025__auto__ = (((!((obj_or_dom == null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL === obj_or_dom.shadow$object$IObject$))))?true:(((!obj_or_dom.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom)); if(or__5025__auto__){ return or__5025__auto__; } else { return shadow.object.get_from_dom(obj_or_dom); } }); shadow.object.equal_QMARK_ = (function shadow$object$equal_QMARK_(obj,obj_or_dom){ if((((!((obj == null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL === obj.shadow$object$IObject$))))?true:(((!obj.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj))){ } else { throw (new Error(["Assert failed: ","can only test objects","\n","(satisfies? IObject obj)"].join(''))); } if((((!((obj_or_dom == null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL === obj_or_dom.shadow$object$IObject$))))?true:(((!obj_or_dom.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,obj_or_dom))){ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.object._id(obj),shadow.object._id(obj_or_dom)); } else { return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.object._id(obj),(function (){var temp__5823__auto__ = shadow.dom.data(obj_or_dom,new cljs.core.Keyword(null,"oid","oid",-768692334)); if(cljs.core.truth_(temp__5823__auto__)){ var oid = temp__5823__auto__; return parseInt(oid,(10)); } else { return null; } })()); } }); shadow.object.get_parent = (function shadow$object$get_parent(oref){ var temp__5823__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instance_parent),shadow.object._id(oref)); if(cljs.core.truth_(temp__5823__auto__)){ var parent_id = temp__5823__auto__; return cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instances),parent_id); } else { return null; } }); goog.exportSymbol('shadow.object.get_parent', shadow.object.get_parent); shadow.object.get_parent_of_type = (function shadow$object$get_parent_of_type(oref,parent_type){ var parent = new cljs.core.Keyword(null,"parent","parent",-878878779).cljs$core$IFn$_invoke$arity$1(oref); while(true){ if(cljs.core.truth_(parent)){ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(shadow.object._type(parent),parent_type)){ return parent; } else { var G__38477 = new cljs.core.Keyword(null,"parent","parent",-878878779).cljs$core$IFn$_invoke$arity$1(parent); parent = G__38477; continue; } } else { return null; } break; } }); goog.exportSymbol('shadow.object.get_parent_of_type', shadow.object.get_parent_of_type); shadow.object.get_children = (function shadow$object$get_children(parent){ var parent_id = shadow.object._id(parent); var child_ids = cljs.core.get.cljs$core$IFn$_invoke$arity$3(cljs.core.deref(shadow.object.instance_children),parent_id,cljs.core.PersistentVector.EMPTY); var instances = cljs.core.deref(shadow.object.instances); return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p1__37548_SHARP_){ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(instances,p1__37548_SHARP_); }),child_ids)); }); goog.exportSymbol('shadow.object.get_children', shadow.object.get_children); shadow.object.tree_seq = (function shadow$object$tree_seq(var_args){ var G__37558 = arguments.length; switch (G__37558) { case 1: return shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); goog.exportSymbol('shadow.object.tree_seq', shadow.object.tree_seq); (shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$1 = (function (root){ return shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$2(root,(function (node){ return true; })); })); (shadow.object.tree_seq.cljs$core$IFn$_invoke$arity$2 = (function (root,branch_QMARK_){ return cljs.core.tree_seq(branch_QMARK_,shadow.object.get_children,root); })); (shadow.object.tree_seq.cljs$lang$maxFixedArity = 2); shadow.object.get_children_of_type = (function shadow$object$get_children_of_type(oref,type){ var type_kw = (((type instanceof cljs.core.Keyword))?type:shadow.object._type(type)); return cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__37564_SHARP_){ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type_kw,shadow.object._type(p1__37564_SHARP_)); }),shadow.object.get_children(oref)); }); /** * basically (get-children (:parent this)) */ shadow.object.get_siblings = (function shadow$object$get_siblings(p__37577){ var map__37579 = p__37577; var map__37579__$1 = cljs.core.__destructure_map(map__37579); var oref = map__37579__$1; var parent = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__37579__$1,new cljs.core.Keyword(null,"parent","parent",-878878779)); if(cljs.core.truth_(parent)){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("object has no parent, thus has no siblings",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"oref","oref",-1547494840),oref], null)); } return shadow.object.get_children(parent); }); /** * returns set of all siblings of a common type */ shadow.object.get_siblings_of_type = (function shadow$object$get_siblings_of_type(var_args){ var G__37590 = arguments.length; switch (G__37590) { case 1: return shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$1 = (function (oref){ return shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$2(oref,oref); })); (shadow.object.get_siblings_of_type.cljs$core$IFn$_invoke$arity$2 = (function (oref,type){ var type_kw = (((type instanceof cljs.core.Keyword))?type:shadow.object._type(type)); return cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__37585_SHARP_){ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type_kw,shadow.object._type(p1__37585_SHARP_)); }),shadow.object.get_siblings(oref)); })); (shadow.object.get_siblings_of_type.cljs$lang$maxFixedArity = 2); shadow.object.get_collection_item = (function shadow$object$get_collection_item(oref){ var item_key = new cljs.core.Keyword("shadow.object","coll-item-key","shadow.object/coll-item-key",1888444366).cljs$core$IFn$_invoke$arity$1(oref); return cljs.core.get.cljs$core$IFn$_invoke$arity$2(oref,item_key); }); /** * find the object that contains this dom node */ shadow.object.find_containing_object = (function shadow$object$find_containing_object(dom){ while(true){ var temp__5821__auto__ = shadow.object.get_from_dom(dom); if(cljs.core.truth_(temp__5821__auto__)){ var obj = temp__5821__auto__; return obj; } else { var temp__5823__auto__ = dom.parentElement; if(cljs.core.truth_(temp__5823__auto__)){ var parent = temp__5823__auto__; var G__38482 = parent; dom = G__38482; continue; } else { return null; } } break; } }); shadow.object.notify_BANG_ = (function shadow$object$notify_BANG_(var_args){ var args__5755__auto__ = []; var len__5749__auto___38483 = arguments.length; var i__5750__auto___38484 = (0); while(true){ if((i__5750__auto___38484 < len__5749__auto___38483)){ args__5755__auto__.push((arguments[i__5750__auto___38484])); var G__38485 = (i__5750__auto___38484 + (1)); i__5750__auto___38484 = G__38485; continue; } else { } break; } var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null); return shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__); }); (shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (oref,ev,args){ var temp__5823__auto__ = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633),ev], null)); if(cljs.core.truth_(temp__5823__auto__)){ var reactions_to_trigger = temp__5823__auto__; var seq__37625 = cljs.core.seq(reactions_to_trigger); var chunk__37626 = null; var count__37627 = (0); var i__37628 = (0); while(true){ if((i__37628 < count__37627)){ var rfn = chunk__37626.cljs$core$IIndexed$_nth$arity$2(null,i__37628); cljs.core.apply.cljs$core$IFn$_invoke$arity$2(rfn,cljs.core.cons(oref,args)); var G__38487 = seq__37625; var G__38488 = chunk__37626; var G__38489 = count__37627; var G__38490 = (i__37628 + (1)); seq__37625 = G__38487; chunk__37626 = G__38488; count__37627 = G__38489; i__37628 = G__38490; continue; } else { var temp__5823__auto____$1 = cljs.core.seq(seq__37625); if(temp__5823__auto____$1){ var seq__37625__$1 = temp__5823__auto____$1; if(cljs.core.chunked_seq_QMARK_(seq__37625__$1)){ var c__5548__auto__ = cljs.core.chunk_first(seq__37625__$1); var G__38492 = cljs.core.chunk_rest(seq__37625__$1); var G__38493 = c__5548__auto__; var G__38494 = cljs.core.count(c__5548__auto__); var G__38495 = (0); seq__37625 = G__38492; chunk__37626 = G__38493; count__37627 = G__38494; i__37628 = G__38495; continue; } else { var rfn = cljs.core.first(seq__37625__$1); cljs.core.apply.cljs$core$IFn$_invoke$arity$2(rfn,cljs.core.cons(oref,args)); var G__38496 = cljs.core.next(seq__37625__$1); var G__38497 = null; var G__38498 = (0); var G__38499 = (0); seq__37625 = G__38496; chunk__37626 = G__38497; count__37627 = G__38498; i__37628 = G__38499; continue; } } else { return null; } } break; } } else { return null; } })); (shadow.object.notify_BANG_.cljs$lang$maxFixedArity = (2)); /** @this {Function} */ (shadow.object.notify_BANG_.cljs$lang$applyTo = (function (seq37608){ var G__37609 = cljs.core.first(seq37608); var seq37608__$1 = cljs.core.next(seq37608); var G__37610 = cljs.core.first(seq37608__$1); var seq37608__$2 = cljs.core.next(seq37608__$1); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37609,G__37610,seq37608__$2); })); shadow.object.do_notify_tree = (function shadow$object$do_notify_tree(current_obj,ev,notify_fn){ var seq__37646_38501 = cljs.core.seq(shadow.object.get_children(current_obj)); var chunk__37647_38502 = null; var count__37648_38503 = (0); var i__37649_38504 = (0); while(true){ if((i__37649_38504 < count__37648_38503)){ var child_38505 = chunk__37647_38502.cljs$core$IIndexed$_nth$arity$2(null,i__37649_38504); (shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3 ? shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3(child_38505,ev,notify_fn) : shadow.object.do_notify_tree.call(null,child_38505,ev,notify_fn)); var G__38506 = seq__37646_38501; var G__38507 = chunk__37647_38502; var G__38508 = count__37648_38503; var G__38509 = (i__37649_38504 + (1)); seq__37646_38501 = G__38506; chunk__37647_38502 = G__38507; count__37648_38503 = G__38508; i__37649_38504 = G__38509; continue; } else { var temp__5823__auto___38510 = cljs.core.seq(seq__37646_38501); if(temp__5823__auto___38510){ var seq__37646_38511__$1 = temp__5823__auto___38510; if(cljs.core.chunked_seq_QMARK_(seq__37646_38511__$1)){ var c__5548__auto___38512 = cljs.core.chunk_first(seq__37646_38511__$1); var G__38514 = cljs.core.chunk_rest(seq__37646_38511__$1); var G__38515 = c__5548__auto___38512; var G__38516 = cljs.core.count(c__5548__auto___38512); var G__38517 = (0); seq__37646_38501 = G__38514; chunk__37647_38502 = G__38515; count__37648_38503 = G__38516; i__37649_38504 = G__38517; continue; } else { var child_38519 = cljs.core.first(seq__37646_38511__$1); (shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3 ? shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3(child_38519,ev,notify_fn) : shadow.object.do_notify_tree.call(null,child_38519,ev,notify_fn)); var G__38521 = cljs.core.next(seq__37646_38511__$1); var G__38522 = null; var G__38523 = (0); var G__38524 = (0); seq__37646_38501 = G__38521; chunk__37647_38502 = G__38522; count__37648_38503 = G__38523; i__37649_38504 = G__38524; continue; } } else { } } break; } return (notify_fn.cljs$core$IFn$_invoke$arity$1 ? notify_fn.cljs$core$IFn$_invoke$arity$1(current_obj) : notify_fn.call(null,current_obj)); }); shadow.object.notify_tree_BANG_ = (function shadow$object$notify_tree_BANG_(var_args){ var args__5755__auto__ = []; var len__5749__auto___38525 = arguments.length; var i__5750__auto___38526 = (0); while(true){ if((i__5750__auto___38526 < len__5749__auto___38525)){ args__5755__auto__.push((arguments[i__5750__auto___38526])); var G__38528 = (i__5750__auto___38526 + (1)); i__5750__auto___38526 = G__38528; continue; } else { } break; } var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null); return shadow.object.notify_tree_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__); }); (shadow.object.notify_tree_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (oref,ev,args){ var notify_fn = (function (obj){ return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(shadow.object.notify_BANG_,obj,ev,args); }); return shadow.object.do_notify_tree(oref,ev,notify_fn); })); (shadow.object.notify_tree_BANG_.cljs$lang$maxFixedArity = (2)); /** @this {Function} */ (shadow.object.notify_tree_BANG_.cljs$lang$applyTo = (function (seq37663){ var G__37664 = cljs.core.first(seq37663); var seq37663__$1 = cljs.core.next(seq37663); var G__37665 = cljs.core.first(seq37663__$1); var seq37663__$2 = cljs.core.next(seq37663__$1); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37664,G__37665,seq37663__$2); })); shadow.object.notify_down_BANG_ = shadow.object.notify_tree_BANG_; shadow.object.notify_up_BANG_ = (function shadow$object$notify_up_BANG_(var_args){ var args__5755__auto__ = []; var len__5749__auto___38529 = arguments.length; var i__5750__auto___38530 = (0); while(true){ if((i__5750__auto___38530 < len__5749__auto___38529)){ args__5755__auto__.push((arguments[i__5750__auto___38530])); var G__38531 = (i__5750__auto___38530 + (1)); i__5750__auto___38530 = G__38531; continue; } else { } break; } var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null); return shadow.object.notify_up_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__); }); (shadow.object.notify_up_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (oref,ev,args){ var current = shadow.object.get_parent(oref); while(true){ if(cljs.core.truth_(current)){ cljs.core.apply.cljs$core$IFn$_invoke$arity$4(shadow.object.notify_BANG_,current,ev,args); var G__38532 = shadow.object.get_parent(current); current = G__38532; continue; } else { return null; } break; } })); (shadow.object.notify_up_BANG_.cljs$lang$maxFixedArity = (2)); /** @this {Function} */ (shadow.object.notify_up_BANG_.cljs$lang$applyTo = (function (seq37681){ var G__37682 = cljs.core.first(seq37681); var seq37681__$1 = cljs.core.next(seq37681); var G__37683 = cljs.core.first(seq37681__$1); var seq37681__$2 = cljs.core.next(seq37681__$1); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37682,G__37683,seq37681__$2); })); shadow.object.update_BANG_ = (function shadow$object$update_BANG_(var_args){ var args__5755__auto__ = []; var len__5749__auto___38533 = arguments.length; var i__5750__auto___38534 = (0); while(true){ if((i__5750__auto___38534 < len__5749__auto___38533)){ args__5755__auto__.push((arguments[i__5750__auto___38534])); var G__38535 = (i__5750__auto___38534 + (1)); i__5750__auto___38534 = G__38535; continue; } else { } break; } var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null); return shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__); }); (shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (oref,update_fn,args){ if(cljs.core.fn_QMARK_(update_fn)){ } else { throw ["update! expects a fn as second arg, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([update_fn], 0))].join(''); } var id = shadow.object._id(oref); var data = shadow.object._data(oref); var work_fn = (function (data__$1){ return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(update_fn,data__$1,args); }); return shadow.object._update(oref,work_fn); })); (shadow.object.update_BANG_.cljs$lang$maxFixedArity = (2)); /** @this {Function} */ (shadow.object.update_BANG_.cljs$lang$applyTo = (function (seq37704){ var G__37706 = cljs.core.first(seq37704); var seq37704__$1 = cljs.core.next(seq37704); var G__37707 = cljs.core.first(seq37704__$1); var seq37704__$2 = cljs.core.next(seq37704__$1); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37706,G__37707,seq37704__$2); })); shadow.object.return_value = (function shadow$object$return_value(oref,return_value){ return shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword("shadow.object","return-value","shadow.object/return-value",1397593360),return_value], 0)); }); shadow.object.set_parent_BANG_ = (function shadow$object$set_parent_BANG_(child,parent){ var child_id = shadow.object._id(child); var parent_id = shadow.object._id(parent); cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.instance_parent,cljs.core.assoc,child_id,parent_id); cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(shadow.object.instance_children,(function (x){ var current = cljs.core.get.cljs$core$IFn$_invoke$arity$3(x,parent_id,cljs.core.PersistentHashSet.EMPTY); return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(x,parent_id,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(current,child_id)); })); return true; }); shadow.object.dom_destroy = (function shadow$object$dom_destroy(this$,cause){ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cause,new cljs.core.Keyword(null,"parent","parent",-878878779))){ return shadow.dom.remove(new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311).cljs$core$IFn$_invoke$arity$1(this$)); } else { var temp__5821__auto__ = shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2(this$,new cljs.core.Keyword("dom","remove","dom/remove",-131527420)); if(cljs.core.truth_(temp__5821__auto__)){ var custom_remove = temp__5821__auto__; var G__37738 = this$; var G__37739 = new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311).cljs$core$IFn$_invoke$arity$1(this$); return (custom_remove.cljs$core$IFn$_invoke$arity$2 ? custom_remove.cljs$core$IFn$_invoke$arity$2(G__37738,G__37739) : custom_remove.call(null,G__37738,G__37739)); } else { return shadow.dom.remove(new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311).cljs$core$IFn$_invoke$arity$1(this$)); } } }); shadow.object.destroy_BANG_ = (function shadow$object$destroy_BANG_(var_args){ var G__37741 = arguments.length; switch (G__37741) { case 1: return shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)])); break; case 2: return shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1 = (function (oref){ return shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.Keyword(null,"direct","direct",-1775717856)); })); (shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (oref,cause){ return shadow.object._destroy_BANG_(oref,cause); })); (shadow.object.destroy_BANG_.cljs$lang$maxFixedArity = 2); shadow.object.bind_dom_events = (function shadow$object$bind_dom_events(oref,dom,dom_events){ if((cljs.core.rem(cljs.core.count(dom_events),(2)) === (0))){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("object defined invalid event",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"object-type","object-type",-1889869015),shadow.object._type(oref),new cljs.core.Keyword("dom","events","dom/events",1793437527),dom_events], null)); } var seq__37742 = cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),dom_events)); var chunk__37743 = null; var count__37744 = (0); var i__37745 = (0); while(true){ if((i__37745 < count__37744)){ var vec__37783 = chunk__37743.cljs$core$IIndexed$_nth$arity$2(null,i__37745); var ev = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37783,(0),null); var handler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37783,(1),null); var ev_def = vec__37783; if((handler == null)){ throw ["ev with nil handler ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ev], 0))].join(''); } else { } var handler_38547__$1 = (((handler instanceof cljs.core.Keyword))?((function (seq__37742,chunk__37743,count__37744,i__37745,vec__37783,ev,handler,ev_def){ return (function (this$,e,el){ return shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(this$,handler,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,el], 0)); });})(seq__37742,chunk__37743,count__37744,i__37745,vec__37783,ev,handler,ev_def)) :handler); shadow.dom.on.cljs$core$IFn$_invoke$arity$3(dom,ev,((function (seq__37742,chunk__37743,count__37744,i__37745,handler_38547__$1,vec__37783,ev,handler,ev_def){ return (function shadow$object$bind_dom_events_$_dom_event_handler(e,el){ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("A",el.tagName)){ shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e); } else { } return (handler_38547__$1.cljs$core$IFn$_invoke$arity$3 ? handler_38547__$1.cljs$core$IFn$_invoke$arity$3(oref,e,el) : handler_38547__$1.call(null,oref,e,el)); });})(seq__37742,chunk__37743,count__37744,i__37745,handler_38547__$1,vec__37783,ev,handler,ev_def)) ); var G__38550 = seq__37742; var G__38551 = chunk__37743; var G__38552 = count__37744; var G__38553 = (i__37745 + (1)); seq__37742 = G__38550; chunk__37743 = G__38551; count__37744 = G__38552; i__37745 = G__38553; continue; } else { var temp__5823__auto__ = cljs.core.seq(seq__37742); if(temp__5823__auto__){ var seq__37742__$1 = temp__5823__auto__; if(cljs.core.chunked_seq_QMARK_(seq__37742__$1)){ var c__5548__auto__ = cljs.core.chunk_first(seq__37742__$1); var G__38554 = cljs.core.chunk_rest(seq__37742__$1); var G__38555 = c__5548__auto__; var G__38556 = cljs.core.count(c__5548__auto__); var G__38557 = (0); seq__37742 = G__38554; chunk__37743 = G__38555; count__37744 = G__38556; i__37745 = G__38557; continue; } else { var vec__37794 = cljs.core.first(seq__37742__$1); var ev = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37794,(0),null); var handler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37794,(1),null); var ev_def = vec__37794; if((handler == null)){ throw ["ev with nil handler ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([ev], 0))].join(''); } else { } var handler_38558__$1 = (((handler instanceof cljs.core.Keyword))?((function (seq__37742,chunk__37743,count__37744,i__37745,vec__37794,ev,handler,ev_def,seq__37742__$1,temp__5823__auto__){ return (function (this$,e,el){ return shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(this$,handler,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([e,el], 0)); });})(seq__37742,chunk__37743,count__37744,i__37745,vec__37794,ev,handler,ev_def,seq__37742__$1,temp__5823__auto__)) :handler); shadow.dom.on.cljs$core$IFn$_invoke$arity$3(dom,ev,((function (seq__37742,chunk__37743,count__37744,i__37745,handler_38558__$1,vec__37794,ev,handler,ev_def,seq__37742__$1,temp__5823__auto__){ return (function shadow$object$bind_dom_events_$_dom_event_handler(e,el){ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("A",el.tagName)){ shadow.dom.ev_stop.cljs$core$IFn$_invoke$arity$1(e); } else { } return (handler_38558__$1.cljs$core$IFn$_invoke$arity$3 ? handler_38558__$1.cljs$core$IFn$_invoke$arity$3(oref,e,el) : handler_38558__$1.call(null,oref,e,el)); });})(seq__37742,chunk__37743,count__37744,i__37745,handler_38558__$1,vec__37794,ev,handler,ev_def,seq__37742__$1,temp__5823__auto__)) ); var G__38559 = cljs.core.next(seq__37742__$1); var G__38560 = null; var G__38561 = (0); var G__38562 = (0); seq__37742 = G__38559; chunk__37743 = G__38560; count__37744 = G__38561; i__37745 = G__38562; continue; } } else { return null; } } break; } }); shadow.object.reaction_merge = (function shadow$object$reaction_merge(result,p__37801){ var vec__37802 = p__37801; var event = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37802,(0),null); var handler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37802,(1),null); if(cljs.core.truth_((function (){var and__5023__auto__ = event; if(cljs.core.truth_(and__5023__auto__)){ return handler; } else { return and__5023__auto__; } })())){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("invalid reaction",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"event","event",301435442),event,new cljs.core.Keyword(null,"handler","handler",-195596612),handler], null)); } var current = cljs.core.get.cljs$core$IFn$_invoke$arity$3(result,event,cljs.core.List.EMPTY); return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(result,event,cljs.core.conj.cljs$core$IFn$_invoke$arity$2(current,handler)); }); shadow.object.merge_reactions = (function shadow$object$merge_reactions(result,behavior){ if(cljs.core.sequential_QMARK_(behavior)){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("behaviors must be vectors",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"behavior","behavior",1202392908),behavior], null)); } if(cljs.core.even_QMARK_(cljs.core.count(behavior))){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("invalid behavior",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"behavior","behavior",1202392908),behavior], null)); } return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(shadow.object.reaction_merge,result,cljs.core.reverse(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),behavior))); }); shadow.object.merge_behaviors = (function shadow$object$merge_behaviors(result,behavior){ if(cljs.core.sequential_QMARK_(behavior)){ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(result,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633)], null),shadow.object.merge_reactions,behavior); } else { if(cljs.core.map_QMARK_(behavior)){ return cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$3(cljs.core.update_in.cljs$core$IFn$_invoke$arity$4(result,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633)], null),shadow.object.merge_reactions,new cljs.core.Keyword(null,"on","on",173873944).cljs$core$IFn$_invoke$arity$2(behavior,cljs.core.PersistentVector.EMPTY)),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"watch","watch",380988277)], null),(function (watches){ return cljs.core.concat.cljs$core$IFn$_invoke$arity$2(watches,new cljs.core.Keyword(null,"watch","watch",380988277).cljs$core$IFn$_invoke$arity$2(behavior,cljs.core.PersistentVector.EMPTY)); })),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("dom","events","dom/events",1793437527)], null),(function (default$){ return cljs.core.vec(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(default$,new cljs.core.Keyword("dom","events","dom/events",1793437527).cljs$core$IFn$_invoke$arity$2(behavior,cljs.core.PersistentVector.EMPTY))); })); } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("behavior not understood",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"behavior","behavior",1202392908),behavior], null)); } } }); shadow.object.define = (function shadow$object$define(var_args){ var args__5755__auto__ = []; var len__5749__auto___38572 = arguments.length; var i__5750__auto___38573 = (0); while(true){ if((i__5750__auto___38573 < len__5749__auto___38572)){ args__5755__auto__.push((arguments[i__5750__auto___38573])); var G__38575 = (i__5750__auto___38573 + (1)); i__5750__auto___38573 = G__38575; continue; } else { } break; } var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null); return shadow.object.define.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); (shadow.object.define.cljs$core$IFn$_invoke$arity$variadic = (function (id,args){ if((id instanceof cljs.core.Keyword)){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("object id needs to be a keyword",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"id","id",-1388402092),id,new cljs.core.Keyword(null,"args","args",1315556576),args], null)); } if(cljs.core.even_QMARK_(cljs.core.count(args))){ } else { throw ["invalid object definition ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(id)," args: ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([args], 0))].join(''); } if(cljs.core.contains_QMARK_(cljs.core.deref(shadow.object.object_defs),id)){ console.warn(["object already defined ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(id)].join('')); } else { } try{var odef = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.hash_map,args); var reactions = shadow.object.merge_reactions(cljs.core.PersistentArrayMap.EMPTY,new cljs.core.Keyword(null,"on","on",173873944).cljs$core$IFn$_invoke$arity$2(odef,cljs.core.PersistentVector.EMPTY)); var odef__$1 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(odef,new cljs.core.Keyword("shadow.object","id","shadow.object/id",-647954841),id,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633),reactions], 0)); var odef__$2 = cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(shadow.object.merge_behaviors,odef__$1,cljs.core.reverse(new cljs.core.Keyword(null,"behaviors","behaviors",120724909).cljs$core$IFn$_invoke$arity$2(odef__$1,cljs.core.PersistentVector.EMPTY))); cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.object_defs,cljs.core.assoc,id,odef__$2); return odef__$2; }catch (e37840){if((e37840 instanceof Object)){ var e = e37840; throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("failed to define object",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"id","id",-1388402092),id,new cljs.core.Keyword(null,"args","args",1315556576),args], null)); } else { throw e37840; } }})); (shadow.object.define.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ (shadow.object.define.cljs$lang$applyTo = (function (seq37828){ var G__37829 = cljs.core.first(seq37828); var seq37828__$1 = cljs.core.next(seq37828); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__37829,seq37828__$1); })); shadow.object.merge_defaults = (function shadow$object$merge_defaults(data,type){ var defaults = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.object_defs),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [type,new cljs.core.Keyword(null,"defaults","defaults",976027214)], null)); if((defaults == null)){ return data; } else { if(cljs.core.map_QMARK_(defaults)){ return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([defaults,data], 0)); } else { if(cljs.core.fn_QMARK_(defaults)){ return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([(defaults.cljs$core$IFn$_invoke$arity$0 ? defaults.cljs$core$IFn$_invoke$arity$0() : defaults.call(null)),data], 0)); } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("invalid object defaults",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"defaults","defaults",976027214),defaults,new cljs.core.Keyword(null,"type","type",1174270348),type], null)); } } } }); shadow.object.make_dom = (function shadow$object$make_dom(var_args){ var G__37853 = arguments.length; switch (G__37853) { case 3: return shadow.object.make_dom.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; case 4: return shadow.object.make_dom.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.make_dom.cljs$core$IFn$_invoke$arity$3 = (function (oref,dom_key,events_key){ return shadow.object.make_dom.cljs$core$IFn$_invoke$arity$4(oref,dom_key,events_key,null); })); (shadow.object.make_dom.cljs$core$IFn$_invoke$arity$4 = (function (oref,dom_key,events_key,value){ var dom_fn = (((dom_key instanceof cljs.core.Keyword))?shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$2(oref,dom_key):dom_key); var events = (((events_key instanceof cljs.core.Keyword))?shadow.object.get_type_attr.cljs$core$IFn$_invoke$arity$3(oref,events_key,cljs.core.PersistentVector.EMPTY):events_key); var dom = (function (){var G__37871 = (dom_fn.cljs$core$IFn$_invoke$arity$2 ? dom_fn.cljs$core$IFn$_invoke$arity$2(oref,value) : dom_fn.call(null,oref,value)); return (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__37871) : shadow.dom.build.call(null,G__37871)); })(); shadow.object.bind_dom_events(oref,dom,events); return dom; })); (shadow.object.make_dom.cljs$lang$maxFixedArity = 4); shadow.object.alive_QMARK_ = (function shadow$object$alive_QMARK_(obj){ return cljs.core.contains_QMARK_(cljs.core.deref(shadow.object.instances),shadow.object._id(obj)); }); /** * @constructor * @implements {cljs.core.IRecord} * @implements {cljs.core.IKVReduce} * @implements {cljs.core.IEquiv} * @implements {cljs.core.IHash} * @implements {cljs.core.ICollection} * @implements {cljs.core.ICounted} * @implements {cljs.core.ISeqable} * @implements {cljs.core.IMeta} * @implements {cljs.core.ICloneable} * @implements {cljs.core.IPrintWithWriter} * @implements {cljs.core.IIterable} * @implements {cljs.core.IWithMeta} * @implements {cljs.core.IAssociative} * @implements {cljs.core.IMap} * @implements {cljs.core.ILookup} */ shadow.object.Watch = (function (key,handler,__meta,__extmap,__hash){ this.key = key; this.handler = handler; this.__meta = __meta; this.__extmap = __extmap; this.__hash = __hash; this.cljs$lang$protocol_mask$partition0$ = 2230716170; this.cljs$lang$protocol_mask$partition1$ = 139264; }); (shadow.object.Watch.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this__5323__auto__,k__5324__auto__){ var self__ = this; var this__5323__auto____$1 = this; return this__5323__auto____$1.cljs$core$ILookup$_lookup$arity$3(null,k__5324__auto__,null); })); (shadow.object.Watch.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5325__auto__,k37879,else__5326__auto__){ var self__ = this; var this__5325__auto____$1 = this; var G__37892 = k37879; var G__37892__$1 = (((G__37892 instanceof cljs.core.Keyword))?G__37892.fqn:null); switch (G__37892__$1) { case "key": return self__.key; break; case "handler": return self__.handler; break; default: return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k37879,else__5326__auto__); } })); (shadow.object.Watch.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5343__auto__,f__5344__auto__,init__5345__auto__){ var self__ = this; var this__5343__auto____$1 = this; return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5346__auto__,p__37897){ var vec__37898 = p__37897; var k__5347__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37898,(0),null); var v__5348__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__37898,(1),null); return (f__5344__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5344__auto__.cljs$core$IFn$_invoke$arity$3(ret__5346__auto__,k__5347__auto__,v__5348__auto__) : f__5344__auto__.call(null,ret__5346__auto__,k__5347__auto__,v__5348__auto__)); }),init__5345__auto__,this__5343__auto____$1); })); (shadow.object.Watch.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__5338__auto__,writer__5339__auto__,opts__5340__auto__){ var self__ = this; var this__5338__auto____$1 = this; var pr_pair__5341__auto__ = (function (keyval__5342__auto__){ return cljs.core.pr_sequential_writer(writer__5339__auto__,cljs.core.pr_writer,""," ","",opts__5340__auto__,keyval__5342__auto__); }); return cljs.core.pr_sequential_writer(writer__5339__auto__,pr_pair__5341__auto__,"#shadow.object.Watch{",", ","}",opts__5340__auto__,cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"key","key",-1516042587),self__.key],null)),(new cljs.core.PersistentVector(null,2,(5),cljs.core.PersistentVector.EMPTY_NODE,[new cljs.core.Keyword(null,"handler","handler",-195596612),self__.handler],null))], null),self__.__extmap)); })); (shadow.object.Watch.prototype.cljs$core$IIterable$_iterator$arity$1 = (function (G__37878){ var self__ = this; var G__37878__$1 = this; return (new cljs.core.RecordIter((0),G__37878__$1,2,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"key","key",-1516042587),new cljs.core.Keyword(null,"handler","handler",-195596612)], null),(cljs.core.truth_(self__.__extmap)?cljs.core._iterator(self__.__extmap):cljs.core.nil_iter()))); })); (shadow.object.Watch.prototype.cljs$core$IMeta$_meta$arity$1 = (function (this__5321__auto__){ var self__ = this; var this__5321__auto____$1 = this; return self__.__meta; })); (shadow.object.Watch.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__5318__auto__){ var self__ = this; var this__5318__auto____$1 = this; return (new shadow.object.Watch(self__.key,self__.handler,self__.__meta,self__.__extmap,self__.__hash)); })); (shadow.object.Watch.prototype.cljs$core$ICounted$_count$arity$1 = (function (this__5327__auto__){ var self__ = this; var this__5327__auto____$1 = this; return (2 + cljs.core.count(self__.__extmap)); })); (shadow.object.Watch.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__5319__auto__){ var self__ = this; var this__5319__auto____$1 = this; var h__5134__auto__ = self__.__hash; if((!((h__5134__auto__ == null)))){ return h__5134__auto__; } else { var h__5134__auto____$1 = (function (coll__5320__auto__){ return (-17677043 ^ cljs.core.hash_unordered_coll(coll__5320__auto__)); })(this__5319__auto____$1); (self__.__hash = h__5134__auto____$1); return h__5134__auto____$1; } })); (shadow.object.Watch.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this37880,other37881){ var self__ = this; var this37880__$1 = this; return (((!((other37881 == null)))) && ((((this37880__$1.constructor === other37881.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37880__$1.key,other37881.key)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37880__$1.handler,other37881.handler)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this37880__$1.__extmap,other37881.__extmap))))))))); })); (shadow.object.Watch.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5333__auto__,k__5334__auto__){ var self__ = this; var this__5333__auto____$1 = this; if(cljs.core.contains_QMARK_(new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"key","key",-1516042587),null,new cljs.core.Keyword(null,"handler","handler",-195596612),null], null), null),k__5334__auto__)){ return cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(cljs.core._with_meta(cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,this__5333__auto____$1),self__.__meta),k__5334__auto__); } else { return (new shadow.object.Watch(self__.key,self__.handler,self__.__meta,cljs.core.not_empty(cljs.core.dissoc.cljs$core$IFn$_invoke$arity$2(self__.__extmap,k__5334__auto__)),null)); } })); (shadow.object.Watch.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5330__auto__,k37879){ var self__ = this; var this__5330__auto____$1 = this; var G__37923 = k37879; var G__37923__$1 = (((G__37923 instanceof cljs.core.Keyword))?G__37923.fqn:null); switch (G__37923__$1) { case "key": case "handler": return true; break; default: return cljs.core.contains_QMARK_(self__.__extmap,k37879); } })); (shadow.object.Watch.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5331__auto__,k__5332__auto__,G__37878){ var self__ = this; var this__5331__auto____$1 = this; var pred__37927 = cljs.core.keyword_identical_QMARK_; var expr__37928 = k__5332__auto__; if(cljs.core.truth_((pred__37927.cljs$core$IFn$_invoke$arity$2 ? pred__37927.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"key","key",-1516042587),expr__37928) : pred__37927.call(null,new cljs.core.Keyword(null,"key","key",-1516042587),expr__37928)))){ return (new shadow.object.Watch(G__37878,self__.handler,self__.__meta,self__.__extmap,null)); } else { if(cljs.core.truth_((pred__37927.cljs$core$IFn$_invoke$arity$2 ? pred__37927.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"handler","handler",-195596612),expr__37928) : pred__37927.call(null,new cljs.core.Keyword(null,"handler","handler",-195596612),expr__37928)))){ return (new shadow.object.Watch(self__.key,G__37878,self__.__meta,self__.__extmap,null)); } else { return (new shadow.object.Watch(self__.key,self__.handler,self__.__meta,cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(self__.__extmap,k__5332__auto__,G__37878),null)); } } })); (shadow.object.Watch.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5336__auto__){ var self__ = this; var this__5336__auto____$1 = this; return cljs.core.seq(cljs.core.concat.cljs$core$IFn$_invoke$arity$2(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(new cljs.core.MapEntry(new cljs.core.Keyword(null,"key","key",-1516042587),self__.key,null)),(new cljs.core.MapEntry(new cljs.core.Keyword(null,"handler","handler",-195596612),self__.handler,null))], null),self__.__extmap)); })); (shadow.object.Watch.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (this__5322__auto__,G__37878){ var self__ = this; var this__5322__auto____$1 = this; return (new shadow.object.Watch(self__.key,self__.handler,G__37878,self__.__extmap,self__.__hash)); })); (shadow.object.Watch.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5328__auto__,entry__5329__auto__){ var self__ = this; var this__5328__auto____$1 = this; if(cljs.core.vector_QMARK_(entry__5329__auto__)){ return this__5328__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null,cljs.core._nth(entry__5329__auto__,(0)),cljs.core._nth(entry__5329__auto__,(1))); } else { return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5328__auto____$1,entry__5329__auto__); } })); (shadow.object.Watch.getBasis = (function (){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"key","key",124488940,null),new cljs.core.Symbol(null,"handler","handler",1444934915,null)], null); })); (shadow.object.Watch.cljs$lang$type = true); (shadow.object.Watch.cljs$lang$ctorPrSeq = (function (this__5369__auto__){ return (new cljs.core.List(null,"shadow.object/Watch",null,(1),null)); })); (shadow.object.Watch.cljs$lang$ctorPrWriter = (function (this__5369__auto__,writer__5370__auto__){ return cljs.core._write(writer__5370__auto__,"shadow.object/Watch"); })); /** * Positional factory function for shadow.object/Watch. */ shadow.object.__GT_Watch = (function shadow$object$__GT_Watch(key,handler){ return (new shadow.object.Watch(key,handler,null,null,null)); }); /** * Factory function for shadow.object/Watch, taking a map of keywords to field values. */ shadow.object.map__GT_Watch = (function shadow$object$map__GT_Watch(G__37884){ var extmap__5365__auto__ = (function (){var G__37951 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__37884,new cljs.core.Keyword(null,"key","key",-1516042587),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"handler","handler",-195596612)], 0)); if(cljs.core.record_QMARK_(G__37884)){ return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__37951); } else { return G__37951; } })(); return (new shadow.object.Watch(new cljs.core.Keyword(null,"key","key",-1516042587).cljs$core$IFn$_invoke$arity$1(G__37884),new cljs.core.Keyword(null,"handler","handler",-195596612).cljs$core$IFn$_invoke$arity$1(G__37884),null,cljs.core.not_empty(extmap__5365__auto__),null)); }); /** * @constructor * @implements {cljs.core.IWatchable} * @implements {cljs.core.IEquiv} * @implements {shadow.object.IObject} * @implements {cljs.core.async.impl.protocols.ReadPort} * @implements {cljs.core.IDeref} * @implements {shadow.dom.IElement} * @implements {cljs.core.IPrintWithWriter} * @implements {shadow.dom.SVGElement} * @implements {cljs.core.ILookup} */ shadow.object.ObjectRef = (function (id,type,data,watches,result_chan){ this.id = id; this.type = type; this.data = data; this.watches = watches; this.result_chan = result_chan; this.cljs$lang$protocol_mask$partition0$ = 2149613824; this.cljs$lang$protocol_mask$partition1$ = 2; }); (shadow.object.ObjectRef.prototype.cljs$core$async$impl$protocols$ReadPort$ = cljs.core.PROTOCOL_SENTINEL); (shadow.object.ObjectRef.prototype.cljs$core$async$impl$protocols$ReadPort$take_BANG_$arity$2 = (function (this$,handler){ var self__ = this; var this$__$1 = this; return cljs.core.async.impl.protocols.take_BANG_(self__.result_chan,handler); })); (shadow.object.ObjectRef.prototype.toString = (function (){ var self__ = this; var this$ = this; return cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0)); })); (shadow.object.ObjectRef.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (this$,k){ var self__ = this; var this$__$1 = this; if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"parent","parent",-878878779),k)){ return shadow.object.get_parent(this$__$1); } else { return cljs.core.get.cljs$core$IFn$_invoke$arity$2(self__.data,k); } })); (shadow.object.ObjectRef.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this$,k,d){ var self__ = this; var this$__$1 = this; if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"parent","parent",-878878779),k)){ return shadow.object.get_parent(this$__$1); } else { return cljs.core.get.cljs$core$IFn$_invoke$arity$3(self__.data,k,d); } })); (shadow.object.ObjectRef.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this$,writer,opts){ var self__ = this; var this$__$1 = this; return cljs.core._write(writer,["#"].join('')); })); (shadow.object.ObjectRef.prototype.shadow$dom$SVGElement$ = cljs.core.PROTOCOL_SENTINEL); (shadow.object.ObjectRef.prototype.shadow$dom$SVGElement$_to_svg$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311).cljs$core$IFn$_invoke$arity$1(self__.data); })); (shadow.object.ObjectRef.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this$,other){ var self__ = this; var this$__$1 = this; return (((other instanceof shadow.object.ObjectRef)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this$__$1.shadow$object$IObject$_id$arity$1(null),shadow.object._id(other)))); })); (shadow.object.ObjectRef.prototype.shadow$dom$IElement$ = cljs.core.PROTOCOL_SENTINEL); (shadow.object.ObjectRef.prototype.shadow$dom$IElement$_to_dom$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311).cljs$core$IFn$_invoke$arity$1(self__.data); })); (shadow.object.ObjectRef.prototype.cljs$core$IWatchable$_notify_watches$arity$3 = (function (this$,oldval,newval){ var self__ = this; var this$__$1 = this; throw (new Error("who be calling?")); })); (shadow.object.ObjectRef.prototype.cljs$core$IWatchable$_add_watch$arity$3 = (function (this$,key,f){ var self__ = this; var this$__$1 = this; return (self__.watches = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(self__.watches,(new shadow.object.Watch(key,f,null,null,null)))); })); (shadow.object.ObjectRef.prototype.cljs$core$IWatchable$_remove_watch$arity$2 = (function (this$,key){ var self__ = this; var this$__$1 = this; return (self__.watches = cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__37956_SHARP_){ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(key,new cljs.core.Keyword(null,"key","key",-1516042587).cljs$core$IFn$_invoke$arity$1(p1__37956_SHARP_)); }),self__.watches)); })); (shadow.object.ObjectRef.prototype.shadow$object$IObject$ = cljs.core.PROTOCOL_SENTINEL); (shadow.object.ObjectRef.prototype.shadow$object$IObject$_id$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return self__.id; })); (shadow.object.ObjectRef.prototype.shadow$object$IObject$_type$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return self__.type; })); (shadow.object.ObjectRef.prototype.shadow$object$IObject$_data$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return self__.data; })); (shadow.object.ObjectRef.prototype.shadow$object$IObject$_update$arity$2 = (function (this$,update_fn){ var self__ = this; var this$__$1 = this; var old = self__.data; var new$ = (update_fn.cljs$core$IFn$_invoke$arity$1 ? update_fn.cljs$core$IFn$_invoke$arity$1(self__.data) : update_fn.call(null,self__.data)); (self__.data = new$); var seq__38094 = cljs.core.seq(self__.watches); var chunk__38095 = null; var count__38096 = (0); var i__38097 = (0); while(true){ if((i__38097 < count__38096)){ var map__38126 = chunk__38095.cljs$core$IIndexed$_nth$arity$2(null,i__38097); var map__38126__$1 = cljs.core.__destructure_map(map__38126); var watch = map__38126__$1; var key = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38126__$1,new cljs.core.Keyword(null,"key","key",-1516042587)); var handler = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38126__$1,new cljs.core.Keyword(null,"handler","handler",-195596612)); if(shadow.object.alive_QMARK_(this$__$1)){ (handler.cljs$core$IFn$_invoke$arity$4 ? handler.cljs$core$IFn$_invoke$arity$4(key,this$__$1,old,new$) : handler.call(null,key,this$__$1,old,new$)); } else { } var G__38602 = seq__38094; var G__38603 = chunk__38095; var G__38604 = count__38096; var G__38605 = (i__38097 + (1)); seq__38094 = G__38602; chunk__38095 = G__38603; count__38096 = G__38604; i__38097 = G__38605; continue; } else { var temp__5823__auto__ = cljs.core.seq(seq__38094); if(temp__5823__auto__){ var seq__38094__$1 = temp__5823__auto__; if(cljs.core.chunked_seq_QMARK_(seq__38094__$1)){ var c__5548__auto__ = cljs.core.chunk_first(seq__38094__$1); var G__38606 = cljs.core.chunk_rest(seq__38094__$1); var G__38607 = c__5548__auto__; var G__38608 = cljs.core.count(c__5548__auto__); var G__38609 = (0); seq__38094 = G__38606; chunk__38095 = G__38607; count__38096 = G__38608; i__38097 = G__38609; continue; } else { var map__38131 = cljs.core.first(seq__38094__$1); var map__38131__$1 = cljs.core.__destructure_map(map__38131); var watch = map__38131__$1; var key = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38131__$1,new cljs.core.Keyword(null,"key","key",-1516042587)); var handler = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__38131__$1,new cljs.core.Keyword(null,"handler","handler",-195596612)); if(shadow.object.alive_QMARK_(this$__$1)){ (handler.cljs$core$IFn$_invoke$arity$4 ? handler.cljs$core$IFn$_invoke$arity$4(key,this$__$1,old,new$) : handler.call(null,key,this$__$1,old,new$)); } else { } var G__38610 = cljs.core.next(seq__38094__$1); var G__38611 = null; var G__38612 = (0); var G__38613 = (0); seq__38094 = G__38610; chunk__38095 = G__38611; count__38096 = G__38612; i__38097 = G__38613; continue; } } else { return null; } } break; } })); (shadow.object.ObjectRef.prototype.shadow$object$IObject$_destroy_BANG_$arity$2 = (function (this$,cause){ var self__ = this; var this$__$1 = this; var parent_id = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.instance_parent),self__.id); var seq__38136_38614 = cljs.core.seq(shadow.object.get_children(this$__$1)); var chunk__38137_38615 = null; var count__38138_38616 = (0); var i__38139_38617 = (0); while(true){ if((i__38139_38617 < count__38138_38616)){ var child_38618 = chunk__38137_38615.cljs$core$IIndexed$_nth$arity$2(null,i__38139_38617); shadow.object._destroy_BANG_(child_38618,new cljs.core.Keyword(null,"parent","parent",-878878779)); var G__38619 = seq__38136_38614; var G__38620 = chunk__38137_38615; var G__38621 = count__38138_38616; var G__38622 = (i__38139_38617 + (1)); seq__38136_38614 = G__38619; chunk__38137_38615 = G__38620; count__38138_38616 = G__38621; i__38139_38617 = G__38622; continue; } else { var temp__5823__auto___38625 = cljs.core.seq(seq__38136_38614); if(temp__5823__auto___38625){ var seq__38136_38626__$1 = temp__5823__auto___38625; if(cljs.core.chunked_seq_QMARK_(seq__38136_38626__$1)){ var c__5548__auto___38627 = cljs.core.chunk_first(seq__38136_38626__$1); var G__38628 = cljs.core.chunk_rest(seq__38136_38626__$1); var G__38629 = c__5548__auto___38627; var G__38630 = cljs.core.count(c__5548__auto___38627); var G__38631 = (0); seq__38136_38614 = G__38628; chunk__38137_38615 = G__38629; count__38138_38616 = G__38630; i__38139_38617 = G__38631; continue; } else { var child_38632 = cljs.core.first(seq__38136_38626__$1); shadow.object._destroy_BANG_(child_38632,new cljs.core.Keyword(null,"parent","parent",-878878779)); var G__38633 = cljs.core.next(seq__38136_38626__$1); var G__38634 = null; var G__38635 = (0); var G__38636 = (0); seq__38136_38614 = G__38633; chunk__38137_38615 = G__38634; count__38138_38616 = G__38635; i__38139_38617 = G__38636; continue; } } else { } } break; } shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(this$__$1,new cljs.core.Keyword(null,"destroy","destroy",-843660405),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cause], 0)); shadow.object.dom_destroy(this$__$1,cause); var return_value_38637 = new cljs.core.Keyword("shadow.object","return-value","shadow.object/return-value",1397593360).cljs$core$IFn$_invoke$arity$1(this$__$1); if((return_value_38637 == null)){ } else { cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(self__.result_chan,return_value_38637); } cljs.core.async.close_BANG_(self__.result_chan); cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.object.instances,cljs.core.dissoc,self__.id); cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(shadow.object.instance_parent,cljs.core.dissoc,self__.id); if(cljs.core.truth_(parent_id)){ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$variadic(shadow.object.instance_children,cljs.core.update_in,new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [parent_id], null),cljs.core.disj,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([self__.id], 0)); } else { return null; } })); (shadow.object.ObjectRef.prototype.cljs$core$IDeref$_deref$arity$1 = (function (this$){ var self__ = this; var this$__$1 = this; return self__.data; })); (shadow.object.ObjectRef.getBasis = (function (){ return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"id","id",252129435,null),new cljs.core.Symbol(null,"type","type",-1480165421,null),cljs.core.with_meta(new cljs.core.Symbol(null,"data","data",1407862150,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null)),cljs.core.with_meta(new cljs.core.Symbol(null,"watches","watches",1367433992,null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"mutable","mutable",875778266),true], null)),new cljs.core.Symbol(null,"result-chan","result-chan",3070926,null)], null); })); (shadow.object.ObjectRef.cljs$lang$type = true); (shadow.object.ObjectRef.cljs$lang$ctorStr = "shadow.object/ObjectRef"); (shadow.object.ObjectRef.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ return cljs.core._write(writer__5311__auto__,"shadow.object/ObjectRef"); })); /** * Positional factory function for shadow.object/ObjectRef. */ shadow.object.__GT_ObjectRef = (function shadow$object$__GT_ObjectRef(id,type,data,watches,result_chan){ return (new shadow.object.ObjectRef(id,type,data,watches,result_chan)); }); shadow.object.add_reaction_BANG_ = (function shadow$object$add_reaction_BANG_(var_args){ var G__38168 = arguments.length; switch (G__38168) { case 3: return shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; case 2: return shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$3 = (function (oref,ev,handler_fn){ return shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [ev,handler_fn], null)); })); (shadow.object.add_reaction_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (oref,list){ return shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.update_in,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633)], null),shadow.object.merge_reactions,list], 0)); })); (shadow.object.add_reaction_BANG_.cljs$lang$maxFixedArity = 3); shadow.object.bind_change = (function shadow$object$bind_change(var_args){ var G__38188 = arguments.length; switch (G__38188) { case 3: return shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; case 4: return shadow.object.bind_change.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3 = (function (oref,attr,callback){ return shadow.object.bind_change.cljs$core$IFn$_invoke$arity$4(oref,attr,callback,cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("bind-change")); })); (shadow.object.bind_change.cljs$core$IFn$_invoke$arity$4 = (function (oref,attr,callback,watch_key){ if((((!((oref == null))))?((((false) || ((cljs.core.PROTOCOL_SENTINEL === oref.shadow$object$IObject$))))?true:(((!oref.cljs$lang$protocol_mask$partition$))?cljs.core.native_satisfies_QMARK_(shadow.object.IObject,oref):false)):cljs.core.native_satisfies_QMARK_(shadow.object.IObject,oref))){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("binding currently only supports shadow objects, other atoms might leak, may add later",new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"oref","oref",-1547494840),oref,new cljs.core.Keyword(null,"attr","attr",-604132353),attr], null)); } var attr__$1 = ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null)); return cljs.core.add_watch(oref,watch_key,(function shadow$object$bind_change_watch(_,___$1,old,new$){ var ov = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(old,attr__$1); var nv = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(new$,attr__$1); if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ov,nv)){ return null; } else { return (callback.cljs$core$IFn$_invoke$arity$2 ? callback.cljs$core$IFn$_invoke$arity$2(ov,nv) : callback.call(null,ov,nv)); } })); })); (shadow.object.bind_change.cljs$lang$maxFixedArity = 4); shadow.object.dom_enter = (function shadow$object$dom_enter(parent,child){ shadow.dom.append.cljs$core$IFn$_invoke$arity$2(parent,child); if(cljs.core.truth_(shadow.dom.contains_QMARK_.cljs$core$IFn$_invoke$arity$1(parent))){ return shadow.object.notify_tree_BANG_(child,new cljs.core.Keyword("dom","entered","dom/entered",506699596)); } else { return null; } }); shadow.object.create = (function shadow$object$create(var_args){ var args__5755__auto__ = []; var len__5749__auto___38649 = arguments.length; var i__5750__auto___38650 = (0); while(true){ if((i__5750__auto___38650 < len__5749__auto___38649)){ args__5755__auto__.push((arguments[i__5750__auto___38650])); var G__38651 = (i__5750__auto___38650 + (1)); i__5750__auto___38650 = G__38651; continue; } else { } break; } var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null); return shadow.object.create.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__auto__); }); (shadow.object.create.cljs$core$IFn$_invoke$arity$variadic = (function (type,args,node_children){ if(cljs.core.contains_QMARK_(cljs.core.deref(shadow.object.object_defs),type)){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["cannot create unknown child type: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(type)].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),type,new cljs.core.Keyword(null,"args","args",1315556576),args], null)); } if(cljs.core.map_QMARK_(args)){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("so/create second arg must be a map",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"args","args",1315556576),args], null)); } var oid = shadow.object.next_id(); var parent = new cljs.core.Keyword(null,"parent","parent",-878878779).cljs$core$IFn$_invoke$arity$1(args); var result_chan = cljs.core.async.chan.cljs$core$IFn$_invoke$arity$1((1)); var odef = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(shadow.object.object_defs),type); var obj = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(shadow.object.merge_defaults(cljs.core.assoc.cljs$core$IFn$_invoke$arity$variadic(args,new cljs.core.Keyword("shadow.object","object-id","shadow.object/object-id",-685993804),oid,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633),cljs.core.get.cljs$core$IFn$_invoke$arity$3(odef,new cljs.core.Keyword("shadow.object","reactions","shadow.object/reactions",1966199633),cljs.core.PersistentArrayMap.EMPTY)], 0)),type),new cljs.core.Keyword(null,"parent","parent",-878878779),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword(null,"dom","dom",-1236537922)], 0)); var oref = (new shadow.object.ObjectRef(oid,type,obj,cljs.core.PersistentVector.EMPTY,result_chan)); cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(shadow.object.instances,cljs.core.assoc,oid,oref); if(cljs.core.truth_(parent)){ shadow.object.set_parent_BANG_(oref,parent); } else { } shadow.object.notify_BANG_(oref,new cljs.core.Keyword(null,"init","init",-1875481434)); var dom_events_38654 = new cljs.core.Keyword("dom","events","dom/events",1793437527).cljs$core$IFn$_invoke$arity$2(odef,cljs.core.PersistentVector.EMPTY); var temp__5821__auto___38655 = new cljs.core.Keyword(null,"dom","dom",-1236537922).cljs$core$IFn$_invoke$arity$1(args); if(cljs.core.truth_(temp__5821__auto___38655)){ var dom_38656 = temp__5821__auto___38655; shadow.dom.set_data(dom_38656,new cljs.core.Keyword(null,"oid","oid",-768692334),oid); shadow.object.bind_dom_events(oref,dom_38656,dom_events_38654); shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311),dom_38656], 0)); shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,new cljs.core.Keyword("dom","init","dom/init",-1875647652),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([dom_38656], 0)); } else { var temp__5823__auto___38658 = new cljs.core.Keyword(null,"dom","dom",-1236537922).cljs$core$IFn$_invoke$arity$1(odef); if(cljs.core.truth_(temp__5823__auto___38658)){ var dom_fn_38660 = temp__5823__auto___38658; var dom_38661 = (function (){var G__38219 = (dom_fn_38660.cljs$core$IFn$_invoke$arity$2 ? dom_fn_38660.cljs$core$IFn$_invoke$arity$2(oref,node_children) : dom_fn_38660.call(null,oref,node_children)); return (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__38219) : shadow.dom.build.call(null,G__38219)); })(); shadow.dom.set_data(dom_38661,new cljs.core.Keyword(null,"oid","oid",-768692334),oid); shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,cljs.core.assoc,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new cljs.core.Keyword("shadow.object","dom","shadow.object/dom",-1238263311),dom_38661], 0)); shadow.object.bind_dom_events(oref,dom_38661,dom_events_38654); shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(oref,new cljs.core.Keyword("dom","init","dom/init",-1875647652),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([dom_38661], 0)); } else { } } var temp__5823__auto___38662 = new cljs.core.Keyword(null,"watch","watch",380988277).cljs$core$IFn$_invoke$arity$1(odef); if(cljs.core.truth_(temp__5823__auto___38662)){ var watches_38664 = temp__5823__auto___38662; var seq__38221_38665 = cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),watches_38664)); var chunk__38222_38666 = null; var count__38223_38667 = (0); var i__38224_38668 = (0); while(true){ if((i__38224_38668 < count__38223_38667)){ var vec__38234_38672 = chunk__38222_38666.cljs$core$IIndexed$_nth$arity$2(null,i__38224_38668); var attr_38673 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38234_38672,(0),null); var handler_38674 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38234_38672,(1),null); shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr_38673,((function (seq__38221_38665,chunk__38222_38666,count__38223_38667,i__38224_38668,vec__38234_38672,attr_38673,handler_38674,watches_38664,temp__5823__auto___38662,oid,parent,result_chan,odef,obj,oref){ return (function (old,new$){ return (handler_38674.cljs$core$IFn$_invoke$arity$3 ? handler_38674.cljs$core$IFn$_invoke$arity$3(oref,old,new$) : handler_38674.call(null,oref,old,new$)); });})(seq__38221_38665,chunk__38222_38666,count__38223_38667,i__38224_38668,vec__38234_38672,attr_38673,handler_38674,watches_38664,temp__5823__auto___38662,oid,parent,result_chan,odef,obj,oref)) ); var G__38675 = seq__38221_38665; var G__38676 = chunk__38222_38666; var G__38677 = count__38223_38667; var G__38678 = (i__38224_38668 + (1)); seq__38221_38665 = G__38675; chunk__38222_38666 = G__38676; count__38223_38667 = G__38677; i__38224_38668 = G__38678; continue; } else { var temp__5823__auto___38679__$1 = cljs.core.seq(seq__38221_38665); if(temp__5823__auto___38679__$1){ var seq__38221_38683__$1 = temp__5823__auto___38679__$1; if(cljs.core.chunked_seq_QMARK_(seq__38221_38683__$1)){ var c__5548__auto___38684 = cljs.core.chunk_first(seq__38221_38683__$1); var G__38687 = cljs.core.chunk_rest(seq__38221_38683__$1); var G__38688 = c__5548__auto___38684; var G__38689 = cljs.core.count(c__5548__auto___38684); var G__38690 = (0); seq__38221_38665 = G__38687; chunk__38222_38666 = G__38688; count__38223_38667 = G__38689; i__38224_38668 = G__38690; continue; } else { var vec__38240_38693 = cljs.core.first(seq__38221_38683__$1); var attr_38694 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38240_38693,(0),null); var handler_38695 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38240_38693,(1),null); shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr_38694,((function (seq__38221_38665,chunk__38222_38666,count__38223_38667,i__38224_38668,vec__38240_38693,attr_38694,handler_38695,seq__38221_38683__$1,temp__5823__auto___38679__$1,watches_38664,temp__5823__auto___38662,oid,parent,result_chan,odef,obj,oref){ return (function (old,new$){ return (handler_38695.cljs$core$IFn$_invoke$arity$3 ? handler_38695.cljs$core$IFn$_invoke$arity$3(oref,old,new$) : handler_38695.call(null,oref,old,new$)); });})(seq__38221_38665,chunk__38222_38666,count__38223_38667,i__38224_38668,vec__38240_38693,attr_38694,handler_38695,seq__38221_38683__$1,temp__5823__auto___38679__$1,watches_38664,temp__5823__auto___38662,oid,parent,result_chan,odef,obj,oref)) ); var G__38699 = cljs.core.next(seq__38221_38683__$1); var G__38700 = null; var G__38701 = (0); var G__38702 = (0); seq__38221_38665 = G__38699; chunk__38222_38666 = G__38700; count__38223_38667 = G__38701; i__38224_38668 = G__38702; continue; } } else { } } break; } } else { } return oref; })); (shadow.object.create.cljs$lang$maxFixedArity = (2)); /** @this {Function} */ (shadow.object.create.cljs$lang$applyTo = (function (seq38207){ var G__38209 = cljs.core.first(seq38207); var seq38207__$1 = cljs.core.next(seq38207); var G__38210 = cljs.core.first(seq38207__$1); var seq38207__$2 = cljs.core.next(seq38207__$1); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__38209,G__38210,seq38207__$2); })); /** * [oref attr node-gen] produces a node via (node-gen new-value) * watches obj for changes and replaces the generated node on change (node-gen defaults to str) * * only use if the node has no attached behavior like clicks, use bind with an extra object for those */ shadow.object.bind_simple = (function shadow$object$bind_simple(var_args){ var G__38248 = arguments.length; switch (G__38248) { case 2: return shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$2 = (function (oref,attr){ return shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$3(oref,attr,cljs.core.str); })); (shadow.object.bind_simple.cljs$core$IFn$_invoke$arity$3 = (function (oref,attr,node_gen){ var attr__$1 = ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null)); var node_get = (function (p1__38246_SHARP_){ var G__38251 = (node_gen.cljs$core$IFn$_invoke$arity$1 ? node_gen.cljs$core$IFn$_invoke$arity$1(p1__38246_SHARP_) : node_gen.call(null,p1__38246_SHARP_)); return (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__38251) : shadow.dom.build.call(null,G__38251)); }); var node = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(node_get(cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(oref,attr__$1))); var bind_key = cljs.core.gensym.cljs$core$IFn$_invoke$arity$1("bind"); shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr__$1,(function (old,new$){ var new_node = node_get(new$); var current_node = cljs.core.deref(node); shadow.dom.replace_node(current_node,new_node); return cljs.core.reset_BANG_(node,new_node); })); return cljs.core.deref(node); })); (shadow.object.bind_simple.cljs$lang$maxFixedArity = 3); /** * bind the given attribute a child item * the item will be recreated whenever the value changes (old one will be destroyed) */ shadow.object.bind = (function shadow$object$bind(oref,attr,item_type,item_key,item_attrs){ var attr__$1 = ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null)); var curval = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(oref,attr__$1); var make_child_fn = (function (value){ return shadow.object.create(item_type,cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([item_attrs,cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword(null,"parent","parent",-878878779),oref,item_key,value])], 0))); }); var child = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(make_child_fn(curval)); shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr__$1,(function (old,new$){ var new_child = make_child_fn(new$); var current_node = cljs.core.deref(child); shadow.dom.replace_node(current_node,new_child); shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(cljs.core.deref(child)); cljs.core.reset_BANG_(child,new_child); return (shadow.object.notify_down_BANG_.cljs$core$IFn$_invoke$arity$2 ? shadow.object.notify_down_BANG_.cljs$core$IFn$_invoke$arity$2(new_child,new cljs.core.Keyword("dom","entered","dom/entered",506699596)) : shadow.object.notify_down_BANG_.call(null,new_child,new cljs.core.Keyword("dom","entered","dom/entered",506699596))); })); return cljs.core.deref(child); }); shadow.object.coll_destroy_children = (function shadow$object$coll_destroy_children(children,c,diff){ var seq__38276_38718 = cljs.core.seq(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(children,(c + diff),c)); var chunk__38277_38719 = null; var count__38278_38720 = (0); var i__38279_38721 = (0); while(true){ if((i__38279_38721 < count__38278_38720)){ var obj_38722 = chunk__38277_38719.cljs$core$IIndexed$_nth$arity$2(null,i__38279_38721); var obj_38723__$1 = shadow.object.get_from_dom(obj_38722); shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(obj_38723__$1); var G__38724 = seq__38276_38718; var G__38725 = chunk__38277_38719; var G__38726 = count__38278_38720; var G__38727 = (i__38279_38721 + (1)); seq__38276_38718 = G__38724; chunk__38277_38719 = G__38725; count__38278_38720 = G__38726; i__38279_38721 = G__38727; continue; } else { var temp__5823__auto___38728 = cljs.core.seq(seq__38276_38718); if(temp__5823__auto___38728){ var seq__38276_38729__$1 = temp__5823__auto___38728; if(cljs.core.chunked_seq_QMARK_(seq__38276_38729__$1)){ var c__5548__auto___38731 = cljs.core.chunk_first(seq__38276_38729__$1); var G__38732 = cljs.core.chunk_rest(seq__38276_38729__$1); var G__38733 = c__5548__auto___38731; var G__38734 = cljs.core.count(c__5548__auto___38731); var G__38735 = (0); seq__38276_38718 = G__38732; chunk__38277_38719 = G__38733; count__38278_38720 = G__38734; i__38279_38721 = G__38735; continue; } else { var obj_38737 = cljs.core.first(seq__38276_38729__$1); var obj_38738__$1 = shadow.object.get_from_dom(obj_38737); shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(obj_38738__$1); var G__38739 = cljs.core.next(seq__38276_38729__$1); var G__38740 = null; var G__38741 = (0); var G__38742 = (0); seq__38276_38718 = G__38739; chunk__38277_38719 = G__38740; count__38278_38720 = G__38741; i__38279_38721 = G__38742; continue; } } else { } } break; } return cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(children,(0),(c + diff)); }); shadow.object.bind_children = (function shadow$object$bind_children(var_args){ var G__38303 = arguments.length; switch (G__38303) { case 5: return shadow.object.bind_children.cljs$core$IFn$_invoke$arity$5((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)])); break; case 6: return shadow.object.bind_children.cljs$core$IFn$_invoke$arity$6((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]),(arguments[(4)]),(arguments[(5)])); break; default: throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join(''))); } }); (shadow.object.bind_children.cljs$core$IFn$_invoke$arity$5 = (function (node,parent,attr,item_type,item_key){ return shadow.object.bind_children.cljs$core$IFn$_invoke$arity$6(node,parent,attr,item_type,item_key,(function (p1__38300_SHARP_){ return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,p1__38300_SHARP_); })); })); (shadow.object.bind_children.cljs$core$IFn$_invoke$arity$6 = (function (node,parent,attr,item_type,item_key,coll_transform){ var attr__$1 = ((cljs.core.sequential_QMARK_(attr))?attr:new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [attr], null)); var update_children = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(true); var coll_dom = (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(node) : shadow.dom.build.call(null,node)); var make_item_fn = (function (p__38306){ var vec__38307 = p__38306; var key = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38307,(0),null); var val = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38307,(1),null); var obj = shadow.object.create(item_type,cljs.core.PersistentArrayMap.createAsIfByAssoc([new cljs.core.Keyword(null,"parent","parent",-878878779),parent,new cljs.core.Keyword("shadow.object","coll-path","shadow.object/coll-path",1583850048),attr__$1,new cljs.core.Keyword("shadow.object","coll-key","shadow.object/coll-key",827543616),key,new cljs.core.Keyword("shadow.object","coll-item-key","shadow.object/coll-item-key",1888444366),item_key,item_key,val])); shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(obj,item_key,(function (old,new$){ var parent_key = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(attr__$1,new cljs.core.Keyword("shadow.object","coll-key","shadow.object/coll-key",827543616).cljs$core$IFn$_invoke$arity$1(obj)); (shadow.object.log.cljs$core$IFn$_invoke$arity$6 ? shadow.object.log.cljs$core$IFn$_invoke$arity$6("direct child update",parent,obj,key,parent_key,new$) : shadow.object.log.call(null,"direct child update",parent,obj,key,parent_key,new$)); cljs.core.reset_BANG_(update_children,false); shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic(parent,cljs.core.assoc_in,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([parent_key,new$], 0)); return cljs.core.reset_BANG_(update_children,true); })); return obj; }); var seq__38331_38745 = cljs.core.seq((function (){var G__38347 = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(parent,attr__$1); return (coll_transform.cljs$core$IFn$_invoke$arity$1 ? coll_transform.cljs$core$IFn$_invoke$arity$1(G__38347) : coll_transform.call(null,G__38347)); })()); var chunk__38332_38746 = null; var count__38333_38747 = (0); var i__38334_38748 = (0); while(true){ if((i__38334_38748 < count__38333_38747)){ var item_38752 = chunk__38332_38746.cljs$core$IIndexed$_nth$arity$2(null,i__38334_38748); shadow.object.dom_enter(coll_dom,make_item_fn(item_38752)); var G__38753 = seq__38331_38745; var G__38755 = chunk__38332_38746; var G__38756 = count__38333_38747; var G__38757 = (i__38334_38748 + (1)); seq__38331_38745 = G__38753; chunk__38332_38746 = G__38755; count__38333_38747 = G__38756; i__38334_38748 = G__38757; continue; } else { var temp__5823__auto___38759 = cljs.core.seq(seq__38331_38745); if(temp__5823__auto___38759){ var seq__38331_38760__$1 = temp__5823__auto___38759; if(cljs.core.chunked_seq_QMARK_(seq__38331_38760__$1)){ var c__5548__auto___38761 = cljs.core.chunk_first(seq__38331_38760__$1); var G__38762 = cljs.core.chunk_rest(seq__38331_38760__$1); var G__38763 = c__5548__auto___38761; var G__38764 = cljs.core.count(c__5548__auto___38761); var G__38765 = (0); seq__38331_38745 = G__38762; chunk__38332_38746 = G__38763; count__38333_38747 = G__38764; i__38334_38748 = G__38765; continue; } else { var item_38767 = cljs.core.first(seq__38331_38760__$1); shadow.object.dom_enter(coll_dom,make_item_fn(item_38767)); var G__38768 = cljs.core.next(seq__38331_38760__$1); var G__38769 = null; var G__38770 = (0); var G__38771 = (0); seq__38331_38745 = G__38768; chunk__38332_38746 = G__38769; count__38333_38747 = G__38770; i__38334_38748 = G__38771; continue; } } else { } } break; } shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(parent,attr__$1,(function shadow$object$bind_children_watch(old,new$){ if(cljs.core.truth_(cljs.core.deref(update_children))){ var children = cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentVector.EMPTY,shadow.dom.children(coll_dom)); var new_coll = cljs.core.vec((coll_transform.cljs$core$IFn$_invoke$arity$1 ? coll_transform.cljs$core$IFn$_invoke$arity$1(new$) : coll_transform.call(null,new$))); var count_children = cljs.core.count(children); var count_new = cljs.core.count(new$); var diff = (count_new - count_children); var children__$1 = (((diff < (0)))?shadow.object.coll_destroy_children(children,count_children,diff):children); var count_children__$1 = (function (){var x__5113__auto__ = count_new; var y__5114__auto__ = count_children; return ((x__5113__auto__ < y__5114__auto__) ? x__5113__auto__ : y__5114__auto__); })(); var n__5616__auto___38772 = count_children__$1; var idx_38773 = (0); while(true){ if((idx_38773 < n__5616__auto___38772)){ var cn_38774 = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(children__$1,idx_38773); var cc_38775 = shadow.object.get_from_dom(cn_38774); var ckey_38776 = new cljs.core.Keyword("shadow.object","coll-key","shadow.object/coll-key",827543616).cljs$core$IFn$_invoke$arity$1(cc_38775); var cval_38777 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cc_38775,item_key); var vec__38383_38778 = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new_coll,idx_38773); var nkey_38779 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38383_38778,(0),null); var nval_38780 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38383_38778,(1),null); if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ckey_38776,nkey_38779)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cval_38777,nval_38780)))){ } else { var new_obj_38781 = make_item_fn(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nkey_38779,nval_38780], null)); shadow.dom.replace_node(cn_38774,new_obj_38781); shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(cc_38775); shadow.object.notify_tree_BANG_(new_obj_38781,new cljs.core.Keyword("dom","entered","dom/entered",506699596)); } var G__38783 = (idx_38773 + (1)); idx_38773 = G__38783; continue; } else { } break; } if((diff > (0))){ var seq__38398_38784 = cljs.core.seq(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(new_coll,count_children__$1,count_new)); var chunk__38399_38785 = null; var count__38400_38786 = (0); var i__38401_38787 = (0); while(true){ if((i__38401_38787 < count__38400_38786)){ var item_38792 = chunk__38399_38785.cljs$core$IIndexed$_nth$arity$2(null,i__38401_38787); shadow.object.dom_enter(coll_dom,make_item_fn(item_38792)); var G__38793 = seq__38398_38784; var G__38794 = chunk__38399_38785; var G__38795 = count__38400_38786; var G__38796 = (i__38401_38787 + (1)); seq__38398_38784 = G__38793; chunk__38399_38785 = G__38794; count__38400_38786 = G__38795; i__38401_38787 = G__38796; continue; } else { var temp__5823__auto___38797 = cljs.core.seq(seq__38398_38784); if(temp__5823__auto___38797){ var seq__38398_38798__$1 = temp__5823__auto___38797; if(cljs.core.chunked_seq_QMARK_(seq__38398_38798__$1)){ var c__5548__auto___38799 = cljs.core.chunk_first(seq__38398_38798__$1); var G__38800 = cljs.core.chunk_rest(seq__38398_38798__$1); var G__38801 = c__5548__auto___38799; var G__38802 = cljs.core.count(c__5548__auto___38799); var G__38803 = (0); seq__38398_38784 = G__38800; chunk__38399_38785 = G__38801; count__38400_38786 = G__38802; i__38401_38787 = G__38803; continue; } else { var item_38804 = cljs.core.first(seq__38398_38798__$1); shadow.object.dom_enter(coll_dom,make_item_fn(item_38804)); var G__38809 = cljs.core.next(seq__38398_38798__$1); var G__38810 = null; var G__38811 = (0); var G__38812 = (0); seq__38398_38784 = G__38809; chunk__38399_38785 = G__38810; count__38400_38786 = G__38811; i__38401_38787 = G__38812; continue; } } else { } } break; } } else { } return shadow.object.notify_BANG_(parent,new cljs.core.Keyword(null,"bind-children-update","bind-children-update",-1610690160)); } else { return null; } })); return coll_dom; })); (shadow.object.bind_children.cljs$lang$maxFixedArity = 6); shadow.object.remove_in_parent_BANG_ = (function shadow$object$remove_in_parent_BANG_(oref){ var parent = shadow.object.get_parent(oref); var key = new cljs.core.Keyword("shadow.object","coll-key","shadow.object/coll-key",827543616).cljs$core$IFn$_invoke$arity$1(oref); var value = cljs.core.get.cljs$core$IFn$_invoke$arity$2(oref,new cljs.core.Keyword("shadow.object","coll-item-key","shadow.object/coll-item-key",1888444366).cljs$core$IFn$_invoke$arity$1(oref)); var path = new cljs.core.Keyword("shadow.object","coll-path","shadow.object/coll-path",1583850048).cljs$core$IFn$_invoke$arity$1(oref); if(cljs.core.truth_((function (){var and__5023__auto__ = key; if(cljs.core.truth_(and__5023__auto__)){ return path; } else { return and__5023__auto__; } })())){ } else { throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2("remove-in-parent! should only be called from items created via so/bind-children",new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"oref","oref",-1547494840),oref], null)); } var coll = cljs.core.get_in.cljs$core$IFn$_invoke$arity$2(parent,path); var new_coll = shadow.util.remove_item_from_coll(coll,key,value); return shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic(parent,new cljs.core.Keyword("bind","update","bind/update",1048601733),cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([path,new_coll], 0)); }); shadow.object.inspect_BANG_ = (function shadow$object$inspect_BANG_(oref){ var G__38412 = "inspect!"; var G__38413 = shadow.object._id(oref); var G__38414 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.object._type(oref)); var G__38415 = cljs.core.clj__GT_js(cljs.core.deref(shadow.object._data(oref))); return (shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__38412,G__38413,G__38414,G__38415) : shadow.object.info.call(null,G__38412,G__38413,G__38414,G__38415)); }); shadow.object.dump_BANG_ = (function shadow$object$dump_BANG_(){ (shadow.object.info.cljs$core$IFn$_invoke$arity$1 ? shadow.object.info.cljs$core$IFn$_invoke$arity$1("--------------- LIVE OBJECTS ------------") : shadow.object.info.call(null,"--------------- LIVE OBJECTS ------------")); var seq__38417_38819 = cljs.core.seq(cljs.core.seq(cljs.core.deref(shadow.object.instances))); var chunk__38418_38820 = null; var count__38419_38821 = (0); var i__38420_38822 = (0); while(true){ if((i__38420_38822 < count__38419_38821)){ var vec__38435_38824 = chunk__38418_38820.cljs$core$IIndexed$_nth$arity$2(null,i__38420_38822); var id_38825 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38435_38824,(0),null); var oref_38826 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38435_38824,(1),null); var G__38438_38827 = "dump"; var G__38439_38828 = id_38825; var G__38440_38829 = cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.object._type(oref_38826)], 0)); var G__38441_38830 = cljs.core.deref(shadow.object._data(oref_38826)); (shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__38438_38827,G__38439_38828,G__38440_38829,G__38441_38830) : shadow.object.info.call(null,G__38438_38827,G__38439_38828,G__38440_38829,G__38441_38830)); var G__38831 = seq__38417_38819; var G__38832 = chunk__38418_38820; var G__38833 = count__38419_38821; var G__38834 = (i__38420_38822 + (1)); seq__38417_38819 = G__38831; chunk__38418_38820 = G__38832; count__38419_38821 = G__38833; i__38420_38822 = G__38834; continue; } else { var temp__5823__auto___38835 = cljs.core.seq(seq__38417_38819); if(temp__5823__auto___38835){ var seq__38417_38836__$1 = temp__5823__auto___38835; if(cljs.core.chunked_seq_QMARK_(seq__38417_38836__$1)){ var c__5548__auto___38837 = cljs.core.chunk_first(seq__38417_38836__$1); var G__38838 = cljs.core.chunk_rest(seq__38417_38836__$1); var G__38839 = c__5548__auto___38837; var G__38840 = cljs.core.count(c__5548__auto___38837); var G__38841 = (0); seq__38417_38819 = G__38838; chunk__38418_38820 = G__38839; count__38419_38821 = G__38840; i__38420_38822 = G__38841; continue; } else { var vec__38447_38842 = cljs.core.first(seq__38417_38836__$1); var id_38843 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38447_38842,(0),null); var oref_38844 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__38447_38842,(1),null); var G__38450_38845 = "dump"; var G__38451_38846 = id_38843; var G__38452_38847 = cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.object._type(oref_38844)], 0)); var G__38453_38848 = cljs.core.deref(shadow.object._data(oref_38844)); (shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__38450_38845,G__38451_38846,G__38452_38847,G__38453_38848) : shadow.object.info.call(null,G__38450_38845,G__38451_38846,G__38452_38847,G__38453_38848)); var G__38849 = cljs.core.next(seq__38417_38836__$1); var G__38850 = null; var G__38851 = (0); var G__38852 = (0); seq__38417_38819 = G__38849; chunk__38418_38820 = G__38850; count__38419_38821 = G__38851; i__38420_38822 = G__38852; continue; } } else { } } break; } return (shadow.object.info.cljs$core$IFn$_invoke$arity$1 ? shadow.object.info.cljs$core$IFn$_invoke$arity$1("--------------- //LIVE OBJECTS ------------") : shadow.object.info.call(null,"--------------- //LIVE OBJECTS ------------")); }); goog.exportSymbol('shadow.object.dump_BANG_', shadow.object.dump_BANG_); //# sourceMappingURL=shadow.object.js.map