@p4ulcristian/iris-layout 0.2.0 → 0.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cljs-runtime/cljs.core.js +38746 -0
- package/dist/cljs-runtime/cljs.core.js.map +1 -0
- package/dist/cljs-runtime/cljs.pprint.js +8400 -0
- package/dist/cljs-runtime/cljs.pprint.js.map +1 -0
- package/dist/cljs-runtime/cljs.stacktrace.js +561 -0
- package/dist/cljs-runtime/cljs.stacktrace.js.map +1 -0
- package/dist/cljs-runtime/cljs_env.js +1286 -0
- package/dist/cljs-runtime/clojure.data.js +295 -0
- package/dist/cljs-runtime/clojure.data.js.map +1 -0
- package/dist/cljs-runtime/clojure.set.js +382 -0
- package/dist/cljs-runtime/clojure.set.js.map +1 -0
- package/dist/cljs-runtime/clojure.string.js +480 -0
- package/dist/cljs-runtime/clojure.string.js.map +1 -0
- package/dist/cljs-runtime/clojure.walk.js +132 -0
- package/dist/cljs-runtime/clojure.walk.js.map +1 -0
- package/dist/cljs-runtime/devtools.async.js +90 -0
- package/dist/cljs-runtime/devtools.async.js.map +1 -0
- package/dist/cljs-runtime/devtools.context.js +11 -0
- package/dist/cljs-runtime/devtools.context.js.map +1 -0
- package/dist/cljs-runtime/devtools.core.js +175 -0
- package/dist/cljs-runtime/devtools.core.js.map +1 -0
- package/dist/cljs-runtime/devtools.defaults.js +20 -0
- package/dist/cljs-runtime/devtools.defaults.js.map +1 -0
- package/dist/cljs-runtime/devtools.format.js +631 -0
- package/dist/cljs-runtime/devtools.format.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.budgeting.js +182 -0
- package/dist/cljs-runtime/devtools.formatters.budgeting.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.core.js +220 -0
- package/dist/cljs-runtime/devtools.formatters.core.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.helpers.js +228 -0
- package/dist/cljs-runtime/devtools.formatters.helpers.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.js +261 -0
- package/dist/cljs-runtime/devtools.formatters.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.markup.js +1174 -0
- package/dist/cljs-runtime/devtools.formatters.markup.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.printing.js +313 -0
- package/dist/cljs-runtime/devtools.formatters.printing.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.state.js +325 -0
- package/dist/cljs-runtime/devtools.formatters.state.js.map +1 -0
- package/dist/cljs-runtime/devtools.formatters.templating.js +666 -0
- package/dist/cljs-runtime/devtools.formatters.templating.js.map +1 -0
- package/dist/cljs-runtime/devtools.hints.js +193 -0
- package/dist/cljs-runtime/devtools.hints.js.map +1 -0
- package/dist/cljs-runtime/devtools.munging.js +1058 -0
- package/dist/cljs-runtime/devtools.munging.js.map +1 -0
- package/dist/cljs-runtime/devtools.prefs.js +87 -0
- package/dist/cljs-runtime/devtools.prefs.js.map +1 -0
- package/dist/cljs-runtime/devtools.preload.js +11 -0
- package/dist/cljs-runtime/devtools.preload.js.map +1 -0
- package/dist/cljs-runtime/devtools.protocols.js +98 -0
- package/dist/cljs-runtime/devtools.protocols.js.map +1 -0
- package/dist/cljs-runtime/devtools.reporter.js +81 -0
- package/dist/cljs-runtime/devtools.reporter.js.map +1 -0
- package/dist/cljs-runtime/devtools.toolbox.js +141 -0
- package/dist/cljs-runtime/devtools.toolbox.js.map +1 -0
- package/dist/cljs-runtime/devtools.util.js +517 -0
- package/dist/cljs-runtime/devtools.util.js.map +1 -0
- package/dist/cljs-runtime/devtools.version.js +9 -0
- package/dist/cljs-runtime/devtools.version.js.map +1 -0
- package/dist/cljs-runtime/goog.array.array.js +659 -0
- package/dist/cljs-runtime/goog.array.array.js.map +9 -0
- package/dist/cljs-runtime/goog.asserts.asserts.js +133 -0
- package/dist/cljs-runtime/goog.asserts.asserts.js.map +9 -0
- package/dist/cljs-runtime/goog.asserts.dom.js +90 -0
- package/dist/cljs-runtime/goog.asserts.dom.js.map +9 -0
- package/dist/cljs-runtime/goog.async.nexttick.js +93 -0
- package/dist/cljs-runtime/goog.async.nexttick.js.map +9 -0
- package/dist/cljs-runtime/goog.base.js +1261 -0
- package/dist/cljs-runtime/goog.base.js.map +9 -0
- package/dist/cljs-runtime/goog.collections.maps.js +82 -0
- package/dist/cljs-runtime/goog.collections.maps.js.map +9 -0
- package/dist/cljs-runtime/goog.debug.entrypointregistry.js +44 -0
- package/dist/cljs-runtime/goog.debug.entrypointregistry.js.map +9 -0
- package/dist/cljs-runtime/goog.debug.error.js +30 -0
- package/dist/cljs-runtime/goog.debug.error.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.asserts.js +40 -0
- package/dist/cljs-runtime/goog.dom.asserts.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.browserfeature.js +21 -0
- package/dist/cljs-runtime/goog.dom.browserfeature.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.dom.js +1087 -0
- package/dist/cljs-runtime/goog.dom.dom.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.element.js +69 -0
- package/dist/cljs-runtime/goog.dom.element.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.htmlelement.js +7 -0
- package/dist/cljs-runtime/goog.dom.htmlelement.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.nodetype.js +6 -0
- package/dist/cljs-runtime/goog.dom.nodetype.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.safe.js +277 -0
- package/dist/cljs-runtime/goog.dom.safe.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.tagname.js +147 -0
- package/dist/cljs-runtime/goog.dom.tagname.js.map +9 -0
- package/dist/cljs-runtime/goog.dom.tags.js +10 -0
- package/dist/cljs-runtime/goog.dom.tags.js.map +9 -0
- package/dist/cljs-runtime/goog.flags.flags.js +12 -0
- package/dist/cljs-runtime/goog.flags.flags.js.map +9 -0
- package/dist/cljs-runtime/goog.fs.blob.js +38 -0
- package/dist/cljs-runtime/goog.fs.blob.js.map +9 -0
- package/dist/cljs-runtime/goog.fs.url.js +37 -0
- package/dist/cljs-runtime/goog.fs.url.js.map +9 -0
- package/dist/cljs-runtime/goog.functions.functions.js +211 -0
- package/dist/cljs-runtime/goog.functions.functions.js.map +9 -0
- package/dist/cljs-runtime/goog.html.safehtml.js +321 -0
- package/dist/cljs-runtime/goog.html.safehtml.js.map +9 -0
- package/dist/cljs-runtime/goog.html.safescript.js +65 -0
- package/dist/cljs-runtime/goog.html.safescript.js.map +9 -0
- package/dist/cljs-runtime/goog.html.safestyle.js +175 -0
- package/dist/cljs-runtime/goog.html.safestyle.js.map +9 -0
- package/dist/cljs-runtime/goog.html.safestylesheet.js +99 -0
- package/dist/cljs-runtime/goog.html.safestylesheet.js.map +9 -0
- package/dist/cljs-runtime/goog.html.safeurl.js +231 -0
- package/dist/cljs-runtime/goog.html.safeurl.js.map +9 -0
- package/dist/cljs-runtime/goog.html.trustedresourceurl.js +123 -0
- package/dist/cljs-runtime/goog.html.trustedresourceurl.js.map +9 -0
- package/dist/cljs-runtime/goog.html.trustedtypes.js +16 -0
- package/dist/cljs-runtime/goog.html.trustedtypes.js.map +9 -0
- package/dist/cljs-runtime/goog.html.uncheckedconversions.js +52 -0
- package/dist/cljs-runtime/goog.html.uncheckedconversions.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.browser.js +352 -0
- package/dist/cljs-runtime/goog.labs.useragent.browser.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.engine.js +73 -0
- package/dist/cljs-runtime/goog.labs.useragent.engine.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +14 -0
- package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +74 -0
- package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.platform.js +147 -0
- package/dist/cljs-runtime/goog.labs.useragent.platform.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.useragent.js +21 -0
- package/dist/cljs-runtime/goog.labs.useragent.useragent.js.map +9 -0
- package/dist/cljs-runtime/goog.labs.useragent.util.js +81 -0
- package/dist/cljs-runtime/goog.labs.useragent.util.js.map +9 -0
- package/dist/cljs-runtime/goog.math.coordinate.js +97 -0
- package/dist/cljs-runtime/goog.math.coordinate.js.map +9 -0
- package/dist/cljs-runtime/goog.math.integer.js +445 -0
- package/dist/cljs-runtime/goog.math.integer.js.map +9 -0
- package/dist/cljs-runtime/goog.math.long.js +437 -0
- package/dist/cljs-runtime/goog.math.long.js.map +9 -0
- package/dist/cljs-runtime/goog.math.math.js +158 -0
- package/dist/cljs-runtime/goog.math.math.js.map +9 -0
- package/dist/cljs-runtime/goog.math.size.js +76 -0
- package/dist/cljs-runtime/goog.math.size.js.map +9 -0
- package/dist/cljs-runtime/goog.object.object.js +284 -0
- package/dist/cljs-runtime/goog.object.object.js.map +9 -0
- package/dist/cljs-runtime/goog.reflect.reflect.js +32 -0
- package/dist/cljs-runtime/goog.reflect.reflect.js.map +9 -0
- package/dist/cljs-runtime/goog.string.const.js +35 -0
- package/dist/cljs-runtime/goog.string.const.js.map +9 -0
- package/dist/cljs-runtime/goog.string.internal.js +119 -0
- package/dist/cljs-runtime/goog.string.internal.js.map +9 -0
- package/dist/cljs-runtime/goog.string.string.js +462 -0
- package/dist/cljs-runtime/goog.string.string.js.map +9 -0
- package/dist/cljs-runtime/goog.string.stringbuffer.js +32 -0
- package/dist/cljs-runtime/goog.string.stringbuffer.js.map +9 -0
- package/dist/cljs-runtime/goog.string.typedstring.js +9 -0
- package/dist/cljs-runtime/goog.string.typedstring.js.map +9 -0
- package/dist/cljs-runtime/goog.structs.structs.js +199 -0
- package/dist/cljs-runtime/goog.structs.structs.js.map +9 -0
- package/dist/cljs-runtime/goog.uri.uri.js +628 -0
- package/dist/cljs-runtime/goog.uri.uri.js.map +9 -0
- package/dist/cljs-runtime/goog.uri.utils.js +326 -0
- package/dist/cljs-runtime/goog.uri.utils.js.map +9 -0
- package/dist/cljs-runtime/goog.useragent.useragent.js +139 -0
- package/dist/cljs-runtime/goog.useragent.useragent.js.map +9 -0
- package/dist/cljs-runtime/iris_layout.components.entity_card_group.js +202 -0
- package/dist/cljs-runtime/iris_layout.components.entity_card_group.js.map +1 -0
- package/dist/cljs-runtime/iris_layout.components.entity_tile.js +295 -0
- package/dist/cljs-runtime/iris_layout.components.entity_tile.js.map +1 -0
- package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js +33 -0
- package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js.map +1 -0
- package/dist/cljs-runtime/iris_layout.components.resizer.js +91 -0
- package/dist/cljs-runtime/iris_layout.components.resizer.js.map +1 -0
- package/dist/cljs-runtime/iris_layout.components.touch_drag.js +399 -0
- package/dist/cljs-runtime/iris_layout.components.touch_drag.js.map +1 -0
- package/dist/cljs-runtime/iris_layout.core.js +1372 -0
- package/dist/cljs-runtime/iris_layout.core.js.map +1 -0
- package/dist/cljs-runtime/iris_layout.layout.js +328 -0
- package/dist/cljs-runtime/iris_layout.layout.js.map +1 -0
- package/dist/cljs-runtime/reagent.core.js +993 -0
- package/dist/cljs-runtime/reagent.core.js.map +1 -0
- package/dist/cljs-runtime/reagent.debug.js +75 -0
- package/dist/cljs-runtime/reagent.debug.js.map +1 -0
- package/dist/cljs-runtime/reagent.impl.batching.js +270 -0
- package/dist/cljs-runtime/reagent.impl.batching.js.map +1 -0
- package/dist/cljs-runtime/reagent.impl.component.js +758 -0
- package/dist/cljs-runtime/reagent.impl.component.js.map +1 -0
- package/dist/cljs-runtime/reagent.impl.input.js +175 -0
- package/dist/cljs-runtime/reagent.impl.input.js.map +1 -0
- package/dist/cljs-runtime/reagent.impl.protocols.js +99 -0
- package/dist/cljs-runtime/reagent.impl.protocols.js.map +1 -0
- package/dist/cljs-runtime/reagent.impl.template.js +660 -0
- package/dist/cljs-runtime/reagent.impl.template.js.map +1 -0
- package/dist/cljs-runtime/reagent.impl.util.js +748 -0
- package/dist/cljs-runtime/reagent.impl.util.js.map +1 -0
- package/dist/cljs-runtime/reagent.ratom.js +1668 -0
- package/dist/cljs-runtime/reagent.ratom.js.map +1 -0
- package/dist/cljs-runtime/shadow.esm.esm_import$react.js +5 -0
- package/dist/cljs-runtime/shadow.module.iris-layout.append.js +2 -0
- package/dist/cljs-runtime/shadow.module.iris-layout.prepend.js +2 -0
- package/dist/iris-layout.js +375 -355
- package/dist/styles.css +287 -9
- package/package.json +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/munging.cljs"],"mappings":"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","names":["devtools.munging/dollar-replacement","devtools.munging/max-fixed-arity-to-scan","devtools.munging/get-global-scope","devtools.context/get-root","devtools.munging/js-reserved?","x","temp__5802__auto__","js-reserved-fn","o8770","o8771","devtools.munging/get-fn-source-safely","f","e8784","o__8244__auto__","_","devtools.munging/get-fn-fixed-arity","n","devtools.munging/get-fn-variadic-arity","devtools.munging/get-fn-max-fixed-arity","devtools.munging/get-type-name","t","sb","js/goog.string.StringBuffer","writer","cljs.core/StringBufferWriter","e8813","js/Error","devtools.munging/char-to-subscript","char","cljs.core._EQ_","cljs.core/count","char-code","js/String","num-code","subscript-code","devtools.munging/make-subscript","subscript","clojure.string.join","cljs.core.map","devtools.munging/char-to-superscript","superscript-code","G__8859","devtools.munging/make-superscript","superscript","devtools.munging/cljs-fn-name?","munged-name","cljs.core/re-matches","devtools.munging/parse-fn-source","fn-source","meat","cljs.core/second","cljs.core/re-find","match","cljs.core/rest","devtools.munging/trivial-fn-source?","devtools.munging/cljs-fn?","_e__8267__auto__","e8914","cljs.core/fn?","name","cljs.core/name","cljs.core/empty?","vec__8919","cljs.core.nth","devtools.munging/dollar-preserving-demunge","clojure.string/replace","cljs.core/demunge","devtools.munging/revert-reserved","s","or__5002__auto__","m","devtools.munging/reserved-aware-demunge","devtools.munging/proper-demunge","devtools.munging/proper-arg-demunge","munged-arg-name","devtools.munging/proper-ns-demunge","munged-ns-name","devtools.munging/ns-exists?","ns-module-name","temp__5806__auto__","ns-obj","devtools.munging.goog$module$goog$object.getValueByKeys","cljs.core/object?","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","devtools.munging/detect-namespace-prefix","p__8976","vec__8977","seq8953","G__8954","cljs.core/first","cljs.core/next","self__5711__auto__","tokens","ns-detector","effective-detector","name-tokens","remaining-tokens","ns-name","cljs.core.concat","cljs.core/last","cljs.core/butlast","devtools.munging/normalize-arity","arity-tokens","arity","G__8989","js/parseInt","devtools.munging/strip-arity","vec__8998","prefix-tokens","p1__8997#","cljs.core/split-with","cljs.core.not_EQ_","devtools.munging/parse-protocol","detector","vec__9018","protocol-ns","name-and-method-tokens","devtools.munging.detect_namespace_prefix","cljs.core.conj","G__9037","devtools.munging/break-munged-name","devtools.munging.break_munged_name","vec__9071","vec__9074","vec__9077","cljs.core/vec","fn-ns","fn-name-tokens","protocol-name","protocol-method-tokens","fn-name","protocol-method","G__9090","devtools.munging/break-and-demunge-name","devtools.munging.break_and_demunge_name","vec__9092","result","munged-ns","munged-protocol-ns","munged-protocol-name","munged-protocol-method","devtools.munging/parse-fn-source-info","vec__9098","args","vec__9105","ns","demunged-args","cljs.core.comp","clojure.string/trim","clojure.string.split","devtools.munging/parse-fn-info","devtools.munging/parse-fn-info-deep","fn-info","arities","devtools.munging/collect-fn-arities","cljs.core.take","cljs.core.drop","G__9112","devtools.munging/find-index-of-human-prefix","sep-start","num-prefix","finds","cljs.core.filter","cljs.core/pos?","cljs.core.apply","cljs.core/min","devtools.munging/humanize-name","state","index","prefix","cljs.core.get","cljs.core.update","cljs.core/conj","cljs.core/inc","cljs.core.assoc","devtools.munging/humanize-names","names","cljs.core/with-meta","cljs.core.reduce","cljs.core/meta","devtools.munging/collect-fn-fixed-arities","max-arity","collection","arity-fn","devtools.munging/collect-fn-variadic-arities","variadic-arity","p__9119","vec__9120","devtools.munging/review-arity","sub-arities","devtools.munging/review-arities","cljs.core.into","max-fixed-arity","fixed-arities","variadic-arities","cljs.core.merge","devtools.munging/arity-keywords-comparator","y","cljs.core/compare","devtools.munging/arities-key-comparator","kx?","cljs.core/Keyword","ky?","devtools.munging/arities-to-args-lists*","sorted-keys","cljs.core.sort","cljs.core/keys","sorted-fns","p1__9131#","sorted-infos","sorted-args-lists","p1__9132#","cljs.core.vary_meta","cljs.core/assoc","devtools.munging/arities-to-args-lists","p__9138","vec__9139","seq9135","G__9136","humanize?","args-lists","devtools.munging/args-lists-to-strings","spacer-symbol","multi-arity-symbol","rest-symbol","string-mapper","arg","G__9147","printer","args-list","variadic?","args-strings","devtools.munging/extract-arities","devtools.munging.arities_to_args_lists","devtools.munging/common-protocol?","devtools.munging/present-fn-part","include-ns?","and__5000__auto__","devtools.munging/present-protocol-part","include-protocol-ns?","devtools.munging/present-function-name","options","map__9156","cljs.core/--destructure-map","vec__9157","silence-common-protocols?","arity-str","fn-part","protocol-part","cljs.core/not","devtools.munging/get-basis","devtools.munging/parse-constructor-info","goog/isObject","type-name","parts","basis","e9164","devtools.munging/protocol-path","protocol-selector","devtools.munging/get-protocol-object","obj","path","devtools.munging/protocol-exists?","devtools.munging/get-protocol-selector","key","clojure.string/includes?","devtools.munging/demunge-protocol-selector","devtools.munging/fast-path-protocols-lookup-table","cljs.core/Delay","devtools.munging/key-for-protocol-partition","partition","devtools.munging/scan-fast-path-protocols-partition","partition-key","partition-bits","lookup-table","cljs.core/deref","cljs.core/map?","*","p__9170","vec__9171","accum","bit","protocol","devtools.munging/scan-fast-path-protocols","cljs.core/concat","cljs.core.partial","cljs.core.range","devtools.munging/scan-slow-path-protocols","keys","devtools.munging.goog$module$goog$object.getKeys","selectors","cljs.core.keep","devtools.munging/make-protocol-descriptor","selector","fast?","p__9180","vec__9181","devtools.munging/convert-to-protocol-descriptor","devtools.munging/protocol-descriptors-comparator","a","b","devtools.munging/scan-protocols","fast-path-protocols","slow-path-protocols","all-protocols","devtools.munging/collect-protocol-methods","key-prefix","pattern","cljs.core/re-pattern","all-keys","matches","methods","cljs.core/group-by","match-to-arity","match-arity-comparator","post-process","p__9185","vec__9186","sorted-matches","p1__9184#","by-name-comparator"],"sourcesContent":["(ns devtools.munging\n \"This namespace implements various heuristics to map Javascript names back to corresponding ClojureScript names.\n The functionality here heavily depends on observed ClojureScript compiler and runtime behaviour (fragile!).\n Answers given by functions in this namespace cannot be perfect because generated Javascript naming schemes produced by\n ClojureScript compiler were not designed with easy reversibility in mind. We recommend this functionality to be used for\n presentation in the UI only. The goal here is to provide user with more familiar view of runtime state of her app\n in most common cases (on best effort basis).\n\n Our main weapons in this uneven fight are:\n 1. munged function names as they appear in Javascript (generated by ClojureScript)\n 2. we can also analyze function sources accessible via .toString\n 3. special cljs$core$IFn$_invoke protocol props generated for multi-arity functions\n\n We can also cheat and look at runtime state of browser environment to determine some answers about namespaces.\n\n This code can be used only in non-advanced builds!\n\n If you discovered breakage or a new case which should be covered by this code, please open an issue:\n https://github.com/binaryage/cljs-devtools/issues\"\n (:refer-clojure :exclude [js-reserved?])\n (:require-macros [devtools.munging :refer [get-fast-path-protocol-partitions-count\n get-fast-path-protocols-lookup-table]]\n [devtools.oops :refer [oget ocall safe-call]])\n (:require [clojure.string :as string]\n [devtools.context :as context]\n [goog.object :as gobj])\n (:import [goog.string StringBuffer]))\n\n(declare collect-fn-arities)\n\n(def dollar-replacement \"~\ufe69~\")\n(def max-fixed-arity-to-scan 64)\n\n; -- helpers ----------------------------------------------------------------------------------------------------------------\n\n(defn ^:dynamic get-global-scope []\n (context/get-root))\n\n(defn js-reserved? [x]\n ; js-reserved? is private as of ClojureScript 1.9.293\n (if-let [js-reserved-fn (oget (get-global-scope) \"cljs\" \"core\" \"js_reserved_QMARK_\")]\n (js-reserved-fn x)))\n\n(defn get-fn-source-safely [f]\n (try\n (if (js-in \"toString\" f)\n (ocall f \"toString\")\n \"\")\n (catch :default _\n \"\")))\n\n(defn get-fn-fixed-arity [f n]\n (oget f (str \"cljs$core$IFn$_invoke$arity$\" n)))\n\n(defn get-fn-variadic-arity [f]\n (oget f (str \"cljs$core$IFn$_invoke$arity$variadic\")))\n\n(defn get-fn-max-fixed-arity [f]\n (oget f \"cljs$lang$maxFixedArity\"))\n\n(defn get-type-name [t]\n (let [sb (StringBuffer.)\n writer (StringBufferWriter. sb)]\n (try\n ; we cannot use (type->str f) because it does not work for defrecords as of v1.9.89\n ; instead we rely on .cljs$lang$ctorPrWriter which is defined for both deftypes and defrecords\n ; and it is used here: https://github.com/clojure/clojurescript/blob/cfbefad0b9f2ae9af92ebc2ec211c8472a884ddf/src/main/cljs/cljs/core.cljs#L9173\n ; relevant JIRA ticket: http://dev.clojure.org/jira/browse/CLJS-1725\n (ocall t \"cljs$lang$ctorPrWriter\" t writer)\n (catch :default _\n \"?\"))\n (-flush writer)\n (str sb)))\n\n(defn char-to-subscript\n \"Given a character with a single digit converts it into a subscript character.\n Zero character maps to unicode 'SUBSCRIPT ZERO' (U+2080).\"\n [char]\n {:pre [(string? char)\n (= (count char) 1)]}\n (let [char-code (ocall (js/String. char) \"charCodeAt\" 0) ; this is an ugly trick to overcome a V8? bug, char string might not be a real string \"object\"\n num-code (- char-code 48)\n subscript-code (+ 0x2080 num-code)]\n (ocall js/String \"fromCharCode\" subscript-code)))\n\n(defn make-subscript\n \"Given a subscript number converts it into a string representation consisting of unicode subscript characters (digits).\"\n [subscript]\n {:pre [(number? subscript)]}\n (string/join (map char-to-subscript (str subscript))))\n\n(defn char-to-superscript\n \"Given a character with a single digit converts it into a superscript character.\n Zero character maps to unicode 'SUPERSCRIPT ZERO' (U+2070).\"\n [char]\n {:pre [(string? char)\n (= (count char) 1)]}\n (let [char-code (ocall (js/String. char) \"charCodeAt\" 0) ; this is an ugly trick to overcome a V8? bug, char string might not be a real string \"object\"\n num-code (- char-code 48)\n superscript-code (case num-code ; see https://en.wikipedia.org/wiki/Unicode_subscripts_and_superscripts\n 1 0x00B9\n 2 0x00B2\n 3 0x00B3\n (+ 0x2070 num-code))]\n (ocall js/String \"fromCharCode\" superscript-code)))\n\n(defn make-superscript\n \"Given a superscript number converts it into a string representation consisting of unicode superscript characters (digits).\"\n [superscript]\n {:pre [(number? superscript)]}\n (string/join (map char-to-superscript (str superscript))))\n\n; -- cljs naming conventions ------------------------------------------------------------------------------------------------\n\n(defn cljs-fn-name?\n \"Given a Javascript name answers if the name was likely generated by ClojureScript.\n We use a simple heuristic here:\n The name must contain at least two separate dollars because we assume two-segment namespaces.\"\n [munged-name]\n (if (string? munged-name)\n (some? (re-matches #\"^[^$]*\\$[^$]+\\$.*$\" munged-name))))\n\n(defn parse-fn-source\n \"Given a function source code parses out [name args]. Note that both strings are still munged.\n Suitable for further processing.\n\n For example for input below the function will return [\\\"devtools_sample$core$hello\\\" \\\"name, unused_param\\\"]:\n\n function devtools_sample$core$hello(name, unused_param){\n return [cljs.core.str(\\\"hello, \\\"),cljs.core.str(name),cljs.core.str(\\\"!\\\")].join('');\n }\n \"\n [fn-source]\n (if-let [meat (second (re-find #\"function\\s(.*?)\\{\" fn-source))]\n (if-let [match (re-find #\"(.*?)\\((.*)\\)\" meat)]\n (rest match))))\n\n(defn trivial-fn-source? [fn-source]\n {:pre [(string? fn-source)]}\n (or (some? (re-matches #\"function\\s*\\(\\s*\\)\\s*\\{\\s*\\}\\s*\" fn-source))\n (some? (re-matches #\"function.*\\(\\)\\s*\\{\\s*\\[native code\\]\\s*\\}\\s*\" fn-source))\n (some? (re-matches #\"function anonymous\\(\\s*\\)\\s*\\{\\s*\\}\" fn-source))))\n\n(defn cljs-fn?\n \"Given a Javascript function object returns true if the function looks like a ClojureScript function.\n\n Uses various heuristics:\n 1. must be fn? (is javascript function or satisfies Fn and IFn protocols)\n 2. and name must be cljs-fn-name? (name can come from f.name or parsed out of function source)\n 3. or if anonymous function, must be non-trivial\"\n [f]\n (if (safe-call fn? false f) ; calling fn? on window object could throw for some weird reason\n (let [name (oget f name)]\n (if-not (empty? name)\n (cljs-fn-name? name)\n (let [fn-source (get-fn-source-safely f)]\n (let [[name] (parse-fn-source fn-source)]\n (if-not (empty? name)\n (cljs-fn-name? name)\n (not (trivial-fn-source? fn-source))))))))) ; we assume non-trivial anonymous functions to come from cljs\n\n; -- demunging --------------------------------------------------------------------------------------------------------------\n\n(defn dollar-preserving-demunge\n \"Standard cljs.core/demunge is too aggressive in replacing dollars.\n This wrapper function works around it by leaving dollars intact.\"\n [munged-name]\n (-> munged-name\n (string/replace \"$\" dollar-replacement)\n (demunge)\n (string/replace dollar-replacement \"$\")))\n\n(defn revert-reserved [s]\n (or (if-let [m (re-matches #\"(.*)\\$\" s)]\n (if (js-reserved? (second m))\n (second m)))\n s))\n\n(defn reserved-aware-demunge [munged-name]\n (-> munged-name\n (dollar-preserving-demunge)\n (revert-reserved)))\n\n(defn proper-demunge [munged-name]\n (reserved-aware-demunge munged-name))\n\n(defn proper-arg-demunge [munged-arg-name]\n (-> munged-arg-name\n (proper-demunge)\n (string/replace #\"^-(.*)$\" \"_$1\"))) ; leading dash was probably a leading underscore (convention)\n\n(defn proper-ns-demunge [munged-ns-name]\n (-> munged-ns-name\n (proper-demunge)\n (string/replace \"$\" \".\")))\n\n(defn ns-exists? [ns-module-name]\n {:pre [(string? ns-module-name)]}\n (if-some [ns-obj (gobj/getValueByKeys (get-global-scope) (.split ns-module-name \".\"))]\n (object? ns-obj)))\n\n(defn detect-namespace-prefix\n \"Given a name broken into namespace parts returns [detected-ns remaining-parts],\n where detected-ns is a string representing longest detected existing namespace and\n remaining-parts is a vector of remaining input parts not included in the detected-ns concatenation.\n\n For given input [\\\"cljs\\\" \\\"core\\\" \\\"first\\\"] returns [\\\"cljs.core\\\" [\\\"first\\\"]] (assuming cljs.core exists)\"\n [tokens & [ns-detector]]\n (let [effective-detector (or ns-detector ns-exists?)]\n (loop [name-tokens []\n remaining-tokens tokens]\n (if (empty? remaining-tokens)\n [\"\" name-tokens]\n (let [ns-name (string/join \".\" remaining-tokens)]\n (if (effective-detector ns-name)\n [ns-name name-tokens]\n (recur (concat [(last remaining-tokens)] name-tokens) (butlast remaining-tokens))))))))\n\n(defn normalize-arity [arity-tokens]\n (if-not (empty? arity-tokens)\n (let [arity (first arity-tokens)]\n (case arity\n \"variadic\" arity\n (js/parseInt arity 10)))))\n\n(defn strip-arity [tokens]\n (let [[prefix-tokens arity-tokens] (split-with #(not= % \"arity\") tokens)]\n [prefix-tokens (normalize-arity (rest arity-tokens))]))\n\n(defn parse-protocol [tokens detector]\n (loop [remaining-tokens tokens\n name-tokens []]\n (if (empty? remaining-tokens)\n [name-tokens]\n (let [[protocol-ns name-and-method-tokens] (detect-namespace-prefix remaining-tokens detector)]\n (if (empty? protocol-ns)\n (recur (rest remaining-tokens) (conj name-tokens (first remaining-tokens)))\n [name-tokens protocol-ns (first name-and-method-tokens) (rest name-and-method-tokens)]))))) ; we assume protocol names are always a single-token\n\n(defn break-munged-name\n \"Given a munged-name from Javascript lands attempts to break it into:\n [fn-ns fn-name protocol-ns protocol-name protocol-method arity].\n\n Protocol and arity elements are optional. Function elements are always present or \\\"\\\".\n\n examples for input:\n cljs$core$rest => ['cljs.core', 'rest']\n cljs.core.reduce$cljs$core$IFn$_invoke$arity$3 => ['cljs.core' 'reduce' 'cljs.core' 'IFn' '_invoke' 3]\"\n ([munged-name]\n (break-munged-name munged-name nil))\n ([munged-name ns-detector]\n (if (empty? munged-name)\n [\"\" \"\"]\n (let [effective-detector (or ns-detector ns-exists?)\n tokens (vec (.split munged-name #\"[$.]\"))\n [tokens arity] (strip-arity tokens)\n [fn-ns tokens] (detect-namespace-prefix tokens effective-detector)\n ; remaining parts contains function name,\n ; but may be optionally followed by protocol namespace, protocol name and protocol method\n [fn-name-tokens protocol-ns protocol-name protocol-method-tokens] (parse-protocol tokens effective-detector)\n fn-name (string/join \"$\" fn-name-tokens)\n protocol-method (if protocol-method-tokens (string/join \"$\" protocol-method-tokens))]\n [fn-ns fn-name protocol-ns protocol-name protocol-method arity]))))\n\n(defn break-and-demunge-name\n \"Given a munged-name from Javascript lands attempts to break it into a namespace part and remaining short name.\n Then applies appropriate demunging on them and returns ClojureScript versions of the names.\"\n ([munged-name]\n (break-and-demunge-name munged-name nil))\n ([munged-name ns-detector]\n (let [result (break-munged-name munged-name ns-detector)\n [munged-ns munged-name munged-protocol-ns munged-protocol-name munged-protocol-method arity] result]\n [(proper-ns-demunge munged-ns)\n (proper-demunge munged-name)\n (if munged-protocol-ns (proper-ns-demunge munged-protocol-ns))\n (if munged-protocol-name (proper-demunge munged-protocol-name))\n (if munged-protocol-method (proper-demunge munged-protocol-method))\n arity])))\n\n; -- fn info ----------------------------------------------------------------------------------------------------------------\n\n(defn parse-fn-source-info\n \"Given function source code tries to retrieve [ns name & args] on best effort basis, where\n ns is demunged namespace part of the function name (or \\\"\\\" if namespace cannot be detected)\n name is demunged short name (or \\\"\\\" if function is anonymous or name cannot be retrieved)\n args is optional number of demunged argument names.\n\n Please note that this function always returns a vector with something. In worst cases [\\\"\\\" \\\"\\\"].\n \"\n [fn-source]\n (if-let [[munged-name args] (parse-fn-source fn-source)]\n (let [[ns name] (break-and-demunge-name munged-name)\n demunged-args (map (comp proper-arg-demunge string/trim) (string/split args #\",\"))]\n (concat [ns name] demunged-args))\n [\"\" \"\"]))\n\n(defn parse-fn-info\n \"Given Javascript function object tries to retrieve [ns name & args] as in parse-fn-source-info (on best effort basis).\"\n [f]\n (let [fn-source (get-fn-source-safely f)]\n (parse-fn-source-info fn-source)))\n\n(defn parse-fn-info-deep\n \"Given a Javascript function object tries to retrieve [ns name & args] as in parse-fn-info (on best effort basis).\n\n The difference from parse-fn-info is that this function prefers to read args from arities if available.\n It recurse arbitrary deep following IFn protocol leads.\n\n If we hit multi-arity situation in leaf, we don't attempt to list arguments and return ::multi-arity placeholder instead.\n\n The reason for reading arities is that it gives more accurate parameter names in some cases.\n We observed that variadic functions don't always contain original parameter names, but individual IFn arity functions do.\"\n [f]\n (let [fn-info (parse-fn-info f)\n arities (collect-fn-arities f)]\n (if (some? arities)\n (if (> (count arities) 1)\n (concat (take 2 fn-info) ::multi-arity)\n (concat (take 2 fn-info) (drop 2 (parse-fn-info-deep (second (first arities))))))\n fn-info)))\n\n; -- support for human-readable names ---------------------------------------------------------------------------------------\n\n(defn find-index-of-human-prefix\n \"Given a demunged ClojureScript parameter name. Tries to detect human readable part and returns the index where it ends.\n Returns nil if no prefix can be detected.\n\n The idea is to convert macro-generated parameters and other generated names to more friendly names.\n We observed that param names generated by gensym have prefix followed by big numbers.\n Other generated names contain two dashes after prefix (originally probably using underscores).\"\n [name]\n (let [sep-start (.indexOf name \"--\")\n num-prefix (count (second (re-find #\"(.*?)\\d{2,}\" name)))\n finds (filter pos? [sep-start num-prefix])]\n (if-not (empty? finds)\n (apply min finds))))\n\n(defn humanize-name\n \"Given a name and intermediate state. Convert name to a human readable version by keeping human readable prefix with\n optional subscript postfix and store it in ::result. Subscript number is picked based on state. State keeps track of\n previously assigned subscripts. Returns a new state.\"\n [state name]\n (let [index (find-index-of-human-prefix name)\n prefix (if (> index 0) (.substring name 0 index) name)]\n (if-let [subscript (get state prefix)]\n (-> state\n (update ::result conj (str prefix (make-subscript subscript)))\n (update prefix inc))\n (-> state\n (update ::result conj prefix)\n (assoc prefix 2)))))\n\n(defn humanize-names\n \"Given a list of names, returns a list of human-readable versions of those names.\n It detects human-readable prefix using a simple heuristics. When names repeat it assigns simple subscripts starting with 2.\n Subscripts are assigned left-to-right.\n\n Given [\\\"p--a\\\" \\\"p--b\\\" \\\"x\\\" \\\"p--c\\\"] returns [\\\"p\\\" \\\"p\u2082\\\" \\\"x\\\" \\\"p\u2083\\\"]\"\n [names]\n (with-meta (::result (reduce humanize-name {::result []} names)) (meta names)))\n\n; -- arities ----------------------------------------------------------------------------------------------------------------\n\n(defn collect-fn-fixed-arities [f max-arity]\n (loop [arity 0\n collection {}]\n (if (> arity max-arity)\n collection\n (recur (inc arity) (if-let [arity-fn (get-fn-fixed-arity f arity)]\n (assoc collection arity arity-fn)\n collection)))))\n\n(defn collect-fn-variadic-arities [f]\n (if-let [variadic-arity (get-fn-variadic-arity f)]\n {::variadic variadic-arity}))\n\n(defn review-arity [[arity arity-fn]]\n (let [sub-arities (collect-fn-arities arity-fn)]\n (if (::variadic sub-arities)\n [::variadic arity-fn]\n [arity arity-fn])))\n\n(defn review-arities\n \"Some arities can be marked as fixed arity but in fact point to a variadic-arity function. We want to detect this case\n and turn such improperly categorized arities to ::variadic.\"\n [arities]\n (if (::variadic arities)\n arities\n (into {} (map review-arity arities))))\n\n(defn collect-fn-arities\n \"Given a Javascript function object, tries to inspect known arity properties generated by ClojureScript compiler and\n collects all available arity functions into a map. Arities are keyed by arity count and variadic arity gets ::variadic key.\"\n [f]\n (let [max-fixed-arity (get-fn-max-fixed-arity f)\n fixed-arities (collect-fn-fixed-arities f (or max-fixed-arity max-fixed-arity-to-scan)) ; we cannot rely on cljs$lang$maxFixedArity when people implement IFn protocol by hand\n variadic-arities (collect-fn-variadic-arities f)\n arities (review-arities (merge fixed-arities variadic-arities))]\n (if-not (empty? arities)\n arities)))\n\n; -- args lists -------------------------------------------------------------------------------------------------------------\n\n(defn arity-keywords-comparator\n \"::variadic goes last, other keywords compare by name.\"\n [x y]\n (cond\n (= ::variadic x) 1\n (= ::variadic y) -1\n :else (compare (name x) (name y))))\n\n(defn arities-key-comparator\n \"numbers go first (ordered), then keywords (ordered by name), and then ::variadic sticks last\"\n [x y]\n (let [kx? (keyword? x)\n ky? (keyword? y)]\n (cond\n (and kx? ky?) (arity-keywords-comparator x y)\n kx? 1\n ky? -1\n :else (compare x y))))\n\n(defn arities-to-args-lists*\n [arities]\n (let [sorted-keys (sort arities-key-comparator (keys arities))\n sorted-fns (map #(get arities %) sorted-keys)\n sorted-infos (map parse-fn-info-deep sorted-fns)\n sorted-args-lists (map #(drop 2 %) sorted-infos)]\n (if (= (last sorted-keys) ::variadic)\n (concat (butlast sorted-args-lists) [(vary-meta (last sorted-args-lists) assoc ::variadic true)])\n sorted-args-lists)))\n\n(defn arities-to-args-lists\n \"Given a map of arity functions. Tries to parse individual functions and prepare an arguments list for each arity.\n Returned list of arguments list is sorted by arity count, variadic arity goes last if available.\n\n The function also optionally humanizes argument names in each arguments list if requested.\"\n [arities & [humanize?]]\n (let [args-lists (arities-to-args-lists* arities)]\n (if humanize?\n (map humanize-names args-lists)\n args-lists)))\n\n; -- UI presentation --------------------------------------------------------------------------------------------------------\n\n(defn args-lists-to-strings\n \"Converts a list of arguments lists into a list of strings suitable for UI presentation.\"\n [args-lists spacer-symbol multi-arity-symbol rest-symbol]\n (let [string-mapper (fn [arg]\n (case arg\n ::multi-arity multi-arity-symbol\n arg))\n printer (fn [args-list]\n (let [variadic? (::variadic (meta args-list))\n args-strings (map string-mapper args-list)]\n (str (string/join spacer-symbol (butlast args-strings))\n (if variadic? rest-symbol spacer-symbol)\n (last args-strings))))]\n (->> args-lists\n (map printer)\n (map string/trim))))\n\n(defn extract-arities [f humanize? spacer-symbol multi-arity-symbol rest-symbol]\n (-> (or (collect-fn-arities f) {:naked f})\n (arities-to-args-lists humanize?)\n (args-lists-to-strings spacer-symbol multi-arity-symbol rest-symbol)))\n\n(defn common-protocol? [protocol-ns protocol-name]\n (and (= protocol-ns \"cljs.core\")\n (= protocol-name \"IFn\")))\n\n(defn present-fn-part [fn-ns fn-name include-ns?]\n (str\n (if (and include-ns? (not (empty? fn-ns))) (str fn-ns \"/\"))\n fn-name))\n\n(defn present-protocol-part [protocol-ns protocol-name protocol-method include-protocol-ns?]\n (str (if include-protocol-ns? protocol-ns)\n (if-not (empty? protocol-name) (str (if include-protocol-ns? \".\") protocol-name))\n (if-not (empty? protocol-method) (str (if (or include-protocol-ns? (not (empty? protocol-name))) \":\")\n protocol-method))))\n\n(defn present-function-name\n \"Given javascript function name tries to present it as plain string for display in UI on best effort basis.\"\n [munged-name options]\n (let [{:keys [include-ns? include-protocol-ns? silence-common-protocols? ns-detector]} options\n [fn-ns fn-name protocol-ns protocol-name protocol-method arity] (break-and-demunge-name munged-name ns-detector)\n arity-str (if (some? arity)\n (if (= arity \"variadic\")\n \"\\u207F\" ; 'SUPERSCRIPT LATIN SMALL LETTER N' (U+207F)\n (make-superscript arity)))]\n (if (empty? fn-name)\n munged-name\n (let [fn-part (present-fn-part fn-ns fn-name include-ns?)\n protocol-part (if (and protocol-ns\n (not (and silence-common-protocols?\n (common-protocol? protocol-ns protocol-name))))\n (present-protocol-part protocol-ns protocol-name protocol-method include-protocol-ns?))]\n (str\n (or protocol-part fn-part)\n arity-str\n (if protocol-part (str \" (\" fn-part \")\")))))))\n\n; -- types ------------------------------------------------------------------------------------------------------------------\n\n(defn get-basis [f]\n (ocall f \"getBasis\"))\n\n(defn parse-constructor-info\n \"Given a Javascript constructor function tries to retrieve [ns name basis]. Returns nil if not a cljs type.\"\n [f]\n (if (and (goog/isObject f) (.-cljs$lang$type f))\n (let [type-name (get-type-name f)\n parts (.split type-name #\"/\")\n basis (safe-call get-basis [] f)]\n (assert (<= (count parts) 2))\n (while (< (count parts) 2)\n (.unshift parts nil))\n (conj (vec parts) basis))))\n\n; -- protocols --------------------------------------------------------------------------------------------------------------\n\n(defn protocol-path [protocol-selector]\n (string/split protocol-selector #\"\\.\"))\n\n(defn get-protocol-object [protocol-selector]\n (loop [obj (get-global-scope)\n path (protocol-path protocol-selector)]\n (if (empty? path)\n obj\n (if (goog/isObject obj)\n (recur (oget obj (first path)) (rest path))))))\n\n(defn protocol-exists? [protocol-selector]\n (some? (get-protocol-object protocol-selector)))\n\n(defn get-protocol-selector [key]\n (if-let [m (re-matches #\"(.*)\\$$\" key)]\n (if-not (string/includes? key \"cljs$lang$protocol_mask$partition\")\n (let [protocol-selector (string/replace (second m) \"$\" \".\")]\n (if (protocol-exists? protocol-selector)\n protocol-selector)))))\n\n(defn demunge-protocol-selector [protocol-selector]\n (let [parts (map proper-demunge (protocol-path protocol-selector))\n _ (assert (>= (count parts) 2)\n (str \"expected protocol selector to contain at least one dot: '\" protocol-selector \"'\"))\n ns (string/join \".\" (butlast parts))\n name (last parts)]\n [ns name protocol-selector]))\n\n(def fast-path-protocols-lookup-table (delay (get-fast-path-protocols-lookup-table)))\n\n(defn key-for-protocol-partition [partition]\n (str \"cljs$lang$protocol_mask$partition\" partition \"$\"))\n\n(defn scan-fast-path-protocols-partition [obj partition]\n {:pre [(number? partition)]}\n (let [partition-key (key-for-protocol-partition partition)\n partition-bits (or (oget obj partition-key) 0)]\n (if (> partition-bits 0)\n (let [lookup-table (get @fast-path-protocols-lookup-table partition)\n _ (assert (map? lookup-table)\n (str \"fast-path-protocols-lookup-table does not contain lookup table for partition \" partition))\n * (fn [accum [bit protocol]]\n (if (zero? (bit-and partition-bits bit))\n accum\n (conj accum protocol)))]\n (reduce * [] lookup-table)))))\n\n(defn scan-fast-path-protocols [obj]\n (apply concat (map (partial scan-fast-path-protocols-partition obj) (range (get-fast-path-protocol-partitions-count)))))\n\n(defn scan-slow-path-protocols [obj]\n (let [keys (gobj/getKeys obj)\n selectors (keep get-protocol-selector keys)]\n (map demunge-protocol-selector selectors)))\n\n(defn make-protocol-descriptor [ns name selector fast?]\n {:ns ns\n :name name\n :selector selector\n :fast? fast?})\n\n(defn convert-to-protocol-descriptor [fast? [ns name selector]]\n (make-protocol-descriptor ns name selector fast?))\n\n(defn protocol-descriptors-comparator [a b]\n (compare (:name a) (:name b)))\n\n(defn scan-protocols [obj]\n (let [fast-path-protocols (map (partial convert-to-protocol-descriptor true) (scan-fast-path-protocols obj))\n slow-path-protocols (map (partial convert-to-protocol-descriptor false) (scan-slow-path-protocols obj))\n all-protocols (concat fast-path-protocols slow-path-protocols)]\n (sort protocol-descriptors-comparator all-protocols)))\n\n(defn collect-protocol-methods [obj protocol-selector]\n (let [key-prefix (string/replace protocol-selector #\"\\.\" \"\\\\$\")\n pattern (re-pattern (str \"^\" key-prefix \"\\\\$(.*)\\\\$arity\\\\$(\\\\d+)$\"))\n all-keys (gobj/getKeys obj)\n matches (keep (partial re-matches pattern) all-keys)\n methods (group-by second matches)\n match-to-arity (fn [match]\n (let [arity (nth match 2)]\n (js/parseInt arity 10)))\n match-arity-comparator (fn [a b]\n (compare (match-to-arity a) (match-to-arity b)))\n post-process (fn [[munged-name matches]]\n (let [name (proper-demunge munged-name)\n sorted-matches (sort match-arity-comparator matches)\n sorted-fns (map #(oget obj (first %)) sorted-matches)]\n [name sorted-fns]))\n by-name-comparator (fn [a b]\n (compare (first a) (first b)))]\n ; TODO: he we could be able to retrieve parameter lists from protocol definition methods\n ; parameter names there are usually more consistent than parameters picked by protocol implementors\n (sort by-name-comparator (map post-process methods))))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
import "./cljs.core.js";
|
|
3
|
+
import "./goog.labs.useragent.browser.js";
|
|
4
|
+
import "./devtools.defaults.js";
|
|
5
|
+
goog.provide('devtools.prefs');
|
|
6
|
+
goog.scope(function(){
|
|
7
|
+
devtools.prefs.goog$module$goog$labs$userAgent$browser = goog.module.get('goog.labs.userAgent.browser');
|
|
8
|
+
});
|
|
9
|
+
devtools.prefs.default_config = (new cljs.core.Delay((function (){
|
|
10
|
+
return cljs.core.deref(devtools.defaults.config);
|
|
11
|
+
}),null));
|
|
12
|
+
devtools.prefs.firefox_overrides_config = (new cljs.core.Delay((function (){
|
|
13
|
+
if(cljs.core.truth_(devtools.prefs.goog$module$goog$labs$userAgent$browser.isFirefox())){
|
|
14
|
+
return cljs.core.deref(devtools.defaults.firefox_overrides_config);
|
|
15
|
+
} else {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
}),null));
|
|
19
|
+
devtools.prefs.external_config = (new cljs.core.Delay((function (){
|
|
20
|
+
return cljs.core.PersistentArrayMap.EMPTY;
|
|
21
|
+
}),null));
|
|
22
|
+
devtools.prefs.initial_config = (new cljs.core.Delay((function (){
|
|
23
|
+
return cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([cljs.core.deref(devtools.prefs.default_config),cljs.core.deref(devtools.prefs.firefox_overrides_config),cljs.core.deref(devtools.prefs.external_config)], 0));
|
|
24
|
+
}),null));
|
|
25
|
+
devtools.prefs._STAR_current_config_STAR_ = (new cljs.core.Delay((function (){
|
|
26
|
+
return cljs.core.deref(devtools.prefs.initial_config);
|
|
27
|
+
}),null));
|
|
28
|
+
devtools.prefs.set_prefs_BANG_ = (function devtools$prefs$set_prefs_BANG_(new_prefs){
|
|
29
|
+
return (devtools.prefs._STAR_current_config_STAR_ = new_prefs);
|
|
30
|
+
});
|
|
31
|
+
devtools.prefs.get_prefs = (function devtools$prefs$get_prefs(){
|
|
32
|
+
if(cljs.core.delay_QMARK_(devtools.prefs._STAR_current_config_STAR_)){
|
|
33
|
+
devtools.prefs.set_prefs_BANG_(cljs.core.deref(devtools.prefs._STAR_current_config_STAR_));
|
|
34
|
+
} else {
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
return devtools.prefs._STAR_current_config_STAR_;
|
|
38
|
+
});
|
|
39
|
+
devtools.prefs.pref = (function devtools$prefs$pref(key){
|
|
40
|
+
var G__8881 = devtools.prefs.get_prefs();
|
|
41
|
+
return (key.cljs$core$IFn$_invoke$arity$1 ? key.cljs$core$IFn$_invoke$arity$1(G__8881) : key.call(null,G__8881));
|
|
42
|
+
});
|
|
43
|
+
devtools.prefs.set_pref_BANG_ = (function devtools$prefs$set_pref_BANG_(key,val){
|
|
44
|
+
return devtools.prefs.set_prefs_BANG_(cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(devtools.prefs.get_prefs(),key,val));
|
|
45
|
+
});
|
|
46
|
+
devtools.prefs.merge_prefs_BANG_ = (function devtools$prefs$merge_prefs_BANG_(m){
|
|
47
|
+
return devtools.prefs.set_prefs_BANG_(cljs.core.merge.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([devtools.prefs.get_prefs(),m], 0)));
|
|
48
|
+
});
|
|
49
|
+
devtools.prefs.update_pref_BANG_ = (function devtools$prefs$update_pref_BANG_(var_args){
|
|
50
|
+
var args__5732__auto__ = [];
|
|
51
|
+
var len__5726__auto___8936 = arguments.length;
|
|
52
|
+
var i__5727__auto___8937 = (0);
|
|
53
|
+
while(true){
|
|
54
|
+
if((i__5727__auto___8937 < len__5726__auto___8936)){
|
|
55
|
+
args__5732__auto__.push((arguments[i__5727__auto___8937]));
|
|
56
|
+
|
|
57
|
+
var G__8940 = (i__5727__auto___8937 + (1));
|
|
58
|
+
i__5727__auto___8937 = G__8940;
|
|
59
|
+
continue;
|
|
60
|
+
} else {
|
|
61
|
+
}
|
|
62
|
+
break;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
var argseq__5733__auto__ = ((((2) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((2)),(0),null)):null);
|
|
66
|
+
return devtools.prefs.update_pref_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),(arguments[(1)]),argseq__5733__auto__);
|
|
67
|
+
});
|
|
68
|
+
|
|
69
|
+
(devtools.prefs.update_pref_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (key,f,args){
|
|
70
|
+
var new_val = cljs.core.apply.cljs$core$IFn$_invoke$arity$3(f,devtools.prefs.pref(key),args);
|
|
71
|
+
return devtools.prefs.set_pref_BANG_(key,new_val);
|
|
72
|
+
}));
|
|
73
|
+
|
|
74
|
+
(devtools.prefs.update_pref_BANG_.cljs$lang$maxFixedArity = (2));
|
|
75
|
+
|
|
76
|
+
/** @this {Function} */
|
|
77
|
+
(devtools.prefs.update_pref_BANG_.cljs$lang$applyTo = (function (seq8906){
|
|
78
|
+
var G__8907 = cljs.core.first(seq8906);
|
|
79
|
+
var seq8906__$1 = cljs.core.next(seq8906);
|
|
80
|
+
var G__8908 = cljs.core.first(seq8906__$1);
|
|
81
|
+
var seq8906__$2 = cljs.core.next(seq8906__$1);
|
|
82
|
+
var self__5711__auto__ = this;
|
|
83
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__8907,G__8908,seq8906__$2);
|
|
84
|
+
}));
|
|
85
|
+
|
|
86
|
+
|
|
87
|
+
//# sourceMappingURL=devtools.prefs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/prefs.cljs"],"mappings":";;;;;;;;AAMA,AAAKA,gCAAe,KAAAC,gBAAA;AAAA,AAAA,OAAAC,gBAAQC;GAAR;AACpB,AAAKC,0CAAyB,KAAAH,gBAAA;AAAA,AAAO,oBAAI,AAACI;AAAL,OAAAH,gBAAiBI;;AAAjB;;GAAP;AAC9B,AAAKC,iCAAgB,KAAAN,gBAAA;AAAA,AAAO,AAAA;GAAP;AACrB,AAAKO,gCAAe,KAAAP,gBAAA;AAAA,AAAO,8GAAA,AAAAC,+CAAA,AAAAA,yDAAA,AAAAA,/MAACO,uHAAOT,+CAAgBI,yDAA0BG;GAAzD;AAEpB,AAAeG,4CAAiB,KAAAT,gBAAA;AAAA,AAAA,OAAAC,gBAAQM;GAAR;AAIhC,iCAAA,jCAAMG,0EAAYC;AAAlB,AACE,QAAMF,4CAAiBE;;AAEzB,2BAAA,3BAAMC;AAAN,AACE,GAAM,AAACC,uBAAOJ;AAAd,AACE,+BAAA,AAAAR,/BAACS,+CAAYD;;AADf;;AAEAA;;AAEF,sBAAA,tBAAMK,oDAAMC;AAAZ,AACE,IAAAC,UAAK,AAACJ;AAAN,AAAA,8EAAAI,yBAAAA,/FAACD,oCAAAA,6CAAAA;;AAEH,gCAAA,hCAAME,wEAAWF,IAAIG;AAArB,AACE,OAACR,+BAAW,AAACS,8CAAM,AAACP,2BAAWG,IAAIG;;AAErC,mCAAA,nCAAME,8EAAcC;AAApB,AACE,OAACX,+BAAW,AAACF,uGAAM,AAACI,2BAAWS;;AAEjC,AAAA,mCAAA,2CAAAC,9EAAMM;AAAN,AAAA,IAAAL,qBAAA;AAAA,AAAA,IAAAC,yBAAA,AAAA;AAAA,AAAA,IAAAC,uBAAA;;AAAA,AAAA,GAAA,CAAAA,uBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,cAAA,CAAAA,uBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAK,sEAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAF;;;AAAA,AAAA,CAAA,wEAAA,xEAAME,mFAAcb,IAAIoB,EAAIC;AAA5B,AACE,IAAMC,UAAQ,AAACC,8CAAMH,EAAE,AAACrB,oBAAKC,KAAKqB;AAAlC,AACE,OAACnB,8BAAUF,IAAIsB;;;AAFnB,CAAA,2DAAA,3DAAMT;;AAAN;AAAA,CAAA,qDAAA,WAAAC,hEAAMD;AAAN,AAAA,IAAAE,UAAA,AAAAC,gBAAAF;IAAAA,cAAA,AAAAG,eAAAH;IAAAI,UAAA,AAAAF,gBAAAF;IAAAA,cAAA,AAAAG,eAAAH;AAAA,AAAA,IAAAK,qBAAA;AAAA,AAAA,OAAAA,wDAAAJ,QAAAG,QAAAJ;;;AAAA","names":["devtools.prefs/default-config","cljs.core/Delay","cljs.core/deref","devtools.defaults/config","devtools.prefs/firefox-overrides-config","devtools.prefs.goog$module$goog$labs$userAgent$browser.isFirefox","devtools.defaults/firefox-overrides-config","devtools.prefs/external-config","devtools.prefs/initial-config","cljs.core.merge","devtools.prefs/*current-config*","devtools.prefs/set-prefs!","new-prefs","devtools.prefs/get-prefs","cljs.core/delay?","devtools.prefs/pref","key","G__8881","devtools.prefs/set-pref!","val","cljs.core.assoc","devtools.prefs/merge-prefs!","m","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","devtools.prefs/update-pref!","seq8906","G__8907","cljs.core/first","cljs.core/next","G__8908","self__5711__auto__","f","args","new-val","cljs.core.apply"],"sourcesContent":["(ns devtools.prefs\n (:require-macros [devtools.prefs :refer [emit-external-config]])\n (:require [goog.labs.userAgent.browser :refer [isFirefox]]\n [devtools.defaults :as defaults]))\n\n; we use delay for DCE, see https://github.com/binaryage/cljs-devtools/issues/37\n(def default-config (delay @defaults/config))\n(def firefox-overrides-config (delay (if (isFirefox) @defaults/firefox-overrides-config)))\n(def external-config (delay (emit-external-config)))\n(def initial-config (delay (merge @default-config @firefox-overrides-config @external-config)))\n\n(def ^:dynamic *current-config* (delay @initial-config))\n\n; -- public api -------------------------------------------------------------------------------------------------------------\n\n(defn set-prefs! [new-prefs]\n (set! *current-config* new-prefs))\n\n(defn get-prefs []\n (when (delay? *current-config*)\n (set-prefs! @*current-config*))\n *current-config*)\n\n(defn pref [key]\n (key (get-prefs)))\n\n(defn set-pref! [key val]\n (set-prefs! (assoc (get-prefs) key val)))\n\n(defn merge-prefs! [m]\n (set-prefs! (merge (get-prefs) m)))\n\n(defn update-pref! [key f & args]\n (let [new-val (apply f (pref key) args)]\n (set-pref! key new-val)))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
import "./cljs.core.js";
|
|
3
|
+
import "./devtools.prefs.js";
|
|
4
|
+
import "./devtools.core.js";
|
|
5
|
+
goog.provide('devtools.preload');
|
|
6
|
+
if(cljs.core.not(devtools.prefs.pref(new cljs.core.Keyword(null,"suppress-preload-install","suppress-preload-install",1724845090)))){
|
|
7
|
+
devtools.core.install_BANG_.cljs$core$IFn$_invoke$arity$0();
|
|
8
|
+
} else {
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
//# sourceMappingURL=devtools.preload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/preload.cljs"],"mappings":";;;;;AASA,GAAA,AAAAA,cAAQ,oBAAA,pBAACC;AACP,AAACC;;AADH","names":["cljs.core/not","devtools.prefs/pref","devtools.core.install_BANG_"],"sourcesContent":["(ns devtools.preload\n (:require [devtools.prefs :as prefs]\n [devtools.core :as core]))\n\n; this namespace is intended to be included in cljs compiler :preloads\n; overrides for default configuration can be specified in :external-config > :devtools/config\n; see https://github.com/binaryage/cljs-devtools/blob/master/docs/installation.md#install-it-via-preloads\n; https://github.com/binaryage/cljs-devtools/blob/master/docs/configuration.md#configuration-via-preloads\n\n(if-not (prefs/pref :suppress-preload-install)\n (core/install!))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
import "./cljs.core.js";
|
|
3
|
+
goog.provide('devtools.protocols');
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Marker protocol indicating a devtools template.
|
|
7
|
+
* @interface
|
|
8
|
+
*/
|
|
9
|
+
devtools.protocols.ITemplate = function(){};
|
|
10
|
+
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* Marker protocol indicating a devtools group.
|
|
14
|
+
* @interface
|
|
15
|
+
*/
|
|
16
|
+
devtools.protocols.IGroup = function(){};
|
|
17
|
+
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Marker protocol indicating a devtools surrogate object.
|
|
21
|
+
* @interface
|
|
22
|
+
*/
|
|
23
|
+
devtools.protocols.ISurrogate = function(){};
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
/**
|
|
27
|
+
* @interface
|
|
28
|
+
*/
|
|
29
|
+
devtools.protocols.IFormat = function(){};
|
|
30
|
+
|
|
31
|
+
var devtools$protocols$IFormat$_header$dyn_8357 = (function (value){
|
|
32
|
+
var x__5350__auto__ = (((value == null))?null:value);
|
|
33
|
+
var m__5351__auto__ = (devtools.protocols._header[goog.typeOf(x__5350__auto__)]);
|
|
34
|
+
if((!((m__5351__auto__ == null)))){
|
|
35
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5351__auto__.call(null,value));
|
|
36
|
+
} else {
|
|
37
|
+
var m__5349__auto__ = (devtools.protocols._header["_"]);
|
|
38
|
+
if((!((m__5349__auto__ == null)))){
|
|
39
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5349__auto__.call(null,value));
|
|
40
|
+
} else {
|
|
41
|
+
throw cljs.core.missing_protocol("IFormat.-header",value);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
devtools.protocols._header = (function devtools$protocols$_header(value){
|
|
46
|
+
if((((!((value == null)))) && ((!((value.devtools$protocols$IFormat$_header$arity$1 == null)))))){
|
|
47
|
+
return value.devtools$protocols$IFormat$_header$arity$1(value);
|
|
48
|
+
} else {
|
|
49
|
+
return devtools$protocols$IFormat$_header$dyn_8357(value);
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
|
|
53
|
+
var devtools$protocols$IFormat$_has_body$dyn_8376 = (function (value){
|
|
54
|
+
var x__5350__auto__ = (((value == null))?null:value);
|
|
55
|
+
var m__5351__auto__ = (devtools.protocols._has_body[goog.typeOf(x__5350__auto__)]);
|
|
56
|
+
if((!((m__5351__auto__ == null)))){
|
|
57
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5351__auto__.call(null,value));
|
|
58
|
+
} else {
|
|
59
|
+
var m__5349__auto__ = (devtools.protocols._has_body["_"]);
|
|
60
|
+
if((!((m__5349__auto__ == null)))){
|
|
61
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5349__auto__.call(null,value));
|
|
62
|
+
} else {
|
|
63
|
+
throw cljs.core.missing_protocol("IFormat.-has-body",value);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
});
|
|
67
|
+
devtools.protocols._has_body = (function devtools$protocols$_has_body(value){
|
|
68
|
+
if((((!((value == null)))) && ((!((value.devtools$protocols$IFormat$_has_body$arity$1 == null)))))){
|
|
69
|
+
return value.devtools$protocols$IFormat$_has_body$arity$1(value);
|
|
70
|
+
} else {
|
|
71
|
+
return devtools$protocols$IFormat$_has_body$dyn_8376(value);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
|
|
75
|
+
var devtools$protocols$IFormat$_body$dyn_8390 = (function (value){
|
|
76
|
+
var x__5350__auto__ = (((value == null))?null:value);
|
|
77
|
+
var m__5351__auto__ = (devtools.protocols._body[goog.typeOf(x__5350__auto__)]);
|
|
78
|
+
if((!((m__5351__auto__ == null)))){
|
|
79
|
+
return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5351__auto__.call(null,value));
|
|
80
|
+
} else {
|
|
81
|
+
var m__5349__auto__ = (devtools.protocols._body["_"]);
|
|
82
|
+
if((!((m__5349__auto__ == null)))){
|
|
83
|
+
return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(value) : m__5349__auto__.call(null,value));
|
|
84
|
+
} else {
|
|
85
|
+
throw cljs.core.missing_protocol("IFormat.-body",value);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
});
|
|
89
|
+
devtools.protocols._body = (function devtools$protocols$_body(value){
|
|
90
|
+
if((((!((value == null)))) && ((!((value.devtools$protocols$IFormat$_body$arity$1 == null)))))){
|
|
91
|
+
return value.devtools$protocols$IFormat$_body$arity$1(value);
|
|
92
|
+
} else {
|
|
93
|
+
return devtools$protocols$IFormat$_body$dyn_8390(value);
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
|
|
98
|
+
//# sourceMappingURL=devtools.protocols.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/protocols.cljs"],"mappings":";;;AAEA,AAAA;AAAA;;;;+BAAA,/BAAaA;;AAAb,AAGA,AAAA;AAAA;;;;4BAAA,5BAAaC;;AAAb,AAGA,AAAA;AAAA;;;;gCAAA,hCAAaC;;AAAb,AAGA,AAAA;AAAA;;;6BAAA,7BAAaY;;AAAb,IAAAX,8CAAA,WACYY;AADZ,AAAA,IAAAX,kBAAA,EAAA,UAAA,OAAA,hBACYW,qBAAAA;IADZV,kBAAA,CAAAC,2BAAA,AAAAC,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACYU,mCAAAA;;AADZ,IAAAP,kBAAA,CAAAF,2BAAA;AAAA,AAAA,GAAA,GAAA,CAAAE,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TACYO,mCAAAA;;AADZ,MAAA,AAAAN,2BAAA,kBACYM;;;;AADZ,AAAA,6BAAA,7BACGT,kEAASS;AADZ,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,oDAAA,9EACYA,0BAAAA;AADZ,OACYA,iDAAAA;;AADZ,OAAAZ,4CACYY;;;;AADZ,IAAAL,gDAAA,WAEcK;AAFd,AAAA,IAAAX,kBAAA,EAAA,UAAA,OAAA,hBAEcW,qBAAAA;IAFdV,kBAAA,CAAAM,6BAAA,AAAAJ,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAEcU,mCAAAA;;AAFd,IAAAP,kBAAA,CAAAG,6BAAA;AAAA,AAAA,GAAA,GAAA,CAAAH,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAEcO,mCAAAA;;AAFd,MAAA,AAAAN,2BAAA,oBAEcM;;;;AAFd,AAAA,+BAAA,/BAEGJ,sEAAWI;AAFd,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,sDAAA,hFAEcA,0BAAAA;AAFd,OAEcA,mDAAAA;;AAFd,OAAAL,8CAEcK;;;;AAFd,IAAAH,4CAAA,WAGUG;AAHV,AAAA,IAAAX,kBAAA,EAAA,UAAA,OAAA,hBAGUW,qBAAAA;IAHVV,kBAAA,CAAAQ,yBAAA,AAAAN,YAAAH;AAAA,AAAA,GAAA,GAAA,CAAAC,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAGUU,mCAAAA;;AAHV,IAAAP,kBAAA,CAAAK,yBAAA;AAAA,AAAA,GAAA,GAAA,CAAAL,mBAAA;AAAA,QAAAA,gDAAAA,uDAAAA,TAGUO,mCAAAA;;AAHV,MAAA,AAAAN,2BAAA,gBAGUM;;;;AAHV,AAAA,2BAAA,3BAGGF,8DAAOE;AAHV,AAAA,GAAA,EAAA,GAAA,UAAA,aAAA,GAAA,CAAA,kDAAA,5EAGUA,0BAAAA;AAHV,OAGUA,+CAAAA;;AAHV,OAAAH,0CAGUG;;;;AAHV","names":["devtools.protocols/ITemplate","devtools.protocols/IGroup","devtools.protocols/ISurrogate","devtools$protocols$IFormat$_header$dyn","x__5350__auto__","m__5351__auto__","devtools.protocols/-header","goog/typeOf","m__5349__auto__","cljs.core/missing-protocol","devtools$protocols$IFormat$_has_body$dyn","devtools.protocols/-has-body","devtools$protocols$IFormat$_body$dyn","devtools.protocols/-body","devtools.protocols/IFormat","value"],"sourcesContent":["(ns devtools.protocols)\n\n(defprotocol ITemplate\n \"Marker protocol indicating a devtools template.\")\n\n(defprotocol IGroup\n \"Marker protocol indicating a devtools group.\")\n\n(defprotocol ISurrogate\n \"Marker protocol indicating a devtools surrogate object.\")\n\n(defprotocol IFormat\n (-header [value])\n (-has-body [value])\n (-body [value]))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
import "./cljs.core.js";
|
|
3
|
+
import "./devtools.util.js";
|
|
4
|
+
import "./devtools.context.js";
|
|
5
|
+
goog.provide('devtools.reporter');
|
|
6
|
+
devtools.reporter.issues_url = "https://github.com/binaryage/cljs-devtools/issues";
|
|
7
|
+
devtools.reporter.report_internal_error_BANG_ = (function devtools$reporter$report_internal_error_BANG_(var_args){
|
|
8
|
+
var args__5732__auto__ = [];
|
|
9
|
+
var len__5726__auto___10724 = arguments.length;
|
|
10
|
+
var i__5727__auto___10725 = (0);
|
|
11
|
+
while(true){
|
|
12
|
+
if((i__5727__auto___10725 < len__5726__auto___10724)){
|
|
13
|
+
args__5732__auto__.push((arguments[i__5727__auto___10725]));
|
|
14
|
+
|
|
15
|
+
var G__10729 = (i__5727__auto___10725 + (1));
|
|
16
|
+
i__5727__auto___10725 = G__10729;
|
|
17
|
+
continue;
|
|
18
|
+
} else {
|
|
19
|
+
}
|
|
20
|
+
break;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
var argseq__5733__auto__ = ((((1) < args__5732__auto__.length))?(new cljs.core.IndexedSeq(args__5732__auto__.slice((1)),(0),null)):null);
|
|
24
|
+
return devtools.reporter.report_internal_error_BANG_.cljs$core$IFn$_invoke$arity$variadic((arguments[(0)]),argseq__5733__auto__);
|
|
25
|
+
});
|
|
26
|
+
|
|
27
|
+
(devtools.reporter.report_internal_error_BANG_.cljs$core$IFn$_invoke$arity$variadic = (function (e,p__10708){
|
|
28
|
+
var vec__10709 = p__10708;
|
|
29
|
+
var context = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__10709,(0),null);
|
|
30
|
+
var footer = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__10709,(1),null);
|
|
31
|
+
var console__$1 = devtools.context.get_console.call(null);
|
|
32
|
+
try{var message = (((e instanceof Error))?(function (){var or__5002__auto__ = e.message;
|
|
33
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
34
|
+
return or__5002__auto__;
|
|
35
|
+
} else {
|
|
36
|
+
return e;
|
|
37
|
+
}
|
|
38
|
+
})():e);
|
|
39
|
+
var header = ["%cCLJS DevTools Error%c%s","background-color:red;color:white;font-weight:bold;padding:0px 3px;border-radius:2px;","color:red",[" ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(message)].join('')];
|
|
40
|
+
var context_msg = ["In ",devtools.util.get_lib_info(),(cljs.core.truth_(context)?[", ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(context),"."].join(''):"."),"\n\n"].join('');
|
|
41
|
+
var footer_msg = (((!((footer == null))))?footer:["\n\n","---\n","Please report the issue here: ",devtools.reporter.issues_url].join(''));
|
|
42
|
+
var details = [context_msg,e,footer_msg];
|
|
43
|
+
var group_collapsed = (console__$1["groupCollapsed"]);
|
|
44
|
+
var log = (console__$1["log"]);
|
|
45
|
+
var group_end = (console__$1["groupEnd"]);
|
|
46
|
+
if(cljs.core.truth_(group_collapsed)){
|
|
47
|
+
} else {
|
|
48
|
+
throw (new Error("Assert failed: group-collapsed"));
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if(cljs.core.truth_(log)){
|
|
52
|
+
} else {
|
|
53
|
+
throw (new Error("Assert failed: log"));
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
if(cljs.core.truth_(group_end)){
|
|
57
|
+
} else {
|
|
58
|
+
throw (new Error("Assert failed: group-end"));
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
group_collapsed.apply(console__$1,header);
|
|
62
|
+
|
|
63
|
+
log.apply(console__$1,details);
|
|
64
|
+
|
|
65
|
+
return group_end.call(console__$1);
|
|
66
|
+
}catch (e10712){var e__$1 = e10712;
|
|
67
|
+
return console__$1.error("FATAL: report-internal-error! failed",e__$1);
|
|
68
|
+
}}));
|
|
69
|
+
|
|
70
|
+
(devtools.reporter.report_internal_error_BANG_.cljs$lang$maxFixedArity = (1));
|
|
71
|
+
|
|
72
|
+
/** @this {Function} */
|
|
73
|
+
(devtools.reporter.report_internal_error_BANG_.cljs$lang$applyTo = (function (seq10705){
|
|
74
|
+
var G__10706 = cljs.core.first(seq10705);
|
|
75
|
+
var seq10705__$1 = cljs.core.next(seq10705);
|
|
76
|
+
var self__5711__auto__ = this;
|
|
77
|
+
return self__5711__auto__.cljs$core$IFn$_invoke$arity$variadic(G__10706,seq10705__$1);
|
|
78
|
+
}));
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
//# sourceMappingURL=devtools.reporter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/reporter.cljs"],"mappings":";;;;;AAKA,+BAAA,/BAAKA;AAIL,AAAA,gDAAA,wDAAAC,xGAAMM;AAAN,AAAA,IAAAL,qBAAA;AAAA,AAAA,IAAAC,0BAAA,AAAA;AAAA,AAAA,IAAAC,wBAAA;;AAAA,AAAA,GAAA,CAAAA,wBAAAD;AAAA,AAAA,AAAAD,wBAAA,CAAA,UAAAE;;AAAA,eAAA,CAAAA,wBAAA;;;;AAAA;;;;AAAA,IAAAC,uBAAA,EAAA,CAAA,MAAA,AAAAH,4BAAA,AAAA,KAAAI,qBAAA,AAAAJ,yBAAA,KAAA,IAAA,OAAA;AAAA,AAAA,OAAAK,mFAAA,CAAA,UAAA,MAAAF;;;AAAA,AAAA,CAAA,qFAAA,aAAAG,lGAAMD,gGAAwBS;AAA9B,AAAA,IAAAP,aAAAD;cAAA,AAAAE,4CAAAD,WAAA,IAAA,rEAAmCQ;aAAnC,AAAAP,4CAAAD,WAAA,IAAA,pEAA2CS;AAA3C,AACE,IAAMC,cAAQ,AAACC;AAAf,AACE,IAAA,AACE,IAAME,UAAQ,EAAI,cAAWC,bAASP,qBACtB,iBAAAQ,mBAAI,AAAWR;AAAf,AAAA,oBAAAQ;AAAAA;;AAAkBR;;KAClBA;aAFhB,CAAA,4BAAA,uFAAA,7HAGMS,yIAGY,CAAA,gDAASH;IACrBI,cAAY,CAAA,4IAAA,tIAAW,AAACC,6BAAmB,oGAAA,lFAAIV,SAAQ,CAAA,0DAAA,TAAUA;IACjEW,aAAW,EAAI,GAAA,WAAA,VAAOV,mBACTA,OACA,CAAA,OAAA,QAAA,iCAAqDlB;cAVxE,VAWM6B,WAAaH,YAAYV,EAAEY;AAXjC,AAYE,IAAME,kBAAgB,aAAA,ZAAMX;IACtBY,MAAI,aAAA,ZAAMZ;IACVa,YAAU,aAAA,ZAAMb;AAFtB,AAGE,oBAAQW;AAAR;AAAA,AAAA,MAAA,KAAAP,MAAA;;;AACA,oBAAQQ;AAAR;AAAA,AAAA,MAAA,KAAAR,MAAA;;;AACA,oBAAQS;AAAR;AAAA,AAAA,MAAA,KAAAT,MAAA;;;AACA,AAAQO,sBAAgBX,YAAQM;;AAChC,AAAQM,UAAIZ,YAAQU;;AACpB,OAAOG,eAAUb;gBArBvB,YAAAE,RAsBkBL;AAtBlB,AAuBI,yBAAA,lBAAQG,yDAA+CH;;;AAzB/D,CAAA,wEAAA,xEAAMT;;AAAN;AAAA,CAAA,kEAAA,WAAAI,7EAAMJ;AAAN,AAAA,IAAAK,WAAA,AAAAC,gBAAAF;IAAAA,eAAA,AAAAG,eAAAH;AAAA,AAAA,IAAAI,qBAAA;AAAA,AAAA,OAAAA,wDAAAH,SAAAD;;;AAAA","names":["devtools.reporter/issues-url","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","devtools.reporter/report-internal-error!","p__10708","vec__10709","cljs.core.nth","seq10705","G__10706","cljs.core/first","cljs.core/next","self__5711__auto__","e","context","footer","console","devtools.context/get-console","e10712","message","js/Error","or__5002__auto__","header","context-msg","devtools.util/get-lib-info","footer-msg","details","group-collapsed","log","group-end"],"sourcesContent":["(ns devtools.reporter\n (:require-macros [devtools.oops :refer [oget]])\n (:require [devtools.util :as util]\n [devtools.context :as context]))\n\n(def issues-url \"https://github.com/binaryage/cljs-devtools/issues\")\n\n; -- internal errors -------------------------------------------------------------------------------------------------------\n\n(defn report-internal-error! [e & [context footer]]\n (let [console (context/get-console)]\n (try\n (let [message (if (instance? js/Error e)\n (or (.-message e) e)\n e)\n header #js [\"%cCLJS DevTools Error%c%s\"\n \"background-color:red;color:white;font-weight:bold;padding:0px 3px;border-radius:2px;\"\n \"color:red\"\n (str \" \" message)]\n context-msg (str \"In \" (util/get-lib-info) (if context (str \", \" context \".\") \".\") \"\\n\\n\")\n footer-msg (if (some? footer)\n footer\n (str \"\\n\\n\" \"---\\n\" \"Please report the issue here: \" issues-url))\n details #js [context-msg e footer-msg]]\n (let [group-collapsed (oget console \"groupCollapsed\")\n log (oget console \"log\")\n group-end (oget console \"groupEnd\")]\n (assert group-collapsed)\n (assert log)\n (assert group-end)\n (.apply group-collapsed console header)\n (.apply log console details)\n (.call group-end console)))\n (catch :default e\n (.error console \"FATAL: report-internal-error! failed\" e)))))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
import "./cljs.core.js";
|
|
3
|
+
import "./devtools.protocols.js";
|
|
4
|
+
import "./devtools.formatters.templating.js";
|
|
5
|
+
import "./devtools.formatters.markup.js";
|
|
6
|
+
goog.provide('devtools.toolbox');
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @constructor
|
|
10
|
+
* @implements {devtools.protocols.IFormat}
|
|
11
|
+
* @implements {cljs.core.IMeta}
|
|
12
|
+
* @implements {cljs.core.IWithMeta}
|
|
13
|
+
*/
|
|
14
|
+
devtools.toolbox.t_devtools$toolbox11981 = (function (obj,header,style,tag,meta11983){
|
|
15
|
+
this.obj = obj;
|
|
16
|
+
this.header = header;
|
|
17
|
+
this.style = style;
|
|
18
|
+
this.tag = tag;
|
|
19
|
+
this.meta11983 = meta11983;
|
|
20
|
+
this.cljs$lang$protocol_mask$partition0$ = 393216;
|
|
21
|
+
this.cljs$lang$protocol_mask$partition1$ = 0;
|
|
22
|
+
});
|
|
23
|
+
(devtools.toolbox.t_devtools$toolbox11981.prototype.cljs$core$IWithMeta$_with_meta$arity$2 = (function (_11984,meta11983__$1){
|
|
24
|
+
var self__ = this;
|
|
25
|
+
var _11984__$1 = this;
|
|
26
|
+
return (new devtools.toolbox.t_devtools$toolbox11981(self__.obj,self__.header,self__.style,self__.tag,meta11983__$1));
|
|
27
|
+
}));
|
|
28
|
+
|
|
29
|
+
(devtools.toolbox.t_devtools$toolbox11981.prototype.cljs$core$IMeta$_meta$arity$1 = (function (_11984){
|
|
30
|
+
var self__ = this;
|
|
31
|
+
var _11984__$1 = this;
|
|
32
|
+
return self__.meta11983;
|
|
33
|
+
}));
|
|
34
|
+
|
|
35
|
+
(devtools.toolbox.t_devtools$toolbox11981.prototype.devtools$protocols$IFormat$ = cljs.core.PROTOCOL_SENTINEL);
|
|
36
|
+
|
|
37
|
+
(devtools.toolbox.t_devtools$toolbox11981.prototype.devtools$protocols$IFormat$_header$arity$1 = (function (_){
|
|
38
|
+
var self__ = this;
|
|
39
|
+
var ___$1 = this;
|
|
40
|
+
return devtools.formatters.templating.render_markup(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [self__.tag,self__.style], null),((cljs.core.fn_QMARK_(self__.header))?(self__.header.cljs$core$IFn$_invoke$arity$1 ? self__.header.cljs$core$IFn$_invoke$arity$1(self__.obj) : self__.header.call(null,self__.obj)):self__.header)], null));
|
|
41
|
+
}));
|
|
42
|
+
|
|
43
|
+
(devtools.toolbox.t_devtools$toolbox11981.prototype.devtools$protocols$IFormat$_has_body$arity$1 = (function (_){
|
|
44
|
+
var self__ = this;
|
|
45
|
+
var ___$1 = this;
|
|
46
|
+
return true;
|
|
47
|
+
}));
|
|
48
|
+
|
|
49
|
+
(devtools.toolbox.t_devtools$toolbox11981.prototype.devtools$protocols$IFormat$_body$arity$1 = (function (_){
|
|
50
|
+
var self__ = this;
|
|
51
|
+
var ___$1 = this;
|
|
52
|
+
return devtools.formatters.templating.render_markup(devtools.formatters.markup._LT_body_GT_(devtools.formatters.markup._LT_standard_body_reference_GT_(self__.obj)));
|
|
53
|
+
}));
|
|
54
|
+
|
|
55
|
+
(devtools.toolbox.t_devtools$toolbox11981.getBasis = (function (){
|
|
56
|
+
return new cljs.core.PersistentVector(null, 5, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Symbol(null,"obj","obj",-1672671807,null),new cljs.core.Symbol(null,"header","header",1759972661,null),new cljs.core.Symbol(null,"style","style",1143888791,null),new cljs.core.Symbol(null,"tag","tag",350170304,null),new cljs.core.Symbol(null,"meta11983","meta11983",-301534968,null)], null);
|
|
57
|
+
}));
|
|
58
|
+
|
|
59
|
+
(devtools.toolbox.t_devtools$toolbox11981.cljs$lang$type = true);
|
|
60
|
+
|
|
61
|
+
(devtools.toolbox.t_devtools$toolbox11981.cljs$lang$ctorStr = "devtools.toolbox/t_devtools$toolbox11981");
|
|
62
|
+
|
|
63
|
+
(devtools.toolbox.t_devtools$toolbox11981.cljs$lang$ctorPrWriter = (function (this__5287__auto__,writer__5288__auto__,opt__5289__auto__){
|
|
64
|
+
return cljs.core._write(writer__5288__auto__,"devtools.toolbox/t_devtools$toolbox11981");
|
|
65
|
+
}));
|
|
66
|
+
|
|
67
|
+
/**
|
|
68
|
+
* Positional factory function for devtools.toolbox/t_devtools$toolbox11981.
|
|
69
|
+
*/
|
|
70
|
+
devtools.toolbox.__GT_t_devtools$toolbox11981 = (function devtools$toolbox$__GT_t_devtools$toolbox11981(obj,header,style,tag,meta11983){
|
|
71
|
+
return (new devtools.toolbox.t_devtools$toolbox11981(obj,header,style,tag,meta11983));
|
|
72
|
+
});
|
|
73
|
+
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* This is a simple wrapper for logging "busy" objects.
|
|
77
|
+
* This is especially handy when you happen to be logging javascript objects with many properties.
|
|
78
|
+
* Standard javascript console renderer tends to print a lot of infomation in the header in some cases and that can make
|
|
79
|
+
* console output pretty busy. By using envelope you can force your own short header and let the details expand on demand
|
|
80
|
+
* via disclosure triangle. The header can be styled and you can optionally specify preferred wrapping tag (advanced).
|
|
81
|
+
*/
|
|
82
|
+
devtools.toolbox.envelope = (function devtools$toolbox$envelope(var_args){
|
|
83
|
+
var G__11973 = arguments.length;
|
|
84
|
+
switch (G__11973) {
|
|
85
|
+
case 1:
|
|
86
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$1((arguments[(0)]));
|
|
87
|
+
|
|
88
|
+
break;
|
|
89
|
+
case 2:
|
|
90
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
|
|
91
|
+
|
|
92
|
+
break;
|
|
93
|
+
case 3:
|
|
94
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
|
|
95
|
+
|
|
96
|
+
break;
|
|
97
|
+
case 4:
|
|
98
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$4((arguments[(0)]),(arguments[(1)]),(arguments[(2)]),(arguments[(3)]));
|
|
99
|
+
|
|
100
|
+
break;
|
|
101
|
+
default:
|
|
102
|
+
throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
|
|
103
|
+
|
|
104
|
+
}
|
|
105
|
+
});
|
|
106
|
+
|
|
107
|
+
(devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$1 = (function (obj){
|
|
108
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$2(obj,new cljs.core.Keyword(null,"default-envelope-header","default-envelope-header",-90723598));
|
|
109
|
+
}));
|
|
110
|
+
|
|
111
|
+
(devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$2 = (function (obj,header){
|
|
112
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$3(obj,header,new cljs.core.Keyword(null,"default-envelope-style","default-envelope-style",-1676750479));
|
|
113
|
+
}));
|
|
114
|
+
|
|
115
|
+
(devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$3 = (function (obj,header,style){
|
|
116
|
+
return devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$4(obj,header,style,new cljs.core.Keyword(null,"span","span",1394872991));
|
|
117
|
+
}));
|
|
118
|
+
|
|
119
|
+
(devtools.toolbox.envelope.cljs$core$IFn$_invoke$arity$4 = (function (obj,header,style,tag){
|
|
120
|
+
return (new devtools.toolbox.t_devtools$toolbox11981(obj,header,style,tag,cljs.core.PersistentArrayMap.EMPTY));
|
|
121
|
+
}));
|
|
122
|
+
|
|
123
|
+
(devtools.toolbox.envelope.cljs$lang$maxFixedArity = 4);
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Forces object to be rendered by cljs-devtools during console logging.
|
|
127
|
+
*
|
|
128
|
+
* Unfortunately custom formatters subsystem in DevTools is not applied to primitive values like numbers, strings, null, etc.
|
|
129
|
+
* This wrapper can be used as a workaround if you really need to force cljs-devtools rendering:
|
|
130
|
+
*
|
|
131
|
+
* (.log js/console nil) ; will render 'null'
|
|
132
|
+
* (.log js/console (force-format nil)) ; will render 'nil' and not 'null'
|
|
133
|
+
*
|
|
134
|
+
* See https://github.com/binaryage/cljs-devtools/issues/17
|
|
135
|
+
*
|
|
136
|
+
*/
|
|
137
|
+
devtools.toolbox.force_format = (function devtools$toolbox$force_format(obj){
|
|
138
|
+
return devtools.formatters.templating.render_markup(devtools.formatters.markup._LT_surrogate_GT_.cljs$core$IFn$_invoke$arity$variadic(cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([obj], 0)));
|
|
139
|
+
});
|
|
140
|
+
|
|
141
|
+
//# sourceMappingURL=devtools.toolbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/toolbox.cljs"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;qDAkBII,WAAIE,cAAOC,aAAMC;;;;;;;;;;;4GAGNE;;IAAAA;AAAG,oDAAA,mFAAA,hIAACC,mNAAgBH,WAAID,qBAAO,EAAI,AAACK,oBAAIN,gBAAQ,CAACA,8CAAAA,0DAAAA,dAAOF,sCAAAA,aAAKE;;;8GAC3DI;;IAAAA;;;;0GACJA;;IAAAA;AAAG,OAACC,6CAAc,AAACE,wCAAO,AAACC,2DAA0BV;;;;;;;;;;;;;;;;;;wGAL9DA,IAAIE,OAAOC,MAAMC;qDAAjBJ,IAAIE,OAAOC,MAAMC;;;;AAZrB,AAAA;;;;;;;4BAAA,oCAAAR,hEAAME;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,wDAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,wDAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,0DAAA,1DAAMD,qEAMFE;AANJ,AAOG,mEAAA,5DAACC,wDAASD;;;AAPb,CAAA,0DAAA,1DAAMF,qEAQFE,IAAIE;AARR,AASG,0EAAA,nEAACD,wDAASD,IAAIE;;;AATjB,CAAA,0DAAA,1DAAMJ,qEAUFE,IAAIE,OAAOC;AAVf,AAWG,gFAAA,zEAACF,wDAASD,IAAIE,OAAOC;;;AAXxB,CAAA,0DAAA,1DAAML,qEAYFE,IAAIE,OAAOC,MAAMC;AAZrB,qDAYIJ,IAAIE,OAAOC,MAAMC,tEAClB,YAAAC,8DAAA;;;AAbH,CAAA,oDAAA,pDAAMP;;AAAN,AAmBA;;;;;;;;;;;;gCAAA,hCAAMa,wEAWHX;AAXH,AAYE,OAACO,6CAAc,AAACK,oIAAYZ","names":["var_args","G__11973","devtools.toolbox/envelope","js/Error","obj","devtools.toolbox.envelope","header","style","tag","devtools.toolbox/t_devtools$toolbox11981","_","devtools.formatters.templating/render-markup","cljs.core/fn?","devtools.formatters.markup/<body>","devtools.formatters.markup/<standard-body-reference>","devtools.toolbox/force-format","devtools.formatters.markup._LT_surrogate_GT_"],"sourcesContent":["(ns devtools.toolbox\n (:require-macros [devtools.toolbox])\n (:require [devtools.protocols :refer [IFormat]]\n [devtools.formatters.templating :refer [render-markup]]\n [devtools.formatters.markup :refer [<preview> <body> <standard-body-reference> <surrogate>]]))\n\n(defn envelope\n \"This is a simple wrapper for logging \\\"busy\\\" objects.\n This is especially handy when you happen to be logging javascript objects with many properties.\n Standard javascript console renderer tends to print a lot of infomation in the header in some cases and that can make\n console output pretty busy. By using envelope you can force your own short header and let the details expand on demand\n via disclosure triangle. The header can be styled and you can optionally specify preferred wrapping tag (advanced).\"\n ([obj]\n (envelope obj :default-envelope-header))\n ([obj header]\n (envelope obj header :default-envelope-style))\n ([obj header style]\n (envelope obj header style :span))\n ([obj header style tag]\n (reify\n IFormat\n (-header [_] (render-markup [[tag style] (if (fn? header) (header obj) header)]))\n (-has-body [_] true)\n (-body [_] (render-markup (<body> (<standard-body-reference> obj)))))))\n\n(defn force-format\n \"Forces object to be rendered by cljs-devtools during console logging.\n\n Unfortunately custom formatters subsystem in DevTools is not applied to primitive values like numbers, strings, null, etc.\n This wrapper can be used as a workaround if you really need to force cljs-devtools rendering:\n\n (.log js/console nil) ; will render 'null'\n (.log js/console (force-format nil)) ; will render 'nil' and not 'null'\n\n See https://github.com/binaryage/cljs-devtools/issues/17\n \"\n [obj]\n (render-markup (<surrogate> obj)))\n\n"],"x_google_ignoreList":[0]}
|