goog.provide('replicant.string'); /** * @interface */ replicant.string.IStringifier = function(){}; var replicant$string$IStringifier$append$dyn_51715 = (function (this$,s){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (replicant.string.append[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$2(this$,s) : m__5374__auto__.call(null,this$,s)); } else { var m__5372__auto__ = (replicant.string.append["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$2(this$,s) : m__5372__auto__.call(null,this$,s)); } else { throw cljs.core.missing_protocol("IStringifier.append",this$); } } }); replicant.string.append = (function replicant$string$append(this$,s){ if((((!((this$ == null)))) && ((!((this$.replicant$string$IStringifier$append$arity$2 == null)))))){ return this$.replicant$string$IStringifier$append$arity$2(this$,s); } else { return replicant$string$IStringifier$append$dyn_51715(this$,s); } }); var replicant$string$IStringifier$to_string$dyn_51716 = (function (this$){ var x__5373__auto__ = (((this$ == null))?null:this$); var m__5374__auto__ = (replicant.string.to_string[goog.typeOf(x__5373__auto__)]); if((!((m__5374__auto__ == null)))){ return (m__5374__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5374__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5374__auto__.call(null,this$)); } else { var m__5372__auto__ = (replicant.string.to_string["_"]); if((!((m__5372__auto__ == null)))){ return (m__5372__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5372__auto__.cljs$core$IFn$_invoke$arity$1(this$) : m__5372__auto__.call(null,this$)); } else { throw cljs.core.missing_protocol("IStringifier.to-string",this$); } } }); replicant.string.to_string = (function replicant$string$to_string(this$){ if((((!((this$ == null)))) && ((!((this$.replicant$string$IStringifier$to_string$arity$1 == null)))))){ return this$.replicant$string$IStringifier$to_string$arity$1(this$); } else { return replicant$string$IStringifier$to_string$dyn_51716(this$); } }); /** * @constructor * @implements {cljs.core.IMeta} * @implements {replicant.string.IStringifier} * @implements {cljs.core.IWithMeta} */ replicant.string.t_replicant$string51650 = (function (sb,meta51651){ this.sb = sb; this.meta51651 = meta51651; this.cljs$lang$protocol_mask$partition0$ = 393216; this.cljs$lang$protocol_mask$partition1$ = 0; }); (replicant.string.t_replicant$string51650.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_51652,meta51651__$1){ var self__ = this; var _51652__$1 = this; return (new replicant.string.t_replicant$string51650(self__.sb,meta51651__$1)); })); (replicant.string.t_replicant$string51650.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_51652){ var self__ = this; var _51652__$1 = this; return self__.meta51651; })); (replicant.string.t_replicant$string51650.prototype.replicant$string$IStringifier$ = cljs.core.PROTOCOL_SENTINEL); (replicant.string.t_replicant$string51650.prototype.replicant$string$IStringifier$append$arity$2 = (function (_,s){ var self__ = this; var ___$1 = this; return self__.sb.push(s); })); (replicant.string.t_replicant$string51650.prototype.replicant$string$IStringifier$to_string$arity$1 = (function (_){ var self__ = this; var ___$1 = this; return self__.sb.join(""); })); (replicant.string.t_replicant$string51650.getBasis = (function (){ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"sb","sb",-1249746442,null),new cljs.core.Symbol(null,"meta51651","meta51651",1402662230,null)], null); })); (replicant.string.t_replicant$string51650.cljs$lang$type = true); (replicant.string.t_replicant$string51650.cljs$lang$ctorStr = "replicant.string/t_replicant$string51650"); (replicant.string.t_replicant$string51650.cljs$lang$ctorPrWriter = (function (this__5310__auto__,writer__5311__auto__,opt__5312__auto__){ return cljs.core._write(writer__5311__auto__,"replicant.string/t_replicant$string51650"); })); /** * Positional factory function for replicant.string/t_replicant$string51650. */ replicant.string.__GT_t_replicant$string51650 = (function replicant$string$__GT_t_replicant$string51650(sb,meta51651){ return (new replicant.string.t_replicant$string51650(sb,meta51651)); }); replicant.string.create_renderer = (function replicant$string$create_renderer(){ var sb = []; return (new replicant.string.t_replicant$string51650(sb,cljs.core.PersistentArrayMap.EMPTY)); }); replicant.string.self_closing_QMARK_ = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 15, ["track",null,"br",null,"img",null,"area",null,"base",null,"hr",null,"col",null,"param",null,"input",null,"link",null,"source",null,"audio",null,"meta",null,"wbr",null,"embed",null], null), null); replicant.string.str_join = (function replicant$string$str_join(stringifier,sep,xs){ var G__51656_51719 = cljs.core.first(xs); if((G__51656_51719 == null)){ } else { replicant.string.append(stringifier,G__51656_51719); } var seq__51657_51720 = cljs.core.seq(cljs.core.rest(xs)); var chunk__51658_51721 = null; var count__51659_51722 = (0); var i__51660_51723 = (0); while(true){ if((i__51660_51723 < count__51659_51722)){ var x_51724 = chunk__51658_51721.cljs$core$IIndexed$_nth$arity$2(null,i__51660_51723); if(cljs.core.truth_(x_51724)){ replicant.string.append(stringifier,sep); replicant.string.append(stringifier,x_51724); } else { } var G__51725 = seq__51657_51720; var G__51726 = chunk__51658_51721; var G__51727 = count__51659_51722; var G__51728 = (i__51660_51723 + (1)); seq__51657_51720 = G__51725; chunk__51658_51721 = G__51726; count__51659_51722 = G__51727; i__51660_51723 = G__51728; continue; } else { var temp__5823__auto___51729 = cljs.core.seq(seq__51657_51720); if(temp__5823__auto___51729){ var seq__51657_51730__$1 = temp__5823__auto___51729; if(cljs.core.chunked_seq_QMARK_(seq__51657_51730__$1)){ var c__5548__auto___51731 = cljs.core.chunk_first(seq__51657_51730__$1); var G__51732 = cljs.core.chunk_rest(seq__51657_51730__$1); var G__51733 = c__5548__auto___51731; var G__51734 = cljs.core.count(c__5548__auto___51731); var G__51735 = (0); seq__51657_51720 = G__51732; chunk__51658_51721 = G__51733; count__51659_51722 = G__51734; i__51660_51723 = G__51735; continue; } else { var x_51736 = cljs.core.first(seq__51657_51730__$1); if(cljs.core.truth_(x_51736)){ replicant.string.append(stringifier,sep); replicant.string.append(stringifier,x_51736); } else { } var G__51737 = cljs.core.next(seq__51657_51730__$1); var G__51738 = null; var G__51739 = (0); var G__51740 = (0); seq__51657_51720 = G__51737; chunk__51658_51721 = G__51738; count__51659_51722 = G__51739; i__51660_51723 = G__51740; continue; } } else { } } break; } return stringifier; }); replicant.string.render_attrs = (function replicant$string$render_attrs(stringifier,attrs){ return cljs.core.reduce_kv((function (_,k,v){ if(cljs.core.truth_((function (){var and__5023__auto__ = cljs.core.not((function (){var fexpr__51667 = new cljs.core.PersistentHashSet(null, new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"innerHTML","innerHTML",-1856751343),null,new cljs.core.Keyword(null,"on","on",173873944),null], null), null); return (fexpr__51667.cljs$core$IFn$_invoke$arity$1 ? fexpr__51667.cljs$core$IFn$_invoke$arity$1(k) : fexpr__51667.call(null,k)); })()); if(and__5023__auto__){ var and__5023__auto____$1 = v; if(cljs.core.truth_(and__5023__auto____$1)){ return (cljs.core.namespace(k) == null); } else { return and__5023__auto____$1; } } else { return and__5023__auto__; } })())){ var v_51742__$1 = (function (){var G__51668 = v; if((v instanceof cljs.core.Keyword)){ return cljs.core.name(G__51668); } else { return G__51668; } })(); replicant.string.append(stringifier," "); var G__51669_51743 = k; var G__51669_51744__$1 = (((G__51669_51743 instanceof cljs.core.Keyword))?G__51669_51743.fqn:null); switch (G__51669_51744__$1) { case "classes": replicant.string.append(stringifier,"class=\""); replicant.string.str_join(stringifier," ",v_51742__$1); replicant.string.append(stringifier,"\""); break; case "style": replicant.string.append(stringifier,"style=\""); replicant.string.str_join(stringifier," ",cljs.core.keep.cljs$core$IFn$_invoke$arity$2((function (p__51670){ var vec__51671 = p__51670; var prop = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51671,(0),null); var val = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51671,(1),null); var temp__5823__auto__ = replicant.core.get_style_val(prop,val); if(cljs.core.truth_(temp__5823__auto__)){ var val__$1 = temp__5823__auto__; return [cljs.core.name(prop),": ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(val__$1),";"].join(''); } else { return null; } }),v_51742__$1)); replicant.string.append(stringifier,"\""); break; default: if(((typeof v_51742__$1 === 'number') || (((typeof v_51742__$1 === 'string') && (((0) < cljs.core.count(v_51742__$1))))))){ var G__51674_51747 = stringifier; replicant.string.append(G__51674_51747,cljs.core.name(k)); replicant.string.append(G__51674_51747,"=\""); replicant.string.append(G__51674_51747,v_51742__$1); replicant.string.append(G__51674_51747,"\""); } else { replicant.string.append(stringifier,cljs.core.name(k)); } } } else { } return null; }),null,attrs); }); /** * Change special characters into HTML character entities. * * Taken from Hiccup: * https://github.com/weavejester/hiccup/blob/5a6d45c17728dcbcb3aeb32ea890fd9dc1508547/src/hiccup/util.clj#L80-L88 */ replicant.string.escape_html = (function replicant$string$escape_html(text){ return clojure.string.replace(clojure.string.replace(clojure.string.replace(clojure.string.replace(clojure.string.replace(text,"&","&"),"<","<"),">",">"),"\"","""),"'","'"); }); replicant.string.get_expanded_headers = (function replicant$string$get_expanded_headers(opt,headers){ if(((cljs.core.qualified_keyword_QMARK_((headers[(0)]))) && ((cljs.core.get.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"aliases","aliases",1346874714).cljs$core$IFn$_invoke$arity$1(opt),(headers[(0)])) == null)))){ throw cljs.core.ex_info.cljs$core$IFn$_invoke$arity$2(["Tried to expand undefined alias ",cljs.core.str.cljs$core$IFn$_invoke$arity$1((headers[(0)]))].join(''),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"missing","missing",362507769),(headers[(0)]),new cljs.core.Keyword(null,"available","available",-1470697127),new cljs.core.Keyword(null,"aliases","aliases",1346874714).cljs$core$IFn$_invoke$arity$1(opt)], null)); } else { } var or__5025__auto__ = (function (){var temp__5823__auto__ = replicant.core.get_alias_headers(opt,headers); if(cljs.core.truth_(temp__5823__auto__)){ var aliased = temp__5823__auto__; return (replicant.string.get_expanded_headers.cljs$core$IFn$_invoke$arity$2 ? replicant.string.get_expanded_headers.cljs$core$IFn$_invoke$arity$2(opt,aliased) : replicant.string.get_expanded_headers.call(null,opt,aliased)); } else { return null; } })(); if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { return headers; } }); replicant.string.render_node = (function replicant$string$render_node(stringifier,headers,p__51675){ var map__51676 = p__51675; var map__51676__$1 = cljs.core.__destructure_map(map__51676); var depth = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51676__$1,new cljs.core.Keyword(null,"depth","depth",1768663640)); var indent = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51676__$1,new cljs.core.Keyword(null,"indent","indent",-148200125)); var aliases = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51676__$1,new cljs.core.Keyword(null,"aliases","aliases",1346874714)); var alias_data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51676__$1,new cljs.core.Keyword(null,"alias-data","alias-data",1743863930)); var indent_QMARK_ = (indent > (0)); var indent_s = ((indent_QMARK_)?clojure.string.join.cljs$core$IFn$_invoke$arity$1(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2((depth * indent)," ")):""); var newline = ((indent_QMARK_)?"\n":""); var headers__$1 = replicant.string.get_expanded_headers(new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"aliases","aliases",1346874714),aliases,new cljs.core.Keyword(null,"alias-data","alias-data",1743863930),alias_data], null),headers); var temp__5821__auto__ = (headers__$1[(8)]); if(cljs.core.truth_(temp__5821__auto__)){ var text = temp__5821__auto__; var G__51680 = stringifier; replicant.string.append(G__51680,indent_s); replicant.string.append(G__51680,replicant.string.escape_html(text)); replicant.string.append(G__51680,newline); return G__51680; } else { var tag_name = (headers__$1[(0)]); var attrs = replicant.core.get_attrs(headers__$1); var ns_string = ((((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2("svg",tag_name)) && (cljs.core.not(new cljs.core.Keyword(null,"xmlns","xmlns",-1862095571).cljs$core$IFn$_invoke$arity$1(attrs)))))?" xmlns=\"http://www.w3.org/2000/svg\"":""); var G__51681_51753 = stringifier; replicant.string.append(G__51681_51753,indent_s); replicant.string.append(G__51681_51753,"<"); replicant.string.append(G__51681_51753,tag_name); replicant.string.append(G__51681_51753,ns_string); replicant.string.render_attrs(stringifier,attrs); var G__51687_51754 = stringifier; replicant.string.append(G__51687_51754,">"); replicant.string.append(G__51687_51754,newline); if(cljs.core.truth_(new cljs.core.Keyword(null,"innerHTML","innerHTML",-1856751343).cljs$core$IFn$_invoke$arity$1(attrs))){ replicant.string.append(stringifier,new cljs.core.Keyword(null,"innerHTML","innerHTML",-1856751343).cljs$core$IFn$_invoke$arity$1(attrs)); } else { cljs.core.run_BANG_((function (child){ if(cljs.core.truth_(child)){ var G__51688 = stringifier; var G__51689 = child; var G__51690 = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"depth","depth",1768663640),(depth + (1)),new cljs.core.Keyword(null,"indent","indent",-148200125),indent,new cljs.core.Keyword(null,"aliases","aliases",1346874714),aliases,new cljs.core.Keyword(null,"alias-data","alias-data",1743863930),alias_data], null); return (replicant.string.render_node.cljs$core$IFn$_invoke$arity$3 ? replicant.string.render_node.cljs$core$IFn$_invoke$arity$3(G__51688,G__51689,G__51690) : replicant.string.render_node.call(null,G__51688,G__51689,G__51690)); } else { return null; } }),replicant.core.get_children(headers__$1,(headers__$1[(6)]))); } if(cljs.core.truth_((replicant.string.self_closing_QMARK_.cljs$core$IFn$_invoke$arity$1 ? replicant.string.self_closing_QMARK_.cljs$core$IFn$_invoke$arity$1(tag_name) : replicant.string.self_closing_QMARK_.call(null,tag_name)))){ } else { var G__51691_51755 = stringifier; replicant.string.append(G__51691_51755,indent_s); replicant.string.append(G__51691_51755,""); replicant.string.append(G__51691_51755,newline); } return stringifier; } }); /** * Render `hiccup` to a string of HTML. `hiccup` can be either a single hiccup * node or a list of multiple nodes. */ replicant.string.render = (function replicant$string$render(var_args){ var args__5755__auto__ = []; var len__5749__auto___51759 = arguments.length; var i__5750__auto___51760 = (0); while(true){ if((i__5750__auto___51760 < len__5749__auto___51759)){ args__5755__auto__.push((arguments[i__5750__auto___51760])); var G__51761 = (i__5750__auto___51760 + (1)); i__5750__auto___51760 = G__51761; continue; } else { } break; } var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null); return replicant.string.render.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__auto__); }); (replicant.string.render.cljs$core$IFn$_invoke$arity$variadic = (function (hiccup,p__51701){ var vec__51702 = p__51701; var map__51705 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__51702,(0),null); var map__51705__$1 = cljs.core.__destructure_map(map__51705); var aliases = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51705__$1,new cljs.core.Keyword(null,"aliases","aliases",1346874714)); var alias_data = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51705__$1,new cljs.core.Keyword(null,"alias-data","alias-data",1743863930)); var indent = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__51705__$1,new cljs.core.Keyword(null,"indent","indent",-148200125)); var opt = new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"indent","indent",-148200125),(function (){var or__5025__auto__ = indent; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { return (0); } })(),new cljs.core.Keyword(null,"depth","depth",1768663640),(0),new cljs.core.Keyword(null,"aliases","aliases",1346874714),(function (){var or__5025__auto__ = aliases; if(cljs.core.truth_(or__5025__auto__)){ return or__5025__auto__; } else { return replicant.alias.get_registered_aliases(); } })(),new cljs.core.Keyword(null,"alias-data","alias-data",1743863930),alias_data], null); if(replicant.hiccup.hiccup_QMARK_(hiccup)){ var stringifier = replicant.string.create_renderer(); replicant.string.render_node(stringifier,replicant.core.get_hiccup_headers(null,hiccup),opt); return stringifier.replicant$string$IStringifier$to_string$arity$1(null); } else { if(cljs.core.list_QMARK_(hiccup)){ var stringifier = replicant.string.create_renderer(); var seq__51708_51765 = cljs.core.seq(hiccup); var chunk__51709_51766 = null; var count__51710_51767 = (0); var i__51711_51768 = (0); while(true){ if((i__51711_51768 < count__51710_51767)){ var hiccup_node_51769 = chunk__51709_51766.cljs$core$IIndexed$_nth$arity$2(null,i__51711_51768); replicant.string.render_node(stringifier,replicant.core.get_hiccup_headers(null,hiccup_node_51769),opt); var G__51770 = seq__51708_51765; var G__51771 = chunk__51709_51766; var G__51772 = count__51710_51767; var G__51773 = (i__51711_51768 + (1)); seq__51708_51765 = G__51770; chunk__51709_51766 = G__51771; count__51710_51767 = G__51772; i__51711_51768 = G__51773; continue; } else { var temp__5823__auto___51774 = cljs.core.seq(seq__51708_51765); if(temp__5823__auto___51774){ var seq__51708_51775__$1 = temp__5823__auto___51774; if(cljs.core.chunked_seq_QMARK_(seq__51708_51775__$1)){ var c__5548__auto___51776 = cljs.core.chunk_first(seq__51708_51775__$1); var G__51777 = cljs.core.chunk_rest(seq__51708_51775__$1); var G__51778 = c__5548__auto___51776; var G__51779 = cljs.core.count(c__5548__auto___51776); var G__51780 = (0); seq__51708_51765 = G__51777; chunk__51709_51766 = G__51778; count__51710_51767 = G__51779; i__51711_51768 = G__51780; continue; } else { var hiccup_node_51781 = cljs.core.first(seq__51708_51775__$1); replicant.string.render_node(stringifier,replicant.core.get_hiccup_headers(null,hiccup_node_51781),opt); var G__51785 = cljs.core.next(seq__51708_51775__$1); var G__51786 = null; var G__51787 = (0); var G__51788 = (0); seq__51708_51765 = G__51785; chunk__51709_51766 = G__51786; count__51710_51767 = G__51787; i__51711_51768 = G__51788; continue; } } else { } } break; } return stringifier.replicant$string$IStringifier$to_string$arity$1(null); } else { return cljs.core.str.cljs$core$IFn$_invoke$arity$1(hiccup); } } })); (replicant.string.render.cljs$lang$maxFixedArity = (1)); /** @this {Function} */ (replicant.string.render.cljs$lang$applyTo = (function (seq51696){ var G__51698 = cljs.core.first(seq51696); var seq51696__$1 = cljs.core.next(seq51696); var self__5734__auto__ = this; return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__51698,seq51696__$1); })); //# sourceMappingURL=replicant.string.js.map