["^ ","~:rename-macros",["^ "],"~:renames",["^ "],"~:externs",["^ ","~$Error",["^ "]],"~:use-macros",["^ ","~$assert-js-object","~$reagent.debug","~$assert-some","^6","~$assert-new-state","^6","~$dbg","^6","~$$!","~$reagent.interop","~$prn","^6","~$assert-component","^6","~$$","^;","~$assert-callable","^6"],"~:excludes",["~#set",["~$atom","~$flush","~$partial"]],"~:name","~$reagent.core","~:imports",null,"~:requires",["^ ","~$reagent.impl.util","^H","~$dom","~$reagent.dom","~$comp","~$reagent.impl.component","^;","^;","~$reagent.ratom","^M","~$reagent.impl.template","^N","~$reagent.impl.batching","^O","^L","^L","~$util","^H","~$tmpl","^N","~$ratom","^M","~$deb","^6","~$batch","^O","^6","^6","^J","^J"],"~:cljs.spec/speced-vars",[],"~:uses",null,"~:defs",["^ ","~$after-render",["^ ","~:protocol-inline",null,"~:meta",["^ ","~:file","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","~:line",331,"~:column",7,"~:end-line",331,"~:end-column",19,"~:arglists",["~#list",["~$quote",["^15",[["~$f"]]]]],"~:doc","Run f using requestAnimationFrame or equivalent.\n\n  f will be called just after any queued renders in the next animation\n  frame (and even if no renders actually occur)."],"^D","~$reagent.core/after-render","~:variadic",false,"^[","out-cli/reagent/core.cljs","^13",19,"~:method-params",["^15",[["~$f"]]],"~:protocol-impl",null,"~:arglists-meta",["^15",[null,null]],"^11",1,"^10",331,"^12",331,"~:max-fixed-arity",1,"~:fn-var",true,"^14",["^15",["^16",["^15",[["~$f"]]]]],"^17","Run f using requestAnimationFrame or equivalent.\n\n  f will be called just after any queued renders in the next animation\n  frame (and even if no renders actually occur)."],"~$current-component",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",122,"^11",7,"^12",122,"^13",24,"^14",["^15",["^16",["^15",[[]]]]],"^17","Returns the current React component (a.k.a this) in a component\n  function."],"^D","~$reagent.core/current-component","^19",false,"^[","out-cli/reagent/core.cljs","^13",24,"^1:",["^15",[[]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",122,"^12",122,"^1=",0,"^1>",true,"^14",["^15",["^16",["^15",[[]]]]],"^17","Returns the current React component (a.k.a this) in a component\n  function."],"~$as-component",["^ ","^D","~$reagent.core/as-component","^[","out-cli/reagent/core.cljs","^10",85,"^11",1,"^12",85,"^13",18,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",85,"^11",6,"^12",85,"^13",18]],"~$adapt-react-class",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",51,"^11",7,"^12",51,"^13",24,"^14",["^15",["^16",["^15",[["~$c"]]]]],"^17","Returns an adapter for a native React class, that may be used\n  just like a Reagent component function or class in Hiccup forms."],"^D","~$reagent.core/adapt-react-class","^19",false,"^[","out-cli/reagent/core.cljs","^13",24,"^1:",["^15",[["~$c"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",51,"^12",51,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["~$c"]]]]],"^17","Returns an adapter for a native React class, that may be used\n  just like a Reagent component function or class in Hiccup forms."],"^A",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",210,"^11",7,"^12",210,"^13",11,"^14",["^15",["^16",["^15",[["~$x"],["~$x","~$&","~$rest"]]]]],"^17","Like clojure.core/atom, except that it keeps track of derefs.\n  Reagent components that derefs one of these are automatically\n  re-rendered.","~:top-fn",["^ ","^19",true,"^1=",1,"^1:",["^15",[["~$x"]]],"^14",["^15",[["~$x"],["~$x","~$&","^1E"]]],"^1<",["^15",[null,null]]]],"^D","~$reagent.core/atom","^19",true,"^[","out-cli/reagent/core.cljs","^13",11,"^1F",["^ ","^19",true,"^1=",1,"^1:",["^15",[["~$x"]]],"^14",["^15",[["~$x"],["~$x","~$&","^1E"]]],"^1<",["^15",[null,null]]],"^1:",["^15",[["~$x"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",210,"^12",210,"^1=",1,"^1>",true,"^14",["^15",[["~$x"],["~$x","~$&","^1E"]]],"^17","Like clojure.core/atom, except that it keeps track of derefs.\n  Reagent components that derefs one of these are automatically\n  re-rendered."],"~$merge-props",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",192,"^11",7,"^12",192,"^13",18,"^14",["^15",["^16",["^15",[["~$defaults","~$props"]]]]],"^17","Utility function that merges two maps, handling :class and :style\n  specially, like React's transferPropsTo."],"^D","~$reagent.core/merge-props","^19",false,"^[","out-cli/reagent/core.cljs","^13",18,"^1:",["^15",[["^1I","^1J"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",192,"^12",192,"^1=",2,"^1>",true,"^14",["^15",["^16",["^15",[["^1I","^1J"]]]]],"^17","Utility function that merges two maps, handling :class and :style\n  specially, like React's transferPropsTo."],"~$force-update-all",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",88,"^11",16,"^12",88,"^13",32,"~:export",true,"^14",["^15",["^16",["^15",[[]]]]],"^17","Force re-rendering of all mounted Reagent components. This is\n  probably only useful in a development environment, when you want to\n  update components in response to some dynamic changes to code.\n\n  Note that force-update-all may not update root components. This\n  happens if a component 'foo' is mounted with `(render [foo])` (since\n  functions are passed by value, and not by reference, in\n  ClojureScript). To get around this you'll have to introduce a layer\n  of indirection, for example by using `(render [#'foo])` instead."],"^D","~$reagent.core/force-update-all","^19",false,"^[","out-cli/reagent/core.cljs","^13",32,"^1:",["^15",[[]]],"^1;",null,"^1M",true,"^1<",["^15",[null,null]],"^11",1,"^10",88,"^12",88,"^1=",0,"^1>",true,"^14",["^15",["^16",["^15",[[]]]]],"^17","Force re-rendering of all mounted Reagent components. This is\n  probably only useful in a development environment, when you want to\n  update components in response to some dynamic changes to code.\n\n  Note that force-update-all may not update root components. This\n  happens if a component 'foo' is mounted with `(render [foo])` (since\n  functions are passed by value, and not by reference, in\n  ClojureScript). To get around this you'll have to introduce a layer\n  of indirection, for example by using `(render [#'foo])` instead."],"~$as-element",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",45,"^11",7,"^12",45,"^13",17,"^14",["^15",["^16",["^15",[["~$form"]]]]],"^17","Turns a vector of Hiccup syntax into a React element. Returns form\n  unchanged if it is not a vector."],"^D","~$reagent.core/as-element","^19",false,"^[","out-cli/reagent/core.cljs","^13",17,"^1:",["^15",[["^1P"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",45,"^12",45,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1P"]]]]],"^17","Turns a vector of Hiccup syntax into a React element. Returns form\n  unchanged if it is not a vector."],"~$rswap!",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",303,"^11",7,"^12",303,"^13",13,"^14",["^15",["^16",["^15",[["~$a","~$f","~$&","~$args"]]]]],"^17","Swaps the value of a to be (apply f current-value-of-atom args).\n\n  rswap! works like swap!, except that recursive calls to rswap! on\n  the same atom are allowed – and it always returns nil.","^1F",["^ ","^19",true,"^1=",2,"^1:",[["^15",["~$a","~$f","^1S"]]],"^14",["^15",[["~$a","~$f","~$&","^1S"]]],"^1<",["^15",[null]]]],"^D","~$reagent.core/rswap!","^19",true,"^[","out-cli/reagent/core.cljs","^13",13,"^1F",["^ ","^19",true,"^1=",2,"^1:",[["^15",["~$a","~$f","^1S"]]],"^14",["^15",[["~$a","~$f","~$&","^1S"]]],"^1<",["^15",[null]]],"^1:",[["^15",["~$a","~$f","^1S"]]],"^1;",null,"^1<",["^15",[null]],"^11",1,"^10",303,"^12",303,"^1=",2,"^1>",true,"^14",["^15",[["~$a","~$f","~$&","^1S"]]],"^17","Swaps the value of a to be (apply f current-value-of-atom args).\n\n  rswap! works like swap!, except that recursive calls to rswap! on\n  the same atom are allowed – and it always returns nil."],"~$next-tick",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",324,"^11",7,"^12",324,"^13",16,"^14",["^15",["^16",["^15",[["~$f"]]]]],"^17","Run f using requestAnimationFrame or equivalent.\n\n  f will be called just before components are rendered."],"^D","~$reagent.core/next-tick","^19",false,"^[","out-cli/reagent/core.cljs","^13",16,"^1:",["^15",[["~$f"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",324,"^12",324,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["~$f"]]]]],"^17","Run f using requestAnimationFrame or equivalent.\n\n  f will be called just before components are rendered."],"~$track",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",217,"^11",7,"^12",217,"^13",12,"^14",["^15",["^16",["^15",[["~$f","~$&","^1S"]]]]],"^17","Takes a function and optional arguments, and returns a derefable\n  containing the output of that function. If the function derefs\n  Reagent atoms (or track, etc), the value will be updated whenever\n  the atom changes.\n\n  In other words, @(track foo bar) will produce the same result\n  as (foo bar), but foo will only be called again when the atoms it\n  depends on changes, and will only trigger updates of components when\n  its result changes.\n\n  track is lazy, i.e the function is only evaluated on deref.","^1F",["^ ","^19",true,"^1=",1,"^1:",[["^15",["~$f","^1S"]]],"^14",["^15",[["~$f","~$&","^1S"]]],"^1<",["^15",[null]]]],"^D","~$reagent.core/track","^19",true,"^[","out-cli/reagent/core.cljs","^13",12,"^1F",["^ ","^19",true,"^1=",1,"^1:",[["^15",["~$f","^1S"]]],"^14",["^15",[["~$f","~$&","^1S"]]],"^1<",["^15",[null]]],"^1:",[["^15",["~$f","^1S"]]],"^1;",null,"^1<",["^15",[null]],"^11",1,"^10",217,"^12",217,"^1=",1,"^1>",true,"^14",["^15",[["~$f","~$&","^1S"]]],"^17","Takes a function and optional arguments, and returns a derefable\n  containing the output of that function. If the function derefs\n  Reagent atoms (or track, etc), the value will be updated whenever\n  the atom changes.\n\n  In other words, @(track foo bar) will produce the same result\n  as (foo bar), but foo will only be called again when the atoms it\n  depends on changes, and will only trigger updates of components when\n  its result changes.\n\n  track is lazy, i.e the function is only evaluated on deref."],"^1J",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",169,"^11",7,"^12",169,"^13",12,"^14",["^15",["^16",["^15",[["~$this"]]]]],"^17","Returns the props passed to a component."],"^D","~$reagent.core/props","^19",false,"^[","out-cli/reagent/core.cljs","^13",12,"^1:",["^15",[["^1Y"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",169,"^12",169,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the props passed to a component."],"~$dispose!",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",241,"^11",7,"^12",241,"^13",15,"^14",["^15",["^16",["^15",[["~$x"]]]]],"^17","Stop the result of track! from updating."],"^D","~$reagent.core/dispose!","^19",false,"^[","out-cli/reagent/core.cljs","^13",15,"^1:",["^15",[["~$x"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",241,"^12",241,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["~$x"]]]]],"^17","Stop the result of track! from updating."],"~$state-atom",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",128,"^11",7,"^12",128,"^13",17,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns an atom containing a components state."],"^D","~$reagent.core/state-atom","^19",false,"^[","out-cli/reagent/core.cljs","^13",17,"^1:",["^15",[["^1Y"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",128,"^12",128,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns an atom containing a components state."],"^B",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",198,"^11",7,"^12",198,"^13",12,"^14",["^15",["^16",["^15",[[]]]]],"^17","Render dirty components immediately to the DOM.\n\n  Note that this may not work in event handlers, since React.js does\n  batching of updates there."],"^D","~$reagent.core/flush","^19",false,"^[","out-cli/reagent/core.cljs","^13",12,"^1:",["^15",[[]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",198,"^12",198,"^1=",0,"^1>",true,"^14",["^15",["^16",["^15",[[]]]]],"^17","Render dirty components immediately to the DOM.\n\n  Note that this may not work in event handlers, since React.js does\n  batching of updates there."],"~$children",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",175,"^11",7,"^12",175,"^13",15,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the children passed to a component."],"^D","~$reagent.core/children","^19",false,"^[","out-cli/reagent/core.cljs","^13",15,"^1:",["^15",[["^1Y"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",175,"^12",175,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the children passed to a component."],"~$react",["^ ","^D","~$reagent.core/react","^[","out-cli/reagent/core.cljs","^10",18,"^11",1,"^12",18,"^13",11,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",18,"^11",6,"^12",18,"^13",11],"~:tag","~$js"],"~$wrap",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",246,"^11",7,"^12",246,"^13",11,"^14",["^15",["^16",["^15",[["~$value","~$reset-fn","~$&","^1S"]]]]],"^17","Provide a combination of value and callback, that looks like an atom.\n\n  The first argument can be any value, that will be returned when the\n  result is deref'ed.\n\n  The second argument should be a function, that is called with the\n  optional extra arguments provided to wrap, and the new value of the\n  resulting 'atom'.\n\n  Use for example like this:\n\n  (wrap (:foo @state)\n        swap! state assoc :foo)\n\n  Probably useful only for passing to child components.","^1F",["^ ","^19",true,"^1=",2,"^1:",[["^15",["^2;","^2<","^1S"]]],"^14",["^15",[["^2;","^2<","~$&","^1S"]]],"^1<",["^15",[null]]]],"^D","~$reagent.core/wrap","^19",true,"^[","out-cli/reagent/core.cljs","^13",11,"^1F",["^ ","^19",true,"^1=",2,"^1:",[["^15",["^2;","^2<","^1S"]]],"^14",["^15",[["^2;","^2<","~$&","^1S"]]],"^1<",["^15",[null]]],"^1:",[["^15",["^2;","^2<","^1S"]]],"^1;",null,"^1<",["^15",[null]],"^11",1,"^10",246,"^12",246,"^1=",2,"^1>",true,"^14",["^15",[["^2;","^2<","~$&","^1S"]]],"^17","Provide a combination of value and callback, that looks like an atom.\n\n  The first argument can be any value, that will be returned when the\n  result is deref'ed.\n\n  The second argument should be a function, that is called with the\n  optional extra arguments provided to wrap, and the new value of the\n  resulting 'atom'.\n\n  Use for example like this:\n\n  (wrap (:foo @state)\n        swap! state assoc :foo)\n\n  Probably useful only for passing to child components."],"~$reactify-component",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",58,"^11",7,"^12",58,"^13",25,"^14",["^15",["^16",["^15",[["~$c"]]]]],"^17","Returns an adapter for a Reagent component, that may be used from\n  React, for example in JSX. A single argument, props, is passed to\n  the component, converted to a map."],"^D","~$reagent.core/reactify-component","^19",false,"^[","out-cli/reagent/core.cljs","^13",25,"^1:",["^15",[["~$c"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",58,"^12",58,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["~$c"]]]]],"^17","Returns an adapter for a Reagent component, that may be used from\n  React, for example in JSX. A single argument, props, is passed to\n  the component, converted to a map."],"~$unmount-component-at-node",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",79,"^11",7,"^12",79,"^13",32,"^14",["^15",["^16",["^15",[["~$container"]]]]],"^17","Remove a component from the given DOM node."],"^D","~$reagent.core/unmount-component-at-node","^19",false,"^[","out-cli/reagent/core.cljs","^13",32,"^1:",["^15",[["^2A"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",79,"^12",79,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^2A"]]]]],"^17","Remove a component from the given DOM node."],"~$render-component",["^ ","^D","~$reagent.core/render-component","^[","out-cli/reagent/core.cljs","^10",86,"^11",1,"^12",86,"^13",22,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",86,"^11",6,"^12",86,"^13",22]],"~$component-path",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",344,"^11",7,"^12",344,"^13",21,"^14",["^15",["^16",["^15",[["~$c"]]]]]],"^D","~$reagent.core/component-path","^19",false,"^[","out-cli/reagent/core.cljs","^13",21,"^1:",["^15",[["~$c"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",344,"^12",344,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["~$c"]]]]]],"~$cursor",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",269,"^11",7,"^12",269,"^13",13,"^14",["^15",["^16",["^15",[["~$src","~$path"]]]]],"^17","Provide a cursor into a Reagent atom.\n\n  Behaves like a Reagent atom but focuses updates and derefs to\n  the specified path within the wrapped Reagent atom. e.g.,\n    (let [c (cursor ra [:nested :content])]\n      ... @c ;; equivalent to (get-in @ra [:nested :content])\n      ... (reset! c 42) ;; equivalent to (swap! ra assoc-in [:nested :content] 42)\n      ... (swap! c inc) ;; equivalence to (swap! ra update-in [:nested :content] inc)\n      )\n\n  The first parameter can also be a function, that should look\n  something like this:\n\n    (defn set-get\n      ([k] (get-in @state k))\n      ([k v] (swap! state assoc-in k v)))\n\n  The function will be called with one argument – the path passed to\n  cursor – when the cursor is deref'ed, and two arguments (path and\n  new value) when the cursor is modified.\n\n  Given that set-get function, (and that state is a Reagent atom, or\n  another cursor) these cursors are equivalent:\n  (cursor state [:foo]) and (cursor set-get [:foo]).\n\n  Note that a cursor is lazy: its value will not change until it is\n  used. This may be noticed with add-watch."],"^D","~$reagent.core/cursor","^19",false,"^[","out-cli/reagent/core.cljs","^13",13,"^1:",["^15",[["^2H","^2I"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",269,"^12",269,"^1=",2,"^1>",true,"^14",["^15",["^16",["^15",[["^2H","^2I"]]]]],"^17","Provide a cursor into a Reagent atom.\n\n  Behaves like a Reagent atom but focuses updates and derefs to\n  the specified path within the wrapped Reagent atom. e.g.,\n    (let [c (cursor ra [:nested :content])]\n      ... @c ;; equivalent to (get-in @ra [:nested :content])\n      ... (reset! c 42) ;; equivalent to (swap! ra assoc-in [:nested :content] 42)\n      ... (swap! c inc) ;; equivalence to (swap! ra update-in [:nested :content] inc)\n      )\n\n  The first parameter can also be a function, that should look\n  something like this:\n\n    (defn set-get\n      ([k] (get-in @state k))\n      ([k v] (swap! state assoc-in k v)))\n\n  The function will be called with one argument – the path passed to\n  cursor – when the cursor is deref'ed, and two arguments (path and\n  new value) when the cursor is modified.\n\n  Given that set-get function, (and that state is a Reagent atom, or\n  another cursor) these cursors are equivalent:\n  (cursor state [:foo]) and (cursor set-get [:foo]).\n\n  Note that a cursor is lazy: its value will not change until it is\n  used. This may be noticed with add-watch."],"~$state",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",134,"^11",7,"^12",134,"^13",12,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the state of a component, as set with replace-state or set-state.\n  Equivalent to (deref (r/state-atom this))"],"^D","~$reagent.core/state","^19",false,"^[","out-cli/reagent/core.cljs","^13",12,"^1:",["^15",[["^1Y"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",134,"^12",134,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the state of a component, as set with replace-state or set-state.\n  Equivalent to (deref (r/state-atom this))"],"~$dom-node",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",187,"^11",7,"^12",187,"^13",15,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the root DOM node of a mounted component."],"^D","~$reagent.core/dom-node","^19",false,"^[","out-cli/reagent/core.cljs","^13",15,"^1:",["^15",[["^1Y"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",187,"^12",187,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the root DOM node of a mounted component."],"~$track!",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",233,"^11",7,"^12",233,"^13",13,"^14",["^15",["^16",["^15",[["~$f","~$&","^1S"]]]]],"^17","An eager version of track. The function passed is called\n  immediately, and continues to be called when needed, until stopped\n  with dispose!.","^1F",["^ ","^19",true,"^1=",1,"^1:",[["^15",["~$f","^1S"]]],"^14",["^15",[["~$f","~$&","^1S"]]],"^1<",["^15",[null]]]],"^D","~$reagent.core/track!","^19",true,"^[","out-cli/reagent/core.cljs","^13",13,"^1F",["^ ","^19",true,"^1=",1,"^1:",[["^15",["~$f","^1S"]]],"^14",["^15",[["~$f","~$&","^1S"]]],"^1<",["^15",[null]]],"^1:",[["^15",["~$f","^1S"]]],"^1;",null,"^1<",["^15",[null]],"^11",1,"^10",233,"^12",233,"^1=",1,"^1>",true,"^14",["^15",[["~$f","~$&","^1S"]]],"^17","An eager version of track. The function passed is called\n  immediately, and continues to be called when needed, until stopped\n  with dispose!."],"~$is-client",["^ ","^D","~$reagent.core/is-client","^[","out-cli/reagent/core.cljs","^10",16,"^11",1,"^12",16,"^13",15,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",16,"^11",6,"^12",16,"^13",15],"^28","~$boolean"],"~$replace-state",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",141,"^11",7,"^12",141,"^13",20,"^14",["^15",["^16",["^15",[["^1Y","~$new-state"]]]]],"^17","Set state of a component.\n  Equivalent to (reset! (state-atom this) new-state)"],"^D","~$reagent.core/replace-state","^19",false,"^[","out-cli/reagent/core.cljs","^13",20,"^1:",["^15",[["^1Y","^2U"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",141,"^12",141,"^1=",2,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y","^2U"]]]]],"^17","Set state of a component.\n  Equivalent to (reset! (state-atom this) new-state)"],"^C",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",339,"^11",7,"^12",339,"^13",14,"^14",["^15",["^16",["^15",[["~$f","~$&","^1S"]]]]],"^17","Works just like clojure.core/partial, but the result can be compared with =","^1F",["^ ","^19",true,"^1=",1,"^1:",[["^15",["~$f","^1S"]]],"^14",["^15",[["~$f","~$&","^1S"]]],"^1<",["^15",[null]]]],"^D","~$reagent.core/partial","^19",true,"^[","out-cli/reagent/core.cljs","^13",14,"^1F",["^ ","^19",true,"^1=",1,"^1:",[["^15",["~$f","^1S"]]],"^14",["^15",[["~$f","~$&","^1S"]]],"^1<",["^15",[null]]],"^1:",[["^15",["~$f","^1S"]]],"^1;",null,"^1<",["^15",[null]],"^11",1,"^10",339,"^12",339,"^1=",1,"^1>",true,"^14",["^15",[["~$f","~$&","^1S"]]],"^17","Works just like clojure.core/partial, but the result can be compared with ="],"~$set-state",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",149,"^11",7,"^12",149,"^13",16,"^14",["^15",["^16",["^15",[["^1Y","^2U"]]]]],"^17","Merge component state with new-state.\n  Equivalent to (swap! (state-atom this) merge new-state)"],"^D","~$reagent.core/set-state","^19",false,"^[","out-cli/reagent/core.cljs","^13",16,"^1:",["^15",[["^1Y","^2U"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",149,"^12",149,"^1=",2,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y","^2U"]]]]],"^17","Merge component state with new-state.\n  Equivalent to (swap! (state-atom this) merge new-state)"],"~$argv",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",181,"^11",7,"^12",181,"^13",11,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the entire Hiccup form passed to the component."],"^D","~$reagent.core/argv","^19",false,"^[","out-cli/reagent/core.cljs","^13",11,"^1:",["^15",[["^1Y"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",181,"^12",181,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^1Y"]]]]],"^17","Returns the entire Hiccup form passed to the component."],"~$render",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",66,"^11",7,"^12",66,"^13",13,"^14",["^15",["^16",["^15",[["^K","^2A"],["^K","^2A","~$callback"]]]]],"^17","Render a Reagent component into the DOM. The first argument may be\n  either a vector (using Reagent's Hiccup syntax), or a React element.\n  The second argument should be a DOM node.\n\n  Optionally takes a callback that is called when the component is in place.\n\n  Returns the mounted component instance.","^1F",["^ ","^19",false,"^1=",3,"^1:",["^15",[["^K","^2A"],["^K","^2A","^31"]]],"^14",["^15",[["^K","^2A"],["^K","^2A","^31"]]],"^1<",["^15",[null,null]]]],"^D","~$reagent.core/render","^19",false,"^[","out-cli/reagent/core.cljs","^13",13,"^1F",["^ ","^19",false,"^1=",3,"^1:",["^15",[["^K","^2A"],["^K","^2A","^31"]]],"^14",["^15",[["^K","^2A"],["^K","^2A","^31"]]],"^1<",["^15",[null,null]]],"^1:",["^15",[["^K","^2A"],["^K","^2A","^31"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",66,"^12",66,"^1=",3,"^1>",true,"^14",["^15",[["^K","^2A"],["^K","^2A","^31"]]],"^17","Render a Reagent component into the DOM. The first argument may be\n  either a vector (using Reagent's Hiccup syntax), or a React element.\n  The second argument should be a DOM node.\n\n  Optionally takes a callback that is called when the component is in place.\n\n  Returns the mounted component instance."],"~$force-update",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",157,"^11",7,"^12",157,"^13",19,"^14",["^15",["^16",["^15",[["^1Y"],["^1Y","~$deep"]]]]],"^17","Force a component to re-render immediately.\n\n  If the second argument is true, child components will also be\n  re-rendered, even is their arguments have not changed.","^1F",["^ ","^19",false,"^1=",2,"^1:",["^15",[["^1Y"],["^1Y","^34"]]],"^14",["^15",[["^1Y"],["^1Y","^34"]]],"^1<",["^15",[null,null]]]],"^D","~$reagent.core/force-update","^19",false,"^[","out-cli/reagent/core.cljs","^13",19,"^1F",["^ ","^19",false,"^1=",2,"^1:",["^15",[["^1Y"],["^1Y","^34"]]],"^14",["^15",[["^1Y"],["^1Y","^34"]]],"^1<",["^15",[null,null]]],"^1:",["^15",[["^1Y"],["^1Y","^34"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",157,"^12",157,"^1=",2,"^1>",true,"^14",["^15",[["^1Y"],["^1Y","^34"]]],"^17","Force a component to re-render immediately.\n\n  If the second argument is true, child components will also be\n  re-rendered, even is their arguments have not changed."],"~$create-class",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",103,"^11",7,"^12",103,"^13",19,"^14",["^15",["^16",["^15",[["~$spec"]]]]],"^17","Create a component, React style. Should be called with a map,\n  looking like this:\n\n    {:get-initial-state (fn [this])\n     :component-will-receive-props (fn [this new-argv])\n     :should-component-update (fn [this old-argv new-argv])\n     :component-will-mount (fn [this])\n     :component-did-mount (fn [this])\n     :component-will-update (fn [this new-argv])\n     :component-did-update (fn [this old-argv])\n     :component-will-unmount (fn [this])\n     :reagent-render (fn [args....])}   ;; or :render (fn [this])\n\n  Everything is optional, except either :reagent-render or :render."],"^D","~$reagent.core/create-class","^19",false,"^[","out-cli/reagent/core.cljs","^13",19,"^1:",["^15",[["^37"]]],"^1;",null,"^1<",["^15",[null,null]],"^11",1,"^10",103,"^12",103,"^1=",1,"^1>",true,"^14",["^15",["^16",["^15",[["^37"]]]]],"^17","Create a component, React style. Should be called with a map,\n  looking like this:\n\n    {:get-initial-state (fn [this])\n     :component-will-receive-props (fn [this new-argv])\n     :should-component-update (fn [this old-argv new-argv])\n     :component-will-mount (fn [this])\n     :component-did-mount (fn [this])\n     :component-will-update (fn [this new-argv])\n     :component-did-update (fn [this old-argv])\n     :component-will-unmount (fn [this])\n     :reagent-render (fn [args....])}   ;; or :render (fn [this])\n\n  Everything is optional, except either :reagent-render or :render."],"~$create-element",["^ ","^Y",null,"^Z",["^ ","^[","/Users/jmmk/Dropbox/clojure/javascript-externs-generator/out-cli/reagent/core.cljs","^10",20,"^11",7,"^12",20,"^13",21,"^14",["^15",["^16",["^15",[["~$type"],["^3:","^1J"],["^3:","^1J","~$child"],["^3:","^1J","^3;","~$&","^24"]]]]],"^17","Create a native React element, by calling React.createElement directly.\n\n  That means the second argument must be a javascript object (or nil), and\n  that any Reagent hiccup forms must be processed with as-element. For example\n  like this:\n\n    (r/create-element \"div\" #js{:className \"foo\"}\n       \"Hi \" (r/as-element [:strong \"world!\"])\n\n  which is equivalent to\n\n    [:div.foo \"Hi\" [:strong \"world!\"]]","^1F",["^ ","^19",true,"^1=",3,"^1:",["^15",[["^3:"],["^3:","^1J"],["^3:","^1J","^3;"]]],"^14",["^15",[["^3:"],["^3:","^1J"],["^3:","^1J","^3;"],["^3:","^1J","^3;","~$&","^24"]]],"^1<",["^15",[null,null,null,null]]]],"^D","~$reagent.core/create-element","^19",true,"^[","out-cli/reagent/core.cljs","^13",21,"^1F",["^ ","^19",true,"^1=",3,"^1:",["^15",[["^3:"],["^3:","^1J"],["^3:","^1J","^3;"]]],"^14",["^15",[["^3:"],["^3:","^1J"],["^3:","^1J","^3;"],["^3:","^1J","^3;","~$&","^24"]]],"^1<",["^15",[null,null,null,null]]],"^1:",["^15",[["^3:"],["^3:","^1J"],["^3:","^1J","^3;"]]],"^1;",null,"^1<",["^15",[null,null,null,null]],"^11",1,"^10",20,"^12",20,"^1=",3,"^1>",true,"^14",["^15",[["^3:"],["^3:","^1J"],["^3:","^1J","^3;"],["^3:","^1J","^3;","~$&","^24"]]],"^17","Create a native React element, by calling React.createElement directly.\n\n  That means the second argument must be a javascript object (or nil), and\n  that any Reagent hiccup forms must be processed with as-element. For example\n  like this:\n\n    (r/create-element \"div\" #js{:className \"foo\"}\n       \"Hi \" (r/as-element [:strong \"world!\"])\n\n  which is equivalent to\n\n    [:div.foo \"Hi\" [:strong \"world!\"]]"]],"~:cljs.spec/registry-ref",[],"~:require-macros",["^ ","^E","^E","^R","^M","^M","^M","^S","^6","^6","^6","^;","^;"],"^17",null]