@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.
Files changed (201) hide show
  1. package/dist/cljs-runtime/cljs.core.js +38746 -0
  2. package/dist/cljs-runtime/cljs.core.js.map +1 -0
  3. package/dist/cljs-runtime/cljs.pprint.js +8400 -0
  4. package/dist/cljs-runtime/cljs.pprint.js.map +1 -0
  5. package/dist/cljs-runtime/cljs.stacktrace.js +561 -0
  6. package/dist/cljs-runtime/cljs.stacktrace.js.map +1 -0
  7. package/dist/cljs-runtime/cljs_env.js +1286 -0
  8. package/dist/cljs-runtime/clojure.data.js +295 -0
  9. package/dist/cljs-runtime/clojure.data.js.map +1 -0
  10. package/dist/cljs-runtime/clojure.set.js +382 -0
  11. package/dist/cljs-runtime/clojure.set.js.map +1 -0
  12. package/dist/cljs-runtime/clojure.string.js +480 -0
  13. package/dist/cljs-runtime/clojure.string.js.map +1 -0
  14. package/dist/cljs-runtime/clojure.walk.js +132 -0
  15. package/dist/cljs-runtime/clojure.walk.js.map +1 -0
  16. package/dist/cljs-runtime/devtools.async.js +90 -0
  17. package/dist/cljs-runtime/devtools.async.js.map +1 -0
  18. package/dist/cljs-runtime/devtools.context.js +11 -0
  19. package/dist/cljs-runtime/devtools.context.js.map +1 -0
  20. package/dist/cljs-runtime/devtools.core.js +175 -0
  21. package/dist/cljs-runtime/devtools.core.js.map +1 -0
  22. package/dist/cljs-runtime/devtools.defaults.js +20 -0
  23. package/dist/cljs-runtime/devtools.defaults.js.map +1 -0
  24. package/dist/cljs-runtime/devtools.format.js +631 -0
  25. package/dist/cljs-runtime/devtools.format.js.map +1 -0
  26. package/dist/cljs-runtime/devtools.formatters.budgeting.js +182 -0
  27. package/dist/cljs-runtime/devtools.formatters.budgeting.js.map +1 -0
  28. package/dist/cljs-runtime/devtools.formatters.core.js +220 -0
  29. package/dist/cljs-runtime/devtools.formatters.core.js.map +1 -0
  30. package/dist/cljs-runtime/devtools.formatters.helpers.js +228 -0
  31. package/dist/cljs-runtime/devtools.formatters.helpers.js.map +1 -0
  32. package/dist/cljs-runtime/devtools.formatters.js +261 -0
  33. package/dist/cljs-runtime/devtools.formatters.js.map +1 -0
  34. package/dist/cljs-runtime/devtools.formatters.markup.js +1174 -0
  35. package/dist/cljs-runtime/devtools.formatters.markup.js.map +1 -0
  36. package/dist/cljs-runtime/devtools.formatters.printing.js +313 -0
  37. package/dist/cljs-runtime/devtools.formatters.printing.js.map +1 -0
  38. package/dist/cljs-runtime/devtools.formatters.state.js +325 -0
  39. package/dist/cljs-runtime/devtools.formatters.state.js.map +1 -0
  40. package/dist/cljs-runtime/devtools.formatters.templating.js +666 -0
  41. package/dist/cljs-runtime/devtools.formatters.templating.js.map +1 -0
  42. package/dist/cljs-runtime/devtools.hints.js +193 -0
  43. package/dist/cljs-runtime/devtools.hints.js.map +1 -0
  44. package/dist/cljs-runtime/devtools.munging.js +1058 -0
  45. package/dist/cljs-runtime/devtools.munging.js.map +1 -0
  46. package/dist/cljs-runtime/devtools.prefs.js +87 -0
  47. package/dist/cljs-runtime/devtools.prefs.js.map +1 -0
  48. package/dist/cljs-runtime/devtools.preload.js +11 -0
  49. package/dist/cljs-runtime/devtools.preload.js.map +1 -0
  50. package/dist/cljs-runtime/devtools.protocols.js +98 -0
  51. package/dist/cljs-runtime/devtools.protocols.js.map +1 -0
  52. package/dist/cljs-runtime/devtools.reporter.js +81 -0
  53. package/dist/cljs-runtime/devtools.reporter.js.map +1 -0
  54. package/dist/cljs-runtime/devtools.toolbox.js +141 -0
  55. package/dist/cljs-runtime/devtools.toolbox.js.map +1 -0
  56. package/dist/cljs-runtime/devtools.util.js +517 -0
  57. package/dist/cljs-runtime/devtools.util.js.map +1 -0
  58. package/dist/cljs-runtime/devtools.version.js +9 -0
  59. package/dist/cljs-runtime/devtools.version.js.map +1 -0
  60. package/dist/cljs-runtime/goog.array.array.js +659 -0
  61. package/dist/cljs-runtime/goog.array.array.js.map +9 -0
  62. package/dist/cljs-runtime/goog.asserts.asserts.js +133 -0
  63. package/dist/cljs-runtime/goog.asserts.asserts.js.map +9 -0
  64. package/dist/cljs-runtime/goog.asserts.dom.js +90 -0
  65. package/dist/cljs-runtime/goog.asserts.dom.js.map +9 -0
  66. package/dist/cljs-runtime/goog.async.nexttick.js +93 -0
  67. package/dist/cljs-runtime/goog.async.nexttick.js.map +9 -0
  68. package/dist/cljs-runtime/goog.base.js +1261 -0
  69. package/dist/cljs-runtime/goog.base.js.map +9 -0
  70. package/dist/cljs-runtime/goog.collections.maps.js +82 -0
  71. package/dist/cljs-runtime/goog.collections.maps.js.map +9 -0
  72. package/dist/cljs-runtime/goog.debug.entrypointregistry.js +44 -0
  73. package/dist/cljs-runtime/goog.debug.entrypointregistry.js.map +9 -0
  74. package/dist/cljs-runtime/goog.debug.error.js +30 -0
  75. package/dist/cljs-runtime/goog.debug.error.js.map +9 -0
  76. package/dist/cljs-runtime/goog.dom.asserts.js +40 -0
  77. package/dist/cljs-runtime/goog.dom.asserts.js.map +9 -0
  78. package/dist/cljs-runtime/goog.dom.browserfeature.js +21 -0
  79. package/dist/cljs-runtime/goog.dom.browserfeature.js.map +9 -0
  80. package/dist/cljs-runtime/goog.dom.dom.js +1087 -0
  81. package/dist/cljs-runtime/goog.dom.dom.js.map +9 -0
  82. package/dist/cljs-runtime/goog.dom.element.js +69 -0
  83. package/dist/cljs-runtime/goog.dom.element.js.map +9 -0
  84. package/dist/cljs-runtime/goog.dom.htmlelement.js +7 -0
  85. package/dist/cljs-runtime/goog.dom.htmlelement.js.map +9 -0
  86. package/dist/cljs-runtime/goog.dom.nodetype.js +6 -0
  87. package/dist/cljs-runtime/goog.dom.nodetype.js.map +9 -0
  88. package/dist/cljs-runtime/goog.dom.safe.js +277 -0
  89. package/dist/cljs-runtime/goog.dom.safe.js.map +9 -0
  90. package/dist/cljs-runtime/goog.dom.tagname.js +147 -0
  91. package/dist/cljs-runtime/goog.dom.tagname.js.map +9 -0
  92. package/dist/cljs-runtime/goog.dom.tags.js +10 -0
  93. package/dist/cljs-runtime/goog.dom.tags.js.map +9 -0
  94. package/dist/cljs-runtime/goog.flags.flags.js +12 -0
  95. package/dist/cljs-runtime/goog.flags.flags.js.map +9 -0
  96. package/dist/cljs-runtime/goog.fs.blob.js +38 -0
  97. package/dist/cljs-runtime/goog.fs.blob.js.map +9 -0
  98. package/dist/cljs-runtime/goog.fs.url.js +37 -0
  99. package/dist/cljs-runtime/goog.fs.url.js.map +9 -0
  100. package/dist/cljs-runtime/goog.functions.functions.js +211 -0
  101. package/dist/cljs-runtime/goog.functions.functions.js.map +9 -0
  102. package/dist/cljs-runtime/goog.html.safehtml.js +321 -0
  103. package/dist/cljs-runtime/goog.html.safehtml.js.map +9 -0
  104. package/dist/cljs-runtime/goog.html.safescript.js +65 -0
  105. package/dist/cljs-runtime/goog.html.safescript.js.map +9 -0
  106. package/dist/cljs-runtime/goog.html.safestyle.js +175 -0
  107. package/dist/cljs-runtime/goog.html.safestyle.js.map +9 -0
  108. package/dist/cljs-runtime/goog.html.safestylesheet.js +99 -0
  109. package/dist/cljs-runtime/goog.html.safestylesheet.js.map +9 -0
  110. package/dist/cljs-runtime/goog.html.safeurl.js +231 -0
  111. package/dist/cljs-runtime/goog.html.safeurl.js.map +9 -0
  112. package/dist/cljs-runtime/goog.html.trustedresourceurl.js +123 -0
  113. package/dist/cljs-runtime/goog.html.trustedresourceurl.js.map +9 -0
  114. package/dist/cljs-runtime/goog.html.trustedtypes.js +16 -0
  115. package/dist/cljs-runtime/goog.html.trustedtypes.js.map +9 -0
  116. package/dist/cljs-runtime/goog.html.uncheckedconversions.js +52 -0
  117. package/dist/cljs-runtime/goog.html.uncheckedconversions.js.map +9 -0
  118. package/dist/cljs-runtime/goog.labs.useragent.browser.js +352 -0
  119. package/dist/cljs-runtime/goog.labs.useragent.browser.js.map +9 -0
  120. package/dist/cljs-runtime/goog.labs.useragent.engine.js +73 -0
  121. package/dist/cljs-runtime/goog.labs.useragent.engine.js.map +9 -0
  122. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +14 -0
  123. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +9 -0
  124. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +74 -0
  125. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +9 -0
  126. package/dist/cljs-runtime/goog.labs.useragent.platform.js +147 -0
  127. package/dist/cljs-runtime/goog.labs.useragent.platform.js.map +9 -0
  128. package/dist/cljs-runtime/goog.labs.useragent.useragent.js +21 -0
  129. package/dist/cljs-runtime/goog.labs.useragent.useragent.js.map +9 -0
  130. package/dist/cljs-runtime/goog.labs.useragent.util.js +81 -0
  131. package/dist/cljs-runtime/goog.labs.useragent.util.js.map +9 -0
  132. package/dist/cljs-runtime/goog.math.coordinate.js +97 -0
  133. package/dist/cljs-runtime/goog.math.coordinate.js.map +9 -0
  134. package/dist/cljs-runtime/goog.math.integer.js +445 -0
  135. package/dist/cljs-runtime/goog.math.integer.js.map +9 -0
  136. package/dist/cljs-runtime/goog.math.long.js +437 -0
  137. package/dist/cljs-runtime/goog.math.long.js.map +9 -0
  138. package/dist/cljs-runtime/goog.math.math.js +158 -0
  139. package/dist/cljs-runtime/goog.math.math.js.map +9 -0
  140. package/dist/cljs-runtime/goog.math.size.js +76 -0
  141. package/dist/cljs-runtime/goog.math.size.js.map +9 -0
  142. package/dist/cljs-runtime/goog.object.object.js +284 -0
  143. package/dist/cljs-runtime/goog.object.object.js.map +9 -0
  144. package/dist/cljs-runtime/goog.reflect.reflect.js +32 -0
  145. package/dist/cljs-runtime/goog.reflect.reflect.js.map +9 -0
  146. package/dist/cljs-runtime/goog.string.const.js +35 -0
  147. package/dist/cljs-runtime/goog.string.const.js.map +9 -0
  148. package/dist/cljs-runtime/goog.string.internal.js +119 -0
  149. package/dist/cljs-runtime/goog.string.internal.js.map +9 -0
  150. package/dist/cljs-runtime/goog.string.string.js +462 -0
  151. package/dist/cljs-runtime/goog.string.string.js.map +9 -0
  152. package/dist/cljs-runtime/goog.string.stringbuffer.js +32 -0
  153. package/dist/cljs-runtime/goog.string.stringbuffer.js.map +9 -0
  154. package/dist/cljs-runtime/goog.string.typedstring.js +9 -0
  155. package/dist/cljs-runtime/goog.string.typedstring.js.map +9 -0
  156. package/dist/cljs-runtime/goog.structs.structs.js +199 -0
  157. package/dist/cljs-runtime/goog.structs.structs.js.map +9 -0
  158. package/dist/cljs-runtime/goog.uri.uri.js +628 -0
  159. package/dist/cljs-runtime/goog.uri.uri.js.map +9 -0
  160. package/dist/cljs-runtime/goog.uri.utils.js +326 -0
  161. package/dist/cljs-runtime/goog.uri.utils.js.map +9 -0
  162. package/dist/cljs-runtime/goog.useragent.useragent.js +139 -0
  163. package/dist/cljs-runtime/goog.useragent.useragent.js.map +9 -0
  164. package/dist/cljs-runtime/iris_layout.components.entity_card_group.js +202 -0
  165. package/dist/cljs-runtime/iris_layout.components.entity_card_group.js.map +1 -0
  166. package/dist/cljs-runtime/iris_layout.components.entity_tile.js +295 -0
  167. package/dist/cljs-runtime/iris_layout.components.entity_tile.js.map +1 -0
  168. package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js +33 -0
  169. package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js.map +1 -0
  170. package/dist/cljs-runtime/iris_layout.components.resizer.js +91 -0
  171. package/dist/cljs-runtime/iris_layout.components.resizer.js.map +1 -0
  172. package/dist/cljs-runtime/iris_layout.components.touch_drag.js +399 -0
  173. package/dist/cljs-runtime/iris_layout.components.touch_drag.js.map +1 -0
  174. package/dist/cljs-runtime/iris_layout.core.js +1372 -0
  175. package/dist/cljs-runtime/iris_layout.core.js.map +1 -0
  176. package/dist/cljs-runtime/iris_layout.layout.js +328 -0
  177. package/dist/cljs-runtime/iris_layout.layout.js.map +1 -0
  178. package/dist/cljs-runtime/reagent.core.js +993 -0
  179. package/dist/cljs-runtime/reagent.core.js.map +1 -0
  180. package/dist/cljs-runtime/reagent.debug.js +75 -0
  181. package/dist/cljs-runtime/reagent.debug.js.map +1 -0
  182. package/dist/cljs-runtime/reagent.impl.batching.js +270 -0
  183. package/dist/cljs-runtime/reagent.impl.batching.js.map +1 -0
  184. package/dist/cljs-runtime/reagent.impl.component.js +758 -0
  185. package/dist/cljs-runtime/reagent.impl.component.js.map +1 -0
  186. package/dist/cljs-runtime/reagent.impl.input.js +175 -0
  187. package/dist/cljs-runtime/reagent.impl.input.js.map +1 -0
  188. package/dist/cljs-runtime/reagent.impl.protocols.js +99 -0
  189. package/dist/cljs-runtime/reagent.impl.protocols.js.map +1 -0
  190. package/dist/cljs-runtime/reagent.impl.template.js +660 -0
  191. package/dist/cljs-runtime/reagent.impl.template.js.map +1 -0
  192. package/dist/cljs-runtime/reagent.impl.util.js +748 -0
  193. package/dist/cljs-runtime/reagent.impl.util.js.map +1 -0
  194. package/dist/cljs-runtime/reagent.ratom.js +1668 -0
  195. package/dist/cljs-runtime/reagent.ratom.js.map +1 -0
  196. package/dist/cljs-runtime/shadow.esm.esm_import$react.js +5 -0
  197. package/dist/cljs-runtime/shadow.module.iris-layout.append.js +2 -0
  198. package/dist/cljs-runtime/shadow.module.iris-layout.prepend.js +2 -0
  199. package/dist/iris-layout.js +375 -355
  200. package/dist/styles.css +287 -9
  201. package/package.json +1 -1
@@ -0,0 +1,1372 @@
1
+ import "./cljs_env.js";
2
+ import "./cljs.core.js";
3
+ import "./reagent.core.js";
4
+ import "./iris_layout.layout.js";
5
+ import "./iris_layout.components.entity_tile_group.js";
6
+ import "./iris_layout.components.entity_card_group.js";
7
+ import "./iris_layout.components.entity_tile.js";
8
+ import "./iris_layout.components.touch_drag.js";
9
+ goog.provide('iris_layout.core');
10
+ iris_layout.core.generate_id = (function iris_layout$core$generate_id(){
11
+ return ["iris-",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cljs.core.random_uuid())].join('');
12
+ });
13
+ /**
14
+ * Convert a JS layout object to a CLJS layout map.
15
+ * Handles recursive conversion of the tree structure.
16
+ * JS keys: type, id, direction, ratio, children, entityId
17
+ * CLJS keys: :type, :id, :direction, :ratio, :children, :entity-id
18
+ */
19
+ iris_layout.core.js__GT_layout = (function iris_layout$core$js__GT_layout(js_obj){
20
+ if(cljs.core.truth_(js_obj)){
21
+ var obj = cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(js_obj);
22
+ var G__6894 = new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"type","type",1174270348),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"type")),new cljs.core.Keyword(null,"id","id",-1388402092),cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"id")], null);
23
+ var G__6894__$1 = (cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"direction"))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6894,new cljs.core.Keyword(null,"direction","direction",-633359395),cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"direction"))):G__6894);
24
+ var G__6894__$2 = (cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"ratio"))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6894__$1,new cljs.core.Keyword(null,"ratio","ratio",-926560044),cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"ratio")):G__6894__$1);
25
+ var G__6894__$3 = (cljs.core.truth_(cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"children"))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6894__$2,new cljs.core.Keyword(null,"children","children",-940561982),cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(iris_layout.core.js__GT_layout,cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"children"))):G__6894__$2);
26
+ if(cljs.core.truth_((function (){var or__5002__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"entityId");
27
+ if(cljs.core.truth_(or__5002__auto__)){
28
+ return or__5002__auto__;
29
+ } else {
30
+ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"entity-id");
31
+ }
32
+ })())){
33
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6894__$3,new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),(function (){var or__5002__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"entityId");
34
+ if(cljs.core.truth_(or__5002__auto__)){
35
+ return or__5002__auto__;
36
+ } else {
37
+ return cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"entity-id");
38
+ }
39
+ })());
40
+ } else {
41
+ return G__6894__$3;
42
+ }
43
+ } else {
44
+ return null;
45
+ }
46
+ });
47
+ /**
48
+ * Convert a CLJS layout map to a JS object.
49
+ * Inverse of js->layout.
50
+ */
51
+ iris_layout.core.layout__GT_js = (function iris_layout$core$layout__GT_js(layout){
52
+ if(cljs.core.truth_(layout)){
53
+ return cljs.core.clj__GT_js((function (){var G__6895 = new cljs.core.PersistentArrayMap(null, 2, ["type",cljs.core.name(new cljs.core.Keyword(null,"type","type",1174270348).cljs$core$IFn$_invoke$arity$1(layout)),"id",new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(layout)], null);
54
+ var G__6895__$1 = (cljs.core.truth_(new cljs.core.Keyword(null,"direction","direction",-633359395).cljs$core$IFn$_invoke$arity$1(layout))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6895,"direction",cljs.core.name(new cljs.core.Keyword(null,"direction","direction",-633359395).cljs$core$IFn$_invoke$arity$1(layout))):G__6895);
55
+ var G__6895__$2 = (cljs.core.truth_(new cljs.core.Keyword(null,"ratio","ratio",-926560044).cljs$core$IFn$_invoke$arity$1(layout))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6895__$1,"ratio",new cljs.core.Keyword(null,"ratio","ratio",-926560044).cljs$core$IFn$_invoke$arity$1(layout)):G__6895__$1);
56
+ var G__6895__$3 = (cljs.core.truth_(new cljs.core.Keyword(null,"children","children",-940561982).cljs$core$IFn$_invoke$arity$1(layout))?cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6895__$2,"children",cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(iris_layout.core.layout__GT_js,new cljs.core.Keyword(null,"children","children",-940561982).cljs$core$IFn$_invoke$arity$1(layout))):G__6895__$2);
57
+ if(cljs.core.truth_(new cljs.core.Keyword(null,"entity-id","entity-id",1485898093).cljs$core$IFn$_invoke$arity$1(layout))){
58
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(G__6895__$3,"entityId",new cljs.core.Keyword(null,"entity-id","entity-id",1485898093).cljs$core$IFn$_invoke$arity$1(layout));
59
+ } else {
60
+ return G__6895__$3;
61
+ }
62
+ })());
63
+ } else {
64
+ return null;
65
+ }
66
+ });
67
+ /**
68
+ * Convert a JS entities object to a CLJS map.
69
+ * Top-level keys stay as strings (entity IDs), nested keys are keywordized.
70
+ */
71
+ iris_layout.core.js__GT_entities = (function iris_layout$core$js__GT_entities(js_obj){
72
+ if(cljs.core.truth_(js_obj)){
73
+ var obj = cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(js_obj);
74
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p__6896){
75
+ var vec__6897 = p__6896;
76
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6897,(0),null);
77
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6897,(1),null);
78
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,((cljs.core.map_QMARK_(v))?cljs.core.into.cljs$core$IFn$_invoke$arity$2(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (p__6900){
79
+ var vec__6901 = p__6900;
80
+ var k2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6901,(0),null);
81
+ var v2 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6901,(1),null);
82
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.keyword.cljs$core$IFn$_invoke$arity$1(k2),v2], null);
83
+ }),v)):v)], null);
84
+ })),obj);
85
+ } else {
86
+ return null;
87
+ }
88
+ });
89
+ /**
90
+ * Convert a JS stages array to CLJS vector of stage maps.
91
+ */
92
+ iris_layout.core.js__GT_stages = (function iris_layout$core$js__GT_stages(js_arr){
93
+ if(cljs.core.truth_(js_arr)){
94
+ return cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (s){
95
+ var obj = cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(s);
96
+ return new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"id","id",-1388402092),cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"id"),new cljs.core.Keyword(null,"label","label",1718410804),cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"label"),new cljs.core.Keyword(null,"layout","layout",-2120940921),iris_layout.core.js__GT_layout(cljs.core.get.cljs$core$IFn$_invoke$arity$2(obj,"layout"))], null);
97
+ }),js_arr);
98
+ } else {
99
+ return null;
100
+ }
101
+ });
102
+ /**
103
+ * Convert CLJS stages vector to JS array.
104
+ */
105
+ iris_layout.core.stages__GT_js = (function iris_layout$core$stages__GT_js(stages){
106
+ return cljs.core.clj__GT_js(cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (s){
107
+ return new cljs.core.PersistentArrayMap(null, 3, ["id",new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),"label",new cljs.core.Keyword(null,"label","label",1718410804).cljs$core$IFn$_invoke$arity$1(s),"layout",iris_layout.core.layout__GT_js(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(s))], null);
108
+ }),stages));
109
+ });
110
+ /**
111
+ * A single layout stage within the Body.
112
+ *
113
+ * Manages drag-drop split operations:
114
+ * - Sidebar drags: adds entity to layout via split
115
+ * - Tile rearranges: removes entity from source, splits at target
116
+ *
117
+ * Props:
118
+ * :layout - layout tree (CLJS map)
119
+ * :entities - entity data map
120
+ * :render-entity-tile - React component for tile content
121
+ * :active-entity - focused entity ID
122
+ * :on-layout-change - fn(new-layout) for layout mutations
123
+ * :on-active-entity-change - fn(entity-id) for focus changes
124
+ */
125
+ iris_layout.core.body_stage_component = (function iris_layout$core$body_stage_component(_){
126
+ var props_ref = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);
127
+ var handle_split = (function (tile_id,entity_id,split_direction,source_type,half){
128
+ var map__6904 = cljs.core.deref(props_ref);
129
+ var map__6904__$1 = cljs.core.__destructure_map(map__6904);
130
+ var layout = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6904__$1,new cljs.core.Keyword(null,"layout","layout",-2120940921));
131
+ var on_layout_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6904__$1,new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075));
132
+ var before_QMARK_ = ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(half,new cljs.core.Keyword(null,"left","left",-399115937))) || (cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(half,new cljs.core.Keyword(null,"top","top",-1856271961))));
133
+ var base_layout = ((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(source_type,new cljs.core.Keyword(null,"tile","tile",758132866)))?(function (){var or__5002__auto__ = iris_layout.layout.remove_entity_from_layout(layout,entity_id);
134
+ if(cljs.core.truth_(or__5002__auto__)){
135
+ return or__5002__auto__;
136
+ } else {
137
+ return layout;
138
+ }
139
+ })():layout);
140
+ var target_after = iris_layout.layout.find_tile(base_layout,tile_id);
141
+ var new_tile_id = iris_layout.core.generate_id();
142
+ var split_id = iris_layout.core.generate_id();
143
+ var new_layout = (cljs.core.truth_(target_after)?iris_layout.layout.split_tile.cljs$core$IFn$_invoke$arity$variadic(base_layout,tile_id,split_direction,entity_id,new_tile_id,split_id,cljs.core.prim_seq.cljs$core$IFn$_invoke$arity$2([before_QMARK_], 0)):null);
144
+ if(cljs.core.truth_((function (){var and__5000__auto__ = new_layout;
145
+ if(cljs.core.truth_(and__5000__auto__)){
146
+ return on_layout_change;
147
+ } else {
148
+ return and__5000__auto__;
149
+ }
150
+ })())){
151
+ return (on_layout_change.cljs$core$IFn$_invoke$arity$1 ? on_layout_change.cljs$core$IFn$_invoke$arity$1(new_layout) : on_layout_change.call(null,new_layout));
152
+ } else {
153
+ return null;
154
+ }
155
+ });
156
+ var handle_close = (function (entity_id){
157
+ var map__6905 = cljs.core.deref(props_ref);
158
+ var map__6905__$1 = cljs.core.__destructure_map(map__6905);
159
+ var layout = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6905__$1,new cljs.core.Keyword(null,"layout","layout",-2120940921));
160
+ var on_layout_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6905__$1,new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075));
161
+ var on_entity_close = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6905__$1,new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801));
162
+ var new_layout = iris_layout.layout.remove_entity_from_layout(layout,entity_id);
163
+ if(cljs.core.truth_(on_layout_change)){
164
+ (on_layout_change.cljs$core$IFn$_invoke$arity$1 ? on_layout_change.cljs$core$IFn$_invoke$arity$1(new_layout) : on_layout_change.call(null,new_layout));
165
+ } else {
166
+ }
167
+
168
+ if(cljs.core.truth_(on_entity_close)){
169
+ return (on_entity_close.cljs$core$IFn$_invoke$arity$1 ? on_entity_close.cljs$core$IFn$_invoke$arity$1(entity_id) : on_entity_close.call(null,entity_id));
170
+ } else {
171
+ return null;
172
+ }
173
+ });
174
+ var handle_ratio = (function (split_id,new_ratio){
175
+ var map__6906 = cljs.core.deref(props_ref);
176
+ var map__6906__$1 = cljs.core.__destructure_map(map__6906);
177
+ var layout = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6906__$1,new cljs.core.Keyword(null,"layout","layout",-2120940921));
178
+ var on_layout_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6906__$1,new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075));
179
+ var new_layout = iris_layout.layout.update_split_ratio(layout,split_id,new_ratio);
180
+ if(cljs.core.truth_(on_layout_change)){
181
+ return (on_layout_change.cljs$core$IFn$_invoke$arity$1 ? on_layout_change.cljs$core$IFn$_invoke$arity$1(new_layout) : on_layout_change.call(null,new_layout));
182
+ } else {
183
+ return null;
184
+ }
185
+ });
186
+ return (function (p__6907){
187
+ var map__6908 = p__6907;
188
+ var map__6908__$1 = cljs.core.__destructure_map(map__6908);
189
+ var props = map__6908__$1;
190
+ var layout = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6908__$1,new cljs.core.Keyword(null,"layout","layout",-2120940921));
191
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6908__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
192
+ var render_entity_tile = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6908__$1,new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276));
193
+ var active_entity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6908__$1,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476));
194
+ var on_layout_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6908__$1,new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075));
195
+ cljs.core.reset_BANG_(props_ref,props);
196
+
197
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-body-stage","div.iris-body-stage",124680727),new cljs.core.PersistentVector(null, 8, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.components.entity_tile_group.entity_tile_group,layout,handle_split,handle_close,handle_ratio,active_entity,entities,render_entity_tile], null)], null);
198
+ });
199
+ });
200
+ /**
201
+ * Find the index of a stage by ID.
202
+ */
203
+ iris_layout.core.stage_index = (function iris_layout$core$stage_index(stages,id){
204
+ return cljs.core.first(cljs.core.keep_indexed.cljs$core$IFn$_invoke$arity$2((function (i,s){
205
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),id)){
206
+ return i;
207
+ } else {
208
+ return null;
209
+ }
210
+ }),stages));
211
+ });
212
+ /**
213
+ * Force restart a CSS animation on an element.
214
+ * Uses offsetHeight read to force reflow before re-applying animation.
215
+ */
216
+ iris_layout.core.restart_animation_BANG_ = (function iris_layout$core$restart_animation_BANG_(el,anim_name){
217
+ if(cljs.core.truth_(el)){
218
+ (el.style.animation = "none");
219
+
220
+ el.offsetHeight;
221
+
222
+ return (el.style.animation = [cljs.core.str.cljs$core$IFn$_invoke$arity$1(anim_name)," 400ms cubic-bezier(0.22, 1, 0.36, 1) forwards"].join(''));
223
+ } else {
224
+ return null;
225
+ }
226
+ });
227
+ /**
228
+ * Body — the main layout area.
229
+ *
230
+ * Renders all stages stacked on top of each other. The active stage
231
+ * is visible and interactive; others are hidden but stay mounted.
232
+ *
233
+ * Stage transitions use vertical slide animations:
234
+ * - Moving to a higher-indexed stage slides from bottom
235
+ * - Moving to a lower-indexed stage slides from top
236
+ *
237
+ * Props (received as CLJS map after wrapper conversion):
238
+ * :stages - vector of stage maps
239
+ * :active-stage - active stage ID
240
+ * :active-entity - focused entity ID
241
+ * :entities - entity data map
242
+ * :render-entity-tile - React component for tile content
243
+ * :on-stages-change - fn(stages) for layout mutations
244
+ * :on-active-stage-change - fn(stage-id) for stage switches
245
+ * :on-active-entity-change - fn(entity-id) for entity focus
246
+ */
247
+ iris_layout.core.body_component = (function iris_layout$core$body_component(_){
248
+ var prev_stage_id = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);
249
+ var slide_dir = cljs.core.atom.cljs$core$IFn$_invoke$arity$1("right");
250
+ var layer_refs = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(cljs.core.PersistentArrayMap.EMPTY);
251
+ return (function (p__6909){
252
+ var map__6910 = p__6909;
253
+ var map__6910__$1 = cljs.core.__destructure_map(map__6910);
254
+ var on_active_stage_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"on-active-stage-change","on-active-stage-change",-824015015));
255
+ var on_active_entity_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"on-active-entity-change","on-active-entity-change",-895471677));
256
+ var active_entity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476));
257
+ var stages = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"stages","stages",-442109532));
258
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
259
+ var render_entity_tile = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276));
260
+ var active_stage = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"active-stage","active-stage",-1878042516));
261
+ var on_stages_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"on-stages-change","on-stages-change",870787057));
262
+ var on_entity_close = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6910__$1,new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801));
263
+ var prev_idx = iris_layout.core.stage_index(stages,cljs.core.deref(prev_stage_id));
264
+ var curr_idx = iris_layout.core.stage_index(stages,active_stage);
265
+ var changed_QMARK_ = (function (){var and__5000__auto__ = cljs.core.deref(prev_stage_id);
266
+ if(cljs.core.truth_(and__5000__auto__)){
267
+ return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(prev_stage_id),active_stage);
268
+ } else {
269
+ return and__5000__auto__;
270
+ }
271
+ })();
272
+ if(cljs.core.truth_(changed_QMARK_)){
273
+ cljs.core.reset_BANG_(slide_dir,(cljs.core.truth_((function (){var and__5000__auto__ = prev_idx;
274
+ if(cljs.core.truth_(and__5000__auto__)){
275
+ var and__5000__auto____$1 = curr_idx;
276
+ if(cljs.core.truth_(and__5000__auto____$1)){
277
+ return (curr_idx > prev_idx);
278
+ } else {
279
+ return and__5000__auto____$1;
280
+ }
281
+ } else {
282
+ return and__5000__auto__;
283
+ }
284
+ })())?"down":"up"));
285
+ } else {
286
+ }
287
+
288
+ if(cljs.core.truth_(changed_QMARK_)){
289
+ var dir_7016 = cljs.core.deref(slide_dir);
290
+ var target_id_7017 = active_stage;
291
+ reagent.core.after_render((function (){
292
+ var temp__5804__auto__ = cljs.core.get.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(layer_refs),target_id_7017);
293
+ if(cljs.core.truth_(temp__5804__auto__)){
294
+ var el = temp__5804__auto__;
295
+ return iris_layout.core.restart_animation_BANG_(el,((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(dir_7016,"down"))?"iris-slide-from-bottom":"iris-slide-from-top"));
296
+ } else {
297
+ return null;
298
+ }
299
+ }));
300
+ } else {
301
+ }
302
+
303
+ cljs.core.reset_BANG_(prev_stage_id,active_stage);
304
+
305
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-body","div.iris-body",-1554727834),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-body-stack","div.iris-body-stack",-639364468),(function (){var iter__5480__auto__ = (function iris_layout$core$body_component_$_iter__6911(s__6912){
306
+ return (new cljs.core.LazySeq(null,(function (){
307
+ var s__6912__$1 = s__6912;
308
+ while(true){
309
+ var temp__5804__auto__ = cljs.core.seq(s__6912__$1);
310
+ if(temp__5804__auto__){
311
+ var s__6912__$2 = temp__5804__auto__;
312
+ if(cljs.core.chunked_seq_QMARK_(s__6912__$2)){
313
+ var c__5478__auto__ = cljs.core.chunk_first(s__6912__$2);
314
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
315
+ var b__6914 = cljs.core.chunk_buffer(size__5479__auto__);
316
+ if((function (){var i__6913 = (0);
317
+ while(true){
318
+ if((i__6913 < size__5479__auto__)){
319
+ var stage = cljs.core._nth(c__5478__auto__,i__6913);
320
+ cljs.core.chunk_append(b__6914,cljs.core.with_meta(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"class","class",-2030961996),["iris-body-layer",((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),active_stage))?" iris-body-layer-active":null)].join(''),new cljs.core.Keyword(null,"ref","ref",1289896967),((function (i__6913,stage,c__5478__auto__,size__5479__auto__,b__6914,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs){
321
+ return (function (el){
322
+ if(cljs.core.truth_(el)){
323
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(layer_refs,cljs.core.assoc,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),el);
324
+ } else {
325
+ return null;
326
+ }
327
+ });})(i__6913,stage,c__5478__auto__,size__5479__auto__,b__6914,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs))
328
+ ], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.body_stage_component,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"layout","layout",-2120940921),new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(stage),new cljs.core.Keyword(null,"entities","entities",1940967403),entities,new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276),render_entity_tile,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),active_entity,new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075),((function (i__6913,stage,c__5478__auto__,size__5479__auto__,b__6914,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs){
329
+ return (function (new_layout){
330
+ if(cljs.core.truth_(on_stages_change)){
331
+ var updated = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(((function (i__6913,stage,c__5478__auto__,size__5479__auto__,b__6914,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs){
332
+ return (function (s){
333
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage))){
334
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.Keyword(null,"layout","layout",-2120940921),new_layout);
335
+ } else {
336
+ return s;
337
+ }
338
+ });})(i__6913,stage,c__5478__auto__,size__5479__auto__,b__6914,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs))
339
+ ,stages);
340
+ return (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(updated) : on_stages_change.call(null,updated));
341
+ } else {
342
+ return null;
343
+ }
344
+ });})(i__6913,stage,c__5478__auto__,size__5479__auto__,b__6914,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs))
345
+ ,new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),on_entity_close], null)], null)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage)], null)));
346
+
347
+ var G__7018 = (i__6913 + (1));
348
+ i__6913 = G__7018;
349
+ continue;
350
+ } else {
351
+ return true;
352
+ }
353
+ break;
354
+ }
355
+ })()){
356
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6914),iris_layout$core$body_component_$_iter__6911(cljs.core.chunk_rest(s__6912__$2)));
357
+ } else {
358
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6914),null);
359
+ }
360
+ } else {
361
+ var stage = cljs.core.first(s__6912__$2);
362
+ return cljs.core.cons(cljs.core.with_meta(new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1057191632),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"class","class",-2030961996),["iris-body-layer",((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),active_stage))?" iris-body-layer-active":null)].join(''),new cljs.core.Keyword(null,"ref","ref",1289896967),((function (stage,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs){
363
+ return (function (el){
364
+ if(cljs.core.truth_(el)){
365
+ return cljs.core.swap_BANG_.cljs$core$IFn$_invoke$arity$4(layer_refs,cljs.core.assoc,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),el);
366
+ } else {
367
+ return null;
368
+ }
369
+ });})(stage,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs))
370
+ ], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.body_stage_component,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"layout","layout",-2120940921),new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(stage),new cljs.core.Keyword(null,"entities","entities",1940967403),entities,new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276),render_entity_tile,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),active_entity,new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075),((function (stage,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs){
371
+ return (function (new_layout){
372
+ if(cljs.core.truth_(on_stages_change)){
373
+ var updated = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (s){
374
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage))){
375
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.Keyword(null,"layout","layout",-2120940921),new_layout);
376
+ } else {
377
+ return s;
378
+ }
379
+ }),stages);
380
+ return (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(updated) : on_stages_change.call(null,updated));
381
+ } else {
382
+ return null;
383
+ }
384
+ });})(stage,s__6912__$2,temp__5804__auto__,prev_idx,curr_idx,changed_QMARK_,map__6910,map__6910__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,render_entity_tile,active_stage,on_stages_change,on_entity_close,prev_stage_id,slide_dir,layer_refs))
385
+ ,new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),on_entity_close], null)], null)], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage)], null)),iris_layout$core$body_component_$_iter__6911(cljs.core.rest(s__6912__$2)));
386
+ }
387
+ } else {
388
+ return null;
389
+ }
390
+ break;
391
+ }
392
+ }),null,null));
393
+ });
394
+ return iter__5480__auto__(stages);
395
+ })()], null)], null);
396
+ });
397
+ });
398
+ /**
399
+ * Convert [x y] to string key 'x,y'.
400
+ */
401
+ iris_layout.core.pos_key = (function iris_layout$core$pos_key(p__6915){
402
+ var vec__6916 = p__6915;
403
+ var x = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6916,(0),null);
404
+ var y = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6916,(1),null);
405
+ return [cljs.core.str.cljs$core$IFn$_invoke$arity$1(x),",",cljs.core.str.cljs$core$IFn$_invoke$arity$1(y)].join('');
406
+ });
407
+ /**
408
+ * Map a direction keyword to [dx dy].
409
+ */
410
+ iris_layout.core.direction__GT_delta = (function iris_layout$core$direction__GT_delta(dir){
411
+ var G__6919 = dir;
412
+ var G__6919__$1 = (((G__6919 instanceof cljs.core.Keyword))?G__6919.fqn:null);
413
+ switch (G__6919__$1) {
414
+ case "left":
415
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(-1),(0)], null);
416
+
417
+ break;
418
+ case "right":
419
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),(0)], null);
420
+
421
+ break;
422
+ case "up":
423
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),(-1)], null);
424
+
425
+ break;
426
+ case "down":
427
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(0),(1)], null);
428
+
429
+ break;
430
+ default:
431
+ throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__6919__$1)].join('')));
432
+
433
+ }
434
+ });
435
+ /**
436
+ * Compute grid bounds from workspace keys. Returns [cols rows].
437
+ */
438
+ iris_layout.core.grid_dimensions = (function iris_layout$core$grid_dimensions(workspaces){
439
+ if(cljs.core.empty_QMARK_(workspaces)){
440
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(1),(1)], null);
441
+ } else {
442
+ var positions = cljs.core.map.cljs$core$IFn$_invoke$arity$2((function (k){
443
+ var parts = k.split(",");
444
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [parseInt((parts[(0)])),parseInt((parts[(1)]))], null);
445
+ }),cljs.core.keys(workspaces));
446
+ var max_x = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.first,positions));
447
+ var max_y = cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.second,positions));
448
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(max_x + (1)),(max_y + (1))], null);
449
+ }
450
+ });
451
+ /**
452
+ * Check if navigation in a direction is allowed.
453
+ */
454
+ iris_layout.core.can_navigate_QMARK_ = (function iris_layout$core$can_navigate_QMARK_(dir,workspaces,active_position){
455
+ var vec__6920 = iris_layout.core.direction__GT_delta(dir);
456
+ var dx = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6920,(0),null);
457
+ var dy = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6920,(1),null);
458
+ var vec__6923 = active_position;
459
+ var x = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6923,(0),null);
460
+ var y = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6923,(1),null);
461
+ var new_x = (x + dx);
462
+ var new_y = (y + dy);
463
+ var new_key = iris_layout.core.pos_key(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new_x,new_y], null));
464
+ var active_key = iris_layout.core.pos_key(active_position);
465
+ var current_empty_QMARK_ = (new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(workspaces,active_key)) == null);
466
+ var target_exists_QMARK_ = cljs.core.contains_QMARK_(workspaces,new_key);
467
+ var target_has_layout_QMARK_ = (function (){var and__5000__auto__ = target_exists_QMARK_;
468
+ if(and__5000__auto__){
469
+ return new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(workspaces,new_key));
470
+ } else {
471
+ return and__5000__auto__;
472
+ }
473
+ })();
474
+ return (((new_x >= (0))) && ((((new_y >= (0))) && ((!(((current_empty_QMARK_) && (cljs.core.not(target_has_layout_QMARK_)))))))));
475
+ });
476
+ /**
477
+ * Handle navigation in a direction. Creates empty workspace if needed.
478
+ */
479
+ iris_layout.core.handle_grid_nav = (function iris_layout$core$handle_grid_nav(dir,props_ref){
480
+ var map__6926 = cljs.core.deref(props_ref);
481
+ var map__6926__$1 = cljs.core.__destructure_map(map__6926);
482
+ var workspaces = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6926__$1,new cljs.core.Keyword(null,"workspaces","workspaces",168825563));
483
+ var active_position = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6926__$1,new cljs.core.Keyword(null,"active-position","active-position",216604118));
484
+ var on_workspaces_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6926__$1,new cljs.core.Keyword(null,"on-workspaces-change","on-workspaces-change",1243137455));
485
+ var on_active_position_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6926__$1,new cljs.core.Keyword(null,"on-active-position-change","on-active-position-change",2098486068));
486
+ if(iris_layout.core.can_navigate_QMARK_(dir,workspaces,active_position)){
487
+ var vec__6927 = iris_layout.core.direction__GT_delta(dir);
488
+ var dx = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6927,(0),null);
489
+ var dy = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6927,(1),null);
490
+ var vec__6930 = active_position;
491
+ var x = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6930,(0),null);
492
+ var y = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6930,(1),null);
493
+ var new_pos = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [(x + dx),(y + dy)], null);
494
+ var new_key = iris_layout.core.pos_key(new_pos);
495
+ var target_exists_QMARK_ = cljs.core.contains_QMARK_(workspaces,new_key);
496
+ if(cljs.core.truth_((function (){var and__5000__auto__ = (!(target_exists_QMARK_));
497
+ if(and__5000__auto__){
498
+ return on_workspaces_change;
499
+ } else {
500
+ return and__5000__auto__;
501
+ }
502
+ })())){
503
+ var G__6933_7020 = cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(workspaces,new_key,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"layout","layout",-2120940921),null], null));
504
+ (on_workspaces_change.cljs$core$IFn$_invoke$arity$1 ? on_workspaces_change.cljs$core$IFn$_invoke$arity$1(G__6933_7020) : on_workspaces_change.call(null,G__6933_7020));
505
+ } else {
506
+ }
507
+
508
+ if(cljs.core.truth_(on_active_position_change)){
509
+ return (on_active_position_change.cljs$core$IFn$_invoke$arity$1 ? on_active_position_change.cljs$core$IFn$_invoke$arity$1(new_pos) : on_active_position_change.call(null,new_pos));
510
+ } else {
511
+ return null;
512
+ }
513
+ } else {
514
+ return null;
515
+ }
516
+ });
517
+ /**
518
+ * Return hiccup for a navigation edge button.
519
+ * During drag, hovering navigates to adjacent workspace (user keeps dragging to drop there).
520
+ */
521
+ iris_layout.core.nav_edge_hiccup = (function iris_layout$core$nav_edge_hiccup(css_class,arrow,visible_QMARK_,on_click,direction,props_ref,nav_drag_edge){
522
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1057191632),new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"class","class",-2030961996),["iris-nav-edge ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(css_class),(cljs.core.truth_(visible_QMARK_)?null:" iris-nav-hidden"),((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(cljs.core.deref(nav_drag_edge),direction))?" iris-nav-drag-over":null)].join(''),new cljs.core.Keyword(null,"on-click","on-click",1632826543),on_click,new cljs.core.Keyword(null,"on-drag-over","on-drag-over",-93410408),(function (e){
523
+ return e.preventDefault();
524
+ }),new cljs.core.Keyword(null,"on-drag-enter","on-drag-enter",-1692112235),(function (e){
525
+ e.preventDefault();
526
+
527
+ cljs.core.reset_BANG_(nav_drag_edge,direction);
528
+
529
+ return iris_layout.core.handle_grid_nav(direction,props_ref);
530
+ }),new cljs.core.Keyword(null,"on-drag-leave","on-drag-leave",-373180078),(function (e){
531
+ if(cljs.core.truth_(e.currentTarget.contains(e.relatedTarget))){
532
+ return null;
533
+ } else {
534
+ return cljs.core.reset_BANG_(nav_drag_edge,null);
535
+ }
536
+ }),new cljs.core.Keyword(null,"on-drop","on-drop",1867868491),(function (e){
537
+ e.preventDefault();
538
+
539
+ e.stopPropagation();
540
+
541
+ return cljs.core.reset_BANG_(nav_drag_edge,null);
542
+ })], null),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"span.iris-nav-arrow","span.iris-nav-arrow",-2000924702),arrow], null)], null);
543
+ });
544
+ /**
545
+ * Update a workspace's layout and remove dragged entity from all other workspaces.
546
+ */
547
+ iris_layout.core.update_workspaces_with_cleanup = (function iris_layout$core$update_workspaces_with_cleanup(workspaces,target_key,new_layout){
548
+ var dragged_entity = cljs.core.deref(iris_layout.components.entity_tile.drag_source_entity);
549
+ if(cljs.core.truth_(dragged_entity)){
550
+ return cljs.core.reduce_kv((function (acc,ws_key,ws_data){
551
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(ws_key,target_key)){
552
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,ws_key,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"layout","layout",-2120940921),new_layout], null));
553
+ } else {
554
+ var cleaned = iris_layout.layout.remove_entity_from_layout(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(ws_data),dragged_entity);
555
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(acc,ws_key,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"layout","layout",-2120940921),cleaned], null));
556
+ }
557
+ }),cljs.core.PersistentArrayMap.EMPTY,workspaces);
558
+ } else {
559
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(workspaces,target_key,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"layout","layout",-2120940921),new_layout], null));
560
+ }
561
+ });
562
+ /**
563
+ * Handle drop on an empty workspace — create a tile for the dropped entity.
564
+ */
565
+ iris_layout.core.handle_empty_workspace_drop = (function iris_layout$core$handle_empty_workspace_drop(e,k,workspaces,on_workspaces_change){
566
+ e.preventDefault();
567
+
568
+ var raw = e.dataTransfer.getData("text/plain");
569
+ try{var data = JSON.parse(raw);
570
+ var entity_id = data.entityId;
571
+ if(cljs.core.truth_(entity_id)){
572
+ var new_layout = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"tile","tile",758132866),new cljs.core.Keyword(null,"id","id",-1388402092),iris_layout.core.generate_id(),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),entity_id], null);
573
+ var updated = iris_layout.core.update_workspaces_with_cleanup(workspaces,k,new_layout);
574
+ return (on_workspaces_change.cljs$core$IFn$_invoke$arity$1 ? on_workspaces_change.cljs$core$IFn$_invoke$arity$1(updated) : on_workspaces_change.call(null,updated));
575
+ } else {
576
+ return null;
577
+ }
578
+ }catch (e6934){var _ = e6934;
579
+ return null;
580
+ }});
581
+ /**
582
+ * Render a single grid cell (workspace or empty placeholder).
583
+ */
584
+ iris_layout.core.grid_cell = (function iris_layout$core$grid_cell(k,workspace,active_QMARK_,zoomed_QMARK_,props){
585
+ var map__6935 = props;
586
+ var map__6935__$1 = cljs.core.__destructure_map(map__6935);
587
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
588
+ var render_entity_tile = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276));
589
+ var active_entity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476));
590
+ var on_workspaces_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"on-workspaces-change","on-workspaces-change",1243137455));
591
+ var on_active_position_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"on-active-position-change","on-active-position-change",2098486068));
592
+ var on_entity_close = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801));
593
+ var workspaces = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6935__$1,new cljs.core.Keyword(null,"workspaces","workspaces",168825563));
594
+ var vec__6936 = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(parseInt,k.split(","));
595
+ var x = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6936,(0),null);
596
+ var y = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6936,(1),null);
597
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1057191632),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"class","class",-2030961996),["iris-grid-cell",(cljs.core.truth_(active_QMARK_)?" iris-grid-cell-active":null)].join(''),new cljs.core.Keyword(null,"data-position","data-position",1700534660),k,new cljs.core.Keyword(null,"on-click","on-click",1632826543),(cljs.core.truth_((function (){var and__5000__auto__ = zoomed_QMARK_;
598
+ if(cljs.core.truth_(and__5000__auto__)){
599
+ return cljs.core.not(active_QMARK_);
600
+ } else {
601
+ return and__5000__auto__;
602
+ }
603
+ })())?(function (_){
604
+ if(cljs.core.truth_(on_active_position_change)){
605
+ var G__6939 = new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,y], null);
606
+ return (on_active_position_change.cljs$core$IFn$_invoke$arity$1 ? on_active_position_change.cljs$core$IFn$_invoke$arity$1(G__6939) : on_active_position_change.call(null,G__6939));
607
+ } else {
608
+ return null;
609
+ }
610
+ }):null)], null),(cljs.core.truth_(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(workspace))?new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.body_stage_component,new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"layout","layout",-2120940921),new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(workspace),new cljs.core.Keyword(null,"entities","entities",1940967403),entities,new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276),render_entity_tile,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),(cljs.core.truth_(active_QMARK_)?active_entity:null),new cljs.core.Keyword(null,"on-layout-change","on-layout-change",-1551415075),(function (new_layout){
611
+ if(cljs.core.truth_(on_workspaces_change)){
612
+ var G__6940 = iris_layout.core.update_workspaces_with_cleanup(workspaces,k,new_layout);
613
+ return (on_workspaces_change.cljs$core$IFn$_invoke$arity$1 ? on_workspaces_change.cljs$core$IFn$_invoke$arity$1(G__6940) : on_workspaces_change.call(null,G__6940));
614
+ } else {
615
+ return null;
616
+ }
617
+ }),new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),on_entity_close], null)], null):new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-empty-workspace","div.iris-empty-workspace",69507599),new cljs.core.PersistentArrayMap(null, 2, [new cljs.core.Keyword(null,"on-drag-over","on-drag-over",-93410408),(function (e){
618
+ return e.preventDefault();
619
+ }),new cljs.core.Keyword(null,"on-drop","on-drop",1867868491),(function (e){
620
+ if(cljs.core.truth_(on_workspaces_change)){
621
+ return iris_layout.core.handle_empty_workspace_drop(e,k,workspaces,on_workspaces_change);
622
+ } else {
623
+ return null;
624
+ }
625
+ })], null)], null))], null);
626
+ });
627
+ /**
628
+ * Render the CSS grid canvas with all workspace cells.
629
+ */
630
+ iris_layout.core.grid_canvas = (function iris_layout$core$grid_canvas(cols,rows,workspaces,active_position,zoomed_QMARK_,props){
631
+ var active_key = iris_layout.core.pos_key(active_position);
632
+ var iter__5480__auto__ = (function iris_layout$core$grid_canvas_$_iter__6941(s__6942){
633
+ return (new cljs.core.LazySeq(null,(function (){
634
+ var s__6942__$1 = s__6942;
635
+ while(true){
636
+ var temp__5804__auto__ = cljs.core.seq(s__6942__$1);
637
+ if(temp__5804__auto__){
638
+ var s__6942__$2 = temp__5804__auto__;
639
+ if(cljs.core.chunked_seq_QMARK_(s__6942__$2)){
640
+ var c__5478__auto__ = cljs.core.chunk_first(s__6942__$2);
641
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
642
+ var b__6944 = cljs.core.chunk_buffer(size__5479__auto__);
643
+ if((function (){var i__6943 = (0);
644
+ while(true){
645
+ if((i__6943 < size__5479__auto__)){
646
+ var y = cljs.core._nth(c__5478__auto__,i__6943);
647
+ cljs.core.chunk_append(b__6944,(function (){var iter__5480__auto__ = ((function (i__6943,y,c__5478__auto__,size__5479__auto__,b__6944,s__6942__$2,temp__5804__auto__,active_key){
648
+ return (function iris_layout$core$grid_canvas_$_iter__6941_$_iter__6945(s__6946){
649
+ return (new cljs.core.LazySeq(null,((function (i__6943,y,c__5478__auto__,size__5479__auto__,b__6944,s__6942__$2,temp__5804__auto__,active_key){
650
+ return (function (){
651
+ var s__6946__$1 = s__6946;
652
+ while(true){
653
+ var temp__5804__auto____$1 = cljs.core.seq(s__6946__$1);
654
+ if(temp__5804__auto____$1){
655
+ var s__6946__$2 = temp__5804__auto____$1;
656
+ if(cljs.core.chunked_seq_QMARK_(s__6946__$2)){
657
+ var c__5478__auto____$1 = cljs.core.chunk_first(s__6946__$2);
658
+ var size__5479__auto____$1 = cljs.core.count(c__5478__auto____$1);
659
+ var b__6948 = cljs.core.chunk_buffer(size__5479__auto____$1);
660
+ if((function (){var i__6947 = (0);
661
+ while(true){
662
+ if((i__6947 < size__5479__auto____$1)){
663
+ var x = cljs.core._nth(c__5478__auto____$1,i__6947);
664
+ cljs.core.chunk_append(b__6948,(function (){var k = iris_layout.core.pos_key(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,y], null));
665
+ var workspace = cljs.core.get.cljs$core$IFn$_invoke$arity$2(workspaces,k);
666
+ return cljs.core.with_meta(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.grid_cell,k,workspace,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,active_key),zoomed_QMARK_,props], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),k], null));
667
+ })());
668
+
669
+ var G__7021 = (i__6947 + (1));
670
+ i__6947 = G__7021;
671
+ continue;
672
+ } else {
673
+ return true;
674
+ }
675
+ break;
676
+ }
677
+ })()){
678
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6948),iris_layout$core$grid_canvas_$_iter__6941_$_iter__6945(cljs.core.chunk_rest(s__6946__$2)));
679
+ } else {
680
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6948),null);
681
+ }
682
+ } else {
683
+ var x = cljs.core.first(s__6946__$2);
684
+ return cljs.core.cons((function (){var k = iris_layout.core.pos_key(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,y], null));
685
+ var workspace = cljs.core.get.cljs$core$IFn$_invoke$arity$2(workspaces,k);
686
+ return cljs.core.with_meta(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.grid_cell,k,workspace,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,active_key),zoomed_QMARK_,props], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),k], null));
687
+ })(),iris_layout$core$grid_canvas_$_iter__6941_$_iter__6945(cljs.core.rest(s__6946__$2)));
688
+ }
689
+ } else {
690
+ return null;
691
+ }
692
+ break;
693
+ }
694
+ });})(i__6943,y,c__5478__auto__,size__5479__auto__,b__6944,s__6942__$2,temp__5804__auto__,active_key))
695
+ ,null,null));
696
+ });})(i__6943,y,c__5478__auto__,size__5479__auto__,b__6944,s__6942__$2,temp__5804__auto__,active_key))
697
+ ;
698
+ return iter__5480__auto__(cljs.core.range.cljs$core$IFn$_invoke$arity$1(cols));
699
+ })());
700
+
701
+ var G__7022 = (i__6943 + (1));
702
+ i__6943 = G__7022;
703
+ continue;
704
+ } else {
705
+ return true;
706
+ }
707
+ break;
708
+ }
709
+ })()){
710
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6944),iris_layout$core$grid_canvas_$_iter__6941(cljs.core.chunk_rest(s__6942__$2)));
711
+ } else {
712
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6944),null);
713
+ }
714
+ } else {
715
+ var y = cljs.core.first(s__6942__$2);
716
+ return cljs.core.cons((function (){var iter__5480__auto__ = ((function (y,s__6942__$2,temp__5804__auto__,active_key){
717
+ return (function iris_layout$core$grid_canvas_$_iter__6941_$_iter__6949(s__6950){
718
+ return (new cljs.core.LazySeq(null,(function (){
719
+ var s__6950__$1 = s__6950;
720
+ while(true){
721
+ var temp__5804__auto____$1 = cljs.core.seq(s__6950__$1);
722
+ if(temp__5804__auto____$1){
723
+ var s__6950__$2 = temp__5804__auto____$1;
724
+ if(cljs.core.chunked_seq_QMARK_(s__6950__$2)){
725
+ var c__5478__auto__ = cljs.core.chunk_first(s__6950__$2);
726
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
727
+ var b__6952 = cljs.core.chunk_buffer(size__5479__auto__);
728
+ if((function (){var i__6951 = (0);
729
+ while(true){
730
+ if((i__6951 < size__5479__auto__)){
731
+ var x = cljs.core._nth(c__5478__auto__,i__6951);
732
+ cljs.core.chunk_append(b__6952,(function (){var k = iris_layout.core.pos_key(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,y], null));
733
+ var workspace = cljs.core.get.cljs$core$IFn$_invoke$arity$2(workspaces,k);
734
+ return cljs.core.with_meta(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.grid_cell,k,workspace,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,active_key),zoomed_QMARK_,props], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),k], null));
735
+ })());
736
+
737
+ var G__7023 = (i__6951 + (1));
738
+ i__6951 = G__7023;
739
+ continue;
740
+ } else {
741
+ return true;
742
+ }
743
+ break;
744
+ }
745
+ })()){
746
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6952),iris_layout$core$grid_canvas_$_iter__6941_$_iter__6949(cljs.core.chunk_rest(s__6950__$2)));
747
+ } else {
748
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6952),null);
749
+ }
750
+ } else {
751
+ var x = cljs.core.first(s__6950__$2);
752
+ return cljs.core.cons((function (){var k = iris_layout.core.pos_key(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [x,y], null));
753
+ var workspace = cljs.core.get.cljs$core$IFn$_invoke$arity$2(workspaces,k);
754
+ return cljs.core.with_meta(new cljs.core.PersistentVector(null, 6, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.grid_cell,k,workspace,cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(k,active_key),zoomed_QMARK_,props], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),k], null));
755
+ })(),iris_layout$core$grid_canvas_$_iter__6941_$_iter__6949(cljs.core.rest(s__6950__$2)));
756
+ }
757
+ } else {
758
+ return null;
759
+ }
760
+ break;
761
+ }
762
+ }),null,null));
763
+ });})(y,s__6942__$2,temp__5804__auto__,active_key))
764
+ ;
765
+ return iter__5480__auto__(cljs.core.range.cljs$core$IFn$_invoke$arity$1(cols));
766
+ })(),iris_layout$core$grid_canvas_$_iter__6941(cljs.core.rest(s__6942__$2)));
767
+ }
768
+ } else {
769
+ return null;
770
+ }
771
+ break;
772
+ }
773
+ }),null,null));
774
+ });
775
+ return iter__5480__auto__(cljs.core.range.cljs$core$IFn$_invoke$arity$1(rows));
776
+ });
777
+ iris_layout.core.grid_gap = (32);
778
+ /**
779
+ * Compute the CSS transform style for the grid canvas camera.
780
+ * Uses calc() to account for the gap between grid cells.
781
+ */
782
+ iris_layout.core.camera_style = (function iris_layout$core$camera_style(cols,rows,active_position,zoomed_QMARK_){
783
+ var vec__6953 = active_position;
784
+ var ax = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6953,(0),null);
785
+ var ay = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6953,(1),null);
786
+ var scale = (cljs.core.truth_(zoomed_QMARK_)?((1) / (function (){var x__5087__auto__ = cols;
787
+ var y__5088__auto__ = rows;
788
+ return ((x__5087__auto__ > y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);
789
+ })()):(1));
790
+ var tx = (cljs.core.truth_(zoomed_QMARK_)?"0px":["calc(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(ax)," * ((-100% - ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(iris_layout.core.grid_gap),"px) / ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cols),"))"].join(''));
791
+ var ty = (cljs.core.truth_(zoomed_QMARK_)?"0px":["calc(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(ay)," * ((-100% - ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(iris_layout.core.grid_gap),"px) / ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(rows),"))"].join(''));
792
+ return new cljs.core.PersistentArrayMap(null, 6, [new cljs.core.Keyword(null,"width","width",-384071477),["calc(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cols)," * 100% + ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(((cols - (1)) * iris_layout.core.grid_gap)),"px)"].join(''),new cljs.core.Keyword(null,"height","height",1025178622),["calc(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(rows)," * 100% + ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(((rows - (1)) * iris_layout.core.grid_gap)),"px)"].join(''),new cljs.core.Keyword(null,"grid-template-columns","grid-template-columns",-594112133),["repeat(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(cols),", 1fr)"].join(''),new cljs.core.Keyword(null,"grid-template-rows","grid-template-rows",-372292629),["repeat(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(rows),", 1fr)"].join(''),new cljs.core.Keyword(null,"transform","transform",1381301764),["translate(",tx,", ",ty,") scale(",cljs.core.str.cljs$core$IFn$_invoke$arity$1(scale),")"].join(''),new cljs.core.Keyword(null,"transform-origin","transform-origin",-586167370),"0 0"], null);
793
+ });
794
+ /**
795
+ * Grid — a 2D grid of workspaces with camera-based navigation.
796
+ *
797
+ * Workspaces are laid out in a real CSS grid. Navigation moves a camera
798
+ * (CSS translate) to show the active workspace. Holding Alt zooms out
799
+ * to show all workspaces at once.
800
+ */
801
+ iris_layout.core.grid_component = (function iris_layout$core$grid_component(_){
802
+ var zoomed_out_QMARK_ = reagent.core.atom.cljs$core$IFn$_invoke$arity$1(false);
803
+ var props_ref = cljs.core.atom.cljs$core$IFn$_invoke$arity$1(null);
804
+ var nav_drag_edge = reagent.core.atom.cljs$core$IFn$_invoke$arity$1(null);
805
+ var handle_nav = (function (dir){
806
+ return iris_layout.core.handle_grid_nav(dir,props_ref);
807
+ });
808
+ var keydown_handler = (function (e){
809
+ if(((cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e.key,"Alt")) && (cljs.core.not(e.repeat)))){
810
+ cljs.core.reset_BANG_(zoomed_out_QMARK_,true);
811
+ } else {
812
+ }
813
+
814
+ if(cljs.core.truth_(e.altKey)){
815
+ var dir = (function (){var G__6956 = e.key;
816
+ switch (G__6956) {
817
+ case "ArrowLeft":
818
+ return new cljs.core.Keyword(null,"left","left",-399115937);
819
+
820
+ break;
821
+ case "ArrowRight":
822
+ return new cljs.core.Keyword(null,"right","right",-452581833);
823
+
824
+ break;
825
+ case "ArrowUp":
826
+ return new cljs.core.Keyword(null,"up","up",-269712113);
827
+
828
+ break;
829
+ case "ArrowDown":
830
+ return new cljs.core.Keyword(null,"down","down",1565245570);
831
+
832
+ break;
833
+ default:
834
+ return null;
835
+
836
+ }
837
+ })();
838
+ if(cljs.core.truth_(dir)){
839
+ e.preventDefault();
840
+
841
+ cljs.core.reset_BANG_(zoomed_out_QMARK_,false);
842
+
843
+ return handle_nav(dir);
844
+ } else {
845
+ return null;
846
+ }
847
+ } else {
848
+ return null;
849
+ }
850
+ });
851
+ var keyup_handler = (function (e){
852
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(e.key,"Alt")){
853
+ return cljs.core.reset_BANG_(zoomed_out_QMARK_,false);
854
+ } else {
855
+ return null;
856
+ }
857
+ });
858
+ document.addEventListener("keydown",keydown_handler);
859
+
860
+ document.addEventListener("keyup",keyup_handler);
861
+
862
+ cljs.core.add_watch(iris_layout.components.touch_drag.nav_edge_target,new cljs.core.Keyword("iris-layout.core","grid-nav-highlight","iris-layout.core/grid-nav-highlight",-1425938771),(function (___$1,___$2,old_dir,new_dir){
863
+ cljs.core.reset_BANG_(nav_drag_edge,new_dir);
864
+
865
+ if(cljs.core.truth_((function (){var and__5000__auto__ = new_dir;
866
+ if(cljs.core.truth_(and__5000__auto__)){
867
+ return cljs.core.not_EQ_.cljs$core$IFn$_invoke$arity$2(old_dir,new_dir);
868
+ } else {
869
+ return and__5000__auto__;
870
+ }
871
+ })())){
872
+ return iris_layout.core.handle_grid_nav(new_dir,props_ref);
873
+ } else {
874
+ return null;
875
+ }
876
+ }));
877
+
878
+ return (function (p__6957){
879
+ var map__6958 = p__6957;
880
+ var map__6958__$1 = cljs.core.__destructure_map(map__6958);
881
+ var props = map__6958__$1;
882
+ var workspaces = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6958__$1,new cljs.core.Keyword(null,"workspaces","workspaces",168825563));
883
+ var active_position = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6958__$1,new cljs.core.Keyword(null,"active-position","active-position",216604118));
884
+ cljs.core.reset_BANG_(props_ref,props);
885
+
886
+ var vec__6959 = iris_layout.core.grid_dimensions(workspaces);
887
+ var cols = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6959,(0),null);
888
+ var rows = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6959,(1),null);
889
+ var zoomed_QMARK_ = cljs.core.deref(zoomed_out_QMARK_);
890
+ var dragging_QMARK_ = (function (){var or__5002__auto__ = cljs.core.deref(iris_layout.components.entity_tile.drag_source_tile);
891
+ if(cljs.core.truth_(or__5002__auto__)){
892
+ return or__5002__auto__;
893
+ } else {
894
+ return cljs.core.deref(iris_layout.components.touch_drag.touch_state);
895
+ }
896
+ })();
897
+ var vis_QMARK_ = (function (dir){
898
+ var or__5002__auto__ = dragging_QMARK_;
899
+ if(cljs.core.truth_(or__5002__auto__)){
900
+ return or__5002__auto__;
901
+ } else {
902
+ return iris_layout.core.can_navigate_QMARK_(dir,workspaces,active_position);
903
+ }
904
+ });
905
+ return new cljs.core.PersistentVector(null, 7, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div","div",1057191632),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"class","class",-2030961996),["iris-grid-viewport",(cljs.core.truth_(zoomed_QMARK_)?" iris-grid-zoomed":null)].join('')], null),iris_layout.core.nav_edge_hiccup("iris-nav-left","\u2039",vis_QMARK_(new cljs.core.Keyword(null,"left","left",-399115937)),(function (){
906
+ return handle_nav(new cljs.core.Keyword(null,"left","left",-399115937));
907
+ }),new cljs.core.Keyword(null,"left","left",-399115937),props_ref,nav_drag_edge),iris_layout.core.nav_edge_hiccup("iris-nav-right","\u203A",vis_QMARK_(new cljs.core.Keyword(null,"right","right",-452581833)),(function (){
908
+ return handle_nav(new cljs.core.Keyword(null,"right","right",-452581833));
909
+ }),new cljs.core.Keyword(null,"right","right",-452581833),props_ref,nav_drag_edge),iris_layout.core.nav_edge_hiccup("iris-nav-top","\u2039",vis_QMARK_(new cljs.core.Keyword(null,"up","up",-269712113)),(function (){
910
+ return handle_nav(new cljs.core.Keyword(null,"up","up",-269712113));
911
+ }),new cljs.core.Keyword(null,"up","up",-269712113),props_ref,nav_drag_edge),iris_layout.core.nav_edge_hiccup("iris-nav-bottom","\u203A",vis_QMARK_(new cljs.core.Keyword(null,"down","down",1565245570)),(function (){
912
+ return handle_nav(new cljs.core.Keyword(null,"down","down",1565245570));
913
+ }),new cljs.core.Keyword(null,"down","down",1565245570),props_ref,nav_drag_edge),new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-grid-center","div.iris-grid-center",-1512396212),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-grid-canvas","div.iris-grid-canvas",796232451),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"style","style",-496642736),iris_layout.core.camera_style(cols,rows,active_position,zoomed_QMARK_)], null),iris_layout.core.grid_canvas(cols,rows,workspaces,active_position,zoomed_QMARK_,props)], null)], null)], null);
914
+ });
915
+ });
916
+ /**
917
+ * Convert a JS workspaces object {"x,y": {layout: ...}} to CLJS map.
918
+ */
919
+ iris_layout.core.js__GT_workspaces = (function iris_layout$core$js__GT_workspaces(js_obj){
920
+ if(cljs.core.truth_(js_obj)){
921
+ var obj = cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(js_obj);
922
+ return cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p__6962){
923
+ var vec__6963 = p__6962;
924
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6963,(0),null);
925
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6963,(1),null);
926
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"layout","layout",-2120940921),iris_layout.core.js__GT_layout(cljs.core.get.cljs$core$IFn$_invoke$arity$2(v,"layout"))], null)], null);
927
+ })),obj);
928
+ } else {
929
+ return null;
930
+ }
931
+ });
932
+ /**
933
+ * Convert CLJS workspaces map to JS object.
934
+ */
935
+ iris_layout.core.workspaces__GT_js = (function iris_layout$core$workspaces__GT_js(workspaces){
936
+ return cljs.core.clj__GT_js(cljs.core.into.cljs$core$IFn$_invoke$arity$3(cljs.core.PersistentArrayMap.EMPTY,cljs.core.map.cljs$core$IFn$_invoke$arity$1((function (p__6966){
937
+ var vec__6967 = p__6966;
938
+ var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6967,(0),null);
939
+ var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6967,(1),null);
940
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [k,new cljs.core.PersistentArrayMap(null, 1, ["layout",iris_layout.core.layout__GT_js(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(v))], null)], null);
941
+ })),workspaces));
942
+ });
943
+ /**
944
+ * Wrapper that converts JS props to CLJS for grid-component.
945
+ */
946
+ iris_layout.core.grid_wrapper = (function iris_layout$core$grid_wrapper(p__6970){
947
+ var map__6971 = p__6970;
948
+ var map__6971__$1 = cljs.core.__destructure_map(map__6971);
949
+ var onActivePositionChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"onActivePositionChange","onActivePositionChange",797492763));
950
+ var workspaces = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"workspaces","workspaces",168825563));
951
+ var activeEntity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"activeEntity","activeEntity",1254491677));
952
+ var onWorkspacesChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"onWorkspacesChange","onWorkspacesChange",296638817));
953
+ var activePosition = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"activePosition","activePosition",1670942342));
954
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
955
+ var onEntityClose = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"onEntityClose","onEntityClose",-1093856051));
956
+ var renderEntityTile = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"renderEntityTile","renderEntityTile",-762182701));
957
+ var onActiveEntityChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6971__$1,new cljs.core.Keyword(null,"onActiveEntityChange","onActiveEntityChange",-856952332));
958
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.grid_component,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"on-active-entity-change","on-active-entity-change",-895471677),new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),new cljs.core.Keyword(null,"entities","entities",1940967403),new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276),new cljs.core.Keyword(null,"on-workspaces-change","on-workspaces-change",1243137455),new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),new cljs.core.Keyword(null,"on-active-position-change","on-active-position-change",2098486068),new cljs.core.Keyword(null,"active-position","active-position",216604118),new cljs.core.Keyword(null,"workspaces","workspaces",168825563)],[onActiveEntityChange,activeEntity,iris_layout.core.js__GT_entities(entities),renderEntityTile,(cljs.core.truth_(onWorkspacesChange)?(function (new_workspaces){
959
+ var G__6972 = iris_layout.core.workspaces__GT_js(new_workspaces);
960
+ return (onWorkspacesChange.cljs$core$IFn$_invoke$arity$1 ? onWorkspacesChange.cljs$core$IFn$_invoke$arity$1(G__6972) : onWorkspacesChange.call(null,G__6972));
961
+ }):null),onEntityClose,(cljs.core.truth_(onActivePositionChange)?(function (new_pos){
962
+ var G__6973 = cljs.core.clj__GT_js(new_pos);
963
+ return (onActivePositionChange.cljs$core$IFn$_invoke$arity$1 ? onActivePositionChange.cljs$core$IFn$_invoke$arity$1(G__6973) : onActivePositionChange.call(null,G__6973));
964
+ }):null),cljs.core.js__GT_clj.cljs$core$IFn$_invoke$arity$1(activePosition),iris_layout.core.js__GT_workspaces(workspaces)])], null);
965
+ });
966
+ /**
967
+ * Remove an entity from a specific stage. If the stage becomes empty, remove it.
968
+ * Returns [updated-stages removed-stage-empty?].
969
+ */
970
+ iris_layout.core.remove_entity_from_stages = (function iris_layout$core$remove_entity_from_stages(stages,source_stage_id,entity_id){
971
+ var source_stage = cljs.core.first(cljs.core.filter.cljs$core$IFn$_invoke$arity$2((function (p1__6974_SHARP_){
972
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(p1__6974_SHARP_),source_stage_id);
973
+ }),stages));
974
+ var new_layout = (cljs.core.truth_(source_stage)?iris_layout.layout.remove_entity_from_layout(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(source_stage),entity_id):null);
975
+ var empty_QMARK_ = (new_layout == null);
976
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [((empty_QMARK_)?cljs.core.vec(cljs.core.remove.cljs$core$IFn$_invoke$arity$2((function (p1__6975_SHARP_){
977
+ return cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(p1__6975_SHARP_),source_stage_id);
978
+ }),stages)):cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (s){
979
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),source_stage_id)){
980
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.Keyword(null,"layout","layout",-2120940921),new_layout);
981
+ } else {
982
+ return s;
983
+ }
984
+ }),stages)),empty_QMARK_], null);
985
+ });
986
+ /**
987
+ * Sidebar — renders a list of stage cards with drag-drop support.
988
+ *
989
+ * Features:
990
+ * - Click a card to switch active stage
991
+ * - Click an entity card to focus it
992
+ * - Close button removes entity from stage (empty stage is removed)
993
+ * - Drag entity cards between groups to move them
994
+ * - Drag entity cards to empty sidebar area to create a new group
995
+ *
996
+ * Props (received as CLJS map after wrapper conversion):
997
+ * :stages - vector of stage maps
998
+ * :active-stage - active stage ID
999
+ * :active-entity - focused entity ID
1000
+ * :entities - entity data map
1001
+ * :render-entity-card - React component for entity card content
1002
+ * :on-stages-change - fn(stages) for layout mutations
1003
+ * :on-active-stage-change - fn(stage-id) for stage switches
1004
+ * :on-active-entity-change - fn(entity-id) for entity focus
1005
+ * :on-entity-close - (optional) fn(stage-id, entity-id) side-effect hook called on close
1006
+ */
1007
+ iris_layout.core.sidebar_component = (function iris_layout$core$sidebar_component(_){
1008
+ var drag_over = reagent.core.atom.cljs$core$IFn$_invoke$arity$1(false);
1009
+ return (function (p__6977){
1010
+ var map__6978 = p__6977;
1011
+ var map__6978__$1 = cljs.core.__destructure_map(map__6978);
1012
+ var on_active_stage_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"on-active-stage-change","on-active-stage-change",-824015015));
1013
+ var on_active_entity_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"on-active-entity-change","on-active-entity-change",-895471677));
1014
+ var active_entity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476));
1015
+ var stages = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"stages","stages",-442109532));
1016
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
1017
+ var active_stage = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"active-stage","active-stage",-1878042516));
1018
+ var render_entity_card = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"render-entity-card","render-entity-card",-1800863856));
1019
+ var on_stages_change = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"on-stages-change","on-stages-change",870787057));
1020
+ var on_entity_close = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__6978__$1,new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801));
1021
+ return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [new cljs.core.Keyword(null,"div.iris-sidebar","div.iris-sidebar",1952885681),new cljs.core.PersistentArrayMap(null, 5, [new cljs.core.Keyword(null,"class","class",-2030961996),(cljs.core.truth_(cljs.core.deref(drag_over))?"iris-sidebar-drag-over":null),new cljs.core.Keyword(null,"on-drag-over","on-drag-over",-93410408),(function (e){
1022
+ e.preventDefault();
1023
+
1024
+ return cljs.core.reset_BANG_(drag_over,true);
1025
+ }),new cljs.core.Keyword(null,"on-drag-enter","on-drag-enter",-1692112235),(function (e){
1026
+ return e.preventDefault();
1027
+ }),new cljs.core.Keyword(null,"on-drag-leave","on-drag-leave",-373180078),(function (e){
1028
+ if(cljs.core.not(e.currentTarget.contains(e.relatedTarget))){
1029
+ return cljs.core.reset_BANG_(drag_over,false);
1030
+ } else {
1031
+ return null;
1032
+ }
1033
+ }),new cljs.core.Keyword(null,"on-drop","on-drop",1867868491),(function (e){
1034
+ e.preventDefault();
1035
+
1036
+ cljs.core.reset_BANG_(drag_over,false);
1037
+
1038
+ var raw = e.dataTransfer.getData("text/plain");
1039
+ try{var data = JSON.parse(raw);
1040
+ if(cljs.core.truth_((function (){var and__5000__auto__ = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(data.source,"sidebar");
1041
+ if(and__5000__auto__){
1042
+ var and__5000__auto____$1 = data.entityId;
1043
+ if(cljs.core.truth_(and__5000__auto____$1)){
1044
+ var and__5000__auto____$2 = data.stageId;
1045
+ if(cljs.core.truth_(and__5000__auto____$2)){
1046
+ return on_stages_change;
1047
+ } else {
1048
+ return and__5000__auto____$2;
1049
+ }
1050
+ } else {
1051
+ return and__5000__auto____$1;
1052
+ }
1053
+ } else {
1054
+ return and__5000__auto__;
1055
+ }
1056
+ })())){
1057
+ var entity_id = data.entityId;
1058
+ var source_stage_id = data.stageId;
1059
+ var vec__6980 = iris_layout.core.remove_entity_from_stages(stages,source_stage_id,entity_id);
1060
+ var updated = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6980,(0),null);
1061
+ var ___$1 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6980,(1),null);
1062
+ var new_stage_id = iris_layout.core.generate_id();
1063
+ var new_stage = new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"id","id",-1388402092),new_stage_id,new cljs.core.Keyword(null,"label","label",1718410804),(function (){var or__5002__auto__ = new cljs.core.Keyword(null,"name","name",1843675177).cljs$core$IFn$_invoke$arity$1(cljs.core.get.cljs$core$IFn$_invoke$arity$2(entities,entity_id));
1064
+ if(cljs.core.truth_(or__5002__auto__)){
1065
+ return or__5002__auto__;
1066
+ } else {
1067
+ return "New Stage";
1068
+ }
1069
+ })(),new cljs.core.Keyword(null,"layout","layout",-2120940921),new cljs.core.PersistentArrayMap(null, 3, [new cljs.core.Keyword(null,"type","type",1174270348),new cljs.core.Keyword(null,"tile","tile",758132866),new cljs.core.Keyword(null,"id","id",-1388402092),iris_layout.core.generate_id(),new cljs.core.Keyword(null,"entity-id","entity-id",1485898093),entity_id], null)], null);
1070
+ var G__6983_7025 = cljs.core.conj.cljs$core$IFn$_invoke$arity$2(updated,new_stage);
1071
+ (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(G__6983_7025) : on_stages_change.call(null,G__6983_7025));
1072
+
1073
+ if(cljs.core.truth_(on_active_stage_change)){
1074
+ return (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(new_stage_id) : on_active_stage_change.call(null,new_stage_id));
1075
+ } else {
1076
+ return null;
1077
+ }
1078
+ } else {
1079
+ return null;
1080
+ }
1081
+ }catch (e6979){var ___$1 = e6979;
1082
+ return null;
1083
+ }})], null),(function (){var iter__5480__auto__ = (function iris_layout$core$sidebar_component_$_iter__6984(s__6985){
1084
+ return (new cljs.core.LazySeq(null,(function (){
1085
+ var s__6985__$1 = s__6985;
1086
+ while(true){
1087
+ var temp__5804__auto__ = cljs.core.seq(s__6985__$1);
1088
+ if(temp__5804__auto__){
1089
+ var s__6985__$2 = temp__5804__auto__;
1090
+ if(cljs.core.chunked_seq_QMARK_(s__6985__$2)){
1091
+ var c__5478__auto__ = cljs.core.chunk_first(s__6985__$2);
1092
+ var size__5479__auto__ = cljs.core.count(c__5478__auto__);
1093
+ var b__6987 = cljs.core.chunk_buffer(size__5479__auto__);
1094
+ if((function (){var i__6986 = (0);
1095
+ while(true){
1096
+ if((i__6986 < size__5479__auto__)){
1097
+ var stage = cljs.core._nth(c__5478__auto__,i__6986);
1098
+ cljs.core.chunk_append(b__6987,cljs.core.with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.components.entity_card_group.entity_card_group_component,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"active?","active?",459499776),new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),new cljs.core.Keyword(null,"stage","stage",1843544772),new cljs.core.Keyword(null,"on-entity-drop","on-entity-drop",1947407015),new cljs.core.Keyword(null,"entities","entities",1940967403),new cljs.core.Keyword(null,"on-click","on-click",1632826543),new cljs.core.Keyword(null,"render-entity-card","render-entity-card",-1800863856),new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),new cljs.core.Keyword(null,"on-entity-click","on-entity-click",2106101276)],[cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),active_stage),active_entity,stage,((function (i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1099
+ return (function (entity_id,source_stage_id){
1100
+ if(cljs.core.truth_(on_stages_change)){
1101
+ var vec__6988 = iris_layout.core.remove_entity_from_stages(stages,source_stage_id,entity_id);
1102
+ var updated = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6988,(0),null);
1103
+ var source_empty_QMARK_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6988,(1),null);
1104
+ var updated__$1 = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2(((function (i__6986,vec__6988,updated,source_empty_QMARK_,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1105
+ return (function (s){
1106
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage))){
1107
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.Keyword(null,"layout","layout",-2120940921),iris_layout.layout.append_entity(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(s),entity_id,iris_layout.core.generate_id(),iris_layout.core.generate_id()));
1108
+ } else {
1109
+ return s;
1110
+ }
1111
+ });})(i__6986,vec__6988,updated,source_empty_QMARK_,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1112
+ ,updated);
1113
+ (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(updated__$1) : on_stages_change.call(null,updated__$1));
1114
+
1115
+ if(cljs.core.truth_((function (){var and__5000__auto__ = source_empty_QMARK_;
1116
+ if(cljs.core.truth_(and__5000__auto__)){
1117
+ var and__5000__auto____$1 = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(active_stage,source_stage_id);
1118
+ if(and__5000__auto____$1){
1119
+ return on_active_stage_change;
1120
+ } else {
1121
+ return and__5000__auto____$1;
1122
+ }
1123
+ } else {
1124
+ return and__5000__auto__;
1125
+ }
1126
+ })())){
1127
+ var G__6991 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage);
1128
+ return (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(G__6991) : on_active_stage_change.call(null,G__6991));
1129
+ } else {
1130
+ return null;
1131
+ }
1132
+ } else {
1133
+ return null;
1134
+ }
1135
+ });})(i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1136
+ ,entities,((function (i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1137
+ return (function (){
1138
+ if(cljs.core.truth_(on_active_stage_change)){
1139
+ var G__6992 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage);
1140
+ return (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(G__6992) : on_active_stage_change.call(null,G__6992));
1141
+ } else {
1142
+ return null;
1143
+ }
1144
+ });})(i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1145
+ ,render_entity_card,((function (i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1146
+ return (function (entity_id){
1147
+ if(cljs.core.truth_(on_stages_change)){
1148
+ var vec__6993_7026 = iris_layout.core.remove_entity_from_stages(stages,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),entity_id);
1149
+ var updated_7027 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6993_7026,(0),null);
1150
+ var empty_QMARK__7028 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6993_7026,(1),null);
1151
+ (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(updated_7027) : on_stages_change.call(null,updated_7027));
1152
+
1153
+ if(cljs.core.truth_((function (){var and__5000__auto__ = empty_QMARK__7028;
1154
+ if(cljs.core.truth_(and__5000__auto__)){
1155
+ var and__5000__auto____$1 = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(active_stage,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage));
1156
+ if(and__5000__auto____$1){
1157
+ var and__5000__auto____$2 = on_active_stage_change;
1158
+ if(cljs.core.truth_(and__5000__auto____$2)){
1159
+ return cljs.core.seq(updated_7027);
1160
+ } else {
1161
+ return and__5000__auto____$2;
1162
+ }
1163
+ } else {
1164
+ return and__5000__auto____$1;
1165
+ }
1166
+ } else {
1167
+ return and__5000__auto__;
1168
+ }
1169
+ })())){
1170
+ var G__6996_7029 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(cljs.core.first(updated_7027));
1171
+ (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(G__6996_7029) : on_active_stage_change.call(null,G__6996_7029));
1172
+ } else {
1173
+ }
1174
+ } else {
1175
+ }
1176
+
1177
+ if(cljs.core.truth_(on_entity_close)){
1178
+ var G__6997 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage);
1179
+ var G__6998 = entity_id;
1180
+ return (on_entity_close.cljs$core$IFn$_invoke$arity$2 ? on_entity_close.cljs$core$IFn$_invoke$arity$2(G__6997,G__6998) : on_entity_close.call(null,G__6997,G__6998));
1181
+ } else {
1182
+ return null;
1183
+ }
1184
+ });})(i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1185
+ ,((function (i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1186
+ return (function (p1__6976_SHARP_){
1187
+ if(cljs.core.truth_(on_active_entity_change)){
1188
+ return (on_active_entity_change.cljs$core$IFn$_invoke$arity$1 ? on_active_entity_change.cljs$core$IFn$_invoke$arity$1(p1__6976_SHARP_) : on_active_entity_change.call(null,p1__6976_SHARP_));
1189
+ } else {
1190
+ return null;
1191
+ }
1192
+ });})(i__6986,stage,c__5478__auto__,size__5479__auto__,b__6987,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1193
+ ])], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage)], null)));
1194
+
1195
+ var G__7030 = (i__6986 + (1));
1196
+ i__6986 = G__7030;
1197
+ continue;
1198
+ } else {
1199
+ return true;
1200
+ }
1201
+ break;
1202
+ }
1203
+ })()){
1204
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6987),iris_layout$core$sidebar_component_$_iter__6984(cljs.core.chunk_rest(s__6985__$2)));
1205
+ } else {
1206
+ return cljs.core.chunk_cons(cljs.core.chunk(b__6987),null);
1207
+ }
1208
+ } else {
1209
+ var stage = cljs.core.first(s__6985__$2);
1210
+ return cljs.core.cons(cljs.core.with_meta(new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.components.entity_card_group.entity_card_group_component,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"active?","active?",459499776),new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),new cljs.core.Keyword(null,"stage","stage",1843544772),new cljs.core.Keyword(null,"on-entity-drop","on-entity-drop",1947407015),new cljs.core.Keyword(null,"entities","entities",1940967403),new cljs.core.Keyword(null,"on-click","on-click",1632826543),new cljs.core.Keyword(null,"render-entity-card","render-entity-card",-1800863856),new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),new cljs.core.Keyword(null,"on-entity-click","on-entity-click",2106101276)],[cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),active_stage),active_entity,stage,((function (stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1211
+ return (function (entity_id,source_stage_id){
1212
+ if(cljs.core.truth_(on_stages_change)){
1213
+ var vec__6999 = iris_layout.core.remove_entity_from_stages(stages,source_stage_id,entity_id);
1214
+ var updated = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6999,(0),null);
1215
+ var source_empty_QMARK_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__6999,(1),null);
1216
+ var updated__$1 = cljs.core.mapv.cljs$core$IFn$_invoke$arity$2((function (s){
1217
+ if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(s),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage))){
1218
+ return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(s,new cljs.core.Keyword(null,"layout","layout",-2120940921),iris_layout.layout.append_entity(new cljs.core.Keyword(null,"layout","layout",-2120940921).cljs$core$IFn$_invoke$arity$1(s),entity_id,iris_layout.core.generate_id(),iris_layout.core.generate_id()));
1219
+ } else {
1220
+ return s;
1221
+ }
1222
+ }),updated);
1223
+ (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(updated__$1) : on_stages_change.call(null,updated__$1));
1224
+
1225
+ if(cljs.core.truth_((function (){var and__5000__auto__ = source_empty_QMARK_;
1226
+ if(cljs.core.truth_(and__5000__auto__)){
1227
+ var and__5000__auto____$1 = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(active_stage,source_stage_id);
1228
+ if(and__5000__auto____$1){
1229
+ return on_active_stage_change;
1230
+ } else {
1231
+ return and__5000__auto____$1;
1232
+ }
1233
+ } else {
1234
+ return and__5000__auto__;
1235
+ }
1236
+ })())){
1237
+ var G__7002 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage);
1238
+ return (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(G__7002) : on_active_stage_change.call(null,G__7002));
1239
+ } else {
1240
+ return null;
1241
+ }
1242
+ } else {
1243
+ return null;
1244
+ }
1245
+ });})(stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1246
+ ,entities,((function (stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1247
+ return (function (){
1248
+ if(cljs.core.truth_(on_active_stage_change)){
1249
+ var G__7003 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage);
1250
+ return (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(G__7003) : on_active_stage_change.call(null,G__7003));
1251
+ } else {
1252
+ return null;
1253
+ }
1254
+ });})(stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1255
+ ,render_entity_card,((function (stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1256
+ return (function (entity_id){
1257
+ if(cljs.core.truth_(on_stages_change)){
1258
+ var vec__7004_7031 = iris_layout.core.remove_entity_from_stages(stages,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage),entity_id);
1259
+ var updated_7032 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__7004_7031,(0),null);
1260
+ var empty_QMARK__7033 = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__7004_7031,(1),null);
1261
+ (on_stages_change.cljs$core$IFn$_invoke$arity$1 ? on_stages_change.cljs$core$IFn$_invoke$arity$1(updated_7032) : on_stages_change.call(null,updated_7032));
1262
+
1263
+ if(cljs.core.truth_((function (){var and__5000__auto__ = empty_QMARK__7033;
1264
+ if(cljs.core.truth_(and__5000__auto__)){
1265
+ var and__5000__auto____$1 = cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(active_stage,new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage));
1266
+ if(and__5000__auto____$1){
1267
+ var and__5000__auto____$2 = on_active_stage_change;
1268
+ if(cljs.core.truth_(and__5000__auto____$2)){
1269
+ return cljs.core.seq(updated_7032);
1270
+ } else {
1271
+ return and__5000__auto____$2;
1272
+ }
1273
+ } else {
1274
+ return and__5000__auto____$1;
1275
+ }
1276
+ } else {
1277
+ return and__5000__auto__;
1278
+ }
1279
+ })())){
1280
+ var G__7007_7034 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(cljs.core.first(updated_7032));
1281
+ (on_active_stage_change.cljs$core$IFn$_invoke$arity$1 ? on_active_stage_change.cljs$core$IFn$_invoke$arity$1(G__7007_7034) : on_active_stage_change.call(null,G__7007_7034));
1282
+ } else {
1283
+ }
1284
+ } else {
1285
+ }
1286
+
1287
+ if(cljs.core.truth_(on_entity_close)){
1288
+ var G__7008 = new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage);
1289
+ var G__7009 = entity_id;
1290
+ return (on_entity_close.cljs$core$IFn$_invoke$arity$2 ? on_entity_close.cljs$core$IFn$_invoke$arity$2(G__7008,G__7009) : on_entity_close.call(null,G__7008,G__7009));
1291
+ } else {
1292
+ return null;
1293
+ }
1294
+ });})(stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1295
+ ,((function (stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over){
1296
+ return (function (p1__6976_SHARP_){
1297
+ if(cljs.core.truth_(on_active_entity_change)){
1298
+ return (on_active_entity_change.cljs$core$IFn$_invoke$arity$1 ? on_active_entity_change.cljs$core$IFn$_invoke$arity$1(p1__6976_SHARP_) : on_active_entity_change.call(null,p1__6976_SHARP_));
1299
+ } else {
1300
+ return null;
1301
+ }
1302
+ });})(stage,s__6985__$2,temp__5804__auto__,map__6978,map__6978__$1,on_active_stage_change,on_active_entity_change,active_entity,stages,entities,active_stage,render_entity_card,on_stages_change,on_entity_close,drag_over))
1303
+ ])], null),new cljs.core.PersistentArrayMap(null, 1, [new cljs.core.Keyword(null,"key","key",-1516042587),new cljs.core.Keyword(null,"id","id",-1388402092).cljs$core$IFn$_invoke$arity$1(stage)], null)),iris_layout$core$sidebar_component_$_iter__6984(cljs.core.rest(s__6985__$2)));
1304
+ }
1305
+ } else {
1306
+ return null;
1307
+ }
1308
+ break;
1309
+ }
1310
+ }),null,null));
1311
+ });
1312
+ return iter__5480__auto__(stages);
1313
+ })()], null);
1314
+ });
1315
+ });
1316
+ /**
1317
+ * Wrapper that converts JS props to CLJS for body-component.
1318
+ */
1319
+ iris_layout.core.body_wrapper = (function iris_layout$core$body_wrapper(p__7010){
1320
+ var map__7011 = p__7010;
1321
+ var map__7011__$1 = cljs.core.__destructure_map(map__7011);
1322
+ var activeEntity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"activeEntity","activeEntity",1254491677));
1323
+ var activeStage = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"activeStage","activeStage",1509902625));
1324
+ var stages = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"stages","stages",-442109532));
1325
+ var onActiveStageChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"onActiveStageChange","onActiveStageChange",-1295769339));
1326
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
1327
+ var onEntityClose = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"onEntityClose","onEntityClose",-1093856051));
1328
+ var renderEntityTile = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"renderEntityTile","renderEntityTile",-762182701));
1329
+ var onActiveEntityChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"onActiveEntityChange","onActiveEntityChange",-856952332));
1330
+ var onStagesChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7011__$1,new cljs.core.Keyword(null,"onStagesChange","onStagesChange",-1419598601));
1331
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.body_component,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"on-active-entity-change","on-active-entity-change",-895471677),new cljs.core.Keyword(null,"stages","stages",-442109532),new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),new cljs.core.Keyword(null,"entities","entities",1940967403),new cljs.core.Keyword(null,"active-stage","active-stage",-1878042516),new cljs.core.Keyword(null,"render-entity-tile","render-entity-tile",183319276),new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),new cljs.core.Keyword(null,"on-stages-change","on-stages-change",870787057),new cljs.core.Keyword(null,"on-active-stage-change","on-active-stage-change",-824015015)],[onActiveEntityChange,iris_layout.core.js__GT_stages(stages),activeEntity,iris_layout.core.js__GT_entities(entities),activeStage,renderEntityTile,onEntityClose,(cljs.core.truth_(onStagesChange)?(function (new_stages){
1332
+ var G__7012 = iris_layout.core.stages__GT_js(new_stages);
1333
+ return (onStagesChange.cljs$core$IFn$_invoke$arity$1 ? onStagesChange.cljs$core$IFn$_invoke$arity$1(G__7012) : onStagesChange.call(null,G__7012));
1334
+ }):null),onActiveStageChange])], null);
1335
+ });
1336
+ /**
1337
+ * Wrapper that converts JS props to CLJS for sidebar-component.
1338
+ */
1339
+ iris_layout.core.sidebar_wrapper = (function iris_layout$core$sidebar_wrapper(p__7013){
1340
+ var map__7014 = p__7013;
1341
+ var map__7014__$1 = cljs.core.__destructure_map(map__7014);
1342
+ var activeEntity = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"activeEntity","activeEntity",1254491677));
1343
+ var activeStage = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"activeStage","activeStage",1509902625));
1344
+ var stages = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"stages","stages",-442109532));
1345
+ var renderEntityCard = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"renderEntityCard","renderEntityCard",-810161403));
1346
+ var onActiveStageChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"onActiveStageChange","onActiveStageChange",-1295769339));
1347
+ var entities = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"entities","entities",1940967403));
1348
+ var onEntityClose = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"onEntityClose","onEntityClose",-1093856051));
1349
+ var onActiveEntityChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"onActiveEntityChange","onActiveEntityChange",-856952332));
1350
+ var onStagesChange = cljs.core.get.cljs$core$IFn$_invoke$arity$2(map__7014__$1,new cljs.core.Keyword(null,"onStagesChange","onStagesChange",-1419598601));
1351
+ return new cljs.core.PersistentVector(null, 2, 5, cljs.core.PersistentVector.EMPTY_NODE, [iris_layout.core.sidebar_component,cljs.core.PersistentHashMap.fromArrays([new cljs.core.Keyword(null,"on-active-entity-change","on-active-entity-change",-895471677),new cljs.core.Keyword(null,"stages","stages",-442109532),new cljs.core.Keyword(null,"active-entity","active-entity",-1726204476),new cljs.core.Keyword(null,"entities","entities",1940967403),new cljs.core.Keyword(null,"active-stage","active-stage",-1878042516),new cljs.core.Keyword(null,"render-entity-card","render-entity-card",-1800863856),new cljs.core.Keyword(null,"on-entity-close","on-entity-close",1240890801),new cljs.core.Keyword(null,"on-stages-change","on-stages-change",870787057),new cljs.core.Keyword(null,"on-active-stage-change","on-active-stage-change",-824015015)],[onActiveEntityChange,iris_layout.core.js__GT_stages(stages),activeEntity,iris_layout.core.js__GT_entities(entities),activeStage,renderEntityCard,onEntityClose,(cljs.core.truth_(onStagesChange)?(function (new_stages){
1352
+ var G__7015 = iris_layout.core.stages__GT_js(new_stages);
1353
+ return (onStagesChange.cljs$core$IFn$_invoke$arity$1 ? onStagesChange.cljs$core$IFn$_invoke$arity$1(G__7015) : onStagesChange.call(null,G__7015));
1354
+ }):null),onActiveStageChange])], null);
1355
+ });
1356
+ /**
1357
+ * React component — stage list with draggable entity cards.
1358
+ * See namespace docstring for full props specification.
1359
+ */
1360
+ iris_layout.core.Sidebar = reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$1(iris_layout.core.sidebar_wrapper);
1361
+ /**
1362
+ * React component — layout surface with resizable, rearrangeable entity tiles.
1363
+ * See namespace docstring for full props specification.
1364
+ */
1365
+ iris_layout.core.Body = reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$1(iris_layout.core.body_wrapper);
1366
+ /**
1367
+ * React component — 2D workspace grid with Alt+Arrow navigation.
1368
+ * Workspaces are addressed by [x,y] coordinates in an infinite grid.
1369
+ */
1370
+ iris_layout.core.Grid = reagent.core.reactify_component.cljs$core$IFn$_invoke$arity$1(iris_layout.core.grid_wrapper);
1371
+
1372
+ //# sourceMappingURL=iris_layout.core.js.map