import "./cljs_env.js";
goog.provide('applied_science.js_interop');
applied_science.js_interop.unchecked_set = (function applied_science$js_interop$unchecked_set(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80169 = arguments.length;
var i__4830__auto___80170 = (0);
while(true){
if((i__4830__auto___80170 < len__4829__auto___80169)){
args__4835__auto__.push((arguments[i__4830__auto___80170]));

var G__80171 = (i__4830__auto___80170 + (1));
i__4830__auto___80170 = G__80171;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((1) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((1)),(0),null)):null);
return applied_science.js_interop.unchecked_set.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4836__auto__);
});

(applied_science.js_interop.unchecked_set.cljs$core$IFn$_invoke$arity$variadic = (function (obj,keyvals){
var G__79952_80172 = keyvals;
var vec__79953_80173 = G__79952_80172;
var seq__79954_80174 = cljs.core.seq(vec__79953_80173);
var first__79955_80175 = cljs.core.first(seq__79954_80174);
var seq__79954_80176__$1 = cljs.core.next(seq__79954_80174);
var k_80177 = first__79955_80175;
var first__79955_80178__$1 = cljs.core.first(seq__79954_80176__$1);
var seq__79954_80179__$2 = cljs.core.next(seq__79954_80176__$1);
var v_80180 = first__79955_80178__$1;
var keyvals_80181__$1 = seq__79954_80179__$2;
var G__79952_80182__$1 = G__79952_80172;
while(true){
var vec__79956_80183 = G__79952_80182__$1;
var seq__79957_80184 = cljs.core.seq(vec__79956_80183);
var first__79958_80185 = cljs.core.first(seq__79957_80184);
var seq__79957_80186__$1 = cljs.core.next(seq__79957_80184);
var k_80187__$1 = first__79958_80185;
var first__79958_80188__$1 = cljs.core.first(seq__79957_80186__$1);
var seq__79957_80189__$2 = cljs.core.next(seq__79957_80186__$1);
var v_80190__$1 = first__79958_80188__$1;
var keyvals_80191__$2 = seq__79957_80189__$2;
(obj[applied_science.js_interop.impl.wrap_key(k_80187__$1)] = v_80190__$1);

if(keyvals_80191__$2){
var G__80192 = keyvals_80191__$2;
G__79952_80182__$1 = G__80192;
continue;
} else {
}
break;
}

return obj;
}));

(applied_science.js_interop.unchecked_set.cljs$lang$maxFixedArity = (1));

/** @this {Function} */
(applied_science.js_interop.unchecked_set.cljs$lang$applyTo = (function (seq79946){
var G__79947 = cljs.core.first(seq79946);
var seq79946__$1 = cljs.core.next(seq79946);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__79947,seq79946__$1);
}));

applied_science.js_interop.unchecked_get = (function applied_science$js_interop$unchecked_get(obj,k){
return (obj[applied_science.js_interop.impl.wrap_key(k)]);
});
/**
 * Returns the value mapped to key, not-found or nil if key not present.
 * 
 *   ```
 *   (j/get o :k)
 *   (j/get o .-k)
 *   ```
 */
applied_science.js_interop.get = (function applied_science$js_interop$get(var_args){
var G__79962 = arguments.length;
switch (G__79962) {
case 2:
return applied_science.js_interop.get.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return applied_science.js_interop.get.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(applied_science.js_interop.get.cljs$core$IFn$_invoke$arity$2 = (function (obj,k){
var obj79964 = obj;
var k79965 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj79969 = obj79964;
return (((!((obj79969 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k79965,obj79969)));
})()){
return (obj79964[k79965]);
} else {
return undefined;
}
}));

(applied_science.js_interop.get.cljs$core$IFn$_invoke$arity$3 = (function (obj,k,not_found){
var obj79981 = obj;
var k79982 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj79983 = obj79981;
return (((!((obj79983 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k79982,obj79983)));
})()){
return (obj79981[k79982]);
} else {
return not_found;
}
}));

(applied_science.js_interop.get.cljs$lang$maxFixedArity = 3);

/**
 * Returns the value in a nested object structure, where ks is
 * a sequence of keys. Returns nil if the key is not present,
 * or the not-found value if supplied.
 * 
 * ```
 * (j/get-in o [:x :y] :fallback-value)
 * (j/get-in o [.-x .-y] :fallback-value)
 * ```
 */
applied_science.js_interop.get_in = (function applied_science$js_interop$get_in(var_args){
var G__79993 = arguments.length;
switch (G__79993) {
case 2:
return applied_science.js_interop.get_in.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
case 3:
return applied_science.js_interop.get_in.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));

break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));

}
});

(applied_science.js_interop.get_in.cljs$core$IFn$_invoke$arity$2 = (function (obj,ks){
return applied_science.js_interop.impl.get_in_STAR_.cljs$core$IFn$_invoke$arity$2(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks));
}));

(applied_science.js_interop.get_in.cljs$core$IFn$_invoke$arity$3 = (function (obj,ks,not_found){
return applied_science.js_interop.impl.get_in_STAR_.cljs$core$IFn$_invoke$arity$3(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks),not_found);
}));

(applied_science.js_interop.get_in.cljs$lang$maxFixedArity = 3);

/**
 * Returns true if `obj` contains `k`.
 * 
 *   ```
 *   (j/contains? o :k)
 *   (j/contains? o .-k)
 *   ```
 */
applied_science.js_interop.contains_QMARK_ = (function applied_science$js_interop$contains_QMARK_(obj,k){
return applied_science.js_interop.impl.contains_QMARK__STAR_(obj,applied_science.js_interop.impl.wrap_key(k));
});
/**
 * Returns an object containing only those entries in `o` whose key is in `ks`.
 * 
 *   ```
 *   (j/select-keys o [:a :b :c])
 *   (j/select-keys o [.-a .-b .-c])
 *   ```
 */
applied_science.js_interop.select_keys = (function applied_science$js_interop$select_keys(obj,ks){
return applied_science.js_interop.impl.select_keys_STAR_(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks));
});

/**
* @constructor
 * @implements {cljs.core.IDeref}
 * @implements {cljs.core.ILookup}
*/
applied_science.js_interop.JSLookup = (function (obj){
this.obj = obj;
this.cljs$lang$protocol_mask$partition0$ = 33024;
this.cljs$lang$protocol_mask$partition1$ = 0;
});
(applied_science.js_interop.JSLookup.prototype.cljs$core$ILookup$_lookup$arity$2 = (function (_,k){
var self__ = this;
var ___$1 = this;
var obj80020 = self__.obj;
var k80021 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj80022 = obj80020;
return (((!((obj80022 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k80021,obj80022)));
})()){
return (obj80020[k80021]);
} else {
return undefined;
}
}));

(applied_science.js_interop.JSLookup.prototype.cljs$core$ILookup$_lookup$arity$3 = (function (_,k,not_found){
var self__ = this;
var ___$1 = this;
var obj80025 = self__.obj;
var k80026 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj80027 = obj80025;
return (((!((obj80027 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k80026,obj80027)));
})()){
return (obj80025[k80026]);
} else {
return not_found;
}
}));

(applied_science.js_interop.JSLookup.prototype.cljs$core$IDeref$_deref$arity$1 = (function (o){
var self__ = this;
var o__$1 = this;
return self__.obj;
}));

(applied_science.js_interop.JSLookup.getBasis = (function (){
return new cljs.core.PersistentVector(null, 1, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"obj","obj",-1672671807,null)], null);
}));

(applied_science.js_interop.JSLookup.cljs$lang$type = true);

(applied_science.js_interop.JSLookup.cljs$lang$ctorStr = "applied-science.js-interop/JSLookup");

(applied_science.js_interop.JSLookup.cljs$lang$ctorPrWriter = (function (this__4461__auto__,writer__4462__auto__,opt__4463__auto__){
return cljs.core._write(writer__4462__auto__,"applied-science.js-interop/JSLookup");
}));

/**
 * Positional factory function for applied-science.js-interop/JSLookup.
 */
applied_science.js_interop.__GT_JSLookup = (function applied_science$js_interop$__GT_JSLookup(obj){
return (new applied_science.js_interop.JSLookup(obj));
});

/**
 * Wraps `obj` with an ILookup implementation, to support reading/destructuring. Does not support renamable keys.
 * 
 *   ```
 *   (let [{:keys [a b c]} (j/lookup o)]
 * ...)
 *   ```
 */
applied_science.js_interop.lookup = (function applied_science$js_interop$lookup(obj){
if(cljs.core.truth_(obj)){
return (new applied_science.js_interop.JSLookup(obj));
} else {
return null;
}
});
/**
 * Sets key-value pairs on `obj`, returns `obj`.
 * 
 *   ```
 *   (j/assoc! o :x 10)
 *   (j/assoc! o .-x 10)
 *   ```
 */
applied_science.js_interop.assoc_BANG_ = (function applied_science$js_interop$assoc_BANG_(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80214 = arguments.length;
var i__4830__auto___80215 = (0);
while(true){
if((i__4830__auto___80215 < len__4829__auto___80214)){
args__4835__auto__.push((arguments[i__4830__auto___80215]));

var G__80216 = (i__4830__auto___80215 + (1));
i__4830__auto___80215 = G__80216;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((1) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((1)),(0),null)):null);
return applied_science.js_interop.assoc_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4836__auto__);
});

(applied_science.js_interop.assoc_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (obj,keyvals){
var obj__$1 = (((!((obj == null))))?obj:({}));
var G__80044 = keyvals;
var vec__80045 = G__80044;
var seq__80046 = cljs.core.seq(vec__80045);
var first__80047 = cljs.core.first(seq__80046);
var seq__80046__$1 = cljs.core.next(seq__80046);
var k = first__80047;
var first__80047__$1 = cljs.core.first(seq__80046__$1);
var seq__80046__$2 = cljs.core.next(seq__80046__$1);
var v = first__80047__$1;
var kvs = seq__80046__$2;
var G__80044__$1 = G__80044;
while(true){
var vec__80048 = G__80044__$1;
var seq__80049 = cljs.core.seq(vec__80048);
var first__80050 = cljs.core.first(seq__80049);
var seq__80049__$1 = cljs.core.next(seq__80049);
var k__$1 = first__80050;
var first__80050__$1 = cljs.core.first(seq__80049__$1);
var seq__80049__$2 = cljs.core.next(seq__80049__$1);
var v__$1 = first__80050__$1;
var kvs__$1 = seq__80049__$2;
applied_science.js_interop.unchecked_set.cljs$core$IFn$_invoke$arity$variadic(obj__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k__$1,v__$1], 0));

if(kvs__$1){
var G__80218 = kvs__$1;
G__80044__$1 = G__80218;
continue;
} else {
return obj__$1;
}
break;
}
}));

(applied_science.js_interop.assoc_BANG_.cljs$lang$maxFixedArity = (1));

/** @this {Function} */
(applied_science.js_interop.assoc_BANG_.cljs$lang$applyTo = (function (seq80033){
var G__80034 = cljs.core.first(seq80033);
var seq80033__$1 = cljs.core.next(seq80033);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__80034,seq80033__$1);
}));

/**
 * Mutates the value in a nested object structure, where ks is a
 *   sequence of keys and v is the new value. If any levels do not
 *   exist, objects will be created.
 * 
 *   ```
 *   (j/assoc-in! o [:x :y] 10)
 *   (j/assoc-in! o [.-x .-y] 10)
 *   ```
 */
applied_science.js_interop.assoc_in_BANG_ = (function applied_science$js_interop$assoc_in_BANG_(obj,ks,v){
return applied_science.js_interop.impl.assoc_in_STAR_(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks),v);
});
/**
 * 'Updates' a value in a JavaScript object, where k is a key and
 *   f is a function that will take the old value and any supplied
 *   args and return the new value, which replaces the old value.
 *   If the key does not exist, nil is passed as the old value.
 * 
 *   ```
 *   (j/update! o :a + 10)
 *   (j/update! o .-a + 10)
 *   ```
 */
applied_science.js_interop.update_BANG_ = (function applied_science$js_interop$update_BANG_(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80219 = arguments.length;
var i__4830__auto___80220 = (0);
while(true){
if((i__4830__auto___80220 < len__4829__auto___80219)){
args__4835__auto__.push((arguments[i__4830__auto___80220]));

var G__80221 = (i__4830__auto___80220 + (1));
i__4830__auto___80220 = G__80221;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((3) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((3)),(0),null)):null);
return applied_science.js_interop.update_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4836__auto__);
});

(applied_science.js_interop.update_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (obj,k,f,args){
var obj__$1 = (((!((obj == null))))?obj:({}));
var k_STAR_ = applied_science.js_interop.impl.wrap_key(k);
var v = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,(obj__$1[k_STAR_]),args);
(obj__$1[k_STAR_] = v);

return obj__$1;
}));

(applied_science.js_interop.update_BANG_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(applied_science.js_interop.update_BANG_.cljs$lang$applyTo = (function (seq80052){
var G__80053 = cljs.core.first(seq80052);
var seq80052__$1 = cljs.core.next(seq80052);
var G__80054 = cljs.core.first(seq80052__$1);
var seq80052__$2 = cljs.core.next(seq80052__$1);
var G__80055 = cljs.core.first(seq80052__$2);
var seq80052__$3 = cljs.core.next(seq80052__$2);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__80053,G__80054,G__80055,seq80052__$3);
}));

/**
 * 'Updates' a value in a nested object structure, where ks is a
 *   sequence of keys and f is a function that will take the old value
 *   and any supplied args and return the new value, mutating the
 *   nested structure.  If any levels do not exist, objects will be
 *   created.
 * 
 *   ```
 *   (j/update-in! o [:x :y] + 10)
 *   (j/update-in! o [.-x .-y] + 10)
 *   ```
 */
applied_science.js_interop.update_in_BANG_ = (function applied_science$js_interop$update_in_BANG_(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80223 = arguments.length;
var i__4830__auto___80224 = (0);
while(true){
if((i__4830__auto___80224 < len__4829__auto___80223)){
args__4835__auto__.push((arguments[i__4830__auto___80224]));

var G__80225 = (i__4830__auto___80224 + (1));
i__4830__auto___80224 = G__80225;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((3) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((3)),(0),null)):null);
return applied_science.js_interop.update_in_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4836__auto__);
});

(applied_science.js_interop.update_in_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (obj,ks,f,args){
return applied_science.js_interop.impl.update_in_STAR_(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks),f,args);
}));

(applied_science.js_interop.update_in_BANG_.cljs$lang$maxFixedArity = (3));

/** @this {Function} */
(applied_science.js_interop.update_in_BANG_.cljs$lang$applyTo = (function (seq80056){
var G__80057 = cljs.core.first(seq80056);
var seq80056__$1 = cljs.core.next(seq80056);
var G__80058 = cljs.core.first(seq80056__$1);
var seq80056__$2 = cljs.core.next(seq80056__$1);
var G__80059 = cljs.core.first(seq80056__$2);
var seq80056__$3 = cljs.core.next(seq80056__$2);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__80057,G__80058,G__80059,seq80056__$3);
}));

/**
 * Extends `obj` with the properties of one or more objects, overwriting
 * existing properties, moving left to right. Returns `obj`.
 * An empty starting object is provided if `obj` is nil.
 *   ```
 *   (j/extend o other)
 *   (j/extend o other #js{:x 1})
 *   ```
 *   Not IE6-friendly
 */
applied_science.js_interop.extend_BANG_ = (function applied_science$js_interop$extend_BANG_(var_args){
var G__80066 = arguments.length;
switch (G__80066) {
case 1:
return applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));

break;
case 2:
return applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));

break;
default:
var args_arr__4850__auto__ = [];
var len__4829__auto___80227 = arguments.length;
var i__4830__auto___80228 = (0);
while(true){
if((i__4830__auto___80228 < len__4829__auto___80227)){
args_arr__4850__auto__.push((arguments[i__4830__auto___80228]));

var G__80229 = (i__4830__auto___80228 + (1));
i__4830__auto___80228 = G__80229;
continue;
} else {
}
break;
}

var argseq__4851__auto__ = (new cljs.core.IndexedSeq(args_arr__4850__auto__.slice((2)),(0),null));
return applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4851__auto__);

}
});

(applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$1 = (function (obj){
return obj;
}));

(applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$2 = (function (obj,x){
var obj__$1 = (((!((obj == null))))?obj:({}));
if((!((x == null)))){
var seq__80067_80230 = cljs.core.seq(cljs.core.js_keys(x));
var chunk__80068_80231 = null;
var count__80069_80232 = (0);
var i__80070_80233 = (0);
while(true){
if((i__80070_80233 < count__80069_80232)){
var k_80234 = chunk__80068_80231.cljs$core$IIndexed$_nth$arity$2(null,i__80070_80233);
applied_science.js_interop.unchecked_set.cljs$core$IFn$_invoke$arity$variadic(obj__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_80234,applied_science.js_interop.unchecked_get(x,k_80234)], 0));


var G__80235 = seq__80067_80230;
var G__80236 = chunk__80068_80231;
var G__80237 = count__80069_80232;
var G__80238 = (i__80070_80233 + (1));
seq__80067_80230 = G__80235;
chunk__80068_80231 = G__80236;
count__80069_80232 = G__80237;
i__80070_80233 = G__80238;
continue;
} else {
var temp__5753__auto___80239 = cljs.core.seq(seq__80067_80230);
if(temp__5753__auto___80239){
var seq__80067_80240__$1 = temp__5753__auto___80239;
if(cljs.core.chunked_seq_QMARK_(seq__80067_80240__$1)){
var c__4649__auto___80241 = cljs.core.chunk_first(seq__80067_80240__$1);
var G__80242 = cljs.core.chunk_rest(seq__80067_80240__$1);
var G__80243 = c__4649__auto___80241;
var G__80244 = cljs.core.count(c__4649__auto___80241);
var G__80245 = (0);
seq__80067_80230 = G__80242;
chunk__80068_80231 = G__80243;
count__80069_80232 = G__80244;
i__80070_80233 = G__80245;
continue;
} else {
var k_80246 = cljs.core.first(seq__80067_80240__$1);
applied_science.js_interop.unchecked_set.cljs$core$IFn$_invoke$arity$variadic(obj__$1,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([k_80246,applied_science.js_interop.unchecked_get(x,k_80246)], 0));


var G__80247 = cljs.core.next(seq__80067_80240__$1);
var G__80248 = null;
var G__80249 = (0);
var G__80250 = (0);
seq__80067_80230 = G__80247;
chunk__80068_80231 = G__80248;
count__80069_80232 = G__80249;
i__80070_80233 = G__80250;
continue;
}
} else {
}
}
break;
}
} else {
}

return obj__$1;
}));

(applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (obj,x,more){
return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3(applied_science.js_interop.extend_BANG_,applied_science.js_interop.extend_BANG_.cljs$core$IFn$_invoke$arity$2(obj,x),more);
}));

/** @this {Function} */
(applied_science.js_interop.extend_BANG_.cljs$lang$applyTo = (function (seq80063){
var G__80064 = cljs.core.first(seq80063);
var seq80063__$1 = cljs.core.next(seq80063);
var G__80065 = cljs.core.first(seq80063__$1);
var seq80063__$2 = cljs.core.next(seq80063__$1);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__80064,G__80065,seq80063__$2);
}));

(applied_science.js_interop.extend_BANG_.cljs$lang$maxFixedArity = (2));

/**
 * Appends `v` to `array` and returns the mutated array.
 * 
 *   ```
 *   (j/push! arr 10)
 *   ```
 */
applied_science.js_interop.push_BANG_ = (function applied_science$js_interop$push_BANG_(array,x){
var G__80082 = array;
G__80082.push(x);

return G__80082;
});
/**
 * Prepends `v` to `a` and returns the mutated array.
 * 
 *   ```
 *   (j/unshift! arr 10)
 *   ```
 */
applied_science.js_interop.unshift_BANG_ = (function applied_science$js_interop$unshift_BANG_(array,x){
var G__80083 = array;
G__80083.unshift(x);

return G__80083;
});
/**
 * Call function `k` of `obj`, binding `this` to `obj`.
 * 
 *   ```
 *   (j/call o :someFunction arg1 arg2)
 *   (j/call o .-someFunction arg1 arg2)
 *   ```
 */
applied_science.js_interop.call = (function applied_science$js_interop$call(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80252 = arguments.length;
var i__4830__auto___80253 = (0);
while(true){
if((i__4830__auto___80253 < len__4829__auto___80252)){
args__4835__auto__.push((arguments[i__4830__auto___80253]));

var G__80254 = (i__4830__auto___80253 + (1));
i__4830__auto___80253 = G__80254;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((2) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((2)),(0),null)):null);
return applied_science.js_interop.call.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4836__auto__);
});

(applied_science.js_interop.call.cljs$core$IFn$_invoke$arity$variadic = (function (obj,k,args){
return (function (){var obj80092 = obj;
var k80093 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj80094 = obj80092;
return (((!((obj80094 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k80093,obj80094)));
})()){
return (obj80092[k80093]);
} else {
return undefined;
}
})().apply(obj,cljs.core.to_array(args));
}));

(applied_science.js_interop.call.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(applied_science.js_interop.call.cljs$lang$applyTo = (function (seq80087){
var G__80088 = cljs.core.first(seq80087);
var seq80087__$1 = cljs.core.next(seq80087);
var G__80089 = cljs.core.first(seq80087__$1);
var seq80087__$2 = cljs.core.next(seq80087__$1);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__80088,G__80089,seq80087__$2);
}));

/**
 * Apply function `k` of `obj`, binding `this` to `obj`.
 * 
 *   ```
 *   (j/apply o :someFunction #js [arg1 arg2])
 *   (j/apply o .-someFunction #js [arg1 arg2])
 *   ```
 */
applied_science.js_interop.apply = (function applied_science$js_interop$apply(obj,k,arg_array){
return (function (){var obj80098 = obj;
var k80099 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj80101 = obj80098;
return (((!((obj80101 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k80099,obj80101)));
})()){
return (obj80098[k80099]);
} else {
return undefined;
}
})().apply(obj,arg_array);
});
/**
 * Call function nested at `path` with `args`, binding `this` to its parent object.
 * 
 *   ```
 *   (j/call-in o [:x :someFunction] arg1 arg2)
 *   ```
 */
applied_science.js_interop.call_in = (function applied_science$js_interop$call_in(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80267 = arguments.length;
var i__4830__auto___80268 = (0);
while(true){
if((i__4830__auto___80268 < len__4829__auto___80267)){
args__4835__auto__.push((arguments[i__4830__auto___80268]));

var G__80269 = (i__4830__auto___80268 + (1));
i__4830__auto___80268 = G__80269;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((2) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((2)),(0),null)):null);
return applied_science.js_interop.call_in.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4836__auto__);
});

(applied_science.js_interop.call_in.cljs$core$IFn$_invoke$arity$variadic = (function (obj,ks,args){
return applied_science.js_interop.impl.apply_in_STAR_(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks),cljs.core.to_array(args));
}));

(applied_science.js_interop.call_in.cljs$lang$maxFixedArity = (2));

/** @this {Function} */
(applied_science.js_interop.call_in.cljs$lang$applyTo = (function (seq80105){
var G__80106 = cljs.core.first(seq80105);
var seq80105__$1 = cljs.core.next(seq80105);
var G__80107 = cljs.core.first(seq80105__$1);
var seq80105__$2 = cljs.core.next(seq80105__$1);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__80106,G__80107,seq80105__$2);
}));

/**
 * Apply function nested at `path` with `arg-array`, binding `this` to its parent object.
 * 
 *   ```
 *   (j/apply-in o [:x :someFunction] arg1 arg2)
 *   ```
 */
applied_science.js_interop.apply_in = (function applied_science$js_interop$apply_in(obj,ks,arg_array){
return applied_science.js_interop.impl.apply_in_STAR_(obj,cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(applied_science.js_interop.impl.wrap_key,ks),arg_array);
});
/**
 * Create JavaScript object from an even number arguments representing
 * interleaved keys and values.
 * 
 * ```
 * (obj :a 1 :b 2 .-c 3 .-d 4)
 * ```
 */
applied_science.js_interop.obj = (function applied_science$js_interop$obj(var_args){
var args__4835__auto__ = [];
var len__4829__auto___80271 = arguments.length;
var i__4830__auto___80272 = (0);
while(true){
if((i__4830__auto___80272 < len__4829__auto___80271)){
args__4835__auto__.push((arguments[i__4830__auto___80272]));

var G__80273 = (i__4830__auto___80272 + (1));
i__4830__auto___80272 = G__80273;
continue;
} else {
}
break;
}

var argseq__4836__auto__ = ((((0) < args__4835__auto__.length))?(new cljs.core.IndexedSeq(args__4835__auto__.slice((0)),(0),null)):null);
return applied_science.js_interop.obj.cljs$core$IFn$_invoke$arity$variadic(argseq__4836__auto__);
});

(applied_science.js_interop.obj.cljs$core$IFn$_invoke$arity$variadic = (function (keyvals){
var obj = ({});
var seq__80119_80274 = cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),keyvals));
var chunk__80120_80275 = null;
var count__80121_80276 = (0);
var i__80122_80277 = (0);
while(true){
if((i__80122_80277 < count__80121_80276)){
var vec__80146_80278 = chunk__80120_80275.cljs$core$IIndexed$_nth$arity$2(null,i__80122_80277);
var k_80279 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__80146_80278,(0),null);
var v_80280 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__80146_80278,(1),null);
var obj80150_80281 = obj;
var obj80151_80282 = (((!((obj80150_80281 == null))))?obj80150_80281:({}));
(obj80151_80282[applied_science.js_interop.impl.wrap_key(k_80279)] = v_80280);



var G__80283 = seq__80119_80274;
var G__80284 = chunk__80120_80275;
var G__80285 = count__80121_80276;
var G__80286 = (i__80122_80277 + (1));
seq__80119_80274 = G__80283;
chunk__80120_80275 = G__80284;
count__80121_80276 = G__80285;
i__80122_80277 = G__80286;
continue;
} else {
var temp__5753__auto___80287 = cljs.core.seq(seq__80119_80274);
if(temp__5753__auto___80287){
var seq__80119_80288__$1 = temp__5753__auto___80287;
if(cljs.core.chunked_seq_QMARK_(seq__80119_80288__$1)){
var c__4649__auto___80289 = cljs.core.chunk_first(seq__80119_80288__$1);
var G__80290 = cljs.core.chunk_rest(seq__80119_80288__$1);
var G__80291 = c__4649__auto___80289;
var G__80292 = cljs.core.count(c__4649__auto___80289);
var G__80293 = (0);
seq__80119_80274 = G__80290;
chunk__80120_80275 = G__80291;
count__80121_80276 = G__80292;
i__80122_80277 = G__80293;
continue;
} else {
var vec__80154_80296 = cljs.core.first(seq__80119_80288__$1);
var k_80297 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__80154_80296,(0),null);
var v_80298 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__80154_80296,(1),null);
var obj80157_80299 = obj;
var obj80158_80300 = (((!((obj80157_80299 == null))))?obj80157_80299:({}));
(obj80158_80300[applied_science.js_interop.impl.wrap_key(k_80297)] = v_80298);



var G__80302 = cljs.core.next(seq__80119_80288__$1);
var G__80303 = null;
var G__80304 = (0);
var G__80305 = (0);
seq__80119_80274 = G__80302;
chunk__80120_80275 = G__80303;
count__80121_80276 = G__80304;
i__80122_80277 = G__80305;
continue;
}
} else {
}
}
break;
}

return obj;
}));

(applied_science.js_interop.obj.cljs$lang$maxFixedArity = (0));

/** @this {Function} */
(applied_science.js_interop.obj.cljs$lang$applyTo = (function (seq80112){
var self__4817__auto__ = this;
return self__4817__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq80112));
}));


//# sourceMappingURL=applied_science.js_interop.js.map
