goog.provide('reagent.dom'); var module$react_dom=shadow.js.require("module$react_dom", {}); if((typeof reagent !== 'undefined') && (typeof reagent.dom !== 'undefined') && (typeof reagent.dom.roots !== 'undefined')){ } else { reagent.dom.roots = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY); } reagent.dom.unmount_comp = (function reagent$dom$unmount_comp(container){ cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(reagent.dom.roots,cljs.core.dissoc,container); return module$react_dom.unmountComponentAtNode(container); }); reagent.dom.render_comp = (function reagent$dom$render_comp(comp,container,callback){ var _STAR_always_update_STAR__orig_val__52044 = reagent.impl.util._STAR_always_update_STAR_; var _STAR_always_update_STAR__temp_val__52045 = true; (reagent.impl.util._STAR_always_update_STAR_ = _STAR_always_update_STAR__temp_val__52045); try{return module$react_dom.render((comp.cljs$core$IFn$_invoke$arity$0 ? comp.cljs$core$IFn$_invoke$arity$0() : comp.call(null)),container,(function (){ var _STAR_always_update_STAR__orig_val__52046 = reagent.impl.util._STAR_always_update_STAR_; var _STAR_always_update_STAR__temp_val__52047 = false; (reagent.impl.util._STAR_always_update_STAR_ = _STAR_always_update_STAR__temp_val__52047); try{cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(reagent.dom.roots,cljs.core.assoc,container,comp); reagent.impl.batching.flush_after_render(); if((!((callback == null)))){ return (callback.cljs$core$IFn$_invoke$arity$0 ? callback.cljs$core$IFn$_invoke$arity$0() : callback.call(null)); } else { return null; } }finally {(reagent.impl.util._STAR_always_update_STAR_ = _STAR_always_update_STAR__orig_val__52046); }})); }finally {(reagent.impl.util._STAR_always_update_STAR_ = _STAR_always_update_STAR__orig_val__52044); }}); reagent.dom.re_render_component = (function reagent$dom$re_render_component(comp,container){ return reagent.dom.render_comp(comp,container,null); }); /** * Render a Reagent component into the DOM. The first argument may be * either a vector (using Reagent's Hiccup syntax), or a React element. * The second argument should be a DOM node. * * Optionally takes a callback that is called when the component is in place. * * Returns the mounted component instance. */ reagent.dom.render = (function reagent$dom$render(var_args){ var G__52054 = arguments.length; switch (G__52054) { case 2: return reagent.dom.render.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)])); break; case 3: return reagent.dom.render.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(''))); } }); (reagent.dom.render.cljs$core$IFn$_invoke$arity$2 = (function (comp,container){ return reagent.dom.render.cljs$core$IFn$_invoke$arity$3(comp,container,reagent.impl.template.default_compiler); })); (reagent.dom.render.cljs$core$IFn$_invoke$arity$3 = (function (comp,container,callback_or_compiler){ reagent.ratom.flush_BANG_(); var vec__52056 = ((cljs.core.fn_QMARK_(callback_or_compiler))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [reagent.impl.template.default_compiler,callback_or_compiler], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [callback_or_compiler,new cljs.core.Keyword(null,"callback","callback",-705136228).cljs$core$IFn$_invoke$arity$1(callback_or_compiler)], null)); var compiler = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52056,(0),null); var callback = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52056,(1),null); var f = (function (){ return reagent.impl.protocols.as_element(compiler,((cljs.core.fn_QMARK_(comp))?(comp.cljs$core$IFn$_invoke$arity$0 ? comp.cljs$core$IFn$_invoke$arity$0() : comp.call(null)):comp)); }); return reagent.dom.render_comp(f,container,callback); })); (reagent.dom.render.cljs$lang$maxFixedArity = 3); /** * Remove a component from the given DOM node. */ reagent.dom.unmount_component_at_node = (function reagent$dom$unmount_component_at_node(container){ return reagent.dom.unmount_comp(container); }); /** * Returns the root DOM node of a mounted component. */ reagent.dom.dom_node = (function reagent$dom$dom_node(this$){ return module$react_dom.findDOMNode(this$); }); /** * Force re-rendering of all mounted Reagent components. This is * probably only useful in a development environment, when you want to * update components in response to some dynamic changes to code. * * Note that force-update-all may not update root components. This * happens if a component 'foo' is mounted with `(render [foo])` (since * functions are passed by value, and not by reference, in * ClojureScript). To get around this you'll have to introduce a layer * of indirection, for example by using `(render [#'foo])` instead. */ reagent.dom.force_update_all = (function reagent$dom$force_update_all(){ reagent.ratom.flush_BANG_(); var seq__52063_52095 = cljs.core.seq(cljs.core.deref(reagent.dom.roots)); var chunk__52064_52096 = null; var count__52065_52097 = (0); var i__52066_52098 = (0); while(true){ if((i__52066_52098 < count__52065_52097)){ var vec__52076_52100 = chunk__52064_52096.cljs$core$IIndexed$_nth$arity$2(null,i__52066_52098); var container_52101 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52076_52100,(0),null); var comp_52102 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52076_52100,(1),null); reagent.dom.re_render_component(comp_52102,container_52101); var G__52103 = seq__52063_52095; var G__52104 = chunk__52064_52096; var G__52105 = count__52065_52097; var G__52106 = (i__52066_52098 + (1)); seq__52063_52095 = G__52103; chunk__52064_52096 = G__52104; count__52065_52097 = G__52105; i__52066_52098 = G__52106; continue; } else { var temp__5823__auto___52107 = cljs.core.seq(seq__52063_52095); if(temp__5823__auto___52107){ var seq__52063_52108__$1 = temp__5823__auto___52107; if(cljs.core.chunked_seq_QMARK_(seq__52063_52108__$1)){ var c__5548__auto___52109 = cljs.core.chunk_first(seq__52063_52108__$1); var G__52110 = cljs.core.chunk_rest(seq__52063_52108__$1); var G__52111 = c__5548__auto___52109; var G__52112 = cljs.core.count(c__5548__auto___52109); var G__52113 = (0); seq__52063_52095 = G__52110; chunk__52064_52096 = G__52111; count__52065_52097 = G__52112; i__52066_52098 = G__52113; continue; } else { var vec__52081_52114 = cljs.core.first(seq__52063_52108__$1); var container_52115 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52081_52114,(0),null); var comp_52116 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__52081_52114,(1),null); reagent.dom.re_render_component(comp_52116,container_52115); var G__52117 = cljs.core.next(seq__52063_52108__$1); var G__52118 = null; var G__52119 = (0); var G__52120 = (0); seq__52063_52095 = G__52117; chunk__52064_52096 = G__52118; count__52065_52097 = G__52119; i__52066_52098 = G__52120; continue; } } else { } } break; } return reagent.impl.batching.flush_after_render(); }); //# sourceMappingURL=reagent.dom.js.map