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___54761 = arguments.length;
var i__4830__auto___54762 = (0);
while(true){
if((i__4830__auto___54762 < len__4829__auto___54761)){
args__4835__auto__.push((arguments[i__4830__auto___54762]));

var G__54763 = (i__4830__auto___54762 + (1));
i__4830__auto___54762 = G__54763;
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__54549_54764 = keyvals;
var vec__54550_54765 = G__54549_54764;
var seq__54551_54766 = cljs.core.seq(vec__54550_54765);
var first__54552_54767 = cljs.core.first(seq__54551_54766);
var seq__54551_54768__$1 = cljs.core.next(seq__54551_54766);
var k_54769 = first__54552_54767;
var first__54552_54770__$1 = cljs.core.first(seq__54551_54768__$1);
var seq__54551_54771__$2 = cljs.core.next(seq__54551_54768__$1);
var v_54772 = first__54552_54770__$1;
var keyvals_54773__$1 = seq__54551_54771__$2;
var G__54549_54774__$1 = G__54549_54764;
while(true){
var vec__54554_54775 = G__54549_54774__$1;
var seq__54555_54776 = cljs.core.seq(vec__54554_54775);
var first__54556_54777 = cljs.core.first(seq__54555_54776);
var seq__54555_54778__$1 = cljs.core.next(seq__54555_54776);
var k_54779__$1 = first__54556_54777;
var first__54556_54780__$1 = cljs.core.first(seq__54555_54778__$1);
var seq__54555_54781__$2 = cljs.core.next(seq__54555_54778__$1);
var v_54782__$1 = first__54556_54780__$1;
var keyvals_54783__$2 = seq__54555_54781__$2;
(obj[applied_science.js_interop.impl.wrap_key(k_54779__$1)] = v_54782__$1);

if(keyvals_54783__$2){
var G__54784 = keyvals_54783__$2;
G__54549_54774__$1 = G__54784;
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 (seq54544){
var G__54545 = cljs.core.first(seq54544);
var seq54544__$1 = cljs.core.next(seq54544);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54545,seq54544__$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__54559 = arguments.length;
switch (G__54559) {
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 obj54561 = obj;
var k54562 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj54563 = obj54561;
return (((!((obj54563 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k54562,obj54563)));
})()){
return (obj54561[k54562]);
} else {
return undefined;
}
}));

(applied_science.js_interop.get.cljs$core$IFn$_invoke$arity$3 = (function (obj,k,not_found){
var obj54567 = obj;
var k54568 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj54569 = obj54567;
return (((!((obj54569 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k54568,obj54569)));
})()){
return (obj54567[k54568]);
} 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__54578 = arguments.length;
switch (G__54578) {
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 obj54610 = self__.obj;
var k54611 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj54613 = obj54610;
return (((!((obj54613 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k54611,obj54613)));
})()){
return (obj54610[k54611]);
} 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 obj54622 = self__.obj;
var k54623 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj54625 = obj54622;
return (((!((obj54625 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k54623,obj54625)));
})()){
return (obj54622[k54623]);
} 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___54789 = arguments.length;
var i__4830__auto___54790 = (0);
while(true){
if((i__4830__auto___54790 < len__4829__auto___54789)){
args__4835__auto__.push((arguments[i__4830__auto___54790]));

var G__54791 = (i__4830__auto___54790 + (1));
i__4830__auto___54790 = G__54791;
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__54640 = keyvals;
var vec__54641 = G__54640;
var seq__54642 = cljs.core.seq(vec__54641);
var first__54643 = cljs.core.first(seq__54642);
var seq__54642__$1 = cljs.core.next(seq__54642);
var k = first__54643;
var first__54643__$1 = cljs.core.first(seq__54642__$1);
var seq__54642__$2 = cljs.core.next(seq__54642__$1);
var v = first__54643__$1;
var kvs = seq__54642__$2;
var G__54640__$1 = G__54640;
while(true){
var vec__54644 = G__54640__$1;
var seq__54645 = cljs.core.seq(vec__54644);
var first__54646 = cljs.core.first(seq__54645);
var seq__54645__$1 = cljs.core.next(seq__54645);
var k__$1 = first__54646;
var first__54646__$1 = cljs.core.first(seq__54645__$1);
var seq__54645__$2 = cljs.core.next(seq__54645__$1);
var v__$1 = first__54646__$1;
var kvs__$1 = seq__54645__$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__54792 = kvs__$1;
G__54640__$1 = G__54792;
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 (seq54633){
var G__54634 = cljs.core.first(seq54633);
var seq54633__$1 = cljs.core.next(seq54633);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54634,seq54633__$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___54793 = arguments.length;
var i__4830__auto___54794 = (0);
while(true){
if((i__4830__auto___54794 < len__4829__auto___54793)){
args__4835__auto__.push((arguments[i__4830__auto___54794]));

var G__54796 = (i__4830__auto___54794 + (1));
i__4830__auto___54794 = G__54796;
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 (seq54648){
var G__54649 = cljs.core.first(seq54648);
var seq54648__$1 = cljs.core.next(seq54648);
var G__54650 = cljs.core.first(seq54648__$1);
var seq54648__$2 = cljs.core.next(seq54648__$1);
var G__54651 = cljs.core.first(seq54648__$2);
var seq54648__$3 = cljs.core.next(seq54648__$2);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54649,G__54650,G__54651,seq54648__$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___54797 = arguments.length;
var i__4830__auto___54798 = (0);
while(true){
if((i__4830__auto___54798 < len__4829__auto___54797)){
args__4835__auto__.push((arguments[i__4830__auto___54798]));

var G__54799 = (i__4830__auto___54798 + (1));
i__4830__auto___54798 = G__54799;
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 (seq54652){
var G__54653 = cljs.core.first(seq54652);
var seq54652__$1 = cljs.core.next(seq54652);
var G__54654 = cljs.core.first(seq54652__$1);
var seq54652__$2 = cljs.core.next(seq54652__$1);
var G__54655 = cljs.core.first(seq54652__$2);
var seq54652__$3 = cljs.core.next(seq54652__$2);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54653,G__54654,G__54655,seq54652__$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__54679 = arguments.length;
switch (G__54679) {
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___54812 = arguments.length;
var i__4830__auto___54813 = (0);
while(true){
if((i__4830__auto___54813 < len__4829__auto___54812)){
args_arr__4850__auto__.push((arguments[i__4830__auto___54813]));

var G__54814 = (i__4830__auto___54813 + (1));
i__4830__auto___54813 = G__54814;
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__54682_54815 = cljs.core.seq(cljs.core.js_keys(x));
var chunk__54683_54816 = null;
var count__54684_54817 = (0);
var i__54685_54818 = (0);
while(true){
if((i__54685_54818 < count__54684_54817)){
var k_54819 = chunk__54683_54816.cljs$core$IIndexed$_nth$arity$2(null,i__54685_54818);
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_54819,applied_science.js_interop.unchecked_get(x,k_54819)], 0));


var G__54820 = seq__54682_54815;
var G__54821 = chunk__54683_54816;
var G__54822 = count__54684_54817;
var G__54823 = (i__54685_54818 + (1));
seq__54682_54815 = G__54820;
chunk__54683_54816 = G__54821;
count__54684_54817 = G__54822;
i__54685_54818 = G__54823;
continue;
} else {
var temp__5753__auto___54824 = cljs.core.seq(seq__54682_54815);
if(temp__5753__auto___54824){
var seq__54682_54825__$1 = temp__5753__auto___54824;
if(cljs.core.chunked_seq_QMARK_(seq__54682_54825__$1)){
var c__4649__auto___54826 = cljs.core.chunk_first(seq__54682_54825__$1);
var G__54827 = cljs.core.chunk_rest(seq__54682_54825__$1);
var G__54828 = c__4649__auto___54826;
var G__54829 = cljs.core.count(c__4649__auto___54826);
var G__54830 = (0);
seq__54682_54815 = G__54827;
chunk__54683_54816 = G__54828;
count__54684_54817 = G__54829;
i__54685_54818 = G__54830;
continue;
} else {
var k_54833 = cljs.core.first(seq__54682_54825__$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_54833,applied_science.js_interop.unchecked_get(x,k_54833)], 0));


var G__54834 = cljs.core.next(seq__54682_54825__$1);
var G__54835 = null;
var G__54836 = (0);
var G__54837 = (0);
seq__54682_54815 = G__54834;
chunk__54683_54816 = G__54835;
count__54684_54817 = G__54836;
i__54685_54818 = G__54837;
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 (seq54676){
var G__54677 = cljs.core.first(seq54676);
var seq54676__$1 = cljs.core.next(seq54676);
var G__54678 = cljs.core.first(seq54676__$1);
var seq54676__$2 = cljs.core.next(seq54676__$1);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54677,G__54678,seq54676__$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__54698 = array;
G__54698.push(x);

return G__54698;
});
/**
 * 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__54700 = array;
G__54700.unshift(x);

return G__54700;
});
/**
 * 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___54839 = arguments.length;
var i__4830__auto___54840 = (0);
while(true){
if((i__4830__auto___54840 < len__4829__auto___54839)){
args__4835__auto__.push((arguments[i__4830__auto___54840]));

var G__54841 = (i__4830__auto___54840 + (1));
i__4830__auto___54840 = G__54841;
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 obj54704 = obj;
var k54705 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj54706 = obj54704;
return (((!((obj54706 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k54705,obj54706)));
})()){
return (obj54704[k54705]);
} 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 (seq54701){
var G__54702 = cljs.core.first(seq54701);
var seq54701__$1 = cljs.core.next(seq54701);
var G__54703 = cljs.core.first(seq54701__$1);
var seq54701__$2 = cljs.core.next(seq54701__$1);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54702,G__54703,seq54701__$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 obj54707 = obj;
var k54708 = applied_science.js_interop.impl.wrap_key(k);
if((function (){var obj54709 = obj54707;
return (((!((obj54709 == null)))) && (applied_science.js_interop.impl.in_QMARK__STAR_(k54708,obj54709)));
})()){
return (obj54707[k54708]);
} 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___54845 = arguments.length;
var i__4830__auto___54846 = (0);
while(true){
if((i__4830__auto___54846 < len__4829__auto___54845)){
args__4835__auto__.push((arguments[i__4830__auto___54846]));

var G__54847 = (i__4830__auto___54846 + (1));
i__4830__auto___54846 = G__54847;
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 (seq54710){
var G__54711 = cljs.core.first(seq54710);
var seq54710__$1 = cljs.core.next(seq54710);
var G__54712 = cljs.core.first(seq54710__$1);
var seq54710__$2 = cljs.core.next(seq54710__$1);
var self__4816__auto__ = this;
return self__4816__auto__.cljs$core$IFn$_invoke$arity$variadic(G__54711,G__54712,seq54710__$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___54849 = arguments.length;
var i__4830__auto___54850 = (0);
while(true){
if((i__4830__auto___54850 < len__4829__auto___54849)){
args__4835__auto__.push((arguments[i__4830__auto___54850]));

var G__54851 = (i__4830__auto___54850 + (1));
i__4830__auto___54850 = G__54851;
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__54716_54852 = cljs.core.seq(cljs.core.partition.cljs$core$IFn$_invoke$arity$2((2),keyvals));
var chunk__54717_54853 = null;
var count__54718_54854 = (0);
var i__54719_54855 = (0);
while(true){
if((i__54719_54855 < count__54718_54854)){
var vec__54735_54856 = chunk__54717_54853.cljs$core$IIndexed$_nth$arity$2(null,i__54719_54855);
var k_54857 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54735_54856,(0),null);
var v_54858 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54735_54856,(1),null);
var obj54738_54859 = obj;
var obj54739_54860 = (((!((obj54738_54859 == null))))?obj54738_54859:({}));
(obj54739_54860[applied_science.js_interop.impl.wrap_key(k_54857)] = v_54858);



var G__54861 = seq__54716_54852;
var G__54862 = chunk__54717_54853;
var G__54863 = count__54718_54854;
var G__54864 = (i__54719_54855 + (1));
seq__54716_54852 = G__54861;
chunk__54717_54853 = G__54862;
count__54718_54854 = G__54863;
i__54719_54855 = G__54864;
continue;
} else {
var temp__5753__auto___54865 = cljs.core.seq(seq__54716_54852);
if(temp__5753__auto___54865){
var seq__54716_54866__$1 = temp__5753__auto___54865;
if(cljs.core.chunked_seq_QMARK_(seq__54716_54866__$1)){
var c__4649__auto___54867 = cljs.core.chunk_first(seq__54716_54866__$1);
var G__54868 = cljs.core.chunk_rest(seq__54716_54866__$1);
var G__54869 = c__4649__auto___54867;
var G__54870 = cljs.core.count(c__4649__auto___54867);
var G__54871 = (0);
seq__54716_54852 = G__54868;
chunk__54717_54853 = G__54869;
count__54718_54854 = G__54870;
i__54719_54855 = G__54871;
continue;
} else {
var vec__54742_54872 = cljs.core.first(seq__54716_54866__$1);
var k_54873 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54742_54872,(0),null);
var v_54874 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__54742_54872,(1),null);
var obj54746_54875 = obj;
var obj54747_54876 = (((!((obj54746_54875 == null))))?obj54746_54875:({}));
(obj54747_54876[applied_science.js_interop.impl.wrap_key(k_54873)] = v_54874);



var G__54879 = cljs.core.next(seq__54716_54866__$1);
var G__54880 = null;
var G__54881 = (0);
var G__54882 = (0);
seq__54716_54852 = G__54879;
chunk__54717_54853 = G__54880;
count__54718_54854 = G__54881;
i__54719_54855 = G__54882;
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 (seq54713){
var self__4817__auto__ = this;
return self__4817__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq54713));
}));


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