UNPKG

@atomist/clj-editors

Version:

We build a node module `@atomist/clj-editors` here. This allows us to construct clojure editors using `rewrite-cljs`. After adding this dependency, the node application will have access to javascript functions transpiled from clojurescript.

494 lines (486 loc) 23.5 kB
// Compiled by ClojureScript 1.9.946 {:target :nodejs} goog.provide('clojure.zip'); goog.require('cljs.core'); /** * Creates a new zipper structure. * * branch? is a fn that, given a node, returns true if can have * children, even if it currently doesn't. * * children is a fn that, given a branch node, returns a seq of its * children. * * make-node is a fn that, given an existing node and a seq of * children, returns a new branch node with the supplied children. * root is the root node. */ clojure.zip.zipper = (function clojure$zip$zipper(branch_QMARK_,children,make_node,root){ return cljs.core.with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [root,null], null),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword("zip","branch?","zip/branch?",-998880862),branch_QMARK_,new cljs.core.Keyword("zip","children","zip/children",-940194589),children,new cljs.core.Keyword("zip","make-node","zip/make-node",1103800591),make_node], null)); }); /** * Returns a zipper for nested sequences, given a root sequence */ clojure.zip.seq_zip = (function clojure$zip$seq_zip(root){ return clojure.zip.zipper.call(null,cljs.core.seq_QMARK_,cljs.core.identity,(function (node,children){ return cljs.core.with_meta.call(null,children,cljs.core.meta.call(null,node)); }),root); }); /** * Returns a zipper for nested vectors, given a root vector */ clojure.zip.vector_zip = (function clojure$zip$vector_zip(root){ return clojure.zip.zipper.call(null,cljs.core.vector_QMARK_,cljs.core.seq,(function (node,children){ return cljs.core.with_meta.call(null,cljs.core.vec.call(null,children),cljs.core.meta.call(null,node)); }),root); }); /** * Returns a zipper for xml elements (as from xml/parse), * given a root element */ clojure.zip.xml_zip = (function clojure$zip$xml_zip(root){ return clojure.zip.zipper.call(null,cljs.core.complement.call(null,cljs.core.string_QMARK_),cljs.core.comp.call(null,cljs.core.seq,new cljs.core.Keyword(null,"content","content",15833224)),(function (node,children){ return cljs.core.assoc.call(null,node,new cljs.core.Keyword(null,"content","content",15833224),(function (){var and__7866__auto__ = children; if(cljs.core.truth_(and__7866__auto__)){ return cljs.core.apply.call(null,cljs.core.vector,children); } else { return and__7866__auto__; } })()); }),root); }); /** * Returns the node at loc */ clojure.zip.node = (function clojure$zip$node(loc){ return loc.call(null,(0)); }); /** * Returns true if the node at loc is a branch */ clojure.zip.branch_QMARK_ = (function clojure$zip$branch_QMARK_(loc){ return new cljs.core.Keyword("zip","branch?","zip/branch?",-998880862).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,loc)).call(null,clojure.zip.node.call(null,loc)); }); /** * Returns a seq of the children of node at loc, which must be a branch */ clojure.zip.children = (function clojure$zip$children(loc){ if(cljs.core.truth_(clojure.zip.branch_QMARK_.call(null,loc))){ return new cljs.core.Keyword("zip","children","zip/children",-940194589).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,loc)).call(null,clojure.zip.node.call(null,loc)); } else { throw "called children on a leaf node"; } }); /** * Returns a new branch node, given an existing node and new * children. The loc is only used to supply the constructor. */ clojure.zip.make_node = (function clojure$zip$make_node(loc,node,children){ return new cljs.core.Keyword("zip","make-node","zip/make-node",1103800591).cljs$core$IFn$_invoke$arity$1(cljs.core.meta.call(null,loc)).call(null,node,children); }); /** * Returns a seq of nodes leading to this loc */ clojure.zip.path = (function clojure$zip$path(loc){ return new cljs.core.Keyword(null,"pnodes","pnodes",1739080565).cljs$core$IFn$_invoke$arity$1(loc.call(null,(1))); }); /** * Returns a seq of the left siblings of this loc */ clojure.zip.lefts = (function clojure$zip$lefts(loc){ return cljs.core.seq.call(null,new cljs.core.Keyword(null,"l","l",1395893423).cljs$core$IFn$_invoke$arity$1(loc.call(null,(1)))); }); /** * Returns a seq of the right siblings of this loc */ clojure.zip.rights = (function clojure$zip$rights(loc){ return new cljs.core.Keyword(null,"r","r",-471384190).cljs$core$IFn$_invoke$arity$1(loc.call(null,(1))); }); /** * Returns the loc of the leftmost child of the node at this loc, or * nil if no children */ clojure.zip.down = (function clojure$zip$down(loc){ if(cljs.core.truth_(clojure.zip.branch_QMARK_.call(null,loc))){ var vec__10816 = loc; var node = cljs.core.nth.call(null,vec__10816,(0),null); var path = cljs.core.nth.call(null,vec__10816,(1),null); var vec__10819 = clojure.zip.children.call(null,loc); var seq__10820 = cljs.core.seq.call(null,vec__10819); var first__10821 = cljs.core.first.call(null,seq__10820); var seq__10820__$1 = cljs.core.next.call(null,seq__10820); var c = first__10821; var cnext = seq__10820__$1; var cs = vec__10819; if(cljs.core.truth_(cs)){ return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [c,new cljs.core.PersistentArrayMap(null, 4, [new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"pnodes","pnodes",1739080565),(cljs.core.truth_(path)?cljs.core.conj.call(null,new cljs.core.Keyword(null,"pnodes","pnodes",1739080565).cljs$core$IFn$_invoke$arity$1(path),node):new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [node], null)),new cljs.core.Keyword(null,"ppath","ppath",-1758182784),path,new cljs.core.Keyword(null,"r","r",-471384190),cnext], null)], null),cljs.core.meta.call(null,loc)); } else { return null; } } else { return null; } }); /** * Returns the loc of the parent of the node at this loc, or nil if at * the top */ clojure.zip.up = (function clojure$zip$up(loc){ var vec__10854 = loc; var node = cljs.core.nth.call(null,vec__10854,(0),null); var map__10857 = cljs.core.nth.call(null,vec__10854,(1),null); var map__10857__$1 = ((((!((map__10857 == null)))?((((map__10857.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10857.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10857):map__10857); var path = map__10857__$1; var l = cljs.core.get.call(null,map__10857__$1,new cljs.core.Keyword(null,"l","l",1395893423)); var ppath = cljs.core.get.call(null,map__10857__$1,new cljs.core.Keyword(null,"ppath","ppath",-1758182784)); var pnodes = cljs.core.get.call(null,map__10857__$1,new cljs.core.Keyword(null,"pnodes","pnodes",1739080565)); var r = cljs.core.get.call(null,map__10857__$1,new cljs.core.Keyword(null,"r","r",-471384190)); var changed_QMARK_ = cljs.core.get.call(null,map__10857__$1,new cljs.core.Keyword(null,"changed?","changed?",-437828330)); if(cljs.core.truth_(pnodes)){ var pnode = cljs.core.peek.call(null,pnodes); return cljs.core.with_meta.call(null,(cljs.core.truth_(changed_QMARK_)?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.zip.make_node.call(null,loc,pnode,cljs.core.concat.call(null,l,cljs.core.cons.call(null,node,r))),(function (){var and__7866__auto__ = ppath; if(cljs.core.truth_(and__7866__auto__)){ return cljs.core.assoc.call(null,ppath,new cljs.core.Keyword(null,"changed?","changed?",-437828330),true); } else { return and__7866__auto__; } })()], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [pnode,ppath], null)),cljs.core.meta.call(null,loc)); } else { return null; } }); /** * zips all the way up and returns the root node, reflecting any * changes. */ clojure.zip.root = (function clojure$zip$root(loc){ while(true){ if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"end","end",-268185958),loc.call(null,(1)))){ return clojure.zip.node.call(null,loc); } else { var p = clojure.zip.up.call(null,loc); if(cljs.core.truth_(p)){ var G__10899 = p; loc = G__10899; continue; } else { return clojure.zip.node.call(null,loc); } } break; } }); /** * Returns the loc of the right sibling of the node at this loc, or nil */ clojure.zip.right = (function clojure$zip$right(loc){ var vec__10902 = loc; var node = cljs.core.nth.call(null,vec__10902,(0),null); var map__10905 = cljs.core.nth.call(null,vec__10902,(1),null); var map__10905__$1 = ((((!((map__10905 == null)))?((((map__10905.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10905.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10905):map__10905); var path = map__10905__$1; var l = cljs.core.get.call(null,map__10905__$1,new cljs.core.Keyword(null,"l","l",1395893423)); var vec__10906 = cljs.core.get.call(null,map__10905__$1,new cljs.core.Keyword(null,"r","r",-471384190)); var seq__10907 = cljs.core.seq.call(null,vec__10906); var first__10908 = cljs.core.first.call(null,seq__10907); var seq__10907__$1 = cljs.core.next.call(null,seq__10907); var r = first__10908; var rnext = seq__10907__$1; var rs = vec__10906; if(cljs.core.truth_((function (){var and__7866__auto__ = path; if(cljs.core.truth_(and__7866__auto__)){ return rs; } else { return and__7866__auto__; } })())){ return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [r,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.conj.call(null,l,node),new cljs.core.Keyword(null,"r","r",-471384190),rnext)], null),cljs.core.meta.call(null,loc)); } else { return null; } }); /** * Returns the loc of the rightmost sibling of the node at this loc, or self */ clojure.zip.rightmost = (function clojure$zip$rightmost(loc){ var vec__10924 = loc; var node = cljs.core.nth.call(null,vec__10924,(0),null); var map__10927 = cljs.core.nth.call(null,vec__10924,(1),null); var map__10927__$1 = ((((!((map__10927 == null)))?((((map__10927.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10927.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10927):map__10927); var path = map__10927__$1; var l = cljs.core.get.call(null,map__10927__$1,new cljs.core.Keyword(null,"l","l",1395893423)); var r = cljs.core.get.call(null,map__10927__$1,new cljs.core.Keyword(null,"r","r",-471384190)); if(cljs.core.truth_((function (){var and__7866__auto__ = path; if(cljs.core.truth_(and__7866__auto__)){ return r; } else { return and__7866__auto__; } })())){ return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.last.call(null,r),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.apply.call(null,cljs.core.conj,l,node,cljs.core.butlast.call(null,r)),new cljs.core.Keyword(null,"r","r",-471384190),null)], null),cljs.core.meta.call(null,loc)); } else { return loc; } }); /** * Returns the loc of the left sibling of the node at this loc, or nil */ clojure.zip.left = (function clojure$zip$left(loc){ var vec__10942 = loc; var node = cljs.core.nth.call(null,vec__10942,(0),null); var map__10945 = cljs.core.nth.call(null,vec__10942,(1),null); var map__10945__$1 = ((((!((map__10945 == null)))?((((map__10945.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10945.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10945):map__10945); var path = map__10945__$1; var l = cljs.core.get.call(null,map__10945__$1,new cljs.core.Keyword(null,"l","l",1395893423)); var r = cljs.core.get.call(null,map__10945__$1,new cljs.core.Keyword(null,"r","r",-471384190)); if(cljs.core.truth_((function (){var and__7866__auto__ = path; if(cljs.core.truth_(and__7866__auto__)){ return cljs.core.seq.call(null,l); } else { return and__7866__auto__; } })())){ return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.peek.call(null,l),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.pop.call(null,l),new cljs.core.Keyword(null,"r","r",-471384190),cljs.core.cons.call(null,node,r))], null),cljs.core.meta.call(null,loc)); } else { return null; } }); /** * Returns the loc of the leftmost sibling of the node at this loc, or self */ clojure.zip.leftmost = (function clojure$zip$leftmost(loc){ var vec__10966 = loc; var node = cljs.core.nth.call(null,vec__10966,(0),null); var map__10969 = cljs.core.nth.call(null,vec__10966,(1),null); var map__10969__$1 = ((((!((map__10969 == null)))?((((map__10969.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10969.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10969):map__10969); var path = map__10969__$1; var l = cljs.core.get.call(null,map__10969__$1,new cljs.core.Keyword(null,"l","l",1395893423)); var r = cljs.core.get.call(null,map__10969__$1,new cljs.core.Keyword(null,"r","r",-471384190)); if(cljs.core.truth_((function (){var and__7866__auto__ = path; if(cljs.core.truth_(and__7866__auto__)){ return cljs.core.seq.call(null,l); } else { return and__7866__auto__; } })())){ return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.first.call(null,l),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.PersistentVector.EMPTY,new cljs.core.Keyword(null,"r","r",-471384190),cljs.core.concat.call(null,cljs.core.rest.call(null,l),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [node], null),r))], null),cljs.core.meta.call(null,loc)); } else { return loc; } }); /** * Inserts the item as the left sibling of the node at this loc, * without moving */ clojure.zip.insert_left = (function clojure$zip$insert_left(loc,item){ var vec__10996 = loc; var node = cljs.core.nth.call(null,vec__10996,(0),null); var map__10999 = cljs.core.nth.call(null,vec__10996,(1),null); var map__10999__$1 = ((((!((map__10999 == null)))?((((map__10999.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__10999.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__10999):map__10999); var path = map__10999__$1; var l = cljs.core.get.call(null,map__10999__$1,new cljs.core.Keyword(null,"l","l",1395893423)); if((path == null)){ throw "Insert at top"; } else { return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.conj.call(null,l,item),new cljs.core.Keyword(null,"changed?","changed?",-437828330),true)], null),cljs.core.meta.call(null,loc)); } }); /** * Inserts the item as the right sibling of the node at this loc, * without moving */ clojure.zip.insert_right = (function clojure$zip$insert_right(loc,item){ var vec__11013 = loc; var node = cljs.core.nth.call(null,vec__11013,(0),null); var map__11016 = cljs.core.nth.call(null,vec__11013,(1),null); var map__11016__$1 = ((((!((map__11016 == null)))?((((map__11016.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__11016.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__11016):map__11016); var path = map__11016__$1; var r = cljs.core.get.call(null,map__11016__$1,new cljs.core.Keyword(null,"r","r",-471384190)); if((path == null)){ throw "Insert at top"; } else { return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"r","r",-471384190),cljs.core.cons.call(null,item,r),new cljs.core.Keyword(null,"changed?","changed?",-437828330),true)], null),cljs.core.meta.call(null,loc)); } }); /** * Replaces the node at this loc, without moving */ clojure.zip.replace = (function clojure$zip$replace(loc,node){ var vec__11038 = loc; var _ = cljs.core.nth.call(null,vec__11038,(0),null); var path = cljs.core.nth.call(null,vec__11038,(1),null); return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [node,cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"changed?","changed?",-437828330),true)], null),cljs.core.meta.call(null,loc)); }); /** * Replaces the node at this loc with the value of (f node args) */ clojure.zip.edit = (function clojure$zip$edit(var_args){ var args__9056__auto__ = []; var len__9049__auto___11074 = arguments.length; var i__9050__auto___11076 = (0); while(true){ if((i__9050__auto___11076 < len__9049__auto___11074)){ args__9056__auto__.push((arguments[i__9050__auto___11076])); var G__11080 = (i__9050__auto___11076 + (1)); i__9050__auto___11076 = G__11080; continue; } else { } break; } var argseq__9057__auto__ = ((((2) < args__9056__auto__.length))?(new cljs.core.IndexedSeq(args__9056__auto__.slice((2)),(0),null)):null); return clojure.zip.edit.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__9057__auto__); }); clojure.zip.edit.cljs$core$IFn$_invoke$arity$variadic = (function (loc,f,args){ return clojure.zip.replace.call(null,loc,cljs.core.apply.call(null,f,clojure.zip.node.call(null,loc),args)); }); clojure.zip.edit.cljs$lang$maxFixedArity = (2); clojure.zip.edit.cljs$lang$applyTo = (function (seq11053){ var G__11054 = cljs.core.first.call(null,seq11053); var seq11053__$1 = cljs.core.next.call(null,seq11053); var G__11055 = cljs.core.first.call(null,seq11053__$1); var seq11053__$2 = cljs.core.next.call(null,seq11053__$1); return clojure.zip.edit.cljs$core$IFn$_invoke$arity$variadic(G__11054,G__11055,seq11053__$2); }); /** * Inserts the item as the leftmost child of the node at this loc, * without moving */ clojure.zip.insert_child = (function clojure$zip$insert_child(loc,item){ return clojure.zip.replace.call(null,loc,clojure.zip.make_node.call(null,loc,clojure.zip.node.call(null,loc),cljs.core.cons.call(null,item,clojure.zip.children.call(null,loc)))); }); /** * Inserts the item as the rightmost child of the node at this loc, * without moving */ clojure.zip.append_child = (function clojure$zip$append_child(loc,item){ return clojure.zip.replace.call(null,loc,clojure.zip.make_node.call(null,loc,clojure.zip.node.call(null,loc),cljs.core.concat.call(null,clojure.zip.children.call(null,loc),new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [item], null)))); }); /** * Moves to the next loc in the hierarchy, depth-first. When reaching * the end, returns a distinguished loc detectable via end?. If already * at the end, stays there. */ clojure.zip.next = (function clojure$zip$next(loc){ if(cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"end","end",-268185958),loc.call(null,(1)))){ return loc; } else { var or__7878__auto__ = (function (){var and__7866__auto__ = clojure.zip.branch_QMARK_.call(null,loc); if(cljs.core.truth_(and__7866__auto__)){ return clojure.zip.down.call(null,loc); } else { return and__7866__auto__; } })(); if(cljs.core.truth_(or__7878__auto__)){ return or__7878__auto__; } else { var or__7878__auto____$1 = clojure.zip.right.call(null,loc); if(cljs.core.truth_(or__7878__auto____$1)){ return or__7878__auto____$1; } else { var p = loc; while(true){ if(cljs.core.truth_(clojure.zip.up.call(null,p))){ var or__7878__auto____$2 = clojure.zip.right.call(null,clojure.zip.up.call(null,p)); if(cljs.core.truth_(or__7878__auto____$2)){ return or__7878__auto____$2; } else { var G__11151 = clojure.zip.up.call(null,p); p = G__11151; continue; } } else { return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.zip.node.call(null,p),new cljs.core.Keyword(null,"end","end",-268185958)], null); } break; } } } } }); /** * Moves to the previous loc in the hierarchy, depth-first. If already * at the root, returns nil. */ clojure.zip.prev = (function clojure$zip$prev(loc){ var temp__4655__auto__ = clojure.zip.left.call(null,loc); if(cljs.core.truth_(temp__4655__auto__)){ var lloc = temp__4655__auto__; var loc__$1 = lloc; while(true){ var temp__4655__auto____$1 = (function (){var and__7866__auto__ = clojure.zip.branch_QMARK_.call(null,loc__$1); if(cljs.core.truth_(and__7866__auto__)){ return clojure.zip.down.call(null,loc__$1); } else { return and__7866__auto__; } })(); if(cljs.core.truth_(temp__4655__auto____$1)){ var child = temp__4655__auto____$1; var G__11165 = clojure.zip.rightmost.call(null,child); loc__$1 = G__11165; continue; } else { return loc__$1; } break; } } else { return clojure.zip.up.call(null,loc); } }); /** * Returns true if loc represents the end of a depth-first walk */ clojure.zip.end_QMARK_ = (function clojure$zip$end_QMARK_(loc){ return cljs.core._EQ_.call(null,new cljs.core.Keyword(null,"end","end",-268185958),loc.call(null,(1))); }); /** * Removes the node at loc, returning the loc that would have preceded * it in a depth-first walk. */ clojure.zip.remove = (function clojure$zip$remove(loc){ var vec__11187 = loc; var node = cljs.core.nth.call(null,vec__11187,(0),null); var map__11190 = cljs.core.nth.call(null,vec__11187,(1),null); var map__11190__$1 = ((((!((map__11190 == null)))?((((map__11190.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__11190.cljs$core$ISeq$)))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__11190):map__11190); var path = map__11190__$1; var l = cljs.core.get.call(null,map__11190__$1,new cljs.core.Keyword(null,"l","l",1395893423)); var ppath = cljs.core.get.call(null,map__11190__$1,new cljs.core.Keyword(null,"ppath","ppath",-1758182784)); var pnodes = cljs.core.get.call(null,map__11190__$1,new cljs.core.Keyword(null,"pnodes","pnodes",1739080565)); var rs = cljs.core.get.call(null,map__11190__$1,new cljs.core.Keyword(null,"r","r",-471384190)); if((path == null)){ throw "Remove at top"; } else { if((cljs.core.count.call(null,l) > (0))){ var loc__$1 = cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.peek.call(null,l),cljs.core.assoc.call(null,path,new cljs.core.Keyword(null,"l","l",1395893423),cljs.core.pop.call(null,l),new cljs.core.Keyword(null,"changed?","changed?",-437828330),true)], null),cljs.core.meta.call(null,loc)); while(true){ var temp__4655__auto__ = (function (){var and__7866__auto__ = clojure.zip.branch_QMARK_.call(null,loc__$1); if(cljs.core.truth_(and__7866__auto__)){ return clojure.zip.down.call(null,loc__$1); } else { return and__7866__auto__; } })(); if(cljs.core.truth_(temp__4655__auto__)){ var child = temp__4655__auto__; var G__11242 = clojure.zip.rightmost.call(null,child); loc__$1 = G__11242; continue; } else { return loc__$1; } break; } } else { return cljs.core.with_meta.call(null,new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [clojure.zip.make_node.call(null,loc,cljs.core.peek.call(null,pnodes),rs),(function (){var and__7866__auto__ = ppath; if(cljs.core.truth_(and__7866__auto__)){ return cljs.core.assoc.call(null,ppath,new cljs.core.Keyword(null,"changed?","changed?",-437828330),true); } else { return and__7866__auto__; } })()], null),cljs.core.meta.call(null,loc)); } } }); //# sourceMappingURL=zip.js.map