create-expo-cljs-app
Version:
Create a react native application with Expo and Shadow-CLJS!
952 lines (821 loc) • 33.8 kB
JavaScript
goog.provide('reagent.core');
reagent.core.is_client = reagent.impl.util.is_client;
/**
* Create a native React element, by calling React.createElement directly.
*
* That means the second argument must be a javascript object (or nil), and
* that any Reagent hiccup forms must be processed with as-element. For example
* like this:
*
* ```cljs
* (r/create-element "div" #js{:className "foo"}
* "Hi " (r/as-element [:strong "world!"])
* ```
*
* which is equivalent to
*
* ```cljs
* [:div.foo "Hi" [:strong "world!"]]
* ```
*/
reagent.core.create_element = (function reagent$core$create_element(var_args){
var G__46240 = arguments.length;
switch (G__46240) {
case 1:
return reagent.core.create_element.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.create_element.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
case 3:
return reagent.core.create_element.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
break;
default:
var args_arr__4757__auto__ = [];
var len__4736__auto___46428 = arguments.length;
var i__4737__auto___46429 = (0);
while(true){
if((i__4737__auto___46429 < len__4736__auto___46428)){
args_arr__4757__auto__.push((arguments[i__4737__auto___46429]));
var G__46432 = (i__4737__auto___46429 + (1));
i__4737__auto___46429 = G__46432;
continue;
} else {
}
break;
}
var argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((3)),(0),null));
return reagent.core.create_element.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__4758__auto__);
}
});
(reagent.core.create_element.cljs$core$IFn$_invoke$arity$1 = (function (type){
return reagent.core.create_element.cljs$core$IFn$_invoke$arity$2(type,null);
}));
(reagent.core.create_element.cljs$core$IFn$_invoke$arity$2 = (function (type,props){
if((!(cljs.core.map_QMARK_(props)))){
} else {
throw (new Error(["Assert failed: ",["Expected a JS object, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([props], 0))].join(''),"\n","(clojure.core/not (clojure.core/map? props))"].join('')));
}
return shadow.js.shim.module$react.createElement(type,props);
}));
(reagent.core.create_element.cljs$core$IFn$_invoke$arity$3 = (function (type,props,child){
if((!(cljs.core.map_QMARK_(props)))){
} else {
throw (new Error(["Assert failed: ",["Expected a JS object, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([props], 0))].join(''),"\n","(clojure.core/not (clojure.core/map? props))"].join('')));
}
return shadow.js.shim.module$react.createElement(type,props,child);
}));
(reagent.core.create_element.cljs$core$IFn$_invoke$arity$variadic = (function (type,props,child,children){
if((!(cljs.core.map_QMARK_(props)))){
} else {
throw (new Error(["Assert failed: ",["Expected a JS object, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([props], 0))].join(''),"\n","(clojure.core/not (clojure.core/map? props))"].join('')));
}
return cljs.core.apply.cljs$core$IFn$_invoke$arity$5(shadow.js.shim.module$react.createElement,type,props,child,children);
}));
/** @this {Function} */
(reagent.core.create_element.cljs$lang$applyTo = (function (seq46236){
var G__46237 = cljs.core.first(seq46236);
var seq46236__$1 = cljs.core.next(seq46236);
var G__46238 = cljs.core.first(seq46236__$1);
var seq46236__$2 = cljs.core.next(seq46236__$1);
var G__46239 = cljs.core.first(seq46236__$2);
var seq46236__$3 = cljs.core.next(seq46236__$2);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46237,G__46238,G__46239,seq46236__$3);
}));
(reagent.core.create_element.cljs$lang$maxFixedArity = (3));
/**
* Turns a vector of Hiccup syntax into a React element. Returns form
* unchanged if it is not a vector.
*/
reagent.core.as_element = (function reagent$core$as_element(var_args){
var G__46265 = arguments.length;
switch (G__46265) {
case 1:
return reagent.core.as_element.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.as_element.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(reagent.core.as_element.cljs$core$IFn$_invoke$arity$1 = (function (form){
return reagent.impl.protocols.as_element(reagent.impl.template.default_compiler,form);
}));
(reagent.core.as_element.cljs$core$IFn$_invoke$arity$2 = (function (form,compiler){
return reagent.impl.protocols.as_element(compiler,form);
}));
(reagent.core.as_element.cljs$lang$maxFixedArity = 2);
/**
* Returns an adapter for a native React class, that may be used
* just like a Reagent component function or class in Hiccup forms.
*/
reagent.core.adapt_react_class = (function reagent$core$adapt_react_class(c){
if(cljs.core.truth_(c)){
} else {
throw (new Error(["Assert failed: ",["Component"," must not be nil"].join(''),"\n","c"].join('')));
}
return reagent.impl.template.adapt_react_class(c);
});
/**
* Returns an adapter for a Reagent component, that may be used from
* React, for example in JSX. A single argument, props, is passed to
* the component, converted to a map.
*/
reagent.core.reactify_component = (function reagent$core$reactify_component(var_args){
var G__46268 = arguments.length;
switch (G__46268) {
case 1:
return reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$1 = (function (c){
return reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$2(c,reagent.impl.template.default_compiler);
}));
(reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$2 = (function (c,compiler){
if(cljs.core.truth_(c)){
} else {
throw (new Error(["Assert failed: ",["Component"," must not be nil"].join(''),"\n","c"].join('')));
}
return reagent.impl.component.reactify_component(c,compiler);
}));
(reagent.core.reactify_component.cljs$lang$maxFixedArity = 2);
/**
* Creates JS class based on provided Clojure map, for example:
*
* ```cljs
* {;; Constructor
* :constructor (fn [this props])
* :get-initial-state (fn [this])
* ;; Static methods
* :get-derived-state-from-props (fn [props state] partial-state)
* :get-derived-state-from-error (fn [error] partial-state)
* ;; Methods
* :get-snapshot-before-update (fn [this old-argv new-argv] snapshot)
* :should-component-update (fn [this old-argv new-argv])
* :component-did-mount (fn [this])
* :component-did-update (fn [this old-argv old-state snapshot])
* :component-will-unmount (fn [this])
* :component-did-catch (fn [this error info])
* :reagent-render (fn [args....])
* ;; Or alternatively:
* :render (fn [this])
* ;; Deprecated methods:
* :UNSAFE_component-will-receive-props (fn [this new-argv])
* :UNSAFE_component-will-update (fn [this new-argv new-state])
* :UNSAFE_component-will-mount (fn [this])}
* ```
*
* Everything is optional, except either :reagent-render or :render.
*
* Map keys should use `React.Component` method names (https://reactjs.org/docs/react-component.html),
* and can be provided in snake-case or camelCase.
*
* State can be initialized using constructor, which matches React.Component class,
* or using getInitialState which matches old React createClass function and is
* now implemented by Reagent for compatibility.
*
* State can usually be anything, e.g. Cljs object. But if using getDerivedState
* methods, the state has to be plain JS object as React implementation uses
* Object.assign to merge partial state into the current state.
*
* React built-in static methods or properties are automatically defined as statics.
*/
reagent.core.create_class = (function reagent$core$create_class(var_args){
var G__46272 = arguments.length;
switch (G__46272) {
case 1:
return reagent.core.create_class.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.create_class.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(reagent.core.create_class.cljs$core$IFn$_invoke$arity$1 = (function (spec){
return reagent.impl.component.create_class(spec,reagent.impl.template.default_compiler);
}));
(reagent.core.create_class.cljs$core$IFn$_invoke$arity$2 = (function (spec,compiler){
return reagent.impl.component.create_class(spec,compiler);
}));
(reagent.core.create_class.cljs$lang$maxFixedArity = 2);
/**
* Returns the current React component (a.k.a `this`) in a component
* function.
*/
reagent.core.current_component = (function reagent$core$current_component(){
return reagent.impl.component._STAR_current_component_STAR_;
});
/**
* Returns an atom containing a components state.
*/
reagent.core.state_atom = (function reagent$core$state_atom(this$){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
return reagent.impl.component.state_atom(this$);
});
/**
* Returns the state of a component, as set with replace-state or set-state.
* Equivalent to `(deref (r/state-atom this))`
*/
reagent.core.state = (function reagent$core$state(this$){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
return cljs.core.deref(reagent.core.state_atom(this$));
});
/**
* Set state of a component.
* Equivalent to `(reset! (state-atom this) new-state)`
*/
reagent.core.replace_state = (function reagent$core$replace_state(this$,new_state){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
if((((new_state == null)) || (cljs.core.map_QMARK_(new_state)))){
} else {
throw (new Error(["Assert failed: ",["Expected a valid new state, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new_state], 0))].join(''),"\n","(clojure.core/or (clojure.core/nil? new-state) (clojure.core/map? new-state))"].join('')));
}
return cljs.core.reset_BANG_(reagent.core.state_atom(this$),new_state);
});
/**
* Merge component state with new-state.
* Equivalent to `(swap! (state-atom this) merge new-state)`
*/
reagent.core.set_state = (function reagent$core$set_state(this$,new_state){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
if((((new_state == null)) || (cljs.core.map_QMARK_(new_state)))){
} else {
throw (new Error(["Assert failed: ",["Expected a valid new state, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([new_state], 0))].join(''),"\n","(clojure.core/or (clojure.core/nil? new-state) (clojure.core/map? new-state))"].join('')));
}
return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$3(reagent.core.state_atom(this$),cljs.core.merge,new_state);
});
/**
* Force a component to re-render immediately.
*
* If the second argument is true, child components will also be
* re-rendered, even is their arguments have not changed.
*/
reagent.core.force_update = (function reagent$core$force_update(var_args){
var G__46280 = arguments.length;
switch (G__46280) {
case 1:
return reagent.core.force_update.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.force_update.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
}
});
(reagent.core.force_update.cljs$core$IFn$_invoke$arity$1 = (function (this$){
return reagent.core.force_update.cljs$core$IFn$_invoke$arity$2(this$,false);
}));
(reagent.core.force_update.cljs$core$IFn$_invoke$arity$2 = (function (this$,deep){
reagent.ratom.flush_BANG_();
reagent.impl.util.force_update(this$,deep);
return reagent.impl.batching.flush_after_render();
}));
(reagent.core.force_update.cljs$lang$maxFixedArity = 2);
/**
* Returns the props passed to a component.
*/
reagent.core.props = (function reagent$core$props(this$){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
return reagent.impl.component.get_props(this$);
});
/**
* Returns the children passed to a component.
*/
reagent.core.children = (function reagent$core$children(this$){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
return reagent.impl.component.get_children(this$);
});
/**
* Returns the entire Hiccup form passed to the component.
*/
reagent.core.argv = (function reagent$core$argv(this$){
if(reagent.impl.component.reagent_component_QMARK_(this$)){
} else {
throw (new Error(["Assert failed: ",["Expected a reagent component, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([this$], 0))].join(''),"\n","(comp/reagent-component? this)"].join('')));
}
return reagent.impl.component.get_argv(this$);
});
/**
* Function which normalizes and combines class values to a string
*
* Reagent allows classes to be defined as:
* - Strings
* - Named objects (Symbols or Keywords)
* - Collections of previous types
*/
reagent.core.class_names = (function reagent$core$class_names(var_args){
var G__46292 = arguments.length;
switch (G__46292) {
case 0:
return reagent.core.class_names.cljs$core$IFn$_invoke$arity$0();
break;
case 1:
return reagent.core.class_names.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.class_names.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
var args_arr__4757__auto__ = [];
var len__4736__auto___46496 = arguments.length;
var i__4737__auto___46497 = (0);
while(true){
if((i__4737__auto___46497 < len__4736__auto___46496)){
args_arr__4757__auto__.push((arguments[i__4737__auto___46497]));
var G__46498 = (i__4737__auto___46497 + (1));
i__4737__auto___46497 = G__46498;
continue;
} else {
}
break;
}
var argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((2)),(0),null));
return reagent.core.class_names.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4758__auto__);
}
});
(reagent.core.class_names.cljs$core$IFn$_invoke$arity$0 = (function (){
return null;
}));
(reagent.core.class_names.cljs$core$IFn$_invoke$arity$1 = (function (class$){
return reagent.impl.util.class_names.cljs$core$IFn$_invoke$arity$1(class$);
}));
(reagent.core.class_names.cljs$core$IFn$_invoke$arity$2 = (function (class1,class2){
return reagent.impl.util.class_names.cljs$core$IFn$_invoke$arity$2(class1,class2);
}));
(reagent.core.class_names.cljs$core$IFn$_invoke$arity$variadic = (function (class1,class2,others){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(reagent.impl.util.class_names,class1,class2,others);
}));
/** @this {Function} */
(reagent.core.class_names.cljs$lang$applyTo = (function (seq46289){
var G__46290 = cljs.core.first(seq46289);
var seq46289__$1 = cljs.core.next(seq46289);
var G__46291 = cljs.core.first(seq46289__$1);
var seq46289__$2 = cljs.core.next(seq46289__$1);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46290,G__46291,seq46289__$2);
}));
(reagent.core.class_names.cljs$lang$maxFixedArity = (2));
/**
* Utility function that merges some maps, handling `:class` and `:style`.
*
* The :class value is always normalized (using `class-names`) even if no
* merging is done.
*/
reagent.core.merge_props = (function reagent$core$merge_props(var_args){
var G__46303 = arguments.length;
switch (G__46303) {
case 0:
return reagent.core.merge_props.cljs$core$IFn$_invoke$arity$0();
break;
case 1:
return reagent.core.merge_props.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
case 2:
return reagent.core.merge_props.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
break;
default:
var args_arr__4757__auto__ = [];
var len__4736__auto___46504 = arguments.length;
var i__4737__auto___46505 = (0);
while(true){
if((i__4737__auto___46505 < len__4736__auto___46504)){
args_arr__4757__auto__.push((arguments[i__4737__auto___46505]));
var G__46508 = (i__4737__auto___46505 + (1));
i__4737__auto___46505 = G__46508;
continue;
} else {
}
break;
}
var argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((2)),(0),null));
return reagent.core.merge_props.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4758__auto__);
}
});
(reagent.core.merge_props.cljs$core$IFn$_invoke$arity$0 = (function (){
return reagent.impl.util.merge_props.cljs$core$IFn$_invoke$arity$0();
}));
(reagent.core.merge_props.cljs$core$IFn$_invoke$arity$1 = (function (defaults){
return reagent.impl.util.merge_props.cljs$core$IFn$_invoke$arity$1(defaults);
}));
(reagent.core.merge_props.cljs$core$IFn$_invoke$arity$2 = (function (defaults,props){
return reagent.impl.util.merge_props.cljs$core$IFn$_invoke$arity$2(defaults,props);
}));
(reagent.core.merge_props.cljs$core$IFn$_invoke$arity$variadic = (function (defaults,props,others){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$4(reagent.impl.util.merge_props,defaults,props,others);
}));
/** @this {Function} */
(reagent.core.merge_props.cljs$lang$applyTo = (function (seq46300){
var G__46301 = cljs.core.first(seq46300);
var seq46300__$1 = cljs.core.next(seq46300);
var G__46302 = cljs.core.first(seq46300__$1);
var seq46300__$2 = cljs.core.next(seq46300__$1);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46301,G__46302,seq46300__$2);
}));
(reagent.core.merge_props.cljs$lang$maxFixedArity = (2));
/**
* Render dirty components immediately.
*
* Note that this may not work in event handlers, since React.js does
* batching of updates there.
*/
reagent.core.flush = (function reagent$core$flush(){
return reagent.impl.batching.flush();
});
/**
* Like clojure.core/atom, except that it keeps track of derefs.
* Reagent components that derefs one of these are automatically
* re-rendered.
*/
reagent.core.atom = (function reagent$core$atom(var_args){
var G__46311 = arguments.length;
switch (G__46311) {
case 1:
return reagent.core.atom.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
default:
var args_arr__4757__auto__ = [];
var len__4736__auto___46521 = arguments.length;
var i__4737__auto___46522 = (0);
while(true){
if((i__4737__auto___46522 < len__4736__auto___46521)){
args_arr__4757__auto__.push((arguments[i__4737__auto___46522]));
var G__46524 = (i__4737__auto___46522 + (1));
i__4737__auto___46522 = G__46524;
continue;
} else {
}
break;
}
var argseq__4758__auto__ = (new cljs.core.IndexedSeq(args_arr__4757__auto__.slice((1)),(0),null));
return reagent.core.atom.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4758__auto__);
}
});
(reagent.core.atom.cljs$core$IFn$_invoke$arity$1 = (function (x){
return reagent.ratom.atom.cljs$core$IFn$_invoke$arity$1(x);
}));
(reagent.core.atom.cljs$core$IFn$_invoke$arity$variadic = (function (x,rest){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(reagent.ratom.atom,x,rest);
}));
/** @this {Function} */
(reagent.core.atom.cljs$lang$applyTo = (function (seq46309){
var G__46310 = cljs.core.first(seq46309);
var seq46309__$1 = cljs.core.next(seq46309);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46310,seq46309__$1);
}));
(reagent.core.atom.cljs$lang$maxFixedArity = (1));
/**
* Takes a function and optional arguments, and returns a derefable
* containing the output of that function. If the function derefs
* Reagent atoms (or track, etc), the value will be updated whenever
* the atom changes.
*
* In other words, `@(track foo bar)` will produce the same result
* as `(foo bar)`, but foo will only be called again when the atoms it
* depends on changes, and will only trigger updates of components when
* its result changes.
*
* track is lazy, i.e the function is only evaluated on deref.
*/
reagent.core.track = (function reagent$core$track(var_args){
var args__4742__auto__ = [];
var len__4736__auto___46531 = arguments.length;
var i__4737__auto___46532 = (0);
while(true){
if((i__4737__auto___46532 < len__4736__auto___46531)){
args__4742__auto__.push((arguments[i__4737__auto___46532]));
var G__46534 = (i__4737__auto___46532 + (1));
i__4737__auto___46532 = G__46534;
continue;
} else {
}
break;
}
var argseq__4743__auto__ = ((((1) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((1)),(0),null)):null);
return reagent.core.track.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4743__auto__);
});
(reagent.core.track.cljs$core$IFn$_invoke$arity$variadic = (function (f,args){
if(cljs.core.ifn_QMARK_(f)){
} else {
throw (new Error("Assert failed: (ifn? f)"));
}
return reagent.ratom.make_track(f,args);
}));
(reagent.core.track.cljs$lang$maxFixedArity = (1));
/** @this {Function} */
(reagent.core.track.cljs$lang$applyTo = (function (seq46314){
var G__46315 = cljs.core.first(seq46314);
var seq46314__$1 = cljs.core.next(seq46314);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46315,seq46314__$1);
}));
/**
* An eager version of track. The function passed is called
* immediately, and continues to be called when needed, until stopped
* with dispose!.
*/
reagent.core.track_BANG_ = (function reagent$core$track_BANG_(var_args){
var args__4742__auto__ = [];
var len__4736__auto___46539 = arguments.length;
var i__4737__auto___46540 = (0);
while(true){
if((i__4737__auto___46540 < len__4736__auto___46539)){
args__4742__auto__.push((arguments[i__4737__auto___46540]));
var G__46544 = (i__4737__auto___46540 + (1));
i__4737__auto___46540 = G__46544;
continue;
} else {
}
break;
}
var argseq__4743__auto__ = ((((1) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((1)),(0),null)):null);
return reagent.core.track_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4743__auto__);
});
(reagent.core.track_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (f,args){
if(cljs.core.ifn_QMARK_(f)){
} else {
throw (new Error("Assert failed: (ifn? f)"));
}
return reagent.ratom.make_track_BANG_(f,args);
}));
(reagent.core.track_BANG_.cljs$lang$maxFixedArity = (1));
/** @this {Function} */
(reagent.core.track_BANG_.cljs$lang$applyTo = (function (seq46325){
var G__46326 = cljs.core.first(seq46325);
var seq46325__$1 = cljs.core.next(seq46325);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46326,seq46325__$1);
}));
/**
* Stop the result of track! from updating.
*/
reagent.core.dispose_BANG_ = (function reagent$core$dispose_BANG_(x){
return reagent.ratom.dispose_BANG_(x);
});
/**
* Provide a combination of value and callback, that looks like an atom.
*
* The first argument can be any value, that will be returned when the
* result is deref'ed.
*
* The second argument should be a function, that is called with the
* optional extra arguments provided to wrap, and the new value of the
* resulting 'atom'.
*
* Use for example like this:
*
* ```cljs
* (wrap (:foo @state)
* swap! state assoc :foo)
* ```
*
* Probably useful only for passing to child components.
*/
reagent.core.wrap = (function reagent$core$wrap(var_args){
var args__4742__auto__ = [];
var len__4736__auto___46552 = arguments.length;
var i__4737__auto___46553 = (0);
while(true){
if((i__4737__auto___46553 < len__4736__auto___46552)){
args__4742__auto__.push((arguments[i__4737__auto___46553]));
var G__46556 = (i__4737__auto___46553 + (1));
i__4737__auto___46553 = G__46556;
continue;
} else {
}
break;
}
var argseq__4743__auto__ = ((((2) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((2)),(0),null)):null);
return reagent.core.wrap.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4743__auto__);
});
(reagent.core.wrap.cljs$core$IFn$_invoke$arity$variadic = (function (value,reset_fn,args){
if(cljs.core.ifn_QMARK_(reset_fn)){
} else {
throw (new Error(["Assert failed: ",["Expected something callable, not ",cljs.core.pr_str.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([reset_fn], 0))].join(''),"\n","(clojure.core/ifn? reset-fn)"].join('')));
}
return reagent.ratom.make_wrapper(value,reset_fn,args);
}));
(reagent.core.wrap.cljs$lang$maxFixedArity = (2));
/** @this {Function} */
(reagent.core.wrap.cljs$lang$applyTo = (function (seq46338){
var G__46339 = cljs.core.first(seq46338);
var seq46338__$1 = cljs.core.next(seq46338);
var G__46340 = cljs.core.first(seq46338__$1);
var seq46338__$2 = cljs.core.next(seq46338__$1);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46339,G__46340,seq46338__$2);
}));
/**
* Provide a cursor into a Reagent atom.
*
* Behaves like a Reagent atom but focuses updates and derefs to
* the specified path within the wrapped Reagent atom. e.g.,
*
* ```cljs
* (let [c (cursor ra [:nested :content])]
* ... @c ;; equivalent to (get-in @ra [:nested :content])
* ... (reset! c 42) ;; equivalent to (swap! ra assoc-in [:nested :content] 42)
* ... (swap! c inc) ;; equivalence to (swap! ra update-in [:nested :content] inc)
* )
* ```
*
* The first parameter can also be a function, that should look
* something like this:
*
* ```cljs
* (defn set-get
* ([k] (get-in @state k))
* ([k v] (swap! state assoc-in k v)))
* ```
*
* The function will be called with one argument – the path passed to
* cursor – when the cursor is deref'ed, and two arguments (path and
* new value) when the cursor is modified.
*
* Given that set-get function, (and that state is a Reagent atom, or
* another cursor) these cursors are equivalent:
* `(cursor state [:foo])` and `(cursor set-get [:foo])`.
*
* Note that a cursor is lazy: its value will not change until it is
* used. This may be noticed with add-watch.
*/
reagent.core.cursor = (function reagent$core$cursor(src,path){
return reagent.ratom.cursor(src,path);
});
/**
* Swaps the value of a to be `(apply f current-value-of-atom args)`.
*
* rswap! works like swap!, except that recursive calls to rswap! on
* the same atom are allowed – and it always returns nil.
*/
reagent.core.rswap_BANG_ = (function reagent$core$rswap_BANG_(var_args){
var args__4742__auto__ = [];
var len__4736__auto___46566 = arguments.length;
var i__4737__auto___46570 = (0);
while(true){
if((i__4737__auto___46570 < len__4736__auto___46566)){
args__4742__auto__.push((arguments[i__4737__auto___46570]));
var G__46571 = (i__4737__auto___46570 + (1));
i__4737__auto___46570 = G__46571;
continue;
} else {
}
break;
}
var argseq__4743__auto__ = ((((2) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((2)),(0),null)):null);
return reagent.core.rswap_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__4743__auto__);
});
(reagent.core.rswap_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (a,f,args){
if((((!((a == null))))?(((((a.cljs$lang$protocol_mask$partition1$ & (16384))) || ((cljs.core.PROTOCOL_SENTINEL === a.cljs$core$IAtom$))))?true:(((!a.cljs$lang$protocol_mask$partition1$))?cljs.core.native_satisfies_QMARK_(cljs.core.IAtom,a):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IAtom,a))){
} else {
throw (new Error("Assert failed: (satisfies? IAtom a)"));
}
if(cljs.core.ifn_QMARK_(f)){
} else {
throw (new Error("Assert failed: (ifn? f)"));
}
if(cljs.core.truth_(a.rswapping)){
(function (){var or__4126__auto__ = a.rswapfs;
if(cljs.core.truth_(or__4126__auto__)){
return or__4126__auto__;
} else {
return (a.rswapfs = []);
}
})().push((function (p1__46360_SHARP_){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,p1__46360_SHARP_,args);
}));
} else {
(a.rswapping = true);
try{cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$2(a,(function (state){
var s = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,state,args);
while(true){
var temp__5737__auto__ = (function (){var G__46378 = a;
var G__46378__$1 = (((G__46378 == null))?null:G__46378.rswapfs);
if((G__46378__$1 == null)){
return null;
} else {
return G__46378__$1.shift();
}
})();
if((temp__5737__auto__ == null)){
return s;
} else {
var sf = temp__5737__auto__;
var G__46590 = (sf.cljs$core$IFn$_invoke$arity$1 ? sf.cljs$core$IFn$_invoke$arity$1(s) : sf.call(null,s));
s = G__46590;
continue;
}
break;
}
}));
}finally {(a.rswapping = false);
}}
return null;
}));
(reagent.core.rswap_BANG_.cljs$lang$maxFixedArity = (2));
/** @this {Function} */
(reagent.core.rswap_BANG_.cljs$lang$applyTo = (function (seq46365){
var G__46366 = cljs.core.first(seq46365);
var seq46365__$1 = cljs.core.next(seq46365);
var G__46367 = cljs.core.first(seq46365__$1);
var seq46365__$2 = cljs.core.next(seq46365__$1);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46366,G__46367,seq46365__$2);
}));
/**
* Run f using requestAnimationFrame or equivalent.
*
* f will be called just before components are rendered.
*/
reagent.core.next_tick = (function reagent$core$next_tick(f){
return reagent.impl.batching.do_before_flush(f);
});
/**
* Run f using requestAnimationFrame or equivalent.
*
* f will be called just after any queued renders in the next animation
* frame (and even if no renders actually occur).
*/
reagent.core.after_render = (function reagent$core$after_render(f){
return reagent.impl.batching.do_after_render(f);
});
/**
* Works just like clojure.core/partial, but the result can be compared with =
*/
reagent.core.partial = (function reagent$core$partial(var_args){
var args__4742__auto__ = [];
var len__4736__auto___46603 = arguments.length;
var i__4737__auto___46606 = (0);
while(true){
if((i__4737__auto___46606 < len__4736__auto___46603)){
args__4742__auto__.push((arguments[i__4737__auto___46606]));
var G__46607 = (i__4737__auto___46606 + (1));
i__4737__auto___46606 = G__46607;
continue;
} else {
}
break;
}
var argseq__4743__auto__ = ((((1) < args__4742__auto__.length))?(new cljs.core.IndexedSeq(args__4742__auto__.slice((1)),(0),null)):null);
return reagent.core.partial.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__4743__auto__);
});
(reagent.core.partial.cljs$core$IFn$_invoke$arity$variadic = (function (f,args){
return reagent.impl.util.make_partial_fn(f,args);
}));
(reagent.core.partial.cljs$lang$maxFixedArity = (1));
/** @this {Function} */
(reagent.core.partial.cljs$lang$applyTo = (function (seq46399){
var G__46400 = cljs.core.first(seq46399);
var seq46399__$1 = cljs.core.next(seq46399);
var self__4723__auto__ = this;
return self__4723__auto__.cljs$core$IFn$_invoke$arity$variadic(G__46400,seq46399__$1);
}));
/**
* Creates Compiler object with given `opts`,
* this can be passed to `render`, `as-element` and other functions to control
* how they turn the Reagent-style Hiccup into React components and elements.
*/
reagent.core.create_compiler = (function reagent$core$create_compiler(opts){
return reagent.impl.template.create_compiler(opts);
});
/**
* Globally sets the Compiler object used by `render`, `as-element` and other
* calls by default, when no `compiler` parameter is provided.
*
* Use `nil` value to restore the original default compiler.
*/
reagent.core.set_default_compiler_BANG_ = (function reagent$core$set_default_compiler_BANG_(compiler){
return reagent.impl.template.set_default_compiler_BANG_((((compiler == null))?reagent.impl.template.default_compiler_STAR_:compiler));
});
//# sourceMappingURL=reagent.core.js.map