@p4ulcristian/iris-layout 0.2.10 → 0.2.11

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/iris-layout.js +60 -45
  2. package/dist/styles.css +172 -2
  3. package/package.json +1 -1
  4. package/dist/cljs-runtime/cljs.core.js +0 -38746
  5. package/dist/cljs-runtime/cljs.core.js.map +0 -1
  6. package/dist/cljs-runtime/cljs.pprint.js +0 -8400
  7. package/dist/cljs-runtime/cljs.pprint.js.map +0 -1
  8. package/dist/cljs-runtime/cljs.stacktrace.js +0 -561
  9. package/dist/cljs-runtime/cljs.stacktrace.js.map +0 -1
  10. package/dist/cljs-runtime/cljs_env.js +0 -1286
  11. package/dist/cljs-runtime/clojure.data.js +0 -295
  12. package/dist/cljs-runtime/clojure.data.js.map +0 -1
  13. package/dist/cljs-runtime/clojure.set.js +0 -382
  14. package/dist/cljs-runtime/clojure.set.js.map +0 -1
  15. package/dist/cljs-runtime/clojure.string.js +0 -480
  16. package/dist/cljs-runtime/clojure.string.js.map +0 -1
  17. package/dist/cljs-runtime/clojure.walk.js +0 -132
  18. package/dist/cljs-runtime/clojure.walk.js.map +0 -1
  19. package/dist/cljs-runtime/devtools.async.js +0 -90
  20. package/dist/cljs-runtime/devtools.async.js.map +0 -1
  21. package/dist/cljs-runtime/devtools.context.js +0 -11
  22. package/dist/cljs-runtime/devtools.context.js.map +0 -1
  23. package/dist/cljs-runtime/devtools.core.js +0 -175
  24. package/dist/cljs-runtime/devtools.core.js.map +0 -1
  25. package/dist/cljs-runtime/devtools.defaults.js +0 -20
  26. package/dist/cljs-runtime/devtools.defaults.js.map +0 -1
  27. package/dist/cljs-runtime/devtools.format.js +0 -631
  28. package/dist/cljs-runtime/devtools.format.js.map +0 -1
  29. package/dist/cljs-runtime/devtools.formatters.budgeting.js +0 -182
  30. package/dist/cljs-runtime/devtools.formatters.budgeting.js.map +0 -1
  31. package/dist/cljs-runtime/devtools.formatters.core.js +0 -220
  32. package/dist/cljs-runtime/devtools.formatters.core.js.map +0 -1
  33. package/dist/cljs-runtime/devtools.formatters.helpers.js +0 -228
  34. package/dist/cljs-runtime/devtools.formatters.helpers.js.map +0 -1
  35. package/dist/cljs-runtime/devtools.formatters.js +0 -261
  36. package/dist/cljs-runtime/devtools.formatters.js.map +0 -1
  37. package/dist/cljs-runtime/devtools.formatters.markup.js +0 -1174
  38. package/dist/cljs-runtime/devtools.formatters.markup.js.map +0 -1
  39. package/dist/cljs-runtime/devtools.formatters.printing.js +0 -313
  40. package/dist/cljs-runtime/devtools.formatters.printing.js.map +0 -1
  41. package/dist/cljs-runtime/devtools.formatters.state.js +0 -325
  42. package/dist/cljs-runtime/devtools.formatters.state.js.map +0 -1
  43. package/dist/cljs-runtime/devtools.formatters.templating.js +0 -666
  44. package/dist/cljs-runtime/devtools.formatters.templating.js.map +0 -1
  45. package/dist/cljs-runtime/devtools.hints.js +0 -193
  46. package/dist/cljs-runtime/devtools.hints.js.map +0 -1
  47. package/dist/cljs-runtime/devtools.munging.js +0 -1058
  48. package/dist/cljs-runtime/devtools.munging.js.map +0 -1
  49. package/dist/cljs-runtime/devtools.prefs.js +0 -87
  50. package/dist/cljs-runtime/devtools.prefs.js.map +0 -1
  51. package/dist/cljs-runtime/devtools.preload.js +0 -11
  52. package/dist/cljs-runtime/devtools.preload.js.map +0 -1
  53. package/dist/cljs-runtime/devtools.protocols.js +0 -98
  54. package/dist/cljs-runtime/devtools.protocols.js.map +0 -1
  55. package/dist/cljs-runtime/devtools.reporter.js +0 -81
  56. package/dist/cljs-runtime/devtools.reporter.js.map +0 -1
  57. package/dist/cljs-runtime/devtools.toolbox.js +0 -141
  58. package/dist/cljs-runtime/devtools.toolbox.js.map +0 -1
  59. package/dist/cljs-runtime/devtools.util.js +0 -517
  60. package/dist/cljs-runtime/devtools.util.js.map +0 -1
  61. package/dist/cljs-runtime/devtools.version.js +0 -9
  62. package/dist/cljs-runtime/devtools.version.js.map +0 -1
  63. package/dist/cljs-runtime/goog.array.array.js +0 -659
  64. package/dist/cljs-runtime/goog.array.array.js.map +0 -9
  65. package/dist/cljs-runtime/goog.asserts.asserts.js +0 -133
  66. package/dist/cljs-runtime/goog.asserts.asserts.js.map +0 -9
  67. package/dist/cljs-runtime/goog.asserts.dom.js +0 -90
  68. package/dist/cljs-runtime/goog.asserts.dom.js.map +0 -9
  69. package/dist/cljs-runtime/goog.async.nexttick.js +0 -93
  70. package/dist/cljs-runtime/goog.async.nexttick.js.map +0 -9
  71. package/dist/cljs-runtime/goog.base.js +0 -1261
  72. package/dist/cljs-runtime/goog.base.js.map +0 -9
  73. package/dist/cljs-runtime/goog.collections.maps.js +0 -82
  74. package/dist/cljs-runtime/goog.collections.maps.js.map +0 -9
  75. package/dist/cljs-runtime/goog.debug.entrypointregistry.js +0 -44
  76. package/dist/cljs-runtime/goog.debug.entrypointregistry.js.map +0 -9
  77. package/dist/cljs-runtime/goog.debug.error.js +0 -30
  78. package/dist/cljs-runtime/goog.debug.error.js.map +0 -9
  79. package/dist/cljs-runtime/goog.dom.asserts.js +0 -40
  80. package/dist/cljs-runtime/goog.dom.asserts.js.map +0 -9
  81. package/dist/cljs-runtime/goog.dom.browserfeature.js +0 -21
  82. package/dist/cljs-runtime/goog.dom.browserfeature.js.map +0 -9
  83. package/dist/cljs-runtime/goog.dom.dom.js +0 -1087
  84. package/dist/cljs-runtime/goog.dom.dom.js.map +0 -9
  85. package/dist/cljs-runtime/goog.dom.element.js +0 -69
  86. package/dist/cljs-runtime/goog.dom.element.js.map +0 -9
  87. package/dist/cljs-runtime/goog.dom.htmlelement.js +0 -7
  88. package/dist/cljs-runtime/goog.dom.htmlelement.js.map +0 -9
  89. package/dist/cljs-runtime/goog.dom.nodetype.js +0 -6
  90. package/dist/cljs-runtime/goog.dom.nodetype.js.map +0 -9
  91. package/dist/cljs-runtime/goog.dom.safe.js +0 -277
  92. package/dist/cljs-runtime/goog.dom.safe.js.map +0 -9
  93. package/dist/cljs-runtime/goog.dom.tagname.js +0 -147
  94. package/dist/cljs-runtime/goog.dom.tagname.js.map +0 -9
  95. package/dist/cljs-runtime/goog.dom.tags.js +0 -10
  96. package/dist/cljs-runtime/goog.dom.tags.js.map +0 -9
  97. package/dist/cljs-runtime/goog.flags.flags.js +0 -12
  98. package/dist/cljs-runtime/goog.flags.flags.js.map +0 -9
  99. package/dist/cljs-runtime/goog.fs.blob.js +0 -38
  100. package/dist/cljs-runtime/goog.fs.blob.js.map +0 -9
  101. package/dist/cljs-runtime/goog.fs.url.js +0 -37
  102. package/dist/cljs-runtime/goog.fs.url.js.map +0 -9
  103. package/dist/cljs-runtime/goog.functions.functions.js +0 -211
  104. package/dist/cljs-runtime/goog.functions.functions.js.map +0 -9
  105. package/dist/cljs-runtime/goog.html.safehtml.js +0 -321
  106. package/dist/cljs-runtime/goog.html.safehtml.js.map +0 -9
  107. package/dist/cljs-runtime/goog.html.safescript.js +0 -65
  108. package/dist/cljs-runtime/goog.html.safescript.js.map +0 -9
  109. package/dist/cljs-runtime/goog.html.safestyle.js +0 -175
  110. package/dist/cljs-runtime/goog.html.safestyle.js.map +0 -9
  111. package/dist/cljs-runtime/goog.html.safestylesheet.js +0 -99
  112. package/dist/cljs-runtime/goog.html.safestylesheet.js.map +0 -9
  113. package/dist/cljs-runtime/goog.html.safeurl.js +0 -231
  114. package/dist/cljs-runtime/goog.html.safeurl.js.map +0 -9
  115. package/dist/cljs-runtime/goog.html.trustedresourceurl.js +0 -123
  116. package/dist/cljs-runtime/goog.html.trustedresourceurl.js.map +0 -9
  117. package/dist/cljs-runtime/goog.html.trustedtypes.js +0 -16
  118. package/dist/cljs-runtime/goog.html.trustedtypes.js.map +0 -9
  119. package/dist/cljs-runtime/goog.html.uncheckedconversions.js +0 -52
  120. package/dist/cljs-runtime/goog.html.uncheckedconversions.js.map +0 -9
  121. package/dist/cljs-runtime/goog.labs.useragent.browser.js +0 -352
  122. package/dist/cljs-runtime/goog.labs.useragent.browser.js.map +0 -9
  123. package/dist/cljs-runtime/goog.labs.useragent.engine.js +0 -73
  124. package/dist/cljs-runtime/goog.labs.useragent.engine.js.map +0 -9
  125. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js +0 -14
  126. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropydata.js.map +0 -9
  127. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js +0 -74
  128. package/dist/cljs-runtime/goog.labs.useragent.highentropy.highentropyvalue.js.map +0 -9
  129. package/dist/cljs-runtime/goog.labs.useragent.platform.js +0 -147
  130. package/dist/cljs-runtime/goog.labs.useragent.platform.js.map +0 -9
  131. package/dist/cljs-runtime/goog.labs.useragent.useragent.js +0 -21
  132. package/dist/cljs-runtime/goog.labs.useragent.useragent.js.map +0 -9
  133. package/dist/cljs-runtime/goog.labs.useragent.util.js +0 -81
  134. package/dist/cljs-runtime/goog.labs.useragent.util.js.map +0 -9
  135. package/dist/cljs-runtime/goog.math.coordinate.js +0 -97
  136. package/dist/cljs-runtime/goog.math.coordinate.js.map +0 -9
  137. package/dist/cljs-runtime/goog.math.integer.js +0 -445
  138. package/dist/cljs-runtime/goog.math.integer.js.map +0 -9
  139. package/dist/cljs-runtime/goog.math.long.js +0 -437
  140. package/dist/cljs-runtime/goog.math.long.js.map +0 -9
  141. package/dist/cljs-runtime/goog.math.math.js +0 -158
  142. package/dist/cljs-runtime/goog.math.math.js.map +0 -9
  143. package/dist/cljs-runtime/goog.math.size.js +0 -76
  144. package/dist/cljs-runtime/goog.math.size.js.map +0 -9
  145. package/dist/cljs-runtime/goog.object.object.js +0 -284
  146. package/dist/cljs-runtime/goog.object.object.js.map +0 -9
  147. package/dist/cljs-runtime/goog.reflect.reflect.js +0 -32
  148. package/dist/cljs-runtime/goog.reflect.reflect.js.map +0 -9
  149. package/dist/cljs-runtime/goog.string.const.js +0 -35
  150. package/dist/cljs-runtime/goog.string.const.js.map +0 -9
  151. package/dist/cljs-runtime/goog.string.internal.js +0 -119
  152. package/dist/cljs-runtime/goog.string.internal.js.map +0 -9
  153. package/dist/cljs-runtime/goog.string.string.js +0 -462
  154. package/dist/cljs-runtime/goog.string.string.js.map +0 -9
  155. package/dist/cljs-runtime/goog.string.stringbuffer.js +0 -32
  156. package/dist/cljs-runtime/goog.string.stringbuffer.js.map +0 -9
  157. package/dist/cljs-runtime/goog.string.typedstring.js +0 -9
  158. package/dist/cljs-runtime/goog.string.typedstring.js.map +0 -9
  159. package/dist/cljs-runtime/goog.structs.structs.js +0 -199
  160. package/dist/cljs-runtime/goog.structs.structs.js.map +0 -9
  161. package/dist/cljs-runtime/goog.uri.uri.js +0 -628
  162. package/dist/cljs-runtime/goog.uri.uri.js.map +0 -9
  163. package/dist/cljs-runtime/goog.uri.utils.js +0 -326
  164. package/dist/cljs-runtime/goog.uri.utils.js.map +0 -9
  165. package/dist/cljs-runtime/goog.useragent.useragent.js +0 -139
  166. package/dist/cljs-runtime/goog.useragent.useragent.js.map +0 -9
  167. package/dist/cljs-runtime/iris_layout.components.entity_card_group.js +0 -202
  168. package/dist/cljs-runtime/iris_layout.components.entity_card_group.js.map +0 -1
  169. package/dist/cljs-runtime/iris_layout.components.entity_tile.js +0 -327
  170. package/dist/cljs-runtime/iris_layout.components.entity_tile.js.map +0 -1
  171. package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js +0 -33
  172. package/dist/cljs-runtime/iris_layout.components.entity_tile_group.js.map +0 -1
  173. package/dist/cljs-runtime/iris_layout.components.resizer.js +0 -91
  174. package/dist/cljs-runtime/iris_layout.components.resizer.js.map +0 -1
  175. package/dist/cljs-runtime/iris_layout.components.touch_drag.js +0 -385
  176. package/dist/cljs-runtime/iris_layout.components.touch_drag.js.map +0 -1
  177. package/dist/cljs-runtime/iris_layout.core.js +0 -876
  178. package/dist/cljs-runtime/iris_layout.core.js.map +0 -1
  179. package/dist/cljs-runtime/iris_layout.layout.js +0 -328
  180. package/dist/cljs-runtime/iris_layout.layout.js.map +0 -1
  181. package/dist/cljs-runtime/reagent.core.js +0 -993
  182. package/dist/cljs-runtime/reagent.core.js.map +0 -1
  183. package/dist/cljs-runtime/reagent.debug.js +0 -75
  184. package/dist/cljs-runtime/reagent.debug.js.map +0 -1
  185. package/dist/cljs-runtime/reagent.impl.batching.js +0 -270
  186. package/dist/cljs-runtime/reagent.impl.batching.js.map +0 -1
  187. package/dist/cljs-runtime/reagent.impl.component.js +0 -758
  188. package/dist/cljs-runtime/reagent.impl.component.js.map +0 -1
  189. package/dist/cljs-runtime/reagent.impl.input.js +0 -175
  190. package/dist/cljs-runtime/reagent.impl.input.js.map +0 -1
  191. package/dist/cljs-runtime/reagent.impl.protocols.js +0 -99
  192. package/dist/cljs-runtime/reagent.impl.protocols.js.map +0 -1
  193. package/dist/cljs-runtime/reagent.impl.template.js +0 -660
  194. package/dist/cljs-runtime/reagent.impl.template.js.map +0 -1
  195. package/dist/cljs-runtime/reagent.impl.util.js +0 -748
  196. package/dist/cljs-runtime/reagent.impl.util.js.map +0 -1
  197. package/dist/cljs-runtime/reagent.ratom.js +0 -1668
  198. package/dist/cljs-runtime/reagent.ratom.js.map +0 -1
  199. package/dist/cljs-runtime/shadow.esm.esm_import$react.js +0 -5
  200. package/dist/cljs-runtime/shadow.module.iris-layout.append.js +0 -2
  201. package/dist/cljs-runtime/shadow.module.iris-layout.prepend.js +0 -2
@@ -1,295 +0,0 @@
1
- import "./cljs_env.js";
2
- import "./cljs.core.js";
3
- import "./clojure.set.js";
4
- goog.provide('clojure.data');
5
- /**
6
- * Internal helper for diff.
7
- */
8
- clojure.data.atom_diff = (function clojure$data$atom_diff(a,b){
9
- if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){
10
- return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);
11
- } else {
12
- return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [a,b,null], null);
13
- }
14
- });
15
- /**
16
- * Convert an associative-by-numeric-index collection into
17
- * an equivalent vector, with nil for any missing keys
18
- */
19
- clojure.data.vectorize = (function clojure$data$vectorize(m){
20
- if(cljs.core.seq(m)){
21
- return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (result,p__8040){
22
- var vec__8041 = p__8040;
23
- var k = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__8041,(0),null);
24
- var v = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__8041,(1),null);
25
- return cljs.core.assoc.cljs$core$IFn$_invoke$arity$3(result,k,v);
26
- }),cljs.core.vec(cljs.core.repeat.cljs$core$IFn$_invoke$arity$2(cljs.core.apply.cljs$core$IFn$_invoke$arity$2(cljs.core.max,cljs.core.keys(m)),null)),m);
27
- } else {
28
- return null;
29
- }
30
- });
31
- /**
32
- * Diff associative things a and b, comparing only the key k.
33
- */
34
- clojure.data.diff_associative_key = (function clojure$data$diff_associative_key(a,b,k){
35
- var va = cljs.core.get.cljs$core$IFn$_invoke$arity$2(a,k);
36
- var vb = cljs.core.get.cljs$core$IFn$_invoke$arity$2(b,k);
37
- var vec__8048 = clojure.data.diff(va,vb);
38
- var a_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__8048,(0),null);
39
- var b_STAR_ = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__8048,(1),null);
40
- var ab = cljs.core.nth.cljs$core$IFn$_invoke$arity$3(vec__8048,(2),null);
41
- var in_a = cljs.core.contains_QMARK_(a,k);
42
- var in_b = cljs.core.contains_QMARK_(b,k);
43
- var same = ((in_a) && (((in_b) && ((((!((ab == null)))) || ((((va == null)) && ((vb == null)))))))));
44
- return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [((((in_a) && ((((!((a_STAR_ == null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,a_STAR_]):null),((((in_b) && ((((!((b_STAR_ == null)))) || ((!(same)))))))?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,b_STAR_]):null),((same)?cljs.core.PersistentArrayMap.createAsIfByAssoc([k,ab]):null)], null);
45
- });
46
- /**
47
- * Diff associative things a and b, comparing only keys in ks (if supplied).
48
- */
49
- clojure.data.diff_associative = (function clojure$data$diff_associative(var_args){
50
- var G__8079 = arguments.length;
51
- switch (G__8079) {
52
- case 2:
53
- return clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2((arguments[(0)]),(arguments[(1)]));
54
-
55
- break;
56
- case 3:
57
- return clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3((arguments[(0)]),(arguments[(1)]),(arguments[(2)]));
58
-
59
- break;
60
- default:
61
- throw (new Error(["Invalid arity: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(arguments.length)].join('')));
62
-
63
- }
64
- });
65
-
66
- (clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$2 = (function (a,b){
67
- return clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(a,b,clojure.set.union.cljs$core$IFn$_invoke$arity$2(cljs.core.keys(a),cljs.core.keys(b)));
68
- }));
69
-
70
- (clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3 = (function (a,b,ks){
71
- return cljs.core.reduce.cljs$core$IFn$_invoke$arity$3((function (diff1,diff2){
72
- return cljs.core.doall.cljs$core$IFn$_invoke$arity$1(cljs.core.map.cljs$core$IFn$_invoke$arity$3(cljs.core.merge,diff1,diff2));
73
- }),new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,null], null),cljs.core.map.cljs$core$IFn$_invoke$arity$2(cljs.core.partial.cljs$core$IFn$_invoke$arity$3(clojure.data.diff_associative_key,a,b),ks));
74
- }));
75
-
76
- (clojure.data.diff_associative.cljs$lang$maxFixedArity = 3);
77
-
78
- clojure.data.diff_sequential = (function clojure$data$diff_sequential(a,b){
79
- return cljs.core.vec(cljs.core.map.cljs$core$IFn$_invoke$arity$2(clojure.data.vectorize,clojure.data.diff_associative.cljs$core$IFn$_invoke$arity$3(((cljs.core.vector_QMARK_(a))?a:cljs.core.vec(a)),((cljs.core.vector_QMARK_(b))?b:cljs.core.vec(b)),cljs.core.range.cljs$core$IFn$_invoke$arity$1((function (){var x__5087__auto__ = cljs.core.count(a);
80
- var y__5088__auto__ = cljs.core.count(b);
81
- return ((x__5087__auto__ > y__5088__auto__) ? x__5087__auto__ : y__5088__auto__);
82
- })()))));
83
- });
84
- clojure.data.diff_set = (function clojure$data$diff_set(a,b){
85
- return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(a,b)),cljs.core.not_empty(clojure.set.difference.cljs$core$IFn$_invoke$arity$2(b,a)),cljs.core.not_empty(clojure.set.intersection.cljs$core$IFn$_invoke$arity$2(a,b))], null);
86
- });
87
-
88
- /**
89
- * Implementation detail. Subject to change.
90
- * @interface
91
- */
92
- clojure.data.EqualityPartition = function(){};
93
-
94
- var clojure$data$EqualityPartition$equality_partition$dyn_8190 = (function (x){
95
- var x__5350__auto__ = (((x == null))?null:x);
96
- var m__5351__auto__ = (clojure.data.equality_partition[goog.typeOf(x__5350__auto__)]);
97
- if((!((m__5351__auto__ == null)))){
98
- return (m__5351__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5351__auto__.call(null,x));
99
- } else {
100
- var m__5349__auto__ = (clojure.data.equality_partition["_"]);
101
- if((!((m__5349__auto__ == null)))){
102
- return (m__5349__auto__.cljs$core$IFn$_invoke$arity$1 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$1(x) : m__5349__auto__.call(null,x));
103
- } else {
104
- throw cljs.core.missing_protocol("EqualityPartition.equality-partition",x);
105
- }
106
- }
107
- });
108
- /**
109
- * Implementation detail. Subject to change.
110
- */
111
- clojure.data.equality_partition = (function clojure$data$equality_partition(x){
112
- if((((!((x == null)))) && ((!((x.clojure$data$EqualityPartition$equality_partition$arity$1 == null)))))){
113
- return x.clojure$data$EqualityPartition$equality_partition$arity$1(x);
114
- } else {
115
- return clojure$data$EqualityPartition$equality_partition$dyn_8190(x);
116
- }
117
- });
118
-
119
-
120
- /**
121
- * Implementation detail. Subject to change.
122
- * @interface
123
- */
124
- clojure.data.Diff = function(){};
125
-
126
- var clojure$data$Diff$diff_similar$dyn_8245 = (function (a,b){
127
- var x__5350__auto__ = (((a == null))?null:a);
128
- var m__5351__auto__ = (clojure.data.diff_similar[goog.typeOf(x__5350__auto__)]);
129
- if((!((m__5351__auto__ == null)))){
130
- return (m__5351__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5351__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__5351__auto__.call(null,a,b));
131
- } else {
132
- var m__5349__auto__ = (clojure.data.diff_similar["_"]);
133
- if((!((m__5349__auto__ == null)))){
134
- return (m__5349__auto__.cljs$core$IFn$_invoke$arity$2 ? m__5349__auto__.cljs$core$IFn$_invoke$arity$2(a,b) : m__5349__auto__.call(null,a,b));
135
- } else {
136
- throw cljs.core.missing_protocol("Diff.diff-similar",a);
137
- }
138
- }
139
- });
140
- /**
141
- * Implementation detail. Subject to change.
142
- */
143
- clojure.data.diff_similar = (function clojure$data$diff_similar(a,b){
144
- if((((!((a == null)))) && ((!((a.clojure$data$Diff$diff_similar$arity$2 == null)))))){
145
- return a.clojure$data$Diff$diff_similar$arity$2(a,b);
146
- } else {
147
- return clojure$data$Diff$diff_similar$dyn_8245(a,b);
148
- }
149
- });
150
-
151
- (clojure.data.EqualityPartition["null"] = true);
152
-
153
- (clojure.data.equality_partition["null"] = (function (x){
154
- return new cljs.core.Keyword(null,"atom","atom",-397043653);
155
- }));
156
-
157
- (clojure.data.EqualityPartition["string"] = true);
158
-
159
- (clojure.data.equality_partition["string"] = (function (x){
160
- return new cljs.core.Keyword(null,"atom","atom",-397043653);
161
- }));
162
-
163
- (clojure.data.EqualityPartition["number"] = true);
164
-
165
- (clojure.data.equality_partition["number"] = (function (x){
166
- return new cljs.core.Keyword(null,"atom","atom",-397043653);
167
- }));
168
-
169
- (clojure.data.EqualityPartition["array"] = true);
170
-
171
- (clojure.data.equality_partition["array"] = (function (x){
172
- return new cljs.core.Keyword(null,"sequential","sequential",-1082983960);
173
- }));
174
-
175
- (clojure.data.EqualityPartition["function"] = true);
176
-
177
- (clojure.data.equality_partition["function"] = (function (x){
178
- return new cljs.core.Keyword(null,"atom","atom",-397043653);
179
- }));
180
-
181
- (clojure.data.EqualityPartition["boolean"] = true);
182
-
183
- (clojure.data.equality_partition["boolean"] = (function (x){
184
- return new cljs.core.Keyword(null,"atom","atom",-397043653);
185
- }));
186
-
187
- (clojure.data.EqualityPartition["_"] = true);
188
-
189
- (clojure.data.equality_partition["_"] = (function (x){
190
- if((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (1024))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$IMap$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.IMap,x))){
191
- return new cljs.core.Keyword(null,"map","map",1371690461);
192
- } else {
193
- if((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (4096))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$ISet$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISet,x))){
194
- return new cljs.core.Keyword(null,"set","set",304602554);
195
- } else {
196
- if((((!((x == null))))?(((((x.cljs$lang$protocol_mask$partition0$ & (16777216))) || ((cljs.core.PROTOCOL_SENTINEL === x.cljs$core$ISequential$))))?true:(((!x.cljs$lang$protocol_mask$partition0$))?cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x):false)):cljs.core.native_satisfies_QMARK_(cljs.core.ISequential,x))){
197
- return new cljs.core.Keyword(null,"sequential","sequential",-1082983960);
198
- } else {
199
- return new cljs.core.Keyword(null,"atom","atom",-397043653);
200
-
201
- }
202
- }
203
- }
204
- }));
205
- (clojure.data.Diff["null"] = true);
206
-
207
- (clojure.data.diff_similar["null"] = (function (a,b){
208
- return clojure.data.atom_diff(a,b);
209
- }));
210
-
211
- (clojure.data.Diff["string"] = true);
212
-
213
- (clojure.data.diff_similar["string"] = (function (a,b){
214
- return clojure.data.atom_diff(a,b);
215
- }));
216
-
217
- (clojure.data.Diff["number"] = true);
218
-
219
- (clojure.data.diff_similar["number"] = (function (a,b){
220
- return clojure.data.atom_diff(a,b);
221
- }));
222
-
223
- (clojure.data.Diff["array"] = true);
224
-
225
- (clojure.data.diff_similar["array"] = (function (a,b){
226
- return clojure.data.diff_sequential(a,b);
227
- }));
228
-
229
- (clojure.data.Diff["function"] = true);
230
-
231
- (clojure.data.diff_similar["function"] = (function (a,b){
232
- return clojure.data.atom_diff(a,b);
233
- }));
234
-
235
- (clojure.data.Diff["boolean"] = true);
236
-
237
- (clojure.data.diff_similar["boolean"] = (function (a,b){
238
- return clojure.data.atom_diff(a,b);
239
- }));
240
-
241
- (clojure.data.Diff["_"] = true);
242
-
243
- (clojure.data.diff_similar["_"] = (function (a,b){
244
- var fexpr__8162 = (function (){var G__8163 = clojure.data.equality_partition(a);
245
- var G__8163__$1 = (((G__8163 instanceof cljs.core.Keyword))?G__8163.fqn:null);
246
- switch (G__8163__$1) {
247
- case "atom":
248
- return clojure.data.atom_diff;
249
-
250
- break;
251
- case "set":
252
- return clojure.data.diff_set;
253
-
254
- break;
255
- case "sequential":
256
- return clojure.data.diff_sequential;
257
-
258
- break;
259
- case "map":
260
- return clojure.data.diff_associative;
261
-
262
- break;
263
- default:
264
- throw (new Error(["No matching clause: ",cljs.core.str.cljs$core$IFn$_invoke$arity$1(G__8163__$1)].join('')));
265
-
266
- }
267
- })();
268
- return (fexpr__8162.cljs$core$IFn$_invoke$arity$2 ? fexpr__8162.cljs$core$IFn$_invoke$arity$2(a,b) : fexpr__8162.call(null,a,b));
269
- }));
270
- /**
271
- * Recursively compares a and b, returning a tuple of
272
- * [things-only-in-a things-only-in-b things-in-both].
273
- * Comparison rules:
274
- *
275
- * * For equal a and b, return [nil nil a].
276
- * * Maps are subdiffed where keys match and values differ.
277
- * * Sets are never subdiffed.
278
- * * All sequential things are treated as associative collections
279
- * by their indexes, with results returned as vectors.
280
- * * Everything else (including strings!) is treated as
281
- * an atom and compared for equality.
282
- */
283
- clojure.data.diff = (function clojure$data$diff(a,b){
284
- if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(a,b)){
285
- return new cljs.core.PersistentVector(null, 3, 5, cljs.core.PersistentVector.EMPTY_NODE, [null,null,a], null);
286
- } else {
287
- if(cljs.core._EQ_.cljs$core$IFn$_invoke$arity$2(clojure.data.equality_partition(a),clojure.data.equality_partition(b))){
288
- return clojure.data.diff_similar(a,b);
289
- } else {
290
- return clojure.data.atom_diff(a,b);
291
- }
292
- }
293
- });
294
-
295
- //# sourceMappingURL=clojure.data.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["clojure/data.cljs"],"mappings":"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","names":["clojure.data/atom-diff","a","b","cljs.core._EQ_","clojure.data/vectorize","m","cljs.core/seq","cljs.core.reduce","p__8040","vec__8041","cljs.core.nth","result","k","v","cljs.core.assoc","cljs.core/vec","cljs.core.repeat","cljs.core.apply","cljs.core/max","cljs.core/keys","clojure.data/diff-associative-key","vec__8048","va","cljs.core.get","vb","a*","b*","ab","clojure.data/diff","in-a","cljs.core/contains?","in-b","same","var_args","G__8079","clojure.data/diff-associative","js/Error","clojure.data.diff_associative","clojure.set.union","ks","diff1","diff2","cljs.core.doall","cljs.core.map","cljs.core/merge","cljs.core.partial","clojure.data/diff-sequential","cljs.core/vector?","cljs.core.range","x__5087__auto__","y__5088__auto__","cljs.core/count","clojure.data/diff-set","cljs.core/not-empty","clojure.set.difference","clojure.set.intersection","clojure$data$EqualityPartition$equality_partition$dyn","x__5350__auto__","m__5351__auto__","clojure.data/equality-partition","goog/typeOf","m__5349__auto__","cljs.core/missing-protocol","clojure.data/EqualityPartition","x","clojure$data$Diff$diff_similar$dyn","clojure.data/diff-similar","clojure.data/Diff","cljs.core/PROTOCOL_SENTINEL","cljs.core/native-satisfies?","cljs.core/IMap","cljs.core/ISet","cljs.core/ISequential","fexpr__8162","G__8163","cljs.core/Keyword"],"sourcesContent":["; Copyright (c) Rich Hickey. All rights reserved.\n; The use and distribution terms for this software are covered by the\n; Eclipse Public License 1.0 (http://opensource.org/licenses/eclipse-1.0.php)\n; which can be found in the file epl-v10.html at the root of this distribution.\n; By using this software in any fashion, you are agreeing to be bound by\n; the terms of this license.\n; You must not remove this notice, or any other, from this software.\n\n(ns \n ^{:author \"Stuart Halloway\",\n :doc \"Non-core data functions.\"}\n clojure.data\n (:require [clojure.set :as set]))\n\n(declare ^{:arglists '([a b])} diff)\n\n(defn- atom-diff\n \"Internal helper for diff.\"\n [a b]\n (if (= a b) [nil nil a] [a b nil]))\n\n;; for big things a sparse vector class would be better\n(defn- vectorize\n \"Convert an associative-by-numeric-index collection into\n an equivalent vector, with nil for any missing keys\"\n [m]\n (when (seq m)\n (reduce\n (fn [result [k v]] (assoc result k v))\n (vec (repeat (apply max (keys m)) nil))\n m)))\n\n(defn- diff-associative-key\n \"Diff associative things a and b, comparing only the key k.\"\n [a b k]\n (let [va (get a k)\n vb (get b k)\n [a* b* ab] (diff va vb)\n in-a (contains? a k)\n in-b (contains? b k)\n same (and in-a in-b\n (or (not (nil? ab))\n (and (nil? va) (nil? vb))))]\n [(when (and in-a (or (not (nil? a*)) (not same))) {k a*})\n (when (and in-b (or (not (nil? b*)) (not same))) {k b*})\n (when same {k ab})\n ]))\n\n(defn- diff-associative\n \"Diff associative things a and b, comparing only keys in ks (if supplied).\"\n ([a b]\n (diff-associative a b (set/union (keys a) (keys b))))\n ([a b ks]\n (reduce\n (fn [diff1 diff2]\n (doall (map merge diff1 diff2)))\n [nil nil nil]\n (map\n (partial diff-associative-key a b)\n ks))))\n\n(defn- diff-sequential\n [a b]\n (vec (map vectorize (diff-associative\n (if (vector? a) a (vec a))\n (if (vector? b) b (vec b))\n (range (max (count a) (count b)))))))\n\n(defn- diff-set\n [a b]\n [(not-empty (set/difference a b))\n (not-empty (set/difference b a))\n (not-empty (set/intersection a b))])\n\n(defprotocol EqualityPartition\n \"Implementation detail. Subject to change.\"\n (equality-partition [x] \"Implementation detail. Subject to change.\"))\n\n(defprotocol Diff\n \"Implementation detail. Subject to change.\"\n (diff-similar [a b] \"Implementation detail. Subject to change.\"))\n\n(extend-protocol EqualityPartition\n nil\n (equality-partition [x] :atom)\n\n string\n (equality-partition [x] :atom)\n\n number\n (equality-partition [x] :atom)\n\n array\n (equality-partition [x] :sequential)\n\n function\n (equality-partition [x] :atom)\n\n boolean\n (equality-partition [x] :atom)\n\n default\n (equality-partition [x]\n (cond\n (satisfies? IMap x) :map\n (satisfies? ISet x) :set\n (satisfies? ISequential x) :sequential\n :default :atom)))\n\n(extend-protocol Diff\n nil\n (diff-similar [a b]\n (atom-diff a b))\n\n string\n (diff-similar [a b]\n (atom-diff a b))\n\n number\n (diff-similar [a b]\n (atom-diff a b))\n\n array\n (diff-similar [a b]\n (diff-sequential a b))\n\n function\n (diff-similar [a b]\n (atom-diff a b))\n\n boolean\n (diff-similar [a b]\n (atom-diff a b))\n\n default\n (diff-similar [a b]\n ((case (equality-partition a)\n :atom atom-diff\n :set diff-set\n :sequential diff-sequential\n :map diff-associative)\n a b)))\n\n(defn diff\n \"Recursively compares a and b, returning a tuple of\n [things-only-in-a things-only-in-b things-in-both].\n Comparison rules:\n\n * For equal a and b, return [nil nil a].\n * Maps are subdiffed where keys match and values differ.\n * Sets are never subdiffed.\n * All sequential things are treated as associative collections\n by their indexes, with results returned as vectors.\n * Everything else (including strings!) is treated as\n an atom and compared for equality.\"\n [a b]\n (if (= a b)\n [nil nil a]\n (if (= (equality-partition a) (equality-partition b))\n (diff-similar a b)\n (atom-diff a b))))\n \n"],"x_google_ignoreList":[0]}