japji/resources/public/js/cljs-runtime/reagent.core.js
2025-09-01 12:49:14 +01:00

985 lines
34 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

goog.provide('reagent.core');
var module$react=shadow.js.require("module$react", {});
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__52134 = arguments.length;
switch (G__52134) {
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__5774__auto__ = [];
var len__5749__auto___52174 = arguments.length;
var i__5750__auto___52175 = (0);
while(true){
if((i__5750__auto___52175 < len__5749__auto___52174)){
args_arr__5774__auto__.push((arguments[i__5750__auto___52175]));
var G__52176 = (i__5750__auto___52175 + (1));
i__5750__auto___52175 = G__52176;
continue;
} else {
}
break;
}
var argseq__5775__auto__ = ((((3) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((3)),(0),null)):null);
return reagent.core.create_element.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),argseq__5775__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 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 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(module$react.createElement,type,props,child,children);
}));
/** @this {Function} */
(reagent.core.create_element.cljs$lang$applyTo = (function (seq52130){
var G__52131 = cljs.core.first(seq52130);
var seq52130__$1 = cljs.core.next(seq52130);
var G__52132 = cljs.core.first(seq52130__$1);
var seq52130__$2 = cljs.core.next(seq52130__$1);
var G__52133 = cljs.core.first(seq52130__$2);
var seq52130__$3 = cljs.core.next(seq52130__$2);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52131,G__52132,G__52133,seq52130__$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__52136 = arguments.length;
switch (G__52136) {
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__52138 = arguments.length;
switch (G__52138) {
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__52140 = arguments.length;
switch (G__52140) {
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__52142 = arguments.length;
switch (G__52142) {
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__52147 = arguments.length;
switch (G__52147) {
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__5774__auto__ = [];
var len__5749__auto___52182 = arguments.length;
var i__5750__auto___52183 = (0);
while(true){
if((i__5750__auto___52183 < len__5749__auto___52182)){
args_arr__5774__auto__.push((arguments[i__5750__auto___52183]));
var G__52184 = (i__5750__auto___52183 + (1));
i__5750__auto___52183 = G__52184;
continue;
} else {
}
break;
}
var argseq__5775__auto__ = ((((2) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);
return reagent.core.class_names.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__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 (seq52144){
var G__52145 = cljs.core.first(seq52144);
var seq52144__$1 = cljs.core.next(seq52144);
var G__52146 = cljs.core.first(seq52144__$1);
var seq52144__$2 = cljs.core.next(seq52144__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52145,G__52146,seq52144__$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__52152 = arguments.length;
switch (G__52152) {
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__5774__auto__ = [];
var len__5749__auto___52189 = arguments.length;
var i__5750__auto___52190 = (0);
while(true){
if((i__5750__auto___52190 < len__5749__auto___52189)){
args_arr__5774__auto__.push((arguments[i__5750__auto___52190]));
var G__52191 = (i__5750__auto___52190 + (1));
i__5750__auto___52190 = G__52191;
continue;
} else {
}
break;
}
var argseq__5775__auto__ = ((((2) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((2)),(0),null)):null);
return reagent.core.merge_props.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5775__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 (seq52149){
var G__52150 = cljs.core.first(seq52149);
var seq52149__$1 = cljs.core.next(seq52149);
var G__52151 = cljs.core.first(seq52149__$1);
var seq52149__$2 = cljs.core.next(seq52149__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52150,G__52151,seq52149__$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__52156 = arguments.length;
switch (G__52156) {
case 1:
return reagent.core.atom.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
break;
default:
var args_arr__5774__auto__ = [];
var len__5749__auto___52197 = arguments.length;
var i__5750__auto___52198 = (0);
while(true){
if((i__5750__auto___52198 < len__5749__auto___52197)){
args_arr__5774__auto__.push((arguments[i__5750__auto___52198]));
var G__52199 = (i__5750__auto___52198 + (1));
i__5750__auto___52198 = G__52199;
continue;
} else {
}
break;
}
var argseq__5775__auto__ = ((((1) < args_arr__5774__auto__.length))?(new cljs.core.IndexedSeq(args_arr__5774__auto__.slice((1)),(0),null)):null);
return reagent.core.atom.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5775__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 (seq52154){
var G__52155 = cljs.core.first(seq52154);
var seq52154__$1 = cljs.core.next(seq52154);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52155,seq52154__$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__5755__auto__ = [];
var len__5749__auto___52201 = arguments.length;
var i__5750__auto___52202 = (0);
while(true){
if((i__5750__auto___52202 < len__5749__auto___52201)){
args__5755__auto__.push((arguments[i__5750__auto___52202]));
var G__52203 = (i__5750__auto___52202 + (1));
i__5750__auto___52202 = G__52203;
continue;
} else {
}
break;
}
var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
return reagent.core.track.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__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 (seq52157){
var G__52158 = cljs.core.first(seq52157);
var seq52157__$1 = cljs.core.next(seq52157);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52158,seq52157__$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__5755__auto__ = [];
var len__5749__auto___52205 = arguments.length;
var i__5750__auto___52206 = (0);
while(true){
if((i__5750__auto___52206 < len__5749__auto___52205)){
args__5755__auto__.push((arguments[i__5750__auto___52206]));
var G__52208 = (i__5750__auto___52206 + (1));
i__5750__auto___52206 = G__52208;
continue;
} else {
}
break;
}
var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
return reagent.core.track_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__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 (seq52159){
var G__52160 = cljs.core.first(seq52159);
var seq52159__$1 = cljs.core.next(seq52159);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52160,seq52159__$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__5755__auto__ = [];
var len__5749__auto___52211 = arguments.length;
var i__5750__auto___52212 = (0);
while(true){
if((i__5750__auto___52212 < len__5749__auto___52211)){
args__5755__auto__.push((arguments[i__5750__auto___52212]));
var G__52213 = (i__5750__auto___52212 + (1));
i__5750__auto___52212 = G__52213;
continue;
} else {
}
break;
}
var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return reagent.core.wrap.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__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 (seq52161){
var G__52162 = cljs.core.first(seq52161);
var seq52161__$1 = cljs.core.next(seq52161);
var G__52163 = cljs.core.first(seq52161__$1);
var seq52161__$2 = cljs.core.next(seq52161__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52162,G__52163,seq52161__$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__5755__auto__ = [];
var len__5749__auto___52214 = arguments.length;
var i__5750__auto___52215 = (0);
while(true){
if((i__5750__auto___52215 < len__5749__auto___52214)){
args__5755__auto__.push((arguments[i__5750__auto___52215]));
var G__52216 = (i__5750__auto___52215 + (1));
i__5750__auto___52215 = G__52216;
continue;
} else {
}
break;
}
var argseq__5756__auto__ = ((((2) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((2)),(0),null)):null);
return reagent.core.rswap_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5756__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__5025__auto__ = a.rswapfs;
if(cljs.core.truth_(or__5025__auto__)){
return or__5025__auto__;
} else {
return (a.rswapfs = []);
}
})().push((function (p1__52164_SHARP_){
return cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,p1__52164_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__5806__auto__ = (function (){var G__52169 = a;
var G__52169__$1 = (((G__52169 == null))?null:G__52169.rswapfs);
if((G__52169__$1 == null)){
return null;
} else {
return G__52169__$1.shift();
}
})();
if((temp__5806__auto__ == null)){
return s;
} else {
var sf = temp__5806__auto__;
var G__52217 = (sf.cljs$core$IFn$_invoke$arity$1 ? sf.cljs$core$IFn$_invoke$arity$1(s) : sf.call(null,s));
s = G__52217;
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 (seq52165){
var G__52166 = cljs.core.first(seq52165);
var seq52165__$1 = cljs.core.next(seq52165);
var G__52167 = cljs.core.first(seq52165__$1);
var seq52165__$2 = cljs.core.next(seq52165__$1);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52166,G__52167,seq52165__$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__5755__auto__ = [];
var len__5749__auto___52218 = arguments.length;
var i__5750__auto___52219 = (0);
while(true){
if((i__5750__auto___52219 < len__5749__auto___52218)){
args__5755__auto__.push((arguments[i__5750__auto___52219]));
var G__52220 = (i__5750__auto___52219 + (1));
i__5750__auto___52219 = G__52220;
continue;
} else {
}
break;
}
var argseq__5756__auto__ = ((((1) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((1)),(0),null)):null);
return reagent.core.partial.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5756__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 (seq52170){
var G__52171 = cljs.core.first(seq52170);
var seq52170__$1 = cljs.core.next(seq52170);
var self__5734__auto__ = this;
return self__5734__auto__.cljs$core$IFn$_invoke$arity$variadic(G__52171,seq52170__$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));
});
reagent.core.render = (function reagent$core$render(var_args){
var args__5755__auto__ = [];
var len__5749__auto___52222 = arguments.length;
var i__5750__auto___52223 = (0);
while(true){
if((i__5750__auto___52223 < len__5749__auto___52222)){
args__5755__auto__.push((arguments[i__5750__auto___52223]));
var G__52224 = (i__5750__auto___52223 + (1));
i__5750__auto___52223 = G__52224;
continue;
} else {
}
break;
}
var argseq__5756__auto__ = ((((0) < args__5755__auto__.length))?(new cljs.core.IndexedSeq(args__5755__auto__.slice((0)),(0),null)):null);
return reagent.core.render.cljs$core$IFn$_invoke$arity$variadic(argseq__5756__auto__);
});
(reagent.core.render.cljs$core$IFn$_invoke$arity$variadic = (function (_){
throw (new Error("Reagent.core/render function was moved to reagent.dom namespace in Reagent v1.0."));
}));
(reagent.core.render.cljs$lang$maxFixedArity = (0));
/** @this {Function} */
(reagent.core.render.cljs$lang$applyTo = (function (seq52172){
var self__5735__auto__ = this;
return self__5735__auto__.cljs$core$IFn$_invoke$arity$variadic(cljs.core.seq(seq52172));
}));
//# sourceMappingURL=reagent.core.js.map