@atomist/clj-editors
Version:
editor functions that use rewrite-clj and other important things from the clojurescript ecosystem
1,197 lines (1,042 loc) • 270 kB
JavaScript
// Compiled by ClojureScript 1.10.238 {:target :nodejs}
goog.provide('com.rpl.specter');
goog.require('cljs.core');
goog.require('com.rpl.specter.protocols');
goog.require('com.rpl.specter.impl');
goog.require('com.rpl.specter.navs');
goog.require('clojure.set');
com.rpl.specter.static_path_QMARK_ = (function com$rpl$specter$static_path_QMARK_(path){
if(cljs.core.sequential_QMARK_.call(null,path)){
return cljs.core.every_QMARK_.call(null,com.rpl.specter.static_path_QMARK_,path);
} else {
return cljs.core.not.call(null,com.rpl.specter.impl.dynamic_param_QMARK_.call(null,path));
}
});
com.rpl.specter.wrap_dynamic_nav = (function com$rpl$specter$wrap_dynamic_nav(f){
return (function() {
var G__17624__delegate = function (args){
var ret = cljs.core.apply.call(null,f,args);
if(cljs.core.truth_((function (){var and__3911__auto__ = cljs.core.sequential_QMARK_.call(null,ret);
if(and__3911__auto__){
return com.rpl.specter.static_path_QMARK_.call(null,ret);
} else {
return and__3911__auto__;
}
})())){
return com.rpl.specter.impl.comp_paths_STAR_.call(null,ret);
} else {
if(((cljs.core.sequential_QMARK_.call(null,ret)) && (cljs.core._EQ_.call(null,(1),cljs.core.count.call(null,ret))))){
return cljs.core.first.call(null,ret);
} else {
return ret;
}
}
};
var G__17624 = function (var_args){
var args = null;
if (arguments.length > 0) {
var G__17625__i = 0, G__17625__a = new Array(arguments.length - 0);
while (G__17625__i < G__17625__a.length) {G__17625__a[G__17625__i] = arguments[G__17625__i + 0]; ++G__17625__i;}
args = new cljs.core.IndexedSeq(G__17625__a,0,null);
}
return G__17624__delegate.call(this,args);};
G__17624.cljs$lang$maxFixedArity = 0;
G__17624.cljs$lang$applyTo = (function (arglist__17626){
var args = cljs.core.seq(arglist__17626);
return G__17624__delegate(args);
});
G__17624.cljs$core$IFn$_invoke$arity$variadic = G__17624__delegate;
return G__17624;
})()
;
});
/**
* Returns a compiled version of the given path for use with
* compiled-{select/transform/setval/etc.} functions.
*/
com.rpl.specter.comp_paths = (function com$rpl$specter$comp_paths(var_args){
var args__4502__auto__ = [];
var len__4499__auto___17643 = arguments.length;
var i__4500__auto___17644 = (0);
while(true){
if((i__4500__auto___17644 < len__4499__auto___17643)){
args__4502__auto__.push((arguments[i__4500__auto___17644]));
var G__17645 = (i__4500__auto___17644 + (1));
i__4500__auto___17644 = G__17645;
continue;
} else {
}
break;
}
var argseq__4503__auto__ = ((((0) < args__4502__auto__.length))?(new cljs.core.IndexedSeq(args__4502__auto__.slice((0)),(0),null)):null);
return com.rpl.specter.comp_paths.cljs$core$IFn$_invoke$arity$variadic(argseq__4503__auto__);
});
com.rpl.specter.comp_paths.cljs$core$IFn$_invoke$arity$variadic = (function (apath){
return com.rpl.specter.impl.comp_paths_STAR_.call(null,cljs.core.vec.call(null,apath));
});
com.rpl.specter.comp_paths.cljs$lang$maxFixedArity = (0);
/** @this {Function} */
com.rpl.specter.comp_paths.cljs$lang$applyTo = (function (seq17642){
var self__4487__auto__ = this;
return self__4487__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq.call(null,seq17642));
});
/**
* Version of select that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_select = com.rpl.specter.impl.compiled_select_STAR_;
/**
* Navigates to and returns a sequence of all the elements specified by the path.
*/
com.rpl.specter.select_STAR_ = (function com$rpl$specter$select_STAR_(path,structure){
return com.rpl.specter.compiled_select.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of select-one that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_select_one = com.rpl.specter.impl.compiled_select_one_STAR_;
/**
* Like select, but returns either one element or nil. Throws exception if multiple elements found
*/
com.rpl.specter.select_one_STAR_ = (function com$rpl$specter$select_one_STAR_(path,structure){
return com.rpl.specter.compiled_select_one.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of select-one! that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_select_one_BANG_ = com.rpl.specter.impl.compiled_select_one_BANG__STAR_;
/**
* Returns exactly one element, throws exception if zero or multiple elements found
*/
com.rpl.specter.select_one_BANG__STAR_ = (function com$rpl$specter$select_one_BANG__STAR_(path,structure){
return com.rpl.specter.compiled_select_one_BANG_.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of select-first that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_select_first = com.rpl.specter.impl.compiled_select_first_STAR_;
/**
* Returns first element found.
*/
com.rpl.specter.select_first_STAR_ = (function com$rpl$specter$select_first_STAR_(path,structure){
return com.rpl.specter.compiled_select_first.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of select-any that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_select_any = com.rpl.specter.impl.compiled_select_any_STAR_;
/**
* Global value used to indicate no elements selected during
* [[select-any]].
*/
com.rpl.specter.NONE = com.rpl.specter.impl.NONE;
/**
* Returns any element found or [[NONE]] if nothing selected. This is the most
* efficient of the various selection operations.
*/
com.rpl.specter.select_any_STAR_ = (function com$rpl$specter$select_any_STAR_(path,structure){
return com.rpl.specter.compiled_select_any.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of selected-any? that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_selected_any_QMARK_ = com.rpl.specter.impl.compiled_selected_any_QMARK__STAR_;
/**
* Returns true if any element was selected, false otherwise.
*/
com.rpl.specter.selected_any_QMARK__STAR_ = (function com$rpl$specter$selected_any_QMARK__STAR_(path,structure){
return com.rpl.specter.compiled_selected_any_QMARK_.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of traverse that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_traverse = com.rpl.specter.impl.do_compiled_traverse;
/**
* Return a reducible object that traverses over `structure` to every element
* specified by the path
*/
com.rpl.specter.traverse_STAR_ = (function com$rpl$specter$traverse_STAR_(apath,structure){
return com.rpl.specter.compiled_traverse.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,apath),structure);
});
/**
* Version of traverse-all that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_traverse_all = com.rpl.specter.impl.compiled_traverse_all_STAR_;
/**
* Returns a transducer that traverses over each element with the given path.
*/
com.rpl.specter.traverse_all_STAR_ = (function com$rpl$specter$traverse_all_STAR_(apath){
return com.rpl.specter.compiled_traverse_all.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,apath));
});
/**
* Version of transform that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_transform = com.rpl.specter.impl.compiled_transform_STAR_;
/**
* Version of vtransform that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_vtransform = com.rpl.specter.impl.compiled_vtransform_STAR_;
/**
* Navigates to each value specified by the path and replaces it by the result of running
* the transform-fn on it
*/
com.rpl.specter.transform_STAR_ = (function com$rpl$specter$transform_STAR_(path,transform_fn,structure){
return com.rpl.specter.compiled_transform.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),transform_fn,structure);
});
/**
* Version of `multi-transform` that takes in a path precompiled with `comp-paths`
*/
com.rpl.specter.compiled_multi_transform = com.rpl.specter.impl.compiled_multi_transform_STAR_;
/**
* Just like `transform` but expects transform functions to be specified
* inline in the path using `terminal` or `vterminal`. Error is thrown if navigation finishes
* at a non-terminal navigator. `terminal-val` is a wrapper around `terminal` and is
* the `multi-transform` equivalent of `setval`.
*/
com.rpl.specter.multi_transform_STAR_ = (function com$rpl$specter$multi_transform_STAR_(path,structure){
return com.rpl.specter.compiled_multi_transform.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),structure);
});
/**
* Version of setval that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_setval = com.rpl.specter.impl.compiled_setval_STAR_;
/**
* Navigates to each value specified by the path and replaces it by val
*/
com.rpl.specter.setval_STAR_ = (function com$rpl$specter$setval_STAR_(path,val,structure){
return com.rpl.specter.compiled_setval.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),val,structure);
});
/**
* Version of replace-in that takes in a path precompiled with comp-paths
*/
com.rpl.specter.compiled_replace_in = com.rpl.specter.impl.compiled_replace_in_STAR_;
/**
* Similar to transform, except returns a pair of [transformed-structure sequence-of-user-ret].
* The transform-fn in this case is expected to return [ret user-ret]. ret is
* what's used to transform the data structure, while user-ret will be added to the user-ret sequence
* in the final return. replace-in is useful for situations where you need to know the specific values
* of what was transformed in the data structure.
*/
com.rpl.specter.replace_in_STAR_ = (function com$rpl$specter$replace_in_STAR_(var_args){
var args__4502__auto__ = [];
var len__4499__auto___17653 = arguments.length;
var i__4500__auto___17654 = (0);
while(true){
if((i__4500__auto___17654 < len__4499__auto___17653)){
args__4502__auto__.push((arguments[i__4500__auto___17654]));
var G__17655 = (i__4500__auto___17654 + (1));
i__4500__auto___17654 = G__17655;
continue;
} else {
}
break;
}
var argseq__4503__auto__ = ((((3) < args__4502__auto__.length))?(new cljs.core.IndexedSeq(args__4502__auto__.slice((3)),(0),null)):null);
return com.rpl.specter.replace_in_STAR_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4503__auto__);
});
com.rpl.specter.replace_in_STAR_.cljs$core$IFn$_invoke$arity$variadic = (function (path,transform_fn,structure,p__17650){
var map__17651 = p__17650;
var map__17651__$1 = ((((!((map__17651 == null)))?(((((map__17651.cljs$lang$protocol_mask$partition0$ & (64))) || ((cljs.core.PROTOCOL_SENTINEL === map__17651.cljs$core$ISeq$))))?true:false):false))?cljs.core.apply.call(null,cljs.core.hash_map,map__17651):map__17651);
var merge_fn = cljs.core.get.call(null,map__17651__$1,new cljs.core.Keyword(null,"merge-fn","merge-fn",588067341),cljs.core.concat);
return com.rpl.specter.compiled_replace_in.call(null,com.rpl.specter.impl.comp_paths_STAR_.call(null,path),transform_fn,structure,new cljs.core.Keyword(null,"merge-fn","merge-fn",588067341),merge_fn);
});
com.rpl.specter.replace_in_STAR_.cljs$lang$maxFixedArity = (3);
/** @this {Function} */
com.rpl.specter.replace_in_STAR_.cljs$lang$applyTo = (function (seq17646){
var G__17647 = cljs.core.first.call(null,seq17646);
var seq17646__$1 = cljs.core.next.call(null,seq17646);
var G__17648 = cljs.core.first.call(null,seq17646__$1);
var seq17646__$2 = cljs.core.next.call(null,seq17646__$1);
var G__17649 = cljs.core.first.call(null,seq17646__$2);
var seq17646__$3 = cljs.core.next.call(null,seq17646__$2);
var self__4486__auto__ = this;
return self__4486__auto__.cljs$core$IFn$_invoke$arity$variadic(G__17647,G__17648,G__17649,seq17646__$3);
});
com.rpl.specter.late_path = com.rpl.specter.impl.late_path;
com.rpl.specter.dynamic_param_QMARK_ = com.rpl.specter.impl.dynamic_param_QMARK_;
com.rpl.specter.late_resolved_fn = com.rpl.specter.impl.late_resolved_fn;
/**
* Turns a navigator that takes one argument into a navigator that takes
* many arguments and uses the same navigator with each argument. There
* is no performance cost to using this. See implementation of `keypath`
*/
com.rpl.specter.eachnav = cljs.core.vary_meta.call(null,com.rpl.specter.wrap_dynamic_nav.call(null,(function (navfn){
var latenavfn = com.rpl.specter.late_resolved_fn.call(null,navfn);
return cljs.core.vary_meta.call(null,com.rpl.specter.wrap_dynamic_nav.call(null,((function (latenavfn){
return (function() {
var G__17656__delegate = function (args){
return cljs.core.map.call(null,latenavfn,args);
};
var G__17656 = function (var_args){
var args = null;
if (arguments.length > 0) {
var G__17657__i = 0, G__17657__a = new Array(arguments.length - 0);
while (G__17657__i < G__17657__a.length) {G__17657__a[G__17657__i] = arguments[G__17657__i + 0]; ++G__17657__i;}
args = new cljs.core.IndexedSeq(G__17657__a,0,null);
}
return G__17656__delegate.call(this,args);};
G__17656.cljs$lang$maxFixedArity = 0;
G__17656.cljs$lang$applyTo = (function (arglist__17658){
var args = cljs.core.seq(arglist__17658);
return G__17656__delegate(args);
});
G__17656.cljs$core$IFn$_invoke$arity$variadic = G__17656__delegate;
return G__17656;
})()
;})(latenavfn))
),cljs.core.assoc,new cljs.core.Keyword(null,"dynamicnav","dynamicnav",1267703844),true);
})),cljs.core.assoc,new cljs.core.Keyword(null,"dynamicnav","dynamicnav",1267703844),true);
com.rpl.specter.local_declarepath = com.rpl.specter.impl.local_declarepath;
com.rpl.specter.STOP_select_STAR_ = (function com$rpl$specter$STOP_select_STAR_(structure,next_fn){
return com.rpl.specter.NONE;
});
com.rpl.specter.STOP_transform_STAR_ = (function com$rpl$specter$STOP_transform_STAR_(structure,next_fn){
return structure;
});
/**
* Stops navigation at this point. For selection returns nothing and for
* transformation returns the structure unchanged
*/
com.rpl.specter.STOP = (function (){
if(typeof com.rpl.specter.t_com$rpl$specter17659 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17659 = (function (meta17660){
this.meta17660 = meta17660;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17659.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17661,meta17660__$1){
var self__ = this;
var _17661__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17659(meta17660__$1));
});
com.rpl.specter.t_com$rpl$specter17659.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17661){
var self__ = this;
var _17661__$1 = this;
return self__.meta17660;
});
com.rpl.specter.t_com$rpl$specter17659.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17659.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.NONE;
});
com.rpl.specter.t_com$rpl$specter17659.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return structure;
});
com.rpl.specter.t_com$rpl$specter17659.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta17660","meta17660",315832682,null)], null);
});
com.rpl.specter.t_com$rpl$specter17659.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17659.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17659";
com.rpl.specter.t_com$rpl$specter17659.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17659");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17659.
*/
com.rpl.specter.__GT_t_com$rpl$specter17659 = (function com$rpl$specter$__GT_t_com$rpl$specter17659(meta17660){
return (new com.rpl.specter.t_com$rpl$specter17659(meta17660));
});
}
return (new com.rpl.specter.t_com$rpl$specter17659(null));
})()
;
/**
* Stays navigated at the current point. Essentially a no-op navigator.
*/
com.rpl.specter.STAY = com.rpl.specter.impl.STAY_STAR_;
/**
* Defines an endpoint in the navigation the transform function run. The transform
* function works just like it does in `transform`, with collected values
* given as the first arguments
*/
com.rpl.specter.terminal = com.rpl.specter.impl.direct_nav_obj.call(null,(function (afn){
if(typeof com.rpl.specter.t_com$rpl$specter17662 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17662 = (function (afn,meta17663){
this.afn = afn;
this.meta17663 = meta17663;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17662.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17664,meta17663__$1){
var self__ = this;
var _17664__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17662(self__.afn,meta17663__$1));
});
com.rpl.specter.t_com$rpl$specter17662.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17664){
var self__ = this;
var _17664__$1 = this;
return self__.meta17663;
});
com.rpl.specter.t_com$rpl$specter17662.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17662.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this$,vals,structure,next_fn){
var self__ = this;
var this$__$1 = this;
return com.rpl.specter.NONE;
});
com.rpl.specter.t_com$rpl$specter17662.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this$,vals,structure,next_fn){
var self__ = this;
var this$__$1 = this;
return com.rpl.specter.impl.terminal_STAR_.call(null,self__.afn,vals,structure);
});
com.rpl.specter.t_com$rpl$specter17662.getBasis = (function (){
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"afn","afn",216963467,null),new cljs.core.Symbol(null,"meta17663","meta17663",779387415,null)], null);
});
com.rpl.specter.t_com$rpl$specter17662.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17662.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17662";
com.rpl.specter.t_com$rpl$specter17662.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17662");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17662.
*/
com.rpl.specter.__GT_t_com$rpl$specter17662 = (function com$rpl$specter$__GT_t_com$rpl$specter17662(afn__$1,meta17663){
return (new com.rpl.specter.t_com$rpl$specter17662(afn__$1,meta17663));
});
}
return (new com.rpl.specter.t_com$rpl$specter17662(afn,null));
}));
/**
* Defines an endpoint in the navigation the transform function run.The transform
* function works differently than it does in `transform`. Rather than receive
* collected vals spliced in as the first arguments to the function, this function
* always takes two arguemnts. The first is all collected vals in a vector, and
* the second is the navigated value.
*/
com.rpl.specter.vterminal = com.rpl.specter.impl.direct_nav_obj.call(null,(function (afn){
if(typeof com.rpl.specter.t_com$rpl$specter17665 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17665 = (function (afn,meta17666){
this.afn = afn;
this.meta17666 = meta17666;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17665.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17667,meta17666__$1){
var self__ = this;
var _17667__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17665(self__.afn,meta17666__$1));
});
com.rpl.specter.t_com$rpl$specter17665.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17667){
var self__ = this;
var _17667__$1 = this;
return self__.meta17666;
});
com.rpl.specter.t_com$rpl$specter17665.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17665.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this$,vals,structure,next_fn){
var self__ = this;
var this$__$1 = this;
return com.rpl.specter.NONE;
});
com.rpl.specter.t_com$rpl$specter17665.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this$,vals,structure,next_fn){
var self__ = this;
var this$__$1 = this;
return self__.afn.call(null,vals,structure);
});
com.rpl.specter.t_com$rpl$specter17665.getBasis = (function (){
return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"afn","afn",216963467,null),new cljs.core.Symbol(null,"meta17666","meta17666",1857004980,null)], null);
});
com.rpl.specter.t_com$rpl$specter17665.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17665.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17665";
com.rpl.specter.t_com$rpl$specter17665.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17665");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17665.
*/
com.rpl.specter.__GT_t_com$rpl$specter17665 = (function com$rpl$specter$__GT_t_com$rpl$specter17665(afn__$1,meta17666){
return (new com.rpl.specter.t_com$rpl$specter17665(afn__$1,meta17666));
});
}
return (new com.rpl.specter.t_com$rpl$specter17665(afn,null));
}));
/**
* Like `terminal` but specifies a val to set at the location regardless of
* the collected values or the value at the location.
*/
com.rpl.specter.terminal_val = (function com$rpl$specter$terminal_val(v){
return com.rpl.specter.terminal.call(null,com.rpl.specter.impl.fast_constantly.call(null,v));
});
com.rpl.specter.ALL_select_STAR_ = (function com$rpl$specter$ALL_select_STAR_(structure,next_fn){
return com.rpl.specter.navs.all_select.call(null,structure,next_fn);
});
com.rpl.specter.ALL_transform_STAR_ = (function com$rpl$specter$ALL_transform_STAR_(structure,next_fn){
return com.rpl.specter.navs.all_transform.call(null,structure,next_fn);
});
/**
* Navigate to every element of the collection. For maps navigates to
* a vector of `[key value]`.
*/
com.rpl.specter.ALL = (function (){
if(typeof com.rpl.specter.t_com$rpl$specter17668 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17668 = (function (meta17669){
this.meta17669 = meta17669;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17668.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17670,meta17669__$1){
var self__ = this;
var _17670__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17668(meta17669__$1));
});
com.rpl.specter.t_com$rpl$specter17668.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17670){
var self__ = this;
var _17670__$1 = this;
return self__.meta17669;
});
com.rpl.specter.t_com$rpl$specter17668.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17668.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.all_select.call(null,structure,next_fn);
});
com.rpl.specter.t_com$rpl$specter17668.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.all_transform.call(null,structure,next_fn);
});
com.rpl.specter.t_com$rpl$specter17668.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta17669","meta17669",861083850,null)], null);
});
com.rpl.specter.t_com$rpl$specter17668.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17668.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17668";
com.rpl.specter.t_com$rpl$specter17668.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17668");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17668.
*/
com.rpl.specter.__GT_t_com$rpl$specter17668 = (function com$rpl$specter$__GT_t_com$rpl$specter17668(meta17669){
return (new com.rpl.specter.t_com$rpl$specter17668(meta17669));
});
}
return (new com.rpl.specter.t_com$rpl$specter17668(null));
})()
;
com.rpl.specter.ALL_WITH_META_select_STAR_ = (function com$rpl$specter$ALL_WITH_META_select_STAR_(structure,next_fn){
return com.rpl.specter.navs.all_select.call(null,structure,next_fn);
});
com.rpl.specter.ALL_WITH_META_transform_STAR_ = (function com$rpl$specter$ALL_WITH_META_transform_STAR_(structure,next_fn){
var m = cljs.core.meta.call(null,structure);
var res = com.rpl.specter.navs.all_transform.call(null,structure,next_fn);
if(!((res == null))){
return cljs.core.with_meta.call(null,res,m);
} else {
return null;
}
});
/**
* Same as ALL, except maintains metadata on the structure.
*/
com.rpl.specter.ALL_WITH_META = (function (){
if(typeof com.rpl.specter.t_com$rpl$specter17671 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17671 = (function (meta17672){
this.meta17672 = meta17672;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17671.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17673,meta17672__$1){
var self__ = this;
var _17673__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17671(meta17672__$1));
});
com.rpl.specter.t_com$rpl$specter17671.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17673){
var self__ = this;
var _17673__$1 = this;
return self__.meta17672;
});
com.rpl.specter.t_com$rpl$specter17671.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17671.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.all_select.call(null,structure,next_fn);
});
com.rpl.specter.t_com$rpl$specter17671.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
var m = cljs.core.meta.call(null,structure);
var res = com.rpl.specter.navs.all_transform.call(null,structure,next_fn);
if(!((res == null))){
return cljs.core.with_meta.call(null,res,m);
} else {
return null;
}
});
com.rpl.specter.t_com$rpl$specter17671.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta17672","meta17672",-701737672,null)], null);
});
com.rpl.specter.t_com$rpl$specter17671.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17671.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17671";
com.rpl.specter.t_com$rpl$specter17671.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17671");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17671.
*/
com.rpl.specter.__GT_t_com$rpl$specter17671 = (function com$rpl$specter$__GT_t_com$rpl$specter17671(meta17672){
return (new com.rpl.specter.t_com$rpl$specter17671(meta17672));
});
}
return (new com.rpl.specter.t_com$rpl$specter17671(null));
})()
;
com.rpl.specter.MAP_VALS_select_STAR_ = (function com$rpl$specter$MAP_VALS_select_STAR_(structure,next_fn){
return cljs.core.reduce.call(null,(function (curr__7433__auto__,v){
var ret__7434__auto__ = next_fn.call(null,v);
if((ret__7434__auto__ === com.rpl.specter.NONE)){
return curr__7433__auto__;
} else {
if(cljs.core.reduced_QMARK_.call(null,ret__7434__auto__)){
return cljs.core.reduced.call(null,ret__7434__auto__);
} else {
return ret__7434__auto__;
}
}
}),com.rpl.specter.NONE,cljs.core.vals.call(null,structure));
});
com.rpl.specter.MAP_VALS_transform_STAR_ = (function com$rpl$specter$MAP_VALS_transform_STAR_(structure,next_fn){
return com.rpl.specter.navs.map_vals_transform.call(null,structure,next_fn);
});
/**
* Navigate to each value of the map. This is more efficient than
* navigating via [ALL LAST]
*/
com.rpl.specter.MAP_VALS = (function (){
if(typeof com.rpl.specter.t_com$rpl$specter17674 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17674 = (function (meta17675){
this.meta17675 = meta17675;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17674.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17676,meta17675__$1){
var self__ = this;
var _17676__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17674(meta17675__$1));
});
com.rpl.specter.t_com$rpl$specter17674.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17676){
var self__ = this;
var _17676__$1 = this;
return self__.meta17675;
});
com.rpl.specter.t_com$rpl$specter17674.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17674.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return cljs.core.reduce.call(null,((function (next_fn,this__9224__auto____$1){
return (function (curr__7433__auto__,v){
var ret__7434__auto__ = next_fn.call(null,v);
if((ret__7434__auto__ === com.rpl.specter.NONE)){
return curr__7433__auto__;
} else {
if(cljs.core.reduced_QMARK_.call(null,ret__7434__auto__)){
return cljs.core.reduced.call(null,ret__7434__auto__);
} else {
return ret__7434__auto__;
}
}
});})(next_fn,this__9224__auto____$1))
,com.rpl.specter.NONE,cljs.core.vals.call(null,structure));
});
com.rpl.specter.t_com$rpl$specter17674.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.map_vals_transform.call(null,structure,next_fn);
});
com.rpl.specter.t_com$rpl$specter17674.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta17675","meta17675",568185716,null)], null);
});
com.rpl.specter.t_com$rpl$specter17674.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17674.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17674";
com.rpl.specter.t_com$rpl$specter17674.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17674");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17674.
*/
com.rpl.specter.__GT_t_com$rpl$specter17674 = (function com$rpl$specter$__GT_t_com$rpl$specter17674(meta17675){
return (new com.rpl.specter.t_com$rpl$specter17674(meta17675));
});
}
return (new com.rpl.specter.t_com$rpl$specter17674(null));
})()
;
com.rpl.specter.MAP_KEYS_select_STAR_ = (function com$rpl$specter$MAP_KEYS_select_STAR_(structure,next_fn){
return cljs.core.reduce.call(null,(function (curr__7433__auto__,k){
var ret__7434__auto__ = next_fn.call(null,k);
if((ret__7434__auto__ === com.rpl.specter.NONE)){
return curr__7433__auto__;
} else {
if(cljs.core.reduced_QMARK_.call(null,ret__7434__auto__)){
return cljs.core.reduced.call(null,ret__7434__auto__);
} else {
return ret__7434__auto__;
}
}
}),com.rpl.specter.NONE,cljs.core.keys.call(null,structure));
});
com.rpl.specter.MAP_KEYS_transform_STAR_ = (function com$rpl$specter$MAP_KEYS_transform_STAR_(structure,next_fn){
return com.rpl.specter.navs.map_keys_transform.call(null,structure,next_fn);
});
/**
* Navigate to each key of the map. This is more efficient than
* navigating via [ALL FIRST]
*/
com.rpl.specter.MAP_KEYS = (function (){
if(typeof com.rpl.specter.t_com$rpl$specter17677 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17677 = (function (meta17678){
this.meta17678 = meta17678;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17677.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17679,meta17678__$1){
var self__ = this;
var _17679__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17677(meta17678__$1));
});
com.rpl.specter.t_com$rpl$specter17677.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17679){
var self__ = this;
var _17679__$1 = this;
return self__.meta17678;
});
com.rpl.specter.t_com$rpl$specter17677.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17677.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return cljs.core.reduce.call(null,((function (next_fn,this__9224__auto____$1){
return (function (curr__7433__auto__,k){
var ret__7434__auto__ = next_fn.call(null,k);
if((ret__7434__auto__ === com.rpl.specter.NONE)){
return curr__7433__auto__;
} else {
if(cljs.core.reduced_QMARK_.call(null,ret__7434__auto__)){
return cljs.core.reduced.call(null,ret__7434__auto__);
} else {
return ret__7434__auto__;
}
}
});})(next_fn,this__9224__auto____$1))
,com.rpl.specter.NONE,cljs.core.keys.call(null,structure));
});
com.rpl.specter.t_com$rpl$specter17677.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.map_keys_transform.call(null,structure,next_fn);
});
com.rpl.specter.t_com$rpl$specter17677.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta17678","meta17678",-1041571394,null)], null);
});
com.rpl.specter.t_com$rpl$specter17677.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17677.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17677";
com.rpl.specter.t_com$rpl$specter17677.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17677");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17677.
*/
com.rpl.specter.__GT_t_com$rpl$specter17677 = (function com$rpl$specter$__GT_t_com$rpl$specter17677(meta17678){
return (new com.rpl.specter.t_com$rpl$specter17677(meta17678));
});
}
return (new com.rpl.specter.t_com$rpl$specter17677(null));
})()
;
com.rpl.specter.VAL = (function (){
if(typeof com.rpl.specter.t_com$rpl$specter17680 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17680 = (function (meta17681){
this.meta17681 = meta17681;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17680.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17682,meta17681__$1){
var self__ = this;
var _17682__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17680(meta17681__$1));
});
com.rpl.specter.t_com$rpl$specter17680.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17682){
var self__ = this;
var _17682__$1 = this;
return self__.meta17681;
});
com.rpl.specter.t_com$rpl$specter17680.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17680.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__10017__auto__,vals__10018__auto__,structure,next_fn__10019__auto__){
var self__ = this;
var this__10017__auto____$1 = this;
return next_fn__10019__auto__.call(null,cljs.core.conj.call(null,vals__10018__auto__,structure),structure);
});
com.rpl.specter.t_com$rpl$specter17680.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__10017__auto__,vals__10018__auto__,structure,next_fn__10019__auto__){
var self__ = this;
var this__10017__auto____$1 = this;
return next_fn__10019__auto__.call(null,cljs.core.conj.call(null,vals__10018__auto__,structure),structure);
});
com.rpl.specter.t_com$rpl$specter17680.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"meta17681","meta17681",-220186727,null)], null);
});
com.rpl.specter.t_com$rpl$specter17680.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17680.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17680";
com.rpl.specter.t_com$rpl$specter17680.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17680");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17680.
*/
com.rpl.specter.__GT_t_com$rpl$specter17680 = (function com$rpl$specter$__GT_t_com$rpl$specter17680(meta17681){
return (new com.rpl.specter.t_com$rpl$specter17680(meta17681));
});
}
return (new com.rpl.specter.t_com$rpl$specter17680(null));
})()
;
/**
* Navigate to the last element of the collection. If the collection is
* empty navigation is stopped at this point.
*/
com.rpl.specter.LAST = com.rpl.specter.navs.PosNavigator.call(null,com.rpl.specter.navs.get_last,com.rpl.specter.navs.update_last);
/**
* Navigate to the first element of the collection. If the collection is
* empty navigation is stopped at this point.
*/
com.rpl.specter.FIRST = com.rpl.specter.navs.PosNavigator.call(null,com.rpl.specter.navs.get_first,com.rpl.specter.navs.update_first);
com.rpl.specter.srange_dynamic_select_STAR_ = (function com$rpl$specter$srange_dynamic_select_STAR_(start_index_fn,end_index_fn,structure,next_fn){
var s = start_index_fn.call(null,structure);
return com.rpl.specter.navs.srange_select.call(null,structure,s,com.rpl.specter.navs.invoke_end_fn.call(null,end_index_fn,structure,s),next_fn);
});
com.rpl.specter.srange_dynamic_transform_STAR_ = (function com$rpl$specter$srange_dynamic_transform_STAR_(start_index_fn,end_index_fn,structure,next_fn){
var s = start_index_fn.call(null,structure);
return com.rpl.specter.navs.srange_transform.call(null,structure,s,com.rpl.specter.navs.invoke_end_fn.call(null,end_index_fn,structure,s),next_fn);
});
/**
* Uses start-index-fn and end-index-fn to determine the bounds of the subsequence
* to select when navigating. `start-index-fn` takes in the structure as input. `end-index-fn`
* can be one of two forms. If a regular function (e.g. defined with `fn`), it takes in only the structure as input. If a function defined using special `end-fn` macro, it takes in the structure and the result of `start-index-fn`.
*/
com.rpl.specter.srange_dynamic = com.rpl.specter.impl.direct_nav_obj.call(null,(function (start_index_fn,end_index_fn){
if(typeof com.rpl.specter.t_com$rpl$specter17683 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17683 = (function (start_index_fn,end_index_fn,meta17684){
this.start_index_fn = start_index_fn;
this.end_index_fn = end_index_fn;
this.meta17684 = meta17684;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17683.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17685,meta17684__$1){
var self__ = this;
var _17685__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17683(self__.start_index_fn,self__.end_index_fn,meta17684__$1));
});
com.rpl.specter.t_com$rpl$specter17683.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17685){
var self__ = this;
var _17685__$1 = this;
return self__.meta17684;
});
com.rpl.specter.t_com$rpl$specter17683.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17683.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
var s = self__.start_index_fn.call(null,structure);
return com.rpl.specter.navs.srange_select.call(null,structure,s,com.rpl.specter.navs.invoke_end_fn.call(null,self__.end_index_fn,structure,s),next_fn);
});
com.rpl.specter.t_com$rpl$specter17683.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
var s = self__.start_index_fn.call(null,structure);
return com.rpl.specter.navs.srange_transform.call(null,structure,s,com.rpl.specter.navs.invoke_end_fn.call(null,self__.end_index_fn,structure,s),next_fn);
});
com.rpl.specter.t_com$rpl$specter17683.getBasis = (function (){
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"start-index-fn","start-index-fn",-344842645,null),new cljs.core.Symbol(null,"end-index-fn","end-index-fn",1237092062,null),new cljs.core.Symbol(null,"meta17684","meta17684",-1267953970,null)], null);
});
com.rpl.specter.t_com$rpl$specter17683.cljs$lang$type = true;
com.rpl.specter.t_com$rpl$specter17683.cljs$lang$ctorStr = "com.rpl.specter/t_com$rpl$specter17683";
com.rpl.specter.t_com$rpl$specter17683.cljs$lang$ctorPrWriter = (function (this__4161__auto__,writer__4162__auto__,opt__4163__auto__){
return cljs.core._write.call(null,writer__4162__auto__,"com.rpl.specter/t_com$rpl$specter17683");
});
/**
* Positional factory function for com.rpl.specter/t_com$rpl$specter17683.
*/
com.rpl.specter.__GT_t_com$rpl$specter17683 = (function com$rpl$specter$__GT_t_com$rpl$specter17683(start_index_fn__$1,end_index_fn__$1,meta17684){
return (new com.rpl.specter.t_com$rpl$specter17683(start_index_fn__$1,end_index_fn__$1,meta17684));
});
}
return (new com.rpl.specter.t_com$rpl$specter17683(start_index_fn,end_index_fn,null));
}));
com.rpl.specter.srange_select_STAR_ = (function com$rpl$specter$srange_select_STAR_(start,end,structure,next_fn){
return com.rpl.specter.navs.srange_select.call(null,structure,start,end,next_fn);
});
com.rpl.specter.srange_transform_STAR_ = (function com$rpl$specter$srange_transform_STAR_(start,end,structure,next_fn){
return com.rpl.specter.navs.srange_transform.call(null,structure,start,end,next_fn);
});
/**
* Navigates to the subsequence bound by the indexes start (inclusive)
* and end (exclusive)
*/
com.rpl.specter.srange = com.rpl.specter.impl.direct_nav_obj.call(null,(function (start,end){
if(typeof com.rpl.specter.t_com$rpl$specter17686 !== 'undefined'){
} else {
/**
* @constructor
* @implements {cljs.core.IMeta}
* @implements {com.rpl.specter.protocols.RichNavigator}
* @implements {cljs.core.IWithMeta}
*/
com.rpl.specter.t_com$rpl$specter17686 = (function (start,end,meta17687){
this.start = start;
this.end = end;
this.meta17687 = meta17687;
this.cljs$lang$protocol_mask$partition0$ = 393216;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
com.rpl.specter.t_com$rpl$specter17686.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_17688,meta17687__$1){
var self__ = this;
var _17688__$1 = this;
return (new com.rpl.specter.t_com$rpl$specter17686(self__.start,self__.end,meta17687__$1));
});
com.rpl.specter.t_com$rpl$specter17686.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_17688){
var self__ = this;
var _17688__$1 = this;
return self__.meta17687;
});
com.rpl.specter.t_com$rpl$specter17686.prototype.com$rpl$specter$protocols$RichNavigator$ = cljs.core.PROTOCOL_SENTINEL;
com.rpl.specter.t_com$rpl$specter17686.prototype.com$rpl$specter$protocols$RichNavigator$select_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.srange_select.call(null,structure,self__.start,self__.end,next_fn);
});
com.rpl.specter.t_com$rpl$specter17686.prototype.com$rpl$specter$protocols$RichNavigator$transform_STAR_$arity$4 = (function (this__9224__auto__,vals__9225__auto__,structure,next_fn__9226__auto__){
var self__ = this;
var this__9224__auto____$1 = this;
var next_fn = ((function (this__9224__auto____$1){
return (function (s__9227__auto__){
return next_fn__9226__auto__.call(null,vals__9225__auto__,s__9227__auto__);
});})(this__9224__auto____$1))
;
return com.rpl.specter.navs.srange_transform.call(null,structure,self__.start,self__.end,next_fn);
});
com.rpl.specter.t_com$rpl$specter17686.getBasis = (function (){
return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"start","start",1285322546,null),new