2209 lines
100 KiB
JavaScript
2209 lines
100 KiB
JavaScript
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_27904 = (function (this$){
|
|
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
var m__5351__auto__ = (shadow.object._id[goog.typeOf(x__5350__auto__)]);
|
|
if((!((m__5351__auto__ == null)))){
|
|
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));
|
|
} else {
|
|
var m__5349__auto__ = (shadow.object._id["_"]);
|
|
if((!((m__5349__auto__ == null)))){
|
|
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__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_27904(this$);
|
|
}
|
|
});
|
|
|
|
var shadow$object$IObject$_type$dyn_27908 = (function (this$){
|
|
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
var m__5351__auto__ = (shadow.object._type[goog.typeOf(x__5350__auto__)]);
|
|
if((!((m__5351__auto__ == null)))){
|
|
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));
|
|
} else {
|
|
var m__5349__auto__ = (shadow.object._type["_"]);
|
|
if((!((m__5349__auto__ == null)))){
|
|
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__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_27908(this$);
|
|
}
|
|
});
|
|
|
|
var shadow$object$IObject$_data$dyn_27909 = (function (this$){
|
|
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
var m__5351__auto__ = (shadow.object._data[goog.typeOf(x__5350__auto__)]);
|
|
if((!((m__5351__auto__ == null)))){
|
|
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5351__auto__.call(null, this$));
|
|
} else {
|
|
var m__5349__auto__ = (shadow.object._data["_"]);
|
|
if((!((m__5349__auto__ == null)))){
|
|
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5349__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_27909(this$);
|
|
}
|
|
});
|
|
|
|
var shadow$object$IObject$_update$dyn_27911 = (function (this$,update_fn){
|
|
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
var m__5351__auto__ = (shadow.object._update[goog.typeOf(x__5350__auto__)]);
|
|
if((!((m__5351__auto__ == null)))){
|
|
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,update_fn) : m__5351__auto__.call(null, this$,update_fn));
|
|
} else {
|
|
var m__5349__auto__ = (shadow.object._update["_"]);
|
|
if((!((m__5349__auto__ == null)))){
|
|
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,update_fn) : m__5349__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_27911(this$,update_fn);
|
|
}
|
|
});
|
|
|
|
var shadow$object$IObject$_destroy_BANG_$dyn_27912 = (function (this$,cause){
|
|
var x__5350__auto__ = (((this$ == null))?null:this$);
|
|
var m__5351__auto__ = (shadow.object._destroy_BANG_[goog.typeOf(x__5350__auto__)]);
|
|
if((!((m__5351__auto__ == null)))){
|
|
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(this$,cause) : m__5351__auto__.call(null, this$,cause));
|
|
} else {
|
|
var m__5349__auto__ = (shadow.object._destroy_BANG_["_"]);
|
|
if((!((m__5349__auto__ == null)))){
|
|
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(this$,cause) : m__5349__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_27912(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__27095 = arguments.length;
|
|
switch (G__27095) {
|
|
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__5002__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__5002__auto__){
|
|
return or__5002__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__5804__auto__ = shadow.dom.data(obj_or_dom,new cljs.core.Keyword(null,"oid","oid",-768692334));
|
|
if(cljs.core.truth_(temp__5804__auto__)){
|
|
var oid = temp__5804__auto__;
|
|
return parseInt(oid,(10));
|
|
} else {
|
|
return null;
|
|
}
|
|
})());
|
|
}
|
|
});
|
|
shadow.object.get_parent = (function shadow$object$get_parent(oref){
|
|
var temp__5804__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__5804__auto__)){
|
|
var parent_id = temp__5804__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__27922 = new cljs.core.Keyword(null,"parent","parent",-878878779).cljs$core$IFn$_invoke$arity$1(parent);
|
|
parent = G__27922;
|
|
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__27160_SHARP_){
|
|
return cljs.core.get.cljs$core$IFn$_invoke$arity$2(instances,p1__27160_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__27172 = arguments.length;
|
|
switch (G__27172) {
|
|
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__27183_SHARP_){
|
|
return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type_kw,shadow.object._type(p1__27183_SHARP_));
|
|
}),shadow.object.get_children(oref));
|
|
});
|
|
/**
|
|
* basically (get-children (:parent this))
|
|
*/
|
|
shadow.object.get_siblings = (function shadow$object$get_siblings(p__27194){
|
|
var map__27196 = p__27194;
|
|
var map__27196__$1 = cljs.core.__destructure_map(map__27196);
|
|
var oref = map__27196__$1;
|
|
var parent = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27196__$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__27205 = arguments.length;
|
|
switch (G__27205) {
|
|
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__27200_SHARP_){
|
|
return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(type_kw,shadow.object._type(p1__27200_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__5802__auto__ = shadow.object.get_from_dom(dom);
|
|
if(cljs.core.truth_(temp__5802__auto__)){
|
|
var obj = temp__5802__auto__;
|
|
return obj;
|
|
} else {
|
|
var temp__5804__auto__ = dom.parentElement;
|
|
if(cljs.core.truth_(temp__5804__auto__)){
|
|
var parent = temp__5804__auto__;
|
|
var G__27926 = parent;
|
|
dom = G__27926;
|
|
continue;
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
shadow.object.notify_BANG_ = (function shadow$object$notify_BANG_(var_args){
|
|
var args__5732__auto__ = [];
|
|
var len__5726__auto___27927 = arguments.length;
|
|
var i__5727__auto___27928 = (0);
|
|
while(true){
|
|
if((i__5727__auto___27928 < len__5726__auto___27927)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___27928]));
|
|
|
|
var G__27929 = (i__5727__auto___27928 + (1));
|
|
i__5727__auto___27928 = G__27929;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
return shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
});
|
|
|
|
(shadow.object.notify_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (oref,ev,args){
|
|
var temp__5804__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__5804__auto__)){
|
|
var reactions_to_trigger = temp__5804__auto__;
|
|
var seq__27231 = cljs.core.seq(reactions_to_trigger);
|
|
var chunk__27232 = null;
|
|
var count__27233 = (0);
|
|
var i__27234 = (0);
|
|
while(true){
|
|
if((i__27234 < count__27233)){
|
|
var rfn = chunk__27232.cljs$core$IIndexed$_nth$arity$2(null, i__27234);
|
|
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(rfn,cljs.core.cons(oref,args));
|
|
|
|
|
|
var G__27931 = seq__27231;
|
|
var G__27932 = chunk__27232;
|
|
var G__27933 = count__27233;
|
|
var G__27934 = (i__27234 + (1));
|
|
seq__27231 = G__27931;
|
|
chunk__27232 = G__27932;
|
|
count__27233 = G__27933;
|
|
i__27234 = G__27934;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto____$1 = cljs.core.seq(seq__27231);
|
|
if(temp__5804__auto____$1){
|
|
var seq__27231__$1 = temp__5804__auto____$1;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27231__$1)){
|
|
var c__5525__auto__ = cljs.core.chunk_first(seq__27231__$1);
|
|
var G__27935 = cljs.core.chunk_rest(seq__27231__$1);
|
|
var G__27936 = c__5525__auto__;
|
|
var G__27937 = cljs.core.count(c__5525__auto__);
|
|
var G__27938 = (0);
|
|
seq__27231 = G__27935;
|
|
chunk__27232 = G__27936;
|
|
count__27233 = G__27937;
|
|
i__27234 = G__27938;
|
|
continue;
|
|
} else {
|
|
var rfn = cljs.core.first(seq__27231__$1);
|
|
cljs.core.apply.cljs$core$IFn$_invoke$arity$2(rfn,cljs.core.cons(oref,args));
|
|
|
|
|
|
var G__27939 = cljs.core.next(seq__27231__$1);
|
|
var G__27940 = null;
|
|
var G__27941 = (0);
|
|
var G__27942 = (0);
|
|
seq__27231 = G__27939;
|
|
chunk__27232 = G__27940;
|
|
count__27233 = G__27941;
|
|
i__27234 = G__27942;
|
|
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 (seq27224){
|
|
var G__27225 = cljs.core.first(seq27224);
|
|
var seq27224__$1 = cljs.core.next(seq27224);
|
|
var G__27226 = cljs.core.first(seq27224__$1);
|
|
var seq27224__$2 = cljs.core.next(seq27224__$1);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27225,G__27226,seq27224__$2);
|
|
}));
|
|
|
|
shadow.object.do_notify_tree = (function shadow$object$do_notify_tree(current_obj,ev,notify_fn){
|
|
var seq__27251_27943 = cljs.core.seq(shadow.object.get_children(current_obj));
|
|
var chunk__27252_27944 = null;
|
|
var count__27253_27945 = (0);
|
|
var i__27254_27946 = (0);
|
|
while(true){
|
|
if((i__27254_27946 < count__27253_27945)){
|
|
var child_27947 = chunk__27252_27944.cljs$core$IIndexed$_nth$arity$2(null, i__27254_27946);
|
|
(shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3 ? shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3(child_27947,ev,notify_fn) : shadow.object.do_notify_tree.call(null, child_27947,ev,notify_fn));
|
|
|
|
|
|
var G__27948 = seq__27251_27943;
|
|
var G__27949 = chunk__27252_27944;
|
|
var G__27950 = count__27253_27945;
|
|
var G__27951 = (i__27254_27946 + (1));
|
|
seq__27251_27943 = G__27948;
|
|
chunk__27252_27944 = G__27949;
|
|
count__27253_27945 = G__27950;
|
|
i__27254_27946 = G__27951;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___27952 = cljs.core.seq(seq__27251_27943);
|
|
if(temp__5804__auto___27952){
|
|
var seq__27251_27953__$1 = temp__5804__auto___27952;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27251_27953__$1)){
|
|
var c__5525__auto___27954 = cljs.core.chunk_first(seq__27251_27953__$1);
|
|
var G__27955 = cljs.core.chunk_rest(seq__27251_27953__$1);
|
|
var G__27956 = c__5525__auto___27954;
|
|
var G__27957 = cljs.core.count(c__5525__auto___27954);
|
|
var G__27958 = (0);
|
|
seq__27251_27943 = G__27955;
|
|
chunk__27252_27944 = G__27956;
|
|
count__27253_27945 = G__27957;
|
|
i__27254_27946 = G__27958;
|
|
continue;
|
|
} else {
|
|
var child_27959 = cljs.core.first(seq__27251_27953__$1);
|
|
(shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3 ? shadow.object.do_notify_tree.cljs$core$IFn$_invoke$arity$3(child_27959,ev,notify_fn) : shadow.object.do_notify_tree.call(null, child_27959,ev,notify_fn));
|
|
|
|
|
|
var G__27960 = cljs.core.next(seq__27251_27953__$1);
|
|
var G__27961 = null;
|
|
var G__27962 = (0);
|
|
var G__27963 = (0);
|
|
seq__27251_27943 = G__27960;
|
|
chunk__27252_27944 = G__27961;
|
|
count__27253_27945 = G__27962;
|
|
i__27254_27946 = G__27963;
|
|
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__5732__auto__ = [];
|
|
var len__5726__auto___27964 = arguments.length;
|
|
var i__5727__auto___27965 = (0);
|
|
while(true){
|
|
if((i__5727__auto___27965 < len__5726__auto___27964)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___27965]));
|
|
|
|
var G__27966 = (i__5727__auto___27965 + (1));
|
|
i__5727__auto___27965 = G__27966;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
return shadow.object.notify_tree_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__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 (seq27271){
|
|
var G__27273 = cljs.core.first(seq27271);
|
|
var seq27271__$1 = cljs.core.next(seq27271);
|
|
var G__27274 = cljs.core.first(seq27271__$1);
|
|
var seq27271__$2 = cljs.core.next(seq27271__$1);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27273,G__27274,seq27271__$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__5732__auto__ = [];
|
|
var len__5726__auto___27972 = arguments.length;
|
|
var i__5727__auto___27973 = (0);
|
|
while(true){
|
|
if((i__5727__auto___27973 < len__5726__auto___27972)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___27973]));
|
|
|
|
var G__27974 = (i__5727__auto___27973 + (1));
|
|
i__5727__auto___27973 = G__27974;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
return shadow.object.notify_up_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__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__27975 = shadow.object.get_parent(current);
|
|
current = G__27975;
|
|
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 (seq27288){
|
|
var G__27289 = cljs.core.first(seq27288);
|
|
var seq27288__$1 = cljs.core.next(seq27288);
|
|
var G__27290 = cljs.core.first(seq27288__$1);
|
|
var seq27288__$2 = cljs.core.next(seq27288__$1);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27289,G__27290,seq27288__$2);
|
|
}));
|
|
|
|
shadow.object.update_BANG_ = (function shadow$object$update_BANG_(var_args){
|
|
var args__5732__auto__ = [];
|
|
var len__5726__auto___27979 = arguments.length;
|
|
var i__5727__auto___27980 = (0);
|
|
while(true){
|
|
if((i__5727__auto___27980 < len__5726__auto___27979)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___27980]));
|
|
|
|
var G__27981 = (i__5727__auto___27980 + (1));
|
|
i__5727__auto___27980 = G__27981;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
return shadow.object.update_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__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 (seq27313){
|
|
var G__27314 = cljs.core.first(seq27313);
|
|
var seq27313__$1 = cljs.core.next(seq27313);
|
|
var G__27315 = cljs.core.first(seq27313__$1);
|
|
var seq27313__$2 = cljs.core.next(seq27313__$1);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27314,G__27315,seq27313__$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__5802__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__5802__auto__)){
|
|
var custom_remove = temp__5802__auto__;
|
|
var G__27333 = this$;
|
|
var G__27334 = 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__27333,G__27334) : custom_remove.call(null, G__27333,G__27334));
|
|
} 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__27336 = arguments.length;
|
|
switch (G__27336) {
|
|
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__27347 = cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),dom_events));
|
|
var chunk__27349 = null;
|
|
var count__27350 = (0);
|
|
var i__27351 = (0);
|
|
while(true){
|
|
if((i__27351 < count__27350)){
|
|
var vec__27391 = chunk__27349.cljs$core$IIndexed$_nth$arity$2(null, i__27351);
|
|
var ev = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27391,(0),null);
|
|
var handler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27391,(1),null);
|
|
var ev_def = vec__27391;
|
|
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_27995__$1 = (((handler instanceof cljs.core.Keyword))?((function (seq__27347,chunk__27349,count__27350,i__27351,vec__27391,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__27347,chunk__27349,count__27350,i__27351,vec__27391,ev,handler,ev_def))
|
|
:handler);
|
|
shadow.dom.on.cljs$core$IFn$_invoke$arity$3(dom,ev,((function (seq__27347,chunk__27349,count__27350,i__27351,handler_27995__$1,vec__27391,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_27995__$1.cljs$core$IFn$_invoke$arity$3 ? handler_27995__$1.cljs$core$IFn$_invoke$arity$3(oref,e,el) : handler_27995__$1.call(null, oref,e,el));
|
|
});})(seq__27347,chunk__27349,count__27350,i__27351,handler_27995__$1,vec__27391,ev,handler,ev_def))
|
|
);
|
|
|
|
|
|
var G__27998 = seq__27347;
|
|
var G__27999 = chunk__27349;
|
|
var G__28000 = count__27350;
|
|
var G__28001 = (i__27351 + (1));
|
|
seq__27347 = G__27998;
|
|
chunk__27349 = G__27999;
|
|
count__27350 = G__28000;
|
|
i__27351 = G__28001;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto__ = cljs.core.seq(seq__27347);
|
|
if(temp__5804__auto__){
|
|
var seq__27347__$1 = temp__5804__auto__;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27347__$1)){
|
|
var c__5525__auto__ = cljs.core.chunk_first(seq__27347__$1);
|
|
var G__28002 = cljs.core.chunk_rest(seq__27347__$1);
|
|
var G__28003 = c__5525__auto__;
|
|
var G__28004 = cljs.core.count(c__5525__auto__);
|
|
var G__28005 = (0);
|
|
seq__27347 = G__28002;
|
|
chunk__27349 = G__28003;
|
|
count__27350 = G__28004;
|
|
i__27351 = G__28005;
|
|
continue;
|
|
} else {
|
|
var vec__27399 = cljs.core.first(seq__27347__$1);
|
|
var ev = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27399,(0),null);
|
|
var handler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27399,(1),null);
|
|
var ev_def = vec__27399;
|
|
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_28006__$1 = (((handler instanceof cljs.core.Keyword))?((function (seq__27347,chunk__27349,count__27350,i__27351,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__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__27347,chunk__27349,count__27350,i__27351,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__auto__))
|
|
:handler);
|
|
shadow.dom.on.cljs$core$IFn$_invoke$arity$3(dom,ev,((function (seq__27347,chunk__27349,count__27350,i__27351,handler_28006__$1,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__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_28006__$1.cljs$core$IFn$_invoke$arity$3 ? handler_28006__$1.cljs$core$IFn$_invoke$arity$3(oref,e,el) : handler_28006__$1.call(null, oref,e,el));
|
|
});})(seq__27347,chunk__27349,count__27350,i__27351,handler_28006__$1,vec__27399,ev,handler,ev_def,seq__27347__$1,temp__5804__auto__))
|
|
);
|
|
|
|
|
|
var G__28009 = cljs.core.next(seq__27347__$1);
|
|
var G__28010 = null;
|
|
var G__28011 = (0);
|
|
var G__28012 = (0);
|
|
seq__27347 = G__28009;
|
|
chunk__27349 = G__28010;
|
|
count__27350 = G__28011;
|
|
i__27351 = G__28012;
|
|
continue;
|
|
}
|
|
} else {
|
|
return null;
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
});
|
|
shadow.object.reaction_merge = (function shadow$object$reaction_merge(result,p__27409){
|
|
var vec__27410 = p__27409;
|
|
var event = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27410,(0),null);
|
|
var handler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27410,(1),null);
|
|
if(cljs.core.truth_((function (){var and__5000__auto__ = event;
|
|
if(cljs.core.truth_(and__5000__auto__)){
|
|
return handler;
|
|
} else {
|
|
return and__5000__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__5732__auto__ = [];
|
|
var len__5726__auto___28026 = arguments.length;
|
|
var i__5727__auto___28027 = (0);
|
|
while(true){
|
|
if((i__5727__auto___28027 < len__5726__auto___28026)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___28027]));
|
|
|
|
var G__28028 = (i__5727__auto___28027 + (1));
|
|
i__5727__auto___28027 = G__28028;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
return shadow.object.define.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__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 (e27457){if((e27457 instanceof Object)){
|
|
var e = e27457;
|
|
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 e27457;
|
|
|
|
}
|
|
}}));
|
|
|
|
(shadow.object.define.cljs$lang$maxFixedArity = (1));
|
|
|
|
/** @this {Function} */
|
|
(shadow.object.define.cljs$lang$applyTo = (function (seq27442){
|
|
var G__27443 = cljs.core.first(seq27442);
|
|
var seq27442__$1 = cljs.core.next(seq27442);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27443,seq27442__$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__27482 = arguments.length;
|
|
switch (G__27482) {
|
|
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__27492 = (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__27492) : shadow.dom.build.call(null, G__27492));
|
|
})();
|
|
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__5300__auto__,k__5301__auto__){
|
|
var self__ = this;
|
|
var this__5300__auto____$1 = this;
|
|
return this__5300__auto____$1.cljs$core$ILookup$_lookup$arity$3(null, k__5301__auto__,null);
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (this__5302__auto__,k27502,else__5303__auto__){
|
|
var self__ = this;
|
|
var this__5302__auto____$1 = this;
|
|
var G__27518 = k27502;
|
|
var G__27518__$1 = (((G__27518 instanceof cljs.core.Keyword))?G__27518.fqn:null);
|
|
switch (G__27518__$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,k27502,else__5303__auto__);
|
|
|
|
}
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IKVReduce$_kv_reduce$arity$3 = (function (this__5320__auto__,f__5321__auto__,init__5322__auto__){
|
|
var self__ = this;
|
|
var this__5320__auto____$1 = this;
|
|
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (ret__5323__auto__,p__27522){
|
|
var vec__27525 = p__27522;
|
|
var k__5324__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27525,(0),null);
|
|
var v__5325__auto__ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27525,(1),null);
|
|
return (f__5321__auto__.cljs$core$IFn$_invoke$arity$3 ? f__5321__auto__.cljs$core$IFn$_invoke$arity$3(ret__5323__auto__,k__5324__auto__,v__5325__auto__) : f__5321__auto__.call(null, ret__5323__auto__,k__5324__auto__,v__5325__auto__));
|
|
}),init__5322__auto__,this__5320__auto____$1);
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IPrintWithWriter$_pr_writer$arity$3 = (function (this__5315__auto__,writer__5316__auto__,opts__5317__auto__){
|
|
var self__ = this;
|
|
var this__5315__auto____$1 = this;
|
|
var pr_pair__5318__auto__ = (function (keyval__5319__auto__){
|
|
return cljs.core.pr_sequential_writer(writer__5316__auto__,cljs.core.pr_writer,""," ","",opts__5317__auto__,keyval__5319__auto__);
|
|
});
|
|
return cljs.core.pr_sequential_writer(writer__5316__auto__,pr_pair__5318__auto__,"#shadow.object.Watch{",", ","}",opts__5317__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__27501){
|
|
var self__ = this;
|
|
var G__27501__$1 = this;
|
|
return (new cljs.core.RecordIter((0),G__27501__$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__5298__auto__){
|
|
var self__ = this;
|
|
var this__5298__auto____$1 = this;
|
|
return self__.__meta;
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$ICloneable$_clone$arity$1 = (function (this__5295__auto__){
|
|
var self__ = this;
|
|
var this__5295__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__5304__auto__){
|
|
var self__ = this;
|
|
var this__5304__auto____$1 = this;
|
|
return (2 + cljs.core.count(self__.__extmap));
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IHash$_hash$arity$1 = (function (this__5296__auto__){
|
|
var self__ = this;
|
|
var this__5296__auto____$1 = this;
|
|
var h__5111__auto__ = self__.__hash;
|
|
if((!((h__5111__auto__ == null)))){
|
|
return h__5111__auto__;
|
|
} else {
|
|
var h__5111__auto____$1 = (function (coll__5297__auto__){
|
|
return (-17677043 ^ cljs.core.hash_unordered_coll(coll__5297__auto__));
|
|
})(this__5296__auto____$1);
|
|
(self__.__hash = h__5111__auto____$1);
|
|
|
|
return h__5111__auto____$1;
|
|
}
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IEquiv$_equiv$arity$2 = (function (this27503,other27504){
|
|
var self__ = this;
|
|
var this27503__$1 = this;
|
|
return (((!((other27504 == null)))) && ((((this27503__$1.constructor === other27504.constructor)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27503__$1.key,other27504.key)) && (((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27503__$1.handler,other27504.handler)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(this27503__$1.__extmap,other27504.__extmap)))))))));
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IMap$_dissoc$arity$2 = (function (this__5310__auto__,k__5311__auto__){
|
|
var self__ = this;
|
|
var this__5310__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__5311__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__5310__auto____$1),self__.__meta),k__5311__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__5311__auto__)),null));
|
|
}
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IAssociative$_contains_key_QMARK_$arity$2 = (function (this__5307__auto__,k27502){
|
|
var self__ = this;
|
|
var this__5307__auto____$1 = this;
|
|
var G__27560 = k27502;
|
|
var G__27560__$1 = (((G__27560 instanceof cljs.core.Keyword))?G__27560.fqn:null);
|
|
switch (G__27560__$1) {
|
|
case "key":
|
|
case "handler":
|
|
return true;
|
|
|
|
break;
|
|
default:
|
|
return cljs.core.contains_QMARK_(self__.__extmap,k27502);
|
|
|
|
}
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$IAssociative$_assoc$arity$3 = (function (this__5308__auto__,k__5309__auto__,G__27501){
|
|
var self__ = this;
|
|
var this__5308__auto____$1 = this;
|
|
var pred__27562 = cljs.core.keyword_identical_QMARK_;
|
|
var expr__27563 = k__5309__auto__;
|
|
if(cljs.core.truth_((pred__27562.cljs$core$IFn$_invoke$arity$2 ? pred__27562.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"key","key",-1516042587),expr__27563) : pred__27562.call(null, new cljs.core.Keyword(null,"key","key",-1516042587),expr__27563)))){
|
|
return (new shadow.object.Watch(G__27501,self__.handler,self__.__meta,self__.__extmap,null));
|
|
} else {
|
|
if(cljs.core.truth_((pred__27562.cljs$core$IFn$_invoke$arity$2 ? pred__27562.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"handler","handler",-195596612),expr__27563) : pred__27562.call(null, new cljs.core.Keyword(null,"handler","handler",-195596612),expr__27563)))){
|
|
return (new shadow.object.Watch(self__.key,G__27501,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__5309__auto__,G__27501),null));
|
|
}
|
|
}
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$ISeqable$_seq$arity$1 = (function (this__5313__auto__){
|
|
var self__ = this;
|
|
var this__5313__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__5299__auto__,G__27501){
|
|
var self__ = this;
|
|
var this__5299__auto____$1 = this;
|
|
return (new shadow.object.Watch(self__.key,self__.handler,G__27501,self__.__extmap,self__.__hash));
|
|
}));
|
|
|
|
(shadow.object.Watch.prototype.cljs$core$ICollection$_conj$arity$2 = (function (this__5305__auto__,entry__5306__auto__){
|
|
var self__ = this;
|
|
var this__5305__auto____$1 = this;
|
|
if(cljs.core.vector_QMARK_(entry__5306__auto__)){
|
|
return this__5305__auto____$1.cljs$core$IAssociative$_assoc$arity$3(null, cljs.core._nth(entry__5306__auto__,(0)),cljs.core._nth(entry__5306__auto__,(1)));
|
|
} else {
|
|
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(cljs.core._conj,this__5305__auto____$1,entry__5306__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__5346__auto__){
|
|
return (new cljs.core.List(null,"shadow.object/Watch",null,(1),null));
|
|
}));
|
|
|
|
(shadow.object.Watch.cljs$lang$ctorPrWriter = (function (this__5346__auto__,writer__5347__auto__){
|
|
return cljs.core._write(writer__5347__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__27508){
|
|
var extmap__5342__auto__ = (function (){var G__27594 = cljs.core.dissoc.cljs$core$IFn$_invoke$arity$variadic(G__27508,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__27508)){
|
|
return cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,G__27594);
|
|
} else {
|
|
return G__27594;
|
|
}
|
|
})();
|
|
return (new shadow.object.Watch(new cljs.core.Keyword(null,"key","key",-1516042587).cljs$core$IFn$_invoke$arity$1(G__27508),new cljs.core.Keyword(null,"handler","handler",-195596612).cljs$core$IFn$_invoke$arity$1(G__27508),null,cljs.core.not_empty(extmap__5342__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,["#<ObjectRef {:id ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.id),", :type ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(self__.type),"}>"].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__27601_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__27601_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__27652 = cljs.core.seq(self__.watches);
|
|
var chunk__27653 = null;
|
|
var count__27654 = (0);
|
|
var i__27655 = (0);
|
|
while(true){
|
|
if((i__27655 < count__27654)){
|
|
var map__27672 = chunk__27653.cljs$core$IIndexed$_nth$arity$2(null, i__27655);
|
|
var map__27672__$1 = cljs.core.__destructure_map(map__27672);
|
|
var watch = map__27672__$1;
|
|
var key = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27672__$1,new cljs.core.Keyword(null,"key","key",-1516042587));
|
|
var handler = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27672__$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__28056 = seq__27652;
|
|
var G__28057 = chunk__27653;
|
|
var G__28058 = count__27654;
|
|
var G__28059 = (i__27655 + (1));
|
|
seq__27652 = G__28056;
|
|
chunk__27653 = G__28057;
|
|
count__27654 = G__28058;
|
|
i__27655 = G__28059;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto__ = cljs.core.seq(seq__27652);
|
|
if(temp__5804__auto__){
|
|
var seq__27652__$1 = temp__5804__auto__;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27652__$1)){
|
|
var c__5525__auto__ = cljs.core.chunk_first(seq__27652__$1);
|
|
var G__28060 = cljs.core.chunk_rest(seq__27652__$1);
|
|
var G__28061 = c__5525__auto__;
|
|
var G__28062 = cljs.core.count(c__5525__auto__);
|
|
var G__28063 = (0);
|
|
seq__27652 = G__28060;
|
|
chunk__27653 = G__28061;
|
|
count__27654 = G__28062;
|
|
i__27655 = G__28063;
|
|
continue;
|
|
} else {
|
|
var map__27682 = cljs.core.first(seq__27652__$1);
|
|
var map__27682__$1 = cljs.core.__destructure_map(map__27682);
|
|
var watch = map__27682__$1;
|
|
var key = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27682__$1,new cljs.core.Keyword(null,"key","key",-1516042587));
|
|
var handler = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__27682__$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__28065 = cljs.core.next(seq__27652__$1);
|
|
var G__28066 = null;
|
|
var G__28067 = (0);
|
|
var G__28068 = (0);
|
|
seq__27652 = G__28065;
|
|
chunk__27653 = G__28066;
|
|
count__27654 = G__28067;
|
|
i__27655 = G__28068;
|
|
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__27688_28069 = cljs.core.seq(shadow.object.get_children(this$__$1));
|
|
var chunk__27689_28070 = null;
|
|
var count__27690_28071 = (0);
|
|
var i__27691_28072 = (0);
|
|
while(true){
|
|
if((i__27691_28072 < count__27690_28071)){
|
|
var child_28073 = chunk__27689_28070.cljs$core$IIndexed$_nth$arity$2(null, i__27691_28072);
|
|
shadow.object._destroy_BANG_(child_28073,new cljs.core.Keyword(null,"parent","parent",-878878779));
|
|
|
|
|
|
var G__28075 = seq__27688_28069;
|
|
var G__28076 = chunk__27689_28070;
|
|
var G__28077 = count__27690_28071;
|
|
var G__28078 = (i__27691_28072 + (1));
|
|
seq__27688_28069 = G__28075;
|
|
chunk__27689_28070 = G__28076;
|
|
count__27690_28071 = G__28077;
|
|
i__27691_28072 = G__28078;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___28080 = cljs.core.seq(seq__27688_28069);
|
|
if(temp__5804__auto___28080){
|
|
var seq__27688_28081__$1 = temp__5804__auto___28080;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27688_28081__$1)){
|
|
var c__5525__auto___28082 = cljs.core.chunk_first(seq__27688_28081__$1);
|
|
var G__28083 = cljs.core.chunk_rest(seq__27688_28081__$1);
|
|
var G__28084 = c__5525__auto___28082;
|
|
var G__28085 = cljs.core.count(c__5525__auto___28082);
|
|
var G__28086 = (0);
|
|
seq__27688_28069 = G__28083;
|
|
chunk__27689_28070 = G__28084;
|
|
count__27690_28071 = G__28085;
|
|
i__27691_28072 = G__28086;
|
|
continue;
|
|
} else {
|
|
var child_28087 = cljs.core.first(seq__27688_28081__$1);
|
|
shadow.object._destroy_BANG_(child_28087,new cljs.core.Keyword(null,"parent","parent",-878878779));
|
|
|
|
|
|
var G__28088 = cljs.core.next(seq__27688_28081__$1);
|
|
var G__28089 = null;
|
|
var G__28090 = (0);
|
|
var G__28091 = (0);
|
|
seq__27688_28069 = G__28088;
|
|
chunk__27689_28070 = G__28089;
|
|
count__27690_28071 = G__28090;
|
|
i__27691_28072 = G__28091;
|
|
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_28094 = new cljs.core.Keyword("shadow.object","return-value","shadow.object/return-value",1397593360).cljs$core$IFn$_invoke$arity$1(this$__$1);
|
|
if((return_value_28094 == null)){
|
|
} else {
|
|
cljs.core.async.put_BANG_.cljs$core$IFn$_invoke$arity$2(self__.result_chan,return_value_28094);
|
|
}
|
|
|
|
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__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
return cljs.core._write(writer__5288__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__27729 = arguments.length;
|
|
switch (G__27729) {
|
|
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__27740 = arguments.length;
|
|
switch (G__27740) {
|
|
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__5732__auto__ = [];
|
|
var len__5726__auto___28108 = arguments.length;
|
|
var i__5727__auto___28109 = (0);
|
|
while(true){
|
|
if((i__5727__auto___28109 < len__5726__auto___28108)){
|
|
args__5732__auto__.push((arguments[i__5727__auto___28109]));
|
|
|
|
var G__28110 = (i__5727__auto___28109 + (1));
|
|
i__5727__auto___28109 = G__28110;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
return shadow.object.create.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__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_28111 = new cljs.core.Keyword("dom","events","dom/events",1793437527).cljs$core$IFn$_invoke$arity$2(odef,cljs.core.PersistentVector.EMPTY);
|
|
var temp__5802__auto___28112 = new cljs.core.Keyword(null,"dom","dom",-1236537922).cljs$core$IFn$_invoke$arity$1(args);
|
|
if(cljs.core.truth_(temp__5802__auto___28112)){
|
|
var dom_28113 = temp__5802__auto___28112;
|
|
shadow.dom.set_data(dom_28113,new cljs.core.Keyword(null,"oid","oid",-768692334),oid);
|
|
|
|
shadow.object.bind_dom_events(oref,dom_28113,dom_events_28111);
|
|
|
|
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_28113], 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_28113], 0));
|
|
} else {
|
|
var temp__5804__auto___28121 = new cljs.core.Keyword(null,"dom","dom",-1236537922).cljs$core$IFn$_invoke$arity$1(odef);
|
|
if(cljs.core.truth_(temp__5804__auto___28121)){
|
|
var dom_fn_28122 = temp__5804__auto___28121;
|
|
var dom_28123 = (function (){var G__27762 = (dom_fn_28122.cljs$core$IFn$_invoke$arity$2 ? dom_fn_28122.cljs$core$IFn$_invoke$arity$2(oref,node_children) : dom_fn_28122.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__27762) : shadow.dom.build.call(null, G__27762));
|
|
})();
|
|
shadow.dom.set_data(dom_28123,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_28123], 0));
|
|
|
|
shadow.object.bind_dom_events(oref,dom_28123,dom_events_28111);
|
|
|
|
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_28123], 0));
|
|
} else {
|
|
}
|
|
}
|
|
|
|
var temp__5804__auto___28124 = new cljs.core.Keyword(null,"watch","watch",380988277).cljs$core$IFn$_invoke$arity$1(odef);
|
|
if(cljs.core.truth_(temp__5804__auto___28124)){
|
|
var watches_28125 = temp__5804__auto___28124;
|
|
var seq__27763_28126 = cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),watches_28125));
|
|
var chunk__27764_28127 = null;
|
|
var count__27765_28128 = (0);
|
|
var i__27766_28129 = (0);
|
|
while(true){
|
|
if((i__27766_28129 < count__27765_28128)){
|
|
var vec__27773_28131 = chunk__27764_28127.cljs$core$IIndexed$_nth$arity$2(null, i__27766_28129);
|
|
var attr_28132 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27773_28131,(0),null);
|
|
var handler_28133 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27773_28131,(1),null);
|
|
shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr_28132,((function (seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27773_28131,attr_28132,handler_28133,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref){
|
|
return (function (old,new$){
|
|
return (handler_28133.cljs$core$IFn$_invoke$arity$3 ? handler_28133.cljs$core$IFn$_invoke$arity$3(oref,old,new$) : handler_28133.call(null, oref,old,new$));
|
|
});})(seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27773_28131,attr_28132,handler_28133,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref))
|
|
);
|
|
|
|
|
|
var G__28134 = seq__27763_28126;
|
|
var G__28135 = chunk__27764_28127;
|
|
var G__28136 = count__27765_28128;
|
|
var G__28137 = (i__27766_28129 + (1));
|
|
seq__27763_28126 = G__28134;
|
|
chunk__27764_28127 = G__28135;
|
|
count__27765_28128 = G__28136;
|
|
i__27766_28129 = G__28137;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___28138__$1 = cljs.core.seq(seq__27763_28126);
|
|
if(temp__5804__auto___28138__$1){
|
|
var seq__27763_28139__$1 = temp__5804__auto___28138__$1;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27763_28139__$1)){
|
|
var c__5525__auto___28140 = cljs.core.chunk_first(seq__27763_28139__$1);
|
|
var G__28141 = cljs.core.chunk_rest(seq__27763_28139__$1);
|
|
var G__28142 = c__5525__auto___28140;
|
|
var G__28143 = cljs.core.count(c__5525__auto___28140);
|
|
var G__28144 = (0);
|
|
seq__27763_28126 = G__28141;
|
|
chunk__27764_28127 = G__28142;
|
|
count__27765_28128 = G__28143;
|
|
i__27766_28129 = G__28144;
|
|
continue;
|
|
} else {
|
|
var vec__27776_28145 = cljs.core.first(seq__27763_28139__$1);
|
|
var attr_28146 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27776_28145,(0),null);
|
|
var handler_28147 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27776_28145,(1),null);
|
|
shadow.object.bind_change.cljs$core$IFn$_invoke$arity$3(oref,attr_28146,((function (seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27776_28145,attr_28146,handler_28147,seq__27763_28139__$1,temp__5804__auto___28138__$1,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref){
|
|
return (function (old,new$){
|
|
return (handler_28147.cljs$core$IFn$_invoke$arity$3 ? handler_28147.cljs$core$IFn$_invoke$arity$3(oref,old,new$) : handler_28147.call(null, oref,old,new$));
|
|
});})(seq__27763_28126,chunk__27764_28127,count__27765_28128,i__27766_28129,vec__27776_28145,attr_28146,handler_28147,seq__27763_28139__$1,temp__5804__auto___28138__$1,watches_28125,temp__5804__auto___28124,oid,parent,result_chan,odef,obj,oref))
|
|
);
|
|
|
|
|
|
var G__28150 = cljs.core.next(seq__27763_28139__$1);
|
|
var G__28151 = null;
|
|
var G__28152 = (0);
|
|
var G__28153 = (0);
|
|
seq__27763_28126 = G__28150;
|
|
chunk__27764_28127 = G__28151;
|
|
count__27765_28128 = G__28152;
|
|
i__27766_28129 = G__28153;
|
|
continue;
|
|
}
|
|
} else {
|
|
}
|
|
}
|
|
break;
|
|
}
|
|
} else {
|
|
}
|
|
|
|
return oref;
|
|
}));
|
|
|
|
(shadow.object.create.cljs$lang$maxFixedArity = (2));
|
|
|
|
/** @this {Function} */
|
|
(shadow.object.create.cljs$lang$applyTo = (function (seq27751){
|
|
var G__27752 = cljs.core.first(seq27751);
|
|
var seq27751__$1 = cljs.core.next(seq27751);
|
|
var G__27753 = cljs.core.first(seq27751__$1);
|
|
var seq27751__$2 = cljs.core.next(seq27751__$1);
|
|
var self__5711__auto__ = this;
|
|
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__27752,G__27753,seq27751__$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__27782 = arguments.length;
|
|
switch (G__27782) {
|
|
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__27780_SHARP_){
|
|
var G__27786 = (node_gen.cljs$core$IFn$_invoke$arity$1 ? node_gen.cljs$core$IFn$_invoke$arity$1(p1__27780_SHARP_) : node_gen.call(null, p1__27780_SHARP_));
|
|
return (shadow.dom.build.cljs$core$IFn$_invoke$arity$1 ? shadow.dom.build.cljs$core$IFn$_invoke$arity$1(G__27786) : shadow.dom.build.call(null, G__27786));
|
|
});
|
|
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__27796_28156 = cljs.core.seq(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(children,(c + diff),c));
|
|
var chunk__27797_28157 = null;
|
|
var count__27798_28158 = (0);
|
|
var i__27799_28159 = (0);
|
|
while(true){
|
|
if((i__27799_28159 < count__27798_28158)){
|
|
var obj_28160 = chunk__27797_28157.cljs$core$IIndexed$_nth$arity$2(null, i__27799_28159);
|
|
var obj_28161__$1 = shadow.object.get_from_dom(obj_28160);
|
|
shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(obj_28161__$1);
|
|
|
|
|
|
var G__28162 = seq__27796_28156;
|
|
var G__28163 = chunk__27797_28157;
|
|
var G__28164 = count__27798_28158;
|
|
var G__28165 = (i__27799_28159 + (1));
|
|
seq__27796_28156 = G__28162;
|
|
chunk__27797_28157 = G__28163;
|
|
count__27798_28158 = G__28164;
|
|
i__27799_28159 = G__28165;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___28166 = cljs.core.seq(seq__27796_28156);
|
|
if(temp__5804__auto___28166){
|
|
var seq__27796_28167__$1 = temp__5804__auto___28166;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27796_28167__$1)){
|
|
var c__5525__auto___28168 = cljs.core.chunk_first(seq__27796_28167__$1);
|
|
var G__28169 = cljs.core.chunk_rest(seq__27796_28167__$1);
|
|
var G__28170 = c__5525__auto___28168;
|
|
var G__28171 = cljs.core.count(c__5525__auto___28168);
|
|
var G__28172 = (0);
|
|
seq__27796_28156 = G__28169;
|
|
chunk__27797_28157 = G__28170;
|
|
count__27798_28158 = G__28171;
|
|
i__27799_28159 = G__28172;
|
|
continue;
|
|
} else {
|
|
var obj_28173 = cljs.core.first(seq__27796_28167__$1);
|
|
var obj_28174__$1 = shadow.object.get_from_dom(obj_28173);
|
|
shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(obj_28174__$1);
|
|
|
|
|
|
var G__28175 = cljs.core.next(seq__27796_28167__$1);
|
|
var G__28176 = null;
|
|
var G__28177 = (0);
|
|
var G__28178 = (0);
|
|
seq__27796_28156 = G__28175;
|
|
chunk__27797_28157 = G__28176;
|
|
count__27798_28158 = G__28177;
|
|
i__27799_28159 = G__28178;
|
|
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__27819 = arguments.length;
|
|
switch (G__27819) {
|
|
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__27810_SHARP_){
|
|
return cljs.core.map_indexed.cljs$core$IFn$_invoke$arity$2(cljs.core.vector,p1__27810_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__27820){
|
|
var vec__27821 = p__27820;
|
|
var key = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27821,(0),null);
|
|
var val = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27821,(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__27824_28185 = cljs.core.seq((function (){var G__27829 = 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__27829) : coll_transform.call(null, G__27829));
|
|
})());
|
|
var chunk__27825_28186 = null;
|
|
var count__27826_28187 = (0);
|
|
var i__27827_28188 = (0);
|
|
while(true){
|
|
if((i__27827_28188 < count__27826_28187)){
|
|
var item_28189 = chunk__27825_28186.cljs$core$IIndexed$_nth$arity$2(null, i__27827_28188);
|
|
shadow.object.dom_enter(coll_dom,make_item_fn(item_28189));
|
|
|
|
|
|
var G__28190 = seq__27824_28185;
|
|
var G__28191 = chunk__27825_28186;
|
|
var G__28192 = count__27826_28187;
|
|
var G__28193 = (i__27827_28188 + (1));
|
|
seq__27824_28185 = G__28190;
|
|
chunk__27825_28186 = G__28191;
|
|
count__27826_28187 = G__28192;
|
|
i__27827_28188 = G__28193;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___28194 = cljs.core.seq(seq__27824_28185);
|
|
if(temp__5804__auto___28194){
|
|
var seq__27824_28195__$1 = temp__5804__auto___28194;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27824_28195__$1)){
|
|
var c__5525__auto___28196 = cljs.core.chunk_first(seq__27824_28195__$1);
|
|
var G__28197 = cljs.core.chunk_rest(seq__27824_28195__$1);
|
|
var G__28198 = c__5525__auto___28196;
|
|
var G__28199 = cljs.core.count(c__5525__auto___28196);
|
|
var G__28200 = (0);
|
|
seq__27824_28185 = G__28197;
|
|
chunk__27825_28186 = G__28198;
|
|
count__27826_28187 = G__28199;
|
|
i__27827_28188 = G__28200;
|
|
continue;
|
|
} else {
|
|
var item_28201 = cljs.core.first(seq__27824_28195__$1);
|
|
shadow.object.dom_enter(coll_dom,make_item_fn(item_28201));
|
|
|
|
|
|
var G__28202 = cljs.core.next(seq__27824_28195__$1);
|
|
var G__28203 = null;
|
|
var G__28204 = (0);
|
|
var G__28205 = (0);
|
|
seq__27824_28185 = G__28202;
|
|
chunk__27825_28186 = G__28203;
|
|
count__27826_28187 = G__28204;
|
|
i__27827_28188 = G__28205;
|
|
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__5090__auto__ = count_new;
|
|
var y__5091__auto__ = count_children;
|
|
return ((x__5090__auto__ < y__5091__auto__) ? x__5090__auto__ : y__5091__auto__);
|
|
})();
|
|
var n__5593__auto___28207 = count_children__$1;
|
|
var idx_28208 = (0);
|
|
while(true){
|
|
if((idx_28208 < n__5593__auto___28207)){
|
|
var cn_28209 = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(children__$1,idx_28208);
|
|
var cc_28210 = shadow.object.get_from_dom(cn_28209);
|
|
var ckey_28211 = new cljs.core.Keyword("shadow.object","coll-key","shadow.object/coll-key",827543616).cljs$core$IFn$_invoke$arity$1(cc_28210);
|
|
var cval_28212 = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cc_28210,item_key);
|
|
var vec__27830_28213 = cljs.core.nth.cljs$core$IFn$_invoke$arity$2(new_coll,idx_28208);
|
|
var nkey_28214 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27830_28213,(0),null);
|
|
var nval_28215 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27830_28213,(1),null);
|
|
if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ckey_28211,nkey_28214)) && (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cval_28212,nval_28215)))){
|
|
} else {
|
|
var new_obj_28218 = make_item_fn(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [nkey_28214,nval_28215], null));
|
|
shadow.dom.replace_node(cn_28209,new_obj_28218);
|
|
|
|
shadow.object.destroy_BANG_.cljs$core$IFn$_invoke$arity$1(cc_28210);
|
|
|
|
shadow.object.notify_tree_BANG_(new_obj_28218,new cljs.core.Keyword("dom","entered","dom/entered",506699596));
|
|
}
|
|
|
|
var G__28222 = (idx_28208 + (1));
|
|
idx_28208 = G__28222;
|
|
continue;
|
|
} else {
|
|
}
|
|
break;
|
|
}
|
|
|
|
if((diff > (0))){
|
|
var seq__27833_28223 = cljs.core.seq(cljs.core.subvec.cljs$core$IFn$_invoke$arity$3(new_coll,count_children__$1,count_new));
|
|
var chunk__27834_28224 = null;
|
|
var count__27835_28225 = (0);
|
|
var i__27836_28226 = (0);
|
|
while(true){
|
|
if((i__27836_28226 < count__27835_28225)){
|
|
var item_28227 = chunk__27834_28224.cljs$core$IIndexed$_nth$arity$2(null, i__27836_28226);
|
|
shadow.object.dom_enter(coll_dom,make_item_fn(item_28227));
|
|
|
|
|
|
var G__28228 = seq__27833_28223;
|
|
var G__28229 = chunk__27834_28224;
|
|
var G__28230 = count__27835_28225;
|
|
var G__28231 = (i__27836_28226 + (1));
|
|
seq__27833_28223 = G__28228;
|
|
chunk__27834_28224 = G__28229;
|
|
count__27835_28225 = G__28230;
|
|
i__27836_28226 = G__28231;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___28232 = cljs.core.seq(seq__27833_28223);
|
|
if(temp__5804__auto___28232){
|
|
var seq__27833_28233__$1 = temp__5804__auto___28232;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27833_28233__$1)){
|
|
var c__5525__auto___28234 = cljs.core.chunk_first(seq__27833_28233__$1);
|
|
var G__28235 = cljs.core.chunk_rest(seq__27833_28233__$1);
|
|
var G__28236 = c__5525__auto___28234;
|
|
var G__28237 = cljs.core.count(c__5525__auto___28234);
|
|
var G__28238 = (0);
|
|
seq__27833_28223 = G__28235;
|
|
chunk__27834_28224 = G__28236;
|
|
count__27835_28225 = G__28237;
|
|
i__27836_28226 = G__28238;
|
|
continue;
|
|
} else {
|
|
var item_28239 = cljs.core.first(seq__27833_28233__$1);
|
|
shadow.object.dom_enter(coll_dom,make_item_fn(item_28239));
|
|
|
|
|
|
var G__28240 = cljs.core.next(seq__27833_28233__$1);
|
|
var G__28241 = null;
|
|
var G__28242 = (0);
|
|
var G__28243 = (0);
|
|
seq__27833_28223 = G__28240;
|
|
chunk__27834_28224 = G__28241;
|
|
count__27835_28225 = G__28242;
|
|
i__27836_28226 = G__28243;
|
|
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__5000__auto__ = key;
|
|
if(cljs.core.truth_(and__5000__auto__)){
|
|
return path;
|
|
} else {
|
|
return and__5000__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__27841 = "inspect!";
|
|
var G__27842 = shadow.object._id(oref);
|
|
var G__27843 = cljs.core.str.cljs$core$IFn$_invoke$arity$1(shadow.object._type(oref));
|
|
var G__27844 = 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__27841,G__27842,G__27843,G__27844) : shadow.object.info.call(null, G__27841,G__27842,G__27843,G__27844));
|
|
});
|
|
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__27846_28260 = cljs.core.seq(cljs.core.seq(cljs.core.deref(shadow.object.instances)));
|
|
var chunk__27847_28261 = null;
|
|
var count__27848_28262 = (0);
|
|
var i__27849_28263 = (0);
|
|
while(true){
|
|
if((i__27849_28263 < count__27848_28262)){
|
|
var vec__27865_28265 = chunk__27847_28261.cljs$core$IIndexed$_nth$arity$2(null, i__27849_28263);
|
|
var id_28266 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27865_28265,(0),null);
|
|
var oref_28267 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27865_28265,(1),null);
|
|
var G__27869_28268 = "dump";
|
|
var G__27870_28269 = id_28266;
|
|
var G__27871_28270 = cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.object._type(oref_28267)], 0));
|
|
var G__27872_28271 = cljs.core.deref(shadow.object._data(oref_28267));
|
|
(shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__27869_28268,G__27870_28269,G__27871_28270,G__27872_28271) : shadow.object.info.call(null, G__27869_28268,G__27870_28269,G__27871_28270,G__27872_28271));
|
|
|
|
|
|
var G__28272 = seq__27846_28260;
|
|
var G__28273 = chunk__27847_28261;
|
|
var G__28274 = count__27848_28262;
|
|
var G__28275 = (i__27849_28263 + (1));
|
|
seq__27846_28260 = G__28272;
|
|
chunk__27847_28261 = G__28273;
|
|
count__27848_28262 = G__28274;
|
|
i__27849_28263 = G__28275;
|
|
continue;
|
|
} else {
|
|
var temp__5804__auto___28276 = cljs.core.seq(seq__27846_28260);
|
|
if(temp__5804__auto___28276){
|
|
var seq__27846_28277__$1 = temp__5804__auto___28276;
|
|
if(cljs.core.chunked_seq_QMARK_(seq__27846_28277__$1)){
|
|
var c__5525__auto___28278 = cljs.core.chunk_first(seq__27846_28277__$1);
|
|
var G__28279 = cljs.core.chunk_rest(seq__27846_28277__$1);
|
|
var G__28280 = c__5525__auto___28278;
|
|
var G__28281 = cljs.core.count(c__5525__auto___28278);
|
|
var G__28282 = (0);
|
|
seq__27846_28260 = G__28279;
|
|
chunk__27847_28261 = G__28280;
|
|
count__27848_28262 = G__28281;
|
|
i__27849_28263 = G__28282;
|
|
continue;
|
|
} else {
|
|
var vec__27876_28283 = cljs.core.first(seq__27846_28277__$1);
|
|
var id_28284 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27876_28283,(0),null);
|
|
var oref_28285 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__27876_28283,(1),null);
|
|
var G__27879_28287 = "dump";
|
|
var G__27880_28288 = id_28284;
|
|
var G__27881_28289 = cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([shadow.object._type(oref_28285)], 0));
|
|
var G__27882_28290 = cljs.core.deref(shadow.object._data(oref_28285));
|
|
(shadow.object.info.cljs$core$IFn$_invoke$arity$4 ? shadow.object.info.cljs$core$IFn$_invoke$arity$4(G__27879_28287,G__27880_28288,G__27881_28289,G__27882_28290) : shadow.object.info.call(null, G__27879_28287,G__27880_28288,G__27881_28289,G__27882_28290));
|
|
|
|
|
|
var G__28292 = cljs.core.next(seq__27846_28277__$1);
|
|
var G__28293 = null;
|
|
var G__28294 = (0);
|
|
var G__28295 = (0);
|
|
seq__27846_28260 = G__28292;
|
|
chunk__27847_28261 = G__28293;
|
|
count__27848_28262 = G__28294;
|
|
i__27849_28263 = G__28295;
|
|
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
|