@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/formatters/templating.cljs"],"mappings":";;;;;;;;;AAWA,qDAAA,rDAAMA,kHAAgBC;AAAtB,AACE,IAAAC,eAAUD;AAAV,AAAA,AAAA,CAAA,AAAAC,0CAAAC;;AAAAD;AACAD;;AAEF,8CAAA,9CAAMG,oGAAQH;AAAd,AACE,GAAA,GAAA,UAAA,TAAmBA;AAAnB,GAAA,EAAA,WAAA,CAAAE,gCAAA,AAAmBF;AAAnB;;AAAA,GAAA,EAAA,AAAmBA;AAAnB,OAAAI,kCAAYC,0BAAOL;;AAAnB;;;;AAAA,OAAAI,kCAAYC,0BAAOL;;;AAErB,wDAAA,xDAAMM,wHAAmBN;AAAzB,AACE,IAAAO,eAAUP;AAAV,AAAA,AAAA,CAAA,AAAAO,6CAAAL;;AAAAK;AACAP;;AAEF,iDAAA,jDAAMQ,0GAAWR;AAAjB,AACE,GAAA,GAAA,UAAA,TAAsBA;AAAtB,GAAA,EAAA,WAAA,CAAAE,gCAAA,AAAsBF;AAAtB;;AAAA,GAAA,EAAA,AAAsBA;AAAtB,OAAAI,kCAAYK,6BAAUT;;AAAtB;;;;AAAA,OAAAI,kCAAYK,6BAAUT;;;AAExB,yDAAA,zDAAMU,0HAAoBV;AAA1B,AACE,IAAAW,eAAUX;AAAV,AAAA,AAAA,CAAA,AAAAW,8CAAAT;;AAAAS;AACAX;;AAEF,kDAAA,lDAAMY,4GAAYZ;AAAlB,AACE,GAAA,GAAA,UAAA,TAAuBA;AAAvB,GAAA,EAAA,WAAA,CAAAE,gCAAA,AAAuBF;AAAvB;;AAAA,GAAA,EAAA,AAAuBA;AAAvB,OAAAI,kCAAYS,8BAAWb;;AAAvB;;;;AAAA,OAAAI,kCAAYS,8BAAWb;;;AAEzB,kDAAA,lDAAMc,4GAAYd;AAAlB,AACE,SAAK,AAACG,4CAAOH,YACR,0DAAA,1DAACe,6CAAE,OAAA,NAAgBf;;AAI1B,AAAA,4CAAA,oDAAAgB,hGAAMM;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,+EAAAF;;;AAAA,AAAA,CAAA,iFAAA,jFAAME,4FAAcI;AAApB,AACE,IAAMC,QAAM,mDAAA,nDAAC5B;AAAb,AACE,IAAA6B,mBAAA,AAAAH,cAAaC;IAAbG,qBAAA;IAAAC,qBAAA;IAAAC,iBAAA;;AAAA,AAAA,GAAA,AAAA,CAAAA,iBAAAD;AAAA,iBAAA,AAAAD,wDAAAE,rEAAQS;AAAR,AAAA,AACE,GAAI,GAAA,eAAA,dAAOA;AACT,GAAI,AAACC,sBAAMD;AACT,AAAQ,OAAA,NAAgBb,qBAAcA,MAAM,AAAC5B,mDAAe,AAAC2C,mDAAWF;;AACxE,AAAOb,WAAM,AAACgB,iCAAKH;;;AAHvB;;AADF;AAAA,eAAAZ;eAAAC;eAAAC;eAAA,CAAAC,iBAAA;;;;;;;AAAA,IAAAC,2BAAA,AAAAP,cAAAG;AAAA,AAAA,GAAAI;AAAA,AAAA,IAAAJ,uBAAAI;AAAA,AAAA,GAAA,AAAAC,6BAAAL;AAAA,IAAAM,wBAAA,AAAAC,sBAAAP;AAAA,AAAA,eAAA,AAAAQ,qBAAAR;eAAAM;eAAA,AAAAG,gBAAAH;eAAA;;;;;;;AAAA,iBAAA,AAAAI,gBAAAV,7BAAQY;AAAR,AAAA,AACE,GAAI,GAAA,eAAA,dAAOA;AACT,GAAI,AAACC,sBAAMD;AACT,AAAQ,OAAA,NAAgBb,qBAAcA,MAAM,AAAC5B,mDAAe,AAAC2C,mDAAWF;;AACxE,AAAOb,WAAM,AAACgB,iCAAKH;;;AAHvB;;AADF;AAAA,eAAA,AAAAD,eAAAX;eAAA;eAAA;eAAA;;;;;;;;AAAA;;;;;AAKAD;;;AAPJ,CAAA,oEAAA,pEAAML;;AAAN;AAAA,CAAA,8DAAA,WAAAC,zEAAMD;AAAN,AAAA,IAAAE,qBAAA;AAAA,AAAA,OAAAA,wDAAA,AAAAC,cAAAF;;;AAAA,AASA,AAAA,+CAAA,uDAAAP,tGAAM4B;AAAN,AAAA,IAAA3B,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,OAAA2B,kFAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAAxB;;;AAAA,AAAA,CAAA,oFAAA,pFAAMwB,+FACHK,IAAIC,MAAQC;AADf,AAEE,IAAMF,UAAI,AAACN,iCAAKM;IACVC,YAAM,AAACP,iCAAKO;IACZE,WAAS,sDAAA,tDAAC9C,uDAAuB2C,QAAI,qCAAA,KAAA,xCAAI,AAACI,uBAAOH,4BAEGA;AAJ1D,AAKE,IAAAI,mBAAA,AAAA7B,cAAc0B;IAAdI,qBAAA;IAAAC,qBAAA;IAAAC,iBAAA;;AAAA,AAAA,GAAA,AAAA,CAAAA,iBAAAD;AAAA,kBAAA,AAAAD,wDAAAE,tEAAQC;AAAR,AAAA,AACE,GAAI,GAAA,gBAAA,fAAOA;AACT,GAAI,AAACjB,sBAAMiB;AACT,AAAQ,UAAA,TAAgBN,wBAAiBA,SAAS,AAAC9C,sDAAkB,AAACoC,mDAAW,AAACiB,6CAAKhB,iCAAKe;;AAC5F,IAAAE,2BAAqB,AAACjB,iCAAKe;AAA3B,AAAA,oBAAAE;AAAA,wBAAAA,pBAASC;AAAT,AACE,AAAOT,cAASS;;AADlB;;;AAHJ;;AADF;AAAA,eAAAP;eAAAC;eAAAC;eAAA,CAAAC,iBAAA;;;;;;;AAAA,IAAAzB,2BAAA,AAAAP,cAAA6B;AAAA,AAAA,GAAAtB;AAAA,AAAA,IAAAsB,uBAAAtB;AAAA,AAAA,GAAA,AAAAC,6BAAAqB;AAAA,IAAApB,wBAAA,AAAAC,sBAAAmB;AAAA,AAAA,eAAA,AAAAlB,qBAAAkB;eAAApB;eAAA,AAAAG,gBAAAH;eAAA;;;;;;;AAAA,kBAAA,AAAAI,gBAAAgB,9BAAQI;AAAR,AAAA,AACE,GAAI,GAAA,gBAAA,fAAOA;AACT,GAAI,AAACjB,sBAAMiB;AACT,AAAQ,UAAA,TAAgBN,wBAAiBA,SAAS,AAAC9C,sDAAkB,AAACoC,mDAAW,AAACiB,6CAAKhB,iCAAKe;;AAC5F,IAAAE,2BAAqB,AAACjB,iCAAKe;AAA3B,AAAA,oBAAAE;AAAA,wBAAAA,pBAASC;AAAT,AACE,AAAOT,cAASS;;AADlB;;;AAHJ;;AADF;AAAA,eAAA,AAAAtB,eAAAe;eAAA;eAAA;eAAA;;;;;;;;AAAA;;;;;AAMAF;;;AAbJ,CAAA,uEAAA,vEAAMR;;AAAN;AAAA,CAAA,iEAAA,WAAAC,5EAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAR,gBAAAO;IAAAA,eAAA,AAAAN,eAAAM;IAAAE,WAAA,AAAAT,gBAAAO;IAAAA,eAAA,AAAAN,eAAAM;AAAA,AAAA,IAAAG,qBAAA;AAAA,AAAA,OAAAA,wDAAAF,SAAAC,SAAAF;;;AAAA,AAeA,AAAA,wDAAA,gEAAA7B,xHAAM8C;AAAN,AAAA,IAAA7C,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,OAAA6C,2FAAA,CAAA,UAAA,MAAA1C;;;AAAA,AAAA,CAAA,6FAAA,7FAAM0C,wGAAmBV,SAAWa;AAApC,AACE,OAAC3D,sDAAkB,AAAQ,UAAA,TAAM8C,0BAAmBA,SAAS,AAACV,mDAAW,AAACwB,4CAAIC,qBAAW,AAACR,6CAAKhB,iCAAKsB;;;AADtG,CAAA,gFAAA,hFAAMH;;AAAN;AAAA,CAAA,0EAAA,WAAAC,rFAAMD;AAAN,AAAA,IAAAE,WAAA,AAAA1B,gBAAAyB;IAAAA,eAAA,AAAAxB,eAAAwB;AAAA,AAAA,IAAAf,qBAAA;AAAA,AAAA,OAAAA,wDAAAgB,SAAAD;;;AAAA,AAGA,AAAA,uDAAA,+DAAA/C,tHAAMoD;AAAN,AAAA,IAAAnD,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,OAAAmD,0FAAA,CAAA,UAAA,MAAAhD;;;AAAA,AAAA,CAAA,4FAAA,5FAAMgD,uGAAkBhB,SAAWmB;AAAnC,AACE,OAACC,2FAAkBpB,2DAASmB;;;AAD9B,CAAA,+EAAA,/EAAMH;;AAAN;AAAA,CAAA,yEAAA,WAAAC,pFAAMD;AAAN,AAAA,IAAAE,WAAA,AAAAhC,gBAAA+B;IAAAA,eAAA,AAAA9B,eAAA8B;AAAA,AAAA,IAAArB,qBAAA;AAAA,AAAA,OAAAA,wDAAAsB,SAAAD;;;AAAA,AAGA,AAAA,gDAAA,wDAAArD,xGAAM0D;AAAN,AAAA,IAAAD,WAAA,AAAA;AAAA,AAAA,QAAAA;KAAA;AAAA,OAAAC,4EAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4EAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4EAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;KAAA;AAAA,OAAAA,4EAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA,MAAA,CAAA,UAAA;;;;AAAA,MAAA,KAAAC,MAAA,CAAA,8DAAA,AAAA;;;;;AAAA,CAAA,8EAAA,9EAAMD,yFAGFE;AAHJ,AAGY,0FAAA,nFAACC,4EAAeD;;;AAH5B,CAAA,8EAAA,9EAAMF,yFAIFE,OAAOE;AAJX,AAImB,iGAAA,1FAACD,4EAAeD,OAAOE;;;AAJ1C,CAAA,8EAAA,9EAAMJ,yFAKFE,OAAOE,OAAOC;AALlB,AAKwB,sGAAA,/FAACF,4EAAeD,OAAOE,OAAOC;;;AALtD,CAAA,8EAAA,9EAAML,yFAMFE,OAAOE,OAAOC,KAAKC;AANvB,AAOG,OAACtE,uDAAmB,iBAAAuE,WAAA,EAAA,gBAAA,gBAAA,YAAA,nCACWL,gBACAE,cACFC,kBACM,iBAAAG,mBAAIF;AAAJ,AAAA,oBAAAE;AAAAA;;AAAA;;;AAJf,AAAAD;;;;AAPvB,CAAA,wEAAA,xEAAMP;;AAAN,AAaA,sDAAA,tDAAMS,oHAAsBC;AAA5B,AAAA,GACS,AAACxE,gDAAWwE;AADrB;AAAA,AAAA,MAAA,KAAAT,MAAA;;;AAEE,kBAAA,VAAMS;;AAER,sDAAA,tDAAMC,oHAAsBD;AAA5B,AAAA,GACS,AAACxE,gDAAWwE;AADrB;AAAA,AAAA,MAAA,KAAAT,MAAA;;;AAEE,kBAAA,VAAMS;;AAER,oDAAA,pDAAME,gHAAoBF;AAA1B,AAAA,GACS,AAACxE,gDAAWwE;AADrB;AAAA,AAAA,MAAA,KAAAT,MAAA;;;AAEE,kBAAA,VAAMS;;AAER,2DAAA,3DAAMG,8HAA2BH;AAAjC,AAAA,GACS,AAACxE,gDAAWwE;AADrB;AAAA,AAAA,MAAA,KAAAT,MAAA;;;AAEE,kBAAA,VAAMS;;AAER,AAAA,gDAAA,wDAAApE,xGAAMwE;AAAN,AAAA,IAAAvE,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,OAAAuE,mFAAA,CAAA,UAAA,MAAApE;;;AAAA,AAAA,CAAA,qFAAA,kBAAAqE,vGAAMD,gGAAgBZ;AAAtB,AAAA,IAAAc,aAAAD;wBAAA,AAAAE,4CAAAD,WAAA,IAAA,/EAAgCI;AAAhC,AAAA,GACS,EAAI,sBAAA,rBAAMA,gCAAmB,AAACC,oBAAID;AAD3C;AAAA,AAAA,MAAA,KAAAnB,MAAA;;;AAEE,GAAI,WAAA,VAAMC;AAER,yFAAA,qDAAA,kHAAA,zPAACoB;;AACD,IAAMC,YAAU,EAAI,GAAA,sBAAA,rBAAOH,8BACT,iBAAAI,WAAmB,AAACC;AAApB,AAAA,0GAAAD,wCAAAA,1IAACJ,kDAAAA,4DAAAA;KACD,AAACK;AAFnB,AAGE,wIAAA,SAAA,1IAACC,sJAAkCxB,kBACAqB;;;;AATzC,CAAA,wEAAA,xEAAMT;;AAAN;AAAA,CAAA,kEAAA,WAAAI,7EAAMJ;AAAN,AAAA,IAAAK,WAAA,AAAAvD,gBAAAsD;IAAAA,eAAA,AAAArD,eAAAqD;AAAA,AAAA,IAAA5C,qBAAA;AAAA,AAAA,OAAAA,wDAAA6C,SAAAD;;;AAAA,AAWA,iDAAA,jDAAMS,0GAAiBC,KAAKC;AAA5B,AACE,+FAAA,xFAACC,8CAAMlF,uDAAwB,AAACmF,qBAAQH,MAAMC;;AAShD,AAAA,AAEA,kEAAA,lEAAeG;AACf,iEAAA,jEAAeC;AAEf,+CAAA,/CAAMC,sGAAeC;AAArB,AACE,IAAAC,0CAAUE;IAAVD,0CAAA;AAAA,AAAA,qCAAAA,pCAAUC;;AAAV,IAAA,AACE,OAACC,wGAAOJ;UADV,AAAA,qCAAAC,pCAAUE;;AAGZ,sDAAA,tDAAME,oHAAsBC;AAA5B,AACE,yDAAA,lDAACC,kEAA0BD;;AAE7B,0DAAA,1DAAME,4HAA0BF;AAAhC,AACE,IAAMG,IAAE,WAAKC;AAAL,AACE,GAAI,AAACxB,oBAAIwB;AAAT;;AAEEA;;;AAHZ,AAIE,OAACC,qBAAQF,EAAEH;;AAEf,qDAAA,rDAAMM,kHAAqBN;AAA3B,AACE,OAACjD,4CAAIwD,yBAAWP;;AAElB,qDAAA,rDAAMQ,kHAAqBR;AAA3B,AACE,yDAAA,lDAACS,uDAAiB,oDAAA,mDAAA,wDAAA,kBAAIT,lBACAU,xDACAR,nDACAI,pDACAP;;AAExB,oDAAA,pDAAMY,gHAAoBC;AAA1B,AACE,OAACC,gHAAWD;;AAEd,qDAAA,rDAAME,kHAAqBC;AAA3B,AACE,AAAA,AAAA,MAAA,KAAAvD,MAAA,CAAA,gWAAA,KAAA,nVAAc,kDAAA,KAAA,kIAAA,KAAA,jJAAKuD,0BACgB,AAACJ,kDAAmBnB,uFAEpC,AAACgB,mDAAoBjB;;;AAE1C,yDAAA,zDAAMyB,0HAAmBtB;AAAzB,AACE,SAAK,AAACuB,4BAAYvB,aAAQ,qEAAA,rEAAC9F,6CAAE,AAACuB,gBAAMuE;;AAEtC,gDAAA,hDAAMwB,wGAAgBC,KAAK/D;AAA3B,AACE,IAAAgE,WAAMD;AAAN,AAAA,QAAAC;KAAA;AACc,IAAMC,MAAI,AAAClG,gBAAMiC;IACXkE,iBAAe,AAACvE,4CAAIwE,oDAAgB,AAACC,eAAKpE;AADhD,AAEE,OAACiC,8CAAM9B,8CAAe,+CAAA,/CAACkE,kIAAQJ,YAAKC;;;KAHpD;AAIc,IAAMD,MAAI,AAAClG,gBAAMiC;IACXsE,gBAAc,EAAI,AAACV,uDAAkBK,MAAK,CAACE,oFAAAA,yFAAAA,PAAgBF,qEAAAA,MAAKA;AADtE,AAEE,OAAChC,8CAAMhB,8CAAe,+CAAA,/CAACoD,kIAAQC,sBAAe,AAACF,eAAKpE;;;KANpE;AAOe,IAAM+B,OAAK,AAAChE,gBAAMiC;IACZkE,iBAAe,AAACvE,4CAAIwE,oDAAgB,AAACC,eAAKpE;AADhD,AAEE,OAAC8B,+CAAgBC,KAAKmC;;;;AACrC,OAACR,mDAAoB,CAAA,oFAAA,NAAuCK;;;;AAEhE,iDAAA,jDAAMQ,0GAAWvB;AAAjB,AACE,GAAI,mCAAA,jCAAI,AAACwB,yBAASxB,UAAG,AAACyB,uBAAOzB,QAAG,OAASA;AACvC,OAAClE,uBAAOkE;;AADV;;;AAIF,gDAAA,hDAAM0B,wGAAgBhG,IAAIE;AAA1B,AACE,IAAA+F,aAAuBjG;eAAvB,AAAA0C,4CAAAuD,WAAA,IAAA,tEAAOC;YAAP,AAAAxD,4CAAAuD,WAAA,IAAA,nEAAgBhG;AAAhB,AACE,OAACsD,8CAAM5D,6CAAcuG,SAASjG,MAAM,AAACgB,4CAAIwE,oDAAgB,AAACU,+CAAON,+CAAU,AAAC5E,4CAAIvB,iCAAKQ;;AAEzF,sDAAA,tDAAMuF,oHAAiB7B;AAAvB,AACE,GAAA,GAAQ,AAACuB,4BAAYvB;AACnBA;;AACA,IAAAwC,kDAAU1C;IAAV2C,kDAAgC,AAACC,6CAAK5C,+DAAsB,AAACrE,gBAAMuE;AAAnE,AAAA,kEAAAyC,jEAAU3C;;AAAV,IAAA,AACE,IAAM1D,MAAI,AAACN,iCAAK,AAACL,gBAAMuE;AAAvB,AACE,GACE,OAAS5D;AAAK,OAACoF,8CAAepF,IAAI,AAAC0F,eAAK9B;;AAD1C,GAEE,AAACuB,4BAAYnF;AAAK,OAACgG,8CAAehG,IAAI,AAAC0F,eAAK9B;;AAF9C,AAGQ,OAACoB,mDAAoB,CAAA,+HAAA,tDAAkC,AAACrB,6CAAcC;;;;UALlF,AAAA,kEAAAwC,jEAAU1C;;;AAOd,gDAAA,hDAAM6C,wGAAgB3C;AAAtB,AACE,IAAA4C,mDAAU/C;IAAVgD,kDACU/C;IADVgD,mDAAiC,AAACJ,6CAAK7C,gEAAuBG;IAA9D+C,kDACgC,4GAAA,5GAACL,6CAAK5C;AADtC,AAAA,mEAAAgD,lEAAUjD;;AAAV,kEAAAkD,jEACUjD;;AADV,IAAA,AAEE,OAAC+B,oDAAgB7B;UAFnB,AAAA,kEAAA6C,jEACU/C;;AADV,mEAAA8C,lEAAU/C;;AAMZ,gEAAA,hEAAgBmD,wIAAgCC,cAAc9J;AAA9D,AACE,AAAA,AAAA,MAAA,KAAA2E,MAAA,CAAA,iXAAA,KAAA,pWAAc,CAAA,mDAAA,2IAAA,5HACoB,AAACqD,gHAAWhI,8BACT,AAACgI,gHAAW8B;;;AAEnD,qDAAA,rDAAMC,kHAAgBD,cAAc9J;;AAApC,AACE,GACE,AAAC+F,oBAAI/F;AAAO,eAAO8J;eAAc,CAAC9J,sCAAAA,wCAAAA;;;;;AADpC,GAEE,kBAAAgK,jBAAUhK;AAAO,eAAO8J;eAAc,AAACnH,iCAAK3C;;;;;AAF9C,GAGE,AAACoI,4BAAYpI;AAAO,eAAO8J;eAAc,AAACN,8CAAexJ;;;;;AAH3D,GAIE,AAACQ,+CAAUR;AAAOA;;AAJpB,GAKE,AAACY,gDAAWZ;AAAOA;;AALrB,GAME,AAACc,gDAAWd;AAAOA;;AANrB,AAOQ,OAAC6J,wEAA+BC,cAAc9J;;;;;;;;;;;AAExD,+CAAA,/CAAMiK,sGAAejK;AAArB,AACE,OAAC+J,mDAAe/J,MAAMA","names":["devtools.formatters.templating/mark-as-group!","value","x10707","cljs.core/PROTOCOL_SENTINEL","devtools.formatters.templating/group?","cljs.core/native-satisfies?","devtools.protocols/IGroup","devtools.formatters.templating/mark-as-template!","x10717","devtools.formatters.templating/template?","devtools.protocols/ITemplate","devtools.formatters.templating/mark-as-surrogate!","x10730","devtools.formatters.templating/surrogate?","devtools.protocols/ISurrogate","devtools.formatters.templating/reference?","cljs.core._EQ_","var_args","args__5732__auto__","len__5726__auto__","i__5727__auto__","argseq__5733__auto__","cljs.core/IndexedSeq","devtools.formatters.templating/make-group","seq10744","self__5712__auto__","cljs.core/seq","items","group","seq__10760","chunk__10761","count__10762","i__10763","temp__5804__auto__","cljs.core/chunked-seq?","c__5525__auto__","cljs.core/chunk-first","cljs.core/chunk-rest","cljs.core/count","cljs.core/first","cljs.core/next","item","cljs.core/coll?","cljs.core.into_array","devtools.formatters.helpers/pref","devtools.formatters.templating/make-template","seq10771","G__10772","G__10773","self__5711__auto__","tag","style","children","template","cljs.core/empty?","seq__10774","chunk__10775","count__10776","i__10777","child","cljs.core.keep","temp__5802__auto__","child-value","devtools.formatters.templating/concat-templates!","seq10791","G__10792","templates","cljs.core.map","cljs.core/into-array","devtools.formatters.templating/extend-template!","seq10817","G__10818","args","devtools.formatters.templating.concat_templates_BANG_","G__10828","devtools.formatters.templating/make-surrogate","js/Error","object","devtools.formatters.templating.make_surrogate","header","body","start-index","obj10838","or__5002__auto__","devtools.formatters.templating/get-surrogate-target","surrogate","devtools.formatters.templating/get-surrogate-header","devtools.formatters.templating/get-surrogate-body","devtools.formatters.templating/get-surrogate-start-index","devtools.formatters.templating/make-reference","p__10875","vec__10880","cljs.core.nth","seq10865","G__10867","state-override-fn","cljs.core/fn?","devtools.formatters.templating.make_template","sub-state","G__10893","devtools.formatters.state/get-current-state","devtools.formatters.templating.make_group","devtools.formatters.templating/make-annotation","data","markups","cljs.core.apply","cljs.core/clj->js","devtools.formatters.templating/*current-render-stack*","devtools.formatters.templating/*current-render-path*","devtools.formatters.templating/print-preview","markup","*print-level*-orig-val__10926","*print-level*-temp-val__10927","cljs.core/*print-level*","cljs.core.pr_str","devtools.formatters.templating/add-stack-separators","stack","cljs.core.interpose","devtools.formatters.templating/replace-fns-with-markers","f","v","clojure.walk/prewalk","devtools.formatters.templating/pprint-render-calls","devtools.util/pprint-str","devtools.formatters.templating/pprint-render-stack","clojure.string.join","cljs.core/reverse","devtools.formatters.templating/pprint-render-path","path","devtools.util.pprint_str","devtools.formatters.templating/assert-markup-error","msg","devtools.formatters.templating/surrogate-markup?","cljs.core/sequential?","devtools.formatters.templating/render-special","name","G__10966","obj","converted-args","devtools.formatters.templating/render-json-ml*","cljs.core/rest","cljs.core.concat","converted-obj","devtools.formatters.templating/emptyish?","cljs.core/seqable?","cljs.core/array?","devtools.formatters.templating/render-subtree","vec__10977","html-tag","cljs.core.remove","*current-render-path*-orig-val__10982","*current-render-path*-temp-val__10983","cljs.core.conj","devtools.formatters.templating/render-json-ml","*current-render-stack*-orig-val__10989","*current-render-path*-orig-val__10990","*current-render-stack*-temp-val__10991","*current-render-path*-temp-val__10992","devtools.formatters.templating/assert-failed-markup-rendering","initial-value","devtools.formatters.templating/render-markup*","cljs.core/Keyword","devtools.formatters.templating/render-markup"],"sourcesContent":["(ns devtools.formatters.templating\n (:require-macros [devtools.oops :refer [oget oset ocall oapply safe-call unchecked-aget]])\n (:require [clojure.walk :refer [prewalk]]\n [devtools.util :refer [pprint-str]]\n [devtools.protocols :refer [ITemplate IGroup ISurrogate IFormat]]\n [devtools.formatters.helpers :refer [pref cljs-value?]]\n [devtools.formatters.state :refer [get-current-state prevent-recursion?]]\n [clojure.string :as string]))\n\n; -- object marking support -------------------------------------------------------------------------------------------------\n\n(defn mark-as-group! [value]\n (specify! value IGroup)\n value)\n\n(defn group? [value]\n (satisfies? IGroup value))\n\n(defn mark-as-template! [value]\n (specify! value ITemplate)\n value)\n\n(defn template? [value]\n (satisfies? ITemplate value))\n\n(defn mark-as-surrogate! [value]\n (specify! value ISurrogate)\n value)\n\n(defn surrogate? [value]\n (satisfies? ISurrogate value))\n\n(defn reference? [value]\n (and (group? value)\n (= (unchecked-aget value 0) \"object\")))\n\n; ---------------------------------------------------------------------------------------------------------------------------\n\n(defn make-group [& items]\n (let [group (mark-as-group! #js [])]\n (doseq [item items]\n (if (some? item)\n (if (coll? item)\n (.apply (unchecked-aget group \"push\") group (mark-as-group! (into-array item))) ; convenience helper to splat cljs collections\n (.push group (pref item)))))\n group))\n\n(defn make-template\n [tag style & children]\n (let [tag (pref tag)\n style (pref style)\n template (mark-as-template! #js [tag (if (empty? style)\n #js {}\n #js {\"style\" style})])]\n (doseq [child children]\n (if (some? child)\n (if (coll? child)\n (.apply (unchecked-aget template \"push\") template (mark-as-template! (into-array (keep pref child)))) ; convenience helper to splat cljs collections\n (if-let [child-value (pref child)]\n (.push template child-value)))))\n template))\n\n(defn concat-templates! [template & templates]\n (mark-as-template! (.apply (oget template \"concat\") template (into-array (map into-array (keep pref templates))))))\n\n(defn extend-template! [template & args]\n (concat-templates! template args))\n\n(defn make-surrogate\n ; passing :target as body means that targt object body should be rendered using standard templates\n ; see <surrogate-body> in markup.cljs\n ([object] (make-surrogate object nil))\n ([object header] (make-surrogate object header nil))\n ([object header body] (make-surrogate object header body 0))\n ([object header body start-index]\n (mark-as-surrogate! (js-obj\n \"target\" object\n \"header\" header\n \"body\" body\n \"startIndex\" (or start-index 0)))))\n\n(defn get-surrogate-target [surrogate]\n {:pre [(surrogate? surrogate)]}\n (oget surrogate \"target\"))\n\n(defn get-surrogate-header [surrogate]\n {:pre [(surrogate? surrogate)]}\n (oget surrogate \"header\"))\n\n(defn get-surrogate-body [surrogate]\n {:pre [(surrogate? surrogate)]}\n (oget surrogate \"body\"))\n\n(defn get-surrogate-start-index [surrogate]\n {:pre [(surrogate? surrogate)]}\n (oget surrogate \"startIndex\"))\n\n(defn make-reference [object & [state-override-fn]]\n {:pre [(or (nil? state-override-fn) (fn? state-override-fn))]}\n (if (nil? object)\n ; this code is duplicated in markup.cljs <nil>\n (make-template :span :nil-style :nil-label)\n (let [sub-state (if (some? state-override-fn)\n (state-override-fn (get-current-state))\n (get-current-state))]\n (make-group \"object\" #js {\"object\" object\n \"config\" sub-state}))))\n\n(defn make-annotation [data markups]\n (apply make-group \"annotation\" (clj->js data) markups))\n\n; -- JSON ML support --------------------------------------------------------------------------------------------------------\n\n; a renderer from hiccup-like data markup to json-ml\n;\n; [[tag style] child1 child2 ...] -> #js [tag #js {\"style\" ...} child1 child2 ...]\n;\n\n(declare render-json-ml*)\n\n(def ^:dynamic *current-render-stack* [])\n(def ^:dynamic *current-render-path* [])\n\n(defn print-preview [markup]\n (binding [*print-level* 1]\n (pr-str markup)))\n\n(defn add-stack-separators [stack]\n (interpose \"-------------\" stack))\n\n(defn replace-fns-with-markers [stack]\n (let [f (fn [v]\n (if (fn? v)\n \"##fn##\"\n v))]\n (prewalk f stack)))\n\n(defn pprint-render-calls [stack]\n (map pprint-str stack))\n\n(defn pprint-render-stack [stack]\n (string/join \"\\n\" (-> stack\n reverse\n replace-fns-with-markers\n pprint-render-calls\n add-stack-separators)))\n\n(defn pprint-render-path [path]\n (pprint-str path))\n\n(defn assert-markup-error [msg]\n (assert false (str msg \"\\n\"\n \"Render path: \" (pprint-render-path *current-render-path*) \"\\n\"\n \"Render stack:\\n\"\n (pprint-render-stack *current-render-stack*))))\n\n(defn surrogate-markup? [markup]\n (and (sequential? markup) (= (first markup) \"surrogate\")))\n\n(defn render-special [name args]\n (case name\n \"surrogate\" (let [obj (first args)\n converted-args (map render-json-ml* (rest args))]\n (apply make-surrogate (concat [obj] converted-args)))\n \"reference\" (let [obj (first args)\n converted-obj (if (surrogate-markup? obj) (render-json-ml* obj) obj)]\n (apply make-reference (concat [converted-obj] (rest args))))\n \"annotation\" (let [data (first args)\n converted-args (map render-json-ml* (rest args))]\n (make-annotation data converted-args))\n (assert-markup-error (str \"no matching special tag name: '\" name \"'\"))))\n\n(defn emptyish? [v]\n (if (or (seqable? v) (array? v) (string? v))\n (empty? v)\n false))\n\n(defn render-subtree [tag children]\n (let [[html-tag style] tag]\n (apply make-template html-tag style (map render-json-ml* (remove emptyish? (map pref children))))))\n\n(defn render-json-ml* [markup]\n (if-not (sequential? markup)\n markup\n (binding [*current-render-path* (conj *current-render-path* (first markup))]\n (let [tag (pref (first markup))]\n (cond\n (string? tag) (render-special tag (rest markup))\n (sequential? tag) (render-subtree tag (rest markup))\n :else (assert-markup-error (str \"invalid json-ml markup at \" (print-preview markup) \":\")))))))\n\n(defn render-json-ml [markup]\n (binding [*current-render-stack* (conj *current-render-stack* markup)\n *current-render-path* (conj *current-render-path* \"<render-json-ml>\")]\n (render-json-ml* markup)))\n\n; -- template rendering -----------------------------------------------------------------------------------------------------\n\n(defn ^:dynamic assert-failed-markup-rendering [initial-value value]\n (assert false (str \"result of markup rendering must be a template,\\n\"\n \"resolved to \" (pprint-str value)\n \"initial value: \" (pprint-str initial-value))))\n\n(defn render-markup* [initial-value value]\n (cond\n (fn? value) (recur initial-value (value))\n (keyword? value) (recur initial-value (pref value))\n (sequential? value) (recur initial-value (render-json-ml value))\n (template? value) value\n (surrogate? value) value\n (reference? value) value\n :else (assert-failed-markup-rendering initial-value value)))\n\n(defn render-markup [value]\n (render-markup* value value))\n"],"x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
import "./cljs_env.js";
|
|
2
|
+
import "./cljs.core.js";
|
|
3
|
+
import "./devtools.prefs.js";
|
|
4
|
+
import "./devtools.context.js";
|
|
5
|
+
import "./cljs.stacktrace.js";
|
|
6
|
+
goog.provide('devtools.hints');
|
|
7
|
+
devtools.hints.available_QMARK_ = (function devtools$hints$available_QMARK_(){
|
|
8
|
+
return true;
|
|
9
|
+
});
|
|
10
|
+
devtools.hints._STAR_installed_STAR_ = false;
|
|
11
|
+
devtools.hints._STAR_original_global_error_handler_STAR_ = null;
|
|
12
|
+
devtools.hints._STAR_original_type_error_prototype_to_string_STAR_ = null;
|
|
13
|
+
devtools.hints.processed_errors = cljs.core.volatile_BANG_(null);
|
|
14
|
+
devtools.hints.set_processed_errors_BANG_ = (function devtools$hints$set_processed_errors_BANG_(val){
|
|
15
|
+
return cljs.core.vreset_BANG_(devtools.hints.processed_errors,val);
|
|
16
|
+
});
|
|
17
|
+
devtools.hints.get_processed_errors_BANG_ = (function devtools$hints$get_processed_errors_BANG_(){
|
|
18
|
+
var temp__5802__auto__ = cljs.core.deref(devtools.hints.processed_errors);
|
|
19
|
+
if(cljs.core.truth_(temp__5802__auto__)){
|
|
20
|
+
var val = temp__5802__auto__;
|
|
21
|
+
return val;
|
|
22
|
+
} else {
|
|
23
|
+
if((typeof WeakSet !== 'undefined')){
|
|
24
|
+
return devtools.hints.set_processed_errors_BANG_((new WeakSet()));
|
|
25
|
+
} else {
|
|
26
|
+
return null;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
devtools.hints.empty_as_nil = (function devtools$hints$empty_as_nil(str){
|
|
31
|
+
if(cljs.core.empty_QMARK_(str)){
|
|
32
|
+
return null;
|
|
33
|
+
} else {
|
|
34
|
+
return str;
|
|
35
|
+
}
|
|
36
|
+
});
|
|
37
|
+
devtools.hints.ajax_reader = (function devtools$hints$ajax_reader(url){
|
|
38
|
+
var xhr = (new XMLHttpRequest());
|
|
39
|
+
xhr.open("GET",url,false);
|
|
40
|
+
|
|
41
|
+
xhr.send();
|
|
42
|
+
|
|
43
|
+
return devtools.hints.empty_as_nil(xhr.responseText);
|
|
44
|
+
});
|
|
45
|
+
devtools.hints.retrieve_javascript_source = (function devtools$hints$retrieve_javascript_source(where){
|
|
46
|
+
var reader = (function (){var or__5002__auto__ = devtools.prefs.pref(new cljs.core.Keyword(null,"file-reader","file-reader",-450847664));
|
|
47
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
48
|
+
return or__5002__auto__;
|
|
49
|
+
} else {
|
|
50
|
+
return devtools.hints.ajax_reader;
|
|
51
|
+
}
|
|
52
|
+
})();
|
|
53
|
+
return (reader.cljs$core$IFn$_invoke$arity$1 ? reader.cljs$core$IFn$_invoke$arity$1(where) : reader.call(null,where));
|
|
54
|
+
});
|
|
55
|
+
devtools.hints.get_line = (function devtools$hints$get_line(lines,line_number){
|
|
56
|
+
return (lines[(line_number - (1))]);
|
|
57
|
+
});
|
|
58
|
+
devtools.hints.extend_content = (function devtools$hints$extend_content(content,lines,line_number,min_length){
|
|
59
|
+
if((((cljs.core.count(content) > min_length)) || ((!((line_number > (0))))))){
|
|
60
|
+
return content;
|
|
61
|
+
} else {
|
|
62
|
+
var prev_line_number = (line_number - (1));
|
|
63
|
+
var prev_line = devtools.hints.get_line(lines,prev_line_number);
|
|
64
|
+
var new_content = [cljs.core.str.cljs$core$IFn$_invoke$arity$1(prev_line),"\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(content)].join('');
|
|
65
|
+
return (devtools.hints.extend_content.cljs$core$IFn$_invoke$arity$4 ? devtools.hints.extend_content.cljs$core$IFn$_invoke$arity$4(new_content,lines,prev_line_number,min_length) : devtools.hints.extend_content.call(null,new_content,lines,prev_line_number,min_length));
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
devtools.hints.mark_call_closed_at_column = (function devtools$hints$mark_call_closed_at_column(line,column){
|
|
69
|
+
var n = (column - (1));
|
|
70
|
+
var prefix = line.substring((0),n);
|
|
71
|
+
var postfix = line.substring(n);
|
|
72
|
+
return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(prefix)," <<< \u2622 NULL \u2622 <<< ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(postfix)].join('');
|
|
73
|
+
});
|
|
74
|
+
devtools.hints.mark_null_call_site_location = (function devtools$hints$mark_null_call_site_location(file,line_number,column){
|
|
75
|
+
var content = devtools.hints.retrieve_javascript_source(file);
|
|
76
|
+
var lines = content.split("\n");
|
|
77
|
+
var line = devtools.hints.get_line(lines,line_number);
|
|
78
|
+
var marked_line = devtools.hints.mark_call_closed_at_column(line,column);
|
|
79
|
+
var min_length = (function (){var or__5002__auto__ = devtools.prefs.pref(new cljs.core.Keyword(null,"sanity-hint-min-length","sanity-hint-min-length",104958154));
|
|
80
|
+
if(cljs.core.truth_(or__5002__auto__)){
|
|
81
|
+
return or__5002__auto__;
|
|
82
|
+
} else {
|
|
83
|
+
return (128);
|
|
84
|
+
}
|
|
85
|
+
})();
|
|
86
|
+
return devtools.hints.extend_content(marked_line,lines,line_number,min_length);
|
|
87
|
+
});
|
|
88
|
+
devtools.hints.make_sense_of_the_error = (function devtools$hints$make_sense_of_the_error(message,file,line_number,column){
|
|
89
|
+
if(cljs.core.truth_(cljs.core.re_matches(/Cannot read property 'call' of.*/,message))){
|
|
90
|
+
return devtools.hints.mark_null_call_site_location(file,line_number,column);
|
|
91
|
+
} else {
|
|
92
|
+
return null;
|
|
93
|
+
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
devtools.hints.parse_stacktrace = (function devtools$hints$parse_stacktrace(native_stack_trace){
|
|
97
|
+
return cljs.stacktrace.parse_stacktrace.cljs$core$IFn$_invoke$arity$4(cljs.core.PersistentArrayMap.EMPTY,native_stack_trace,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"ua-product","ua-product",938384227),new cljs.core.Keyword(null,"chrome","chrome",1718738387)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"asset-root","asset-root",1771735072),""], null));
|
|
98
|
+
});
|
|
99
|
+
devtools.hints.error_object_sense = (function devtools$hints$error_object_sense(error){
|
|
100
|
+
try{var native_stack_trace = error.stack;
|
|
101
|
+
var stack_trace = devtools.hints.parse_stacktrace(native_stack_trace);
|
|
102
|
+
var top_item = cljs.core.second(stack_trace);
|
|
103
|
+
var map__8993 = top_item;
|
|
104
|
+
var map__8993__$1 = cljs.core.__destructure_map(map__8993);
|
|
105
|
+
var file = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__8993__$1,new cljs.core.Keyword(null,"file","file",-1269645878));
|
|
106
|
+
var line = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__8993__$1,new cljs.core.Keyword(null,"line","line",212345235));
|
|
107
|
+
var column = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__8993__$1,new cljs.core.Keyword(null,"column","column",2078222095));
|
|
108
|
+
return devtools.hints.make_sense_of_the_error(error.message,file,line,column);
|
|
109
|
+
}catch (e8992){var _e = e8992;
|
|
110
|
+
return false;
|
|
111
|
+
}});
|
|
112
|
+
devtools.hints.type_error_to_string = (function devtools$hints$type_error_to_string(self){
|
|
113
|
+
var temp__5802__auto___9068 = devtools.hints.get_processed_errors_BANG_();
|
|
114
|
+
if(cljs.core.truth_(temp__5802__auto___9068)){
|
|
115
|
+
var seen_errors_9069 = temp__5802__auto___9068;
|
|
116
|
+
if(cljs.core.truth_(seen_errors_9069.has(self))){
|
|
117
|
+
} else {
|
|
118
|
+
seen_errors_9069.add(self);
|
|
119
|
+
|
|
120
|
+
var temp__5804__auto___9070 = devtools.hints.error_object_sense(self);
|
|
121
|
+
if(cljs.core.truth_(temp__5804__auto___9070)){
|
|
122
|
+
var sense_9080 = temp__5804__auto___9070;
|
|
123
|
+
(self.message = [cljs.core.str.cljs$core$IFn$_invoke$arity$1(self.message),", a sanity hint:\n",cljs.core.str.cljs$core$IFn$_invoke$arity$1(sense_9080)].join(''));
|
|
124
|
+
} else {
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
} else {
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
return devtools.hints._STAR_original_type_error_prototype_to_string_STAR_.call(self);
|
|
131
|
+
});
|
|
132
|
+
devtools.hints.global_error_handler = (function devtools$hints$global_error_handler(message,url,line,column,error){
|
|
133
|
+
var res = (cljs.core.truth_(devtools.hints._STAR_original_global_error_handler_STAR_)?devtools.hints._STAR_original_global_error_handler_STAR_.call(null,message,url,line,column,error):null);
|
|
134
|
+
if(cljs.core.not(res)){
|
|
135
|
+
var temp__5804__auto__ = devtools.hints.error_object_sense(error);
|
|
136
|
+
if(cljs.core.truth_(temp__5804__auto__)){
|
|
137
|
+
var sense = temp__5804__auto__;
|
|
138
|
+
devtools.context.get_console.call(null).info("A sanity hint for incoming uncaught error:\n",sense);
|
|
139
|
+
|
|
140
|
+
return false;
|
|
141
|
+
} else {
|
|
142
|
+
return null;
|
|
143
|
+
}
|
|
144
|
+
} else {
|
|
145
|
+
return true;
|
|
146
|
+
}
|
|
147
|
+
});
|
|
148
|
+
devtools.hints.install_type_error_enhancer = (function devtools$hints$install_type_error_enhancer(){
|
|
149
|
+
(devtools.hints._STAR_original_global_error_handler_STAR_ = devtools.context.get_root.call(null).onerror);
|
|
150
|
+
|
|
151
|
+
(devtools.context.get_root.call(null).onerror = devtools.hints.global_error_handler);
|
|
152
|
+
|
|
153
|
+
var prototype = TypeError.prototype;
|
|
154
|
+
(devtools.hints._STAR_original_type_error_prototype_to_string_STAR_ = prototype.toString);
|
|
155
|
+
|
|
156
|
+
return (prototype.toString = (function (){
|
|
157
|
+
var self = this;
|
|
158
|
+
return devtools.hints.type_error_to_string(self);
|
|
159
|
+
}));
|
|
160
|
+
});
|
|
161
|
+
devtools.hints.installed_QMARK_ = (function devtools$hints$installed_QMARK_(){
|
|
162
|
+
return devtools.hints._STAR_installed_STAR_;
|
|
163
|
+
});
|
|
164
|
+
devtools.hints.install_BANG_ = (function devtools$hints$install_BANG_(){
|
|
165
|
+
if(cljs.core.truth_(devtools.hints._STAR_installed_STAR_)){
|
|
166
|
+
return null;
|
|
167
|
+
} else {
|
|
168
|
+
(devtools.hints._STAR_installed_STAR_ = true);
|
|
169
|
+
|
|
170
|
+
devtools.hints.install_type_error_enhancer();
|
|
171
|
+
|
|
172
|
+
return true;
|
|
173
|
+
}
|
|
174
|
+
});
|
|
175
|
+
devtools.hints.uninstall_BANG_ = (function devtools$hints$uninstall_BANG_(){
|
|
176
|
+
if(cljs.core.truth_(devtools.hints._STAR_installed_STAR_)){
|
|
177
|
+
(devtools.hints._STAR_installed_STAR_ = false);
|
|
178
|
+
|
|
179
|
+
if(cljs.core.truth_(devtools.hints._STAR_original_type_error_prototype_to_string_STAR_)){
|
|
180
|
+
} else {
|
|
181
|
+
throw (new Error("Assert failed: *original-type-error-prototype-to-string*"));
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
(devtools.context.get_root.call(null).onerror = devtools.hints._STAR_original_global_error_handler_STAR_);
|
|
185
|
+
|
|
186
|
+
var prototype = TypeError.prototype;
|
|
187
|
+
return (prototype.toString = devtools.hints._STAR_original_type_error_prototype_to_string_STAR_);
|
|
188
|
+
} else {
|
|
189
|
+
return null;
|
|
190
|
+
}
|
|
191
|
+
});
|
|
192
|
+
|
|
193
|
+
//# sourceMappingURL=devtools.hints.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["devtools/hints.cljs"],"mappings":";;;;;;AAQA,AAEA,kCAAA,lCAAgBA;AAAhB,AAAA;;AA0BA,uCAAA,vCAAeC;AACf,2DAAA,3DAAeC;AACf,qEAAA,rEAAeC;AAEf,AAAKC,kCAAiB,yBAAA,zBAACC;AAIvB,4CAAA,5CAAMC,gGAAuBC;AAA7B,AACE,OAACC,uBAAQJ,gCAAiBG;;AAE5B,4CAAA,5CAAME;AAAN,AACE,IAAAC,qBAAA,AAAAC,gBAAcP;AAAd,AAAA,oBAAAM;AAAA,UAAAA,NAASH;AAAT,AACEA;;AACA,GAAI,QAAAK;AACF,OAACN,0CAAsB,KAAAM;;AADzB;;;;AAKJ,8BAAA,9BAAMC,oEAAcC;AAApB,AACE,GAAI,AAACC,uBAAOD;AAAZ;;AAAqBA;;;AAEvB,6BAAA,7BAAME,kEAAaC;AAAnB,AACE,IAAMC,MAAI,KAAAC;AAAV,AACE,SAAA,UAAA,nBAAOD,eAAUD;;AACjB,AAAOC;;AACP,OAACL,4BAAa,AAAgBK;;AAElC,4CAAA,5CAAME,gGAA4BC;AAAlC,AACE,IAAMC,SAAO,iBAAAC,mBAAI,oBAAA,pBAACC;AAAL,AAAA,oBAAAD;AAAAA;;AAAwBP;;;AAArC,AACE,QAACM,uCAAAA,8CAAAA,TAAOD,0BAAAA;;AAEZ,0BAAA,1BAAMI,4DAAUC,MAAMC;AAAtB,AACE,QAAgBD,MAAM,eAAA,dAAKC;;AAE7B,gCAAA,hCAAMC,wEAAgBC,QAAQH,MAAMC,YAAYG;AAAhD,AACE,GAAI,EAAI,CAAG,AAACC,gBAAMF,WAASC,iBACnB,GAAK,eAAA,dAAMH;AACjBE;;AACA,IAAMG,mBAAiB,eAAA,dAAKL;IACtBM,YAAU,AAACR,wBAASC,MAAMM;IAC1BE,cAAY,wDAAA,XAAKD,4DAAeJ;AAFtC,AAGE,QAACD,8DAAAA,6GAAAA,jDAAeM,yFAAAA,7EAAYR,yFAAAA,nFAAMM,yFAAAA,xEAAiBF,yFAAAA;;;AAEzD,4CAAA,5CAAMK,gGAA4BC,KAAKC;AAAvC,AACE,IAAMC,IAAE,UAAA,TAAKD;IACPE,SAAO,eAAA,fAAYH,mBAAOE;IAC1BE,UAAQ,AAAYJ,eAAKE;AAF/B,AAGE,4DAAA,RAAKC,mFAA4BC;;AAErC,8CAAA,9CAAMC,oGAA8BC,KAAKf,YAAYU;AAArD,AACE,IAAMR,UAAQ,AAACT,0CAA2BsB;IACpChB,QAAM,cAAA,dAAQG;IACdO,OAAK,AAACX,wBAASC,MAAMC;IACrBgB,cAAY,AAACR,0CAA2BC,KAAKC;IAC7CP,aAAW,iBAAAP,mBAAI,oBAAA,pBAACC;AAAL,AAAA,oBAAAD;AAAAA;;AAAA;;;AAJjB,AAKE,OAACK,8BAAee,YAAYjB,MAAMC,YAAYG;;AAElD,yCAAA,zCAAMc,0FAAyBC,QAAQH,KAAKf,YAAYU;AAAxD,AACE,oBACE,qBAAA,rBAACS,wDAA+CD;AAAS,OAACJ,4CAA6BC,KAAKf,YAAYU;;AAD1G,AAAA;;;;AAIF,kCAAA,lCAAMU,4EAAkBC;AAAxB,AACE,sEAAA,sDAAA,2CAAA,gEAAA,iEAAA,2CAAA,iEAAA,7YAACC,kGAA+BD;;AAElC,oCAAA,pCAAME,gFAAoBC;AAA1B,AACE,IAAA,AACE,IAAMH,qBAAmB,AAASG;IAC5BK,cAAY,AAACT,gCAAiBC;IAC9BS,WAAS,AAACC,iBAAOF;IAFvBH,YAGiCI;IAHjCJ,gBAAA,AAAAC,4BAAAD;WAAA,AAAAE,4CAAAF,cAAA,jEAGcX;WAHd,AAAAa,4CAAAF,cAAA,jEAGmBjB;aAHnB,AAAAmB,4CAAAF,cAAA,nEAGwBhB;AAHxB,AAIE,OAACO,uCAAwB,AAAWO,cAAOT,KAAKN,KAAKC;eALzD,SAAAe,LAMkBO;AANlB,AAAA;;AAUF,sCAAA,tCAAMC,oFAAsBC;AAA5B,AACE,IAAAnD,0BAAqB,AAACD;AAAtB,AAAA,oBAAAC;AAAA,uBAAAA,nBAASoD;AAAT,AACE,oBAAU,AAAMA,qBAAYD;AAA5B;AAAA,AACE,AAAMC,qBAAYD;;AAClB,IAAAE,0BAAiB,AAACb,kCAAmBW;AAArC,AAAA,oBAAAE;AAAA,AAAA,iBAAAA,bAAWC;AAAX,AACE,CAAM,AAAWH,eAAM,2DAAA,dAAK,AAAWA,+EAA2BG;;AADpE;;;AAHJ;;AAKA,OAAO7D,wEAA0C0D;;AAEnD,sCAAA,tCAAMI,oFAAsBpB,QAAQ5B,IAAImB,KAAKC,OAAOc;AAApD,AACE,IAAMe,MAAI,8KAAA,5JAAIhE,0DACF,AAACA,mEAAgC2C,QAAQ5B,IAAImB,KAAKC,OAAOc;AADrE,AAEE,GAAA,AAAAgB,cAAQD;AACN,IAAAH,qBAAiB,AAACb,kCAAmBC;AAArC,AAAA,oBAAAY;AAAA,AAAA,YAAAA,RAAWC;AAAX,AACE,6CAAA,7CAAO,AAACI,4FAAoEJ;;AAD9E;;AAAA;;;AADF;;;AAMJ,6CAAA,7CAAMK;AAAN,AACE,CAAMnE,2DAAgC,AAAW,AAACoE;;AAClD,CAAM,AAAW,AAACA,+CAAmBL;;AACrC,IAAMM,YAAU,AAAaC;AAA7B,AACE,CAAMrE,qEAA0C,AAAYoE;;AAC5D,6BAAA,rBAAM,AAAYA;AAAlB,AAA8B,WAAA,PAASV;AAAT,AAAc,OAACD,oCAAqBC;;;AAItE,kCAAA,lCAAMY;AAAN,AACExE;;AAEF,+BAAA,/BAAMyE;AAAN,AACE,oBAAUzE;AAAV;;AAAA,AACE,wCAAA,vCAAMA;;AACN,AAACoE;;AAFH;;;AAKF,iCAAA,jCAAMM;AAAN,AACE,oBAAM1E;AAAN,AACE,wCAAA,vCAAMA;;AACN,oBAAQE;AAAR;AAAA,AAAA,MAAA,KAAAyE,MAAA;;;AACA,CAAM,AAAW,AAACN,+CAAmBpE;;AACrC,IAAMqE,YAAU,AAAaC;AAA7B,AACE,QAAM,AAAYD,qBAAWpE;;AALjC","names":["devtools.hints/available?","devtools.hints/*installed*","devtools.hints/*original-global-error-handler*","devtools.hints/*original-type-error-prototype-to-string*","devtools.hints/processed-errors","cljs.core/volatile!","devtools.hints/set-processed-errors!","val","cljs.core/vreset!","devtools.hints/get-processed-errors!","temp__5802__auto__","cljs.core/deref","js/WeakSet","devtools.hints/empty-as-nil","str","cljs.core/empty?","devtools.hints/ajax-reader","url","xhr","js/XMLHttpRequest","devtools.hints/retrieve-javascript-source","where","reader","or__5002__auto__","devtools.prefs/pref","devtools.hints/get-line","lines","line-number","devtools.hints/extend-content","content","min-length","cljs.core/count","prev-line-number","prev-line","new-content","devtools.hints/mark-call-closed-at-column","line","column","n","prefix","postfix","devtools.hints/mark-null-call-site-location","file","marked-line","devtools.hints/make-sense-of-the-error","message","cljs.core/re-matches","devtools.hints/parse-stacktrace","native-stack-trace","cljs.stacktrace/parse-stacktrace","devtools.hints/error-object-sense","error","e8992","map__8993","cljs.core/--destructure-map","cljs.core.get","stack-trace","top-item","cljs.core/second","_e","devtools.hints/type-error-to-string","self","seen-errors","temp__5804__auto__","sense","devtools.hints/global-error-handler","res","cljs.core/not","devtools.context/get-console","devtools.hints/install-type-error-enhancer","devtools.context/get-root","prototype","js/TypeError","devtools.hints/installed?","devtools.hints/install!","devtools.hints/uninstall!","js/Error"],"sourcesContent":["(ns devtools.hints\n (:require-macros [devtools.compiler :refer [check-compiler-options!]]\n [devtools.oops :refer [unchecked-aget]])\n (:require [devtools.prefs :refer [pref]]\n [devtools.context :as context]\n [cljs.stacktrace :as stacktrace]))\n\n; cljs.stacktrace does not play well in :advanced mode optimizations, see https://github.com/binaryage/cljs-devtools/issues/37\n(check-compiler-options!)\n\n(defn ^:dynamic available? []\n true)\n\n; Question: How much time have you lost staring at \"Cannot read property 'call' of null\" kind of errors?\n;\n; ---------------------------------------------------------------------------------------------------------------------------\n;\n; The idea is to try enhance error object's .stack and .message fields with additional info about\n; the call site causing null type error. With optimizations :none the name of the null call site can be seen.\n;\n; The enhancing handler function tries to:\n; 1) parse error's stack trace.\n; 2) look original javascript source file up (via sync AJAX fetch by default).\n; 3) locate reported line and column.\n; 4) presents problematic line with a column hint as addition to .stack or .message strings.\n\n; Technically the trick here is to override TypeError.prototype.toString\n; and global window.onerror handler to enhance uncaught errors.\n;\n; With that we should handle two situations:\n; 1) either error gets printed (typically in user's catch via console), so patched toString() method gets called.\n; 2) or it is uncaught and our global error handler should take care of possible enhancement\n; before devtools present it to the user themselves.\n;\n; note: Tested under Chrome only\n\n(def ^:dynamic *installed* false)\n(def ^:dynamic *original-global-error-handler* nil)\n(def ^:dynamic *original-type-error-prototype-to-string* nil)\n\n(def processed-errors (volatile! nil))\n\n; ---------------------------------------------------------------------------------------------------------------------------\n\n(defn set-processed-errors! [val]\n (vreset! processed-errors val))\n\n(defn get-processed-errors! []\n (if-let [val @processed-errors]\n val\n (if (exists? js/WeakSet)\n (set-processed-errors! (js/WeakSet.)))))\n\n; ---------------------------------------------------------------------------------------------------------------------------\n\n(defn empty-as-nil [str]\n (if (empty? str) nil str))\n\n(defn ajax-reader [url]\n (let [xhr (js/XMLHttpRequest.)]\n (.open xhr \"GET\" url false)\n (.send xhr)\n (empty-as-nil (.-responseText xhr))))\n\n(defn retrieve-javascript-source [where]\n (let [reader (or (pref :file-reader) ajax-reader)]\n (reader where)))\n\n(defn get-line [lines line-number]\n (unchecked-aget lines (dec line-number))) ; line numbering is 1-based\n\n(defn extend-content [content lines line-number min-length]\n (if (or (> (count content) min-length)\n (not (pos? line-number)))\n content\n (let [prev-line-number (dec line-number)\n prev-line (get-line lines prev-line-number)\n new-content (str prev-line \"\\n\" content)]\n (extend-content new-content lines prev-line-number min-length))))\n\n(defn mark-call-closed-at-column [line column]\n (let [n (dec column) ; column number is 1-based\n prefix (.substring line 0 n)\n postfix (.substring line n)]\n (str prefix \" <<< \u2622 NULL \u2622 <<< \" postfix)))\n\n(defn mark-null-call-site-location [file line-number column]\n (let [content (retrieve-javascript-source file)\n lines (.split content \"\\n\")\n line (get-line lines line-number)\n marked-line (mark-call-closed-at-column line column)\n min-length (or (pref :sanity-hint-min-length) 128)]\n (extend-content marked-line lines line-number min-length)))\n\n(defn make-sense-of-the-error [message file line-number column]\n (cond\n (re-matches #\"Cannot read property 'call' of.*\" message) (mark-null-call-site-location file line-number column)\n :else nil))\n\n(defn parse-stacktrace [native-stack-trace]\n (stacktrace/parse-stacktrace {} native-stack-trace {:ua-product :chrome} {:asset-root \"\"}))\n\n(defn error-object-sense [error]\n (try\n (let [native-stack-trace (.-stack error)\n stack-trace (parse-stacktrace native-stack-trace)\n top-item (second stack-trace) ; first line is just an error message\n {:keys [file line column]} top-item]\n (make-sense-of-the-error (.-message error) file line column))\n (catch :default _e\n ; silently fail in case of troubles parsing stack trace\n false)))\n\n(defn type-error-to-string [self]\n (if-let [seen-errors (get-processed-errors!)]\n (when-not (.has seen-errors self)\n (.add seen-errors self)\n (when-let [sense (error-object-sense self)]\n (set! (.-message self) (str (.-message self) \", a sanity hint:\\n\" sense))))) ; this is dirty, patch message field before it gets used\n (.call *original-type-error-prototype-to-string* self))\n\n(defn global-error-handler [message url line column error]\n (let [res (if *original-global-error-handler*\n (*original-global-error-handler* message url line column error))]\n (if-not res\n (when-let [sense (error-object-sense error)]\n (.info (context/get-console) \"A sanity hint for incoming uncaught error:\\n\" sense)\n false)\n true)))\n\n(defn install-type-error-enhancer []\n (set! *original-global-error-handler* (.-onerror (context/get-root)))\n (set! (.-onerror (context/get-root)) global-error-handler)\n (let [prototype (.-prototype js/TypeError)]\n (set! *original-type-error-prototype-to-string* (.-toString prototype))\n (set! (.-toString prototype) #(this-as self (type-error-to-string self))))) ; work around http://dev.clojure.org/jira/browse/CLJS-1545\n\n; -- installation -----------------------------------------------------------------------------------------------------------\n\n(defn installed? []\n *installed*)\n\n(defn install! []\n (when-not *installed*\n (set! *installed* true)\n (install-type-error-enhancer)\n true))\n\n(defn uninstall! []\n (when *installed*\n (set! *installed* false)\n (assert *original-type-error-prototype-to-string*)\n (set! (.-onerror (context/get-root)) *original-global-error-handler*)\n (let [prototype (.-prototype js/TypeError)]\n (set! (.-toString prototype) *original-type-error-prototype-to-string*))))\n"],"x_google_ignoreList":[0]}
|