gramene-search 1.2.60 → 1.2.62

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 (81) hide show
  1. package/.parcel-cache/2126881b633272fa.txt +2 -2
  2. package/.parcel-cache/425346ba6a54d932 +0 -0
  3. package/.parcel-cache/878e3ffbad677982 +0 -0
  4. package/.parcel-cache/cdecf11601322051 +0 -0
  5. package/.parcel-cache/data.mdb +0 -0
  6. package/.parcel-cache/lock.mdb +0 -0
  7. package/dist/index.css +51 -5
  8. package/dist/index.css.map +1 -1
  9. package/dist/index.js +294 -41
  10. package/dist/index.js.map +1 -1
  11. package/package.json +2 -2
  12. package/src/bundles/api.js +66 -2
  13. package/src/bundles/views.js +5 -5
  14. package/src/components/geneSearchUI.js +15 -7
  15. package/src/components/results/GeneAttribs.js +22 -0
  16. package/src/components/results/GeneList.js +11 -11
  17. package/src/components/results/details/Pathways.js +69 -18
  18. package/src/components/results/genes.css +5 -2
  19. package/src/components/suggestions.js +11 -3
  20. package/src/demo.js +1 -1
  21. package/src/sorghum.html +1 -1
  22. package/.parcel-cache/0eebcef07661bc3d +0 -0
  23. package/.parcel-cache/1074c0e07bdf967b +0 -0
  24. package/.parcel-cache/109421cc5334effc +0 -0
  25. package/.parcel-cache/1f4cb7f565eb2ab2 +0 -0
  26. package/.parcel-cache/28dd49a95ac02b6d +0 -0
  27. package/.parcel-cache/2de2aad73a84c506.txt +0 -2
  28. package/.parcel-cache/30fd64bedd0aa388 +0 -0
  29. package/.parcel-cache/37c075a090d2565c +0 -0
  30. package/.parcel-cache/3d6ce3ee43e7653a +0 -0
  31. package/.parcel-cache/3eeb9509bebcf2ac +0 -0
  32. package/.parcel-cache/475da2e0135128de +0 -0
  33. package/.parcel-cache/49c2f4132d684eb4 +0 -0
  34. package/.parcel-cache/4ae8ea29b06fc122 +0 -0
  35. package/.parcel-cache/4b1a7feb2152e1a6 +0 -0
  36. package/.parcel-cache/51b3a3e59d4531e5 +0 -0
  37. package/.parcel-cache/5921bb4300abe7e0 +0 -0
  38. package/.parcel-cache/6a65f3a66d0bc0b9 +0 -0
  39. package/.parcel-cache/820cf869d3765f50 +0 -0
  40. package/.parcel-cache/89e6089e5f2b1b34 +0 -0
  41. package/.parcel-cache/91f46f772c0579c8 +0 -0
  42. package/.parcel-cache/93dd4523e6ae1c2b +0 -0
  43. package/.parcel-cache/9dce5071e181cb17 +0 -0
  44. package/.parcel-cache/a0e0c32eaa18ad0c +0 -0
  45. package/.parcel-cache/a3a81977a6c8b2de +0 -0
  46. package/.parcel-cache/b02e067052938035 +0 -0
  47. package/.parcel-cache/b7c8836349ebc1ad +0 -0
  48. package/.parcel-cache/c59920a8734079a9 +0 -0
  49. package/.parcel-cache/d1ca4bad2a4835bf +0 -0
  50. package/.parcel-cache/d228d7d3f78b8254 +0 -0
  51. package/.parcel-cache/d5a39110b78b22b7.txt +0 -2
  52. package/.parcel-cache/d5c5093b5730a6bc +0 -0
  53. package/.parcel-cache/d5e0792a8ab7e7c2 +0 -0
  54. package/.parcel-cache/ebd337989d960140 +0 -0
  55. package/.parcel-cache/fbe4115c6a7aa63c +0 -0
  56. package/dist/android-chrome-192x192.4d149c27.png +0 -0
  57. package/dist/apple-touch-icon-114x114.27e956ae.png +0 -0
  58. package/dist/apple-touch-icon-120x120.b209ed9f.png +0 -0
  59. package/dist/apple-touch-icon-144x144.9f8e2136.png +0 -0
  60. package/dist/apple-touch-icon-152x152.b6107a9b.png +0 -0
  61. package/dist/apple-touch-icon-180x180.58fbcc65.png +0 -0
  62. package/dist/apple-touch-icon-57x57.f670c755.png +0 -0
  63. package/dist/apple-touch-icon-60x60.3fbc15ae.png +0 -0
  64. package/dist/apple-touch-icon-72x72.a0fd991d.png +0 -0
  65. package/dist/apple-touch-icon-76x76.437b43b5.png +0 -0
  66. package/dist/favicon-16x16.4dd6b101.png +0 -0
  67. package/dist/favicon-32x32.a0d53b79.png +0 -0
  68. package/dist/favicon-96x96.6cd9b68e.png +0 -0
  69. package/dist/genetree.d75946eb.png +0 -0
  70. package/dist/maize.250fb7b9.js +0 -15812
  71. package/dist/maize.250fb7b9.js.map +0 -1
  72. package/dist/maize.88d39636.css +0 -26748
  73. package/dist/maize.88d39636.css.map +0 -1
  74. package/dist/maize.b34cb912.js +0 -295081
  75. package/dist/maize.b34cb912.js.map +0 -1
  76. package/dist/maize.html +0 -52
  77. package/dist/results.a8da7555.png +0 -0
  78. package/dist/suggestions.099b7c0e.png +0 -0
  79. /package/.parcel-cache/{0850f41e3fa2cee0 → 0858309027f538e5} +0 -0
  80. /package/.parcel-cache/{38a4809b89871d7e → 4da32e22b8fe76ff} +0 -0
  81. /package/.parcel-cache/{053652d4a44643c1 → 705a6567e1502c9b} +0 -0
package/dist/index.js CHANGED
@@ -7,10 +7,10 @@ var $gXNCa$gramenetaxonomywithgenomes = require("gramene-taxonomy-with-genomes")
7
7
  var $gXNCa$reactjsxruntime = require("react/jsx-runtime");
8
8
  var $gXNCa$reduxbundlerreact = require("redux-bundler-react");
9
9
  var $gXNCa$react = require("react");
10
+ var $gXNCa$reactga = require("react-ga");
10
11
  var $gXNCa$reactbootstrap = require("react-bootstrap");
11
12
  var $gXNCa$reacticonsio5 = require("react-icons/io5");
12
13
  var $gXNCa$reacticonsbs = require("react-icons/bs");
13
- var $gXNCa$reactga = require("react-ga");
14
14
  var $gXNCa$reacticonsgr = require("react-icons/gr");
15
15
  var $gXNCa$gramenegenetreevis = require("gramene-genetree-vis");
16
16
  var $gXNCa$lodashkeyBy = require("lodash/keyBy");
@@ -18,7 +18,7 @@ var $gXNCa$reacticonsbi = require("react-icons/bi");
18
18
  var $gXNCa$lodashget = require("lodash/get");
19
19
  var $gXNCa$lodashisEqual = require("lodash/isEqual");
20
20
  var $gXNCa$flattonested = require("flat-to-nested");
21
- var $gXNCa$reacttreemenu = require("react-tree-menu");
21
+ var $gXNCa$reactsimpletreemenu = require("react-simple-tree-menu");
22
22
  var $gXNCa$gramenedbxrefs = require("gramene-dbxrefs");
23
23
  var $gXNCa$gramenesearchvis = require("gramene-search-vis");
24
24
  var $gXNCa$numeral = require("numeral");
@@ -58,7 +58,7 @@ const $9d9aeaf9299e61a1$var$grameneSuggestions = (0, $gXNCa$reduxbundler.createA
58
58
  getPromise: ({ store: store })=>{
59
59
  const t = store.selectSuggestionsQuery().replaceAll(":", " ").trim();
60
60
  const g = store.selectGrameneGenomes();
61
- return fetch(`${store.selectGrameneAPI()}/suggest?q={!boost b=relevance}name:${t}^3 id:${t}^5 synonym:${t}^2 text:${t}*^1`).then((res)=>res.json()).then((suggestions)=>{
61
+ return fetch(`${store.selectGrameneAPI()}/suggest?q={!boost b=relevance}name:${t}^3 ids:${t}^5 synonym:${t}^2 text:${t}*^1`).then((res)=>res.json()).then((suggestions)=>{
62
62
  if (Object.keys(g.active).length > 0) suggestions.grouped.category.groups.forEach((group)=>{
63
63
  group.doclist.docs.forEach((sugg)=>{
64
64
  sugg.num_genes = 0;
@@ -177,6 +177,148 @@ $9d9aeaf9299e61a1$var$grameneExpressionAssays.reactGrameneExpressionAssays = (0,
177
177
  actionCreator: "doFetchGrameneExpressionAssays"
178
178
  };
179
179
  });
180
+ const $9d9aeaf9299e61a1$var$attribFacetFields = [
181
+ "{!facet.limit='10' facet.mincount='1' key='age'}panset_age_attr_s",
182
+ "{!facet.limit='100' facet.mincount='1' key='taxa'}panset_ntaxa_attr_i",
183
+ "{!facet.limit='100' facet.mincount='1' key='AED' type='range' start=0 end=1.0 gap=0.25}MAKER_AED_attr_f",
184
+ "{!facet.limit='100' facet.mincount='1' key='QI2' type='range' start=0 end=1.0 gap=0.25}MAKER_QI2_attr_f",
185
+ "{!facet.limit='100' facet.mincount='1' key='QI3' type='range' start=0 end=1.0 gap=0.25}MAKER_QI3_attr_f",
186
+ "{!facet.limit='100' facet.mincount='1' key='QI4' type='range' start=0 end=1.0 gap=0.25}MAKER_QI4_attr_f",
187
+ "{!facet.limit='100' facet.mincount='1' key='QI5' type='range' start=0 end=1.0 gap=0.25}MAKER_QI5_attr_f",
188
+ "{!facet.limit='100' facet.mincount='1' key='QI6' type='range' start=0 end=1.0 gap=0.25}MAKER_QI6_attr_f"
189
+ ];
190
+ const $9d9aeaf9299e61a1$var$attribFacets = {
191
+ "age": {
192
+ "type": "terms",
193
+ "field": "panset_age_attr_s"
194
+ },
195
+ "nTaxa": {
196
+ "type": "terms",
197
+ "field": "panset_ntaxa_attr_i",
198
+ "limit": 100
199
+ },
200
+ "AED": {
201
+ "type": "range",
202
+ "field": "MAKER_AED_attr_f",
203
+ "start": 0.0,
204
+ "end": 1.0,
205
+ "gap": 0.25
206
+ },
207
+ "QI2": {
208
+ "type": "range",
209
+ "field": "MAKER_QI2_attr_f",
210
+ "start": 0.0,
211
+ "end": 1.0,
212
+ "gap": 0.25
213
+ },
214
+ "QI3": {
215
+ "type": "range",
216
+ "field": "MAKER_QI3_attr_f",
217
+ "start": 0.0,
218
+ "end": 1.0,
219
+ "gap": 0.25
220
+ },
221
+ "QI4": {
222
+ "type": "range",
223
+ "field": "MAKER_QI4_attr_f",
224
+ "start": 0.0,
225
+ "end": 1.0,
226
+ "gap": 0.25
227
+ },
228
+ "QI5": {
229
+ "type": "range",
230
+ "field": "MAKER_QI5_attr_f",
231
+ "start": 0.0,
232
+ "end": 1.0,
233
+ "gap": 0.25
234
+ },
235
+ "QI6": {
236
+ "type": "range",
237
+ "field": "MAKER_QI6_attr_f",
238
+ "start": 0.0,
239
+ "end": 1.0,
240
+ "gap": 0.25
241
+ },
242
+ "byAge": {
243
+ "type": "terms",
244
+ "field": "panset_age_attr_s",
245
+ "facet": {
246
+ "nTaxa": {
247
+ "type": "terms",
248
+ "field": "panset_ntaxa_attr_i",
249
+ "limit": 100
250
+ },
251
+ "AED": {
252
+ "type": "range",
253
+ "field": "MAKER_AED_attr_f",
254
+ "start": 0.0,
255
+ "end": 1.0,
256
+ "gap": 0.25
257
+ },
258
+ "QI2": {
259
+ "type": "range",
260
+ "field": "MAKER_QI2_attr_f",
261
+ "start": 0.0,
262
+ "end": 1.0,
263
+ "gap": 0.25
264
+ },
265
+ "QI3": {
266
+ "type": "range",
267
+ "field": "MAKER_QI3_attr_f",
268
+ "start": 0.0,
269
+ "end": 1.0,
270
+ "gap": 0.25
271
+ },
272
+ "QI4": {
273
+ "type": "range",
274
+ "field": "MAKER_QI4_attr_f",
275
+ "start": 0.0,
276
+ "end": 1.0,
277
+ "gap": 0.25
278
+ },
279
+ "QI5": {
280
+ "type": "range",
281
+ "field": "MAKER_QI5_attr_f",
282
+ "start": 0.0,
283
+ "end": 1.0,
284
+ "gap": 0.25
285
+ },
286
+ "QI6": {
287
+ "type": "range",
288
+ "field": "MAKER_QI6_attr_f",
289
+ "start": 0.0,
290
+ "end": 1.0,
291
+ "gap": 0.25
292
+ }
293
+ }
294
+ }
295
+ };
296
+ const $9d9aeaf9299e61a1$var$grameneGeneAttribs = (0, $gXNCa$reduxbundler.createAsyncResourceBundle)({
297
+ name: "grameneGeneAttribs",
298
+ actionBaseType: "GRAMENE_GENE_ATTRIBS",
299
+ persist: false,
300
+ getPromise: ({ store: store })=>{
301
+ const g = store.selectGrameneGenomes();
302
+ const taxa = Object.keys(g.active);
303
+ let fq = "";
304
+ if (taxa.length) {
305
+ console.log("search add a fq for ", taxa);
306
+ fq = `&fq=taxon_id:(${taxa.join(" OR ")})`;
307
+ }
308
+ return fetch(`${store.selectGrameneAPI()}/search?q=${store.selectGrameneFiltersQueryString()}&json.facet=${JSON.stringify($9d9aeaf9299e61a1$var$attribFacets)}&rows=0${fq}`)// return fetch(`${store.selectGrameneAPI()}/search?rows=1&q=MAKER_AED_attr_f:*&json.facet=${JSON.stringify(attribFacets)}`)
309
+ .then((res)=>res.json()).then((res)=>{
310
+ return res.facets;
311
+ });
312
+ }
313
+ });
314
+ $9d9aeaf9299e61a1$var$grameneGeneAttribs.reactGrameneGeneAttribs = (0, $gXNCa$reduxbundler.createSelector)("selectGrameneGeneAttribsShouldUpdate", "selectGrameneFiltersStatus", "selectGrameneViews", (shouldUpdate, status, views)=>{
315
+ if (shouldUpdate && (status === "finished" || status === "ready")) {
316
+ const byId = (0, ($parcel$interopDefault($gXNCa$lodash))).keyBy(views.options, "id");
317
+ if (byId.attribs.show === "on") return {
318
+ actionCreator: "doFetchGrameneGeneAttribs"
319
+ };
320
+ }
321
+ });
180
322
  const $9d9aeaf9299e61a1$var$grameneSearch = (0, $gXNCa$reduxbundler.createAsyncResourceBundle)({
181
323
  name: "grameneSearch",
182
324
  actionBaseType: "GRAMENE_SEARCH",
@@ -356,7 +498,8 @@ $9d9aeaf9299e61a1$export$2e2bcd8739ae039 //, grameneExpressionStudies, grameneEx
356
498
  $9d9aeaf9299e61a1$var$grameneTaxonomy,
357
499
  $9d9aeaf9299e61a1$var$grameneTaxDist,
358
500
  $9d9aeaf9299e61a1$var$grameneOrthologs,
359
- $9d9aeaf9299e61a1$var$curatedGenes
501
+ $9d9aeaf9299e61a1$var$curatedGenes,
502
+ $9d9aeaf9299e61a1$var$grameneGeneAttribs
360
503
  ];
361
504
 
362
505
 
@@ -995,6 +1138,11 @@ const $24971af0a229e0e3$var$grameneViews = {
995
1138
  id: "list",
996
1139
  name: "Gene list",
997
1140
  show: "on"
1141
+ },
1142
+ {
1143
+ id: "attribs",
1144
+ name: "Gene attributes",
1145
+ show: "off"
998
1146
  }
999
1147
  ]
1000
1148
  };
@@ -1497,6 +1645,7 @@ var $27617dbc24e7faf0$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.conn
1497
1645
 
1498
1646
 
1499
1647
 
1648
+
1500
1649
  function $541b8b0d8c5501d2$var$showMatches(text, x) {
1501
1650
  let re = new RegExp(`(${x})`, "ig");
1502
1651
  let match = text.split(re);
@@ -1515,6 +1664,13 @@ function $541b8b0d8c5501d2$var$showMatches(text, x) {
1515
1664
  })
1516
1665
  });
1517
1666
  }
1667
+ function $541b8b0d8c5501d2$var$logAction(sugg) {
1668
+ (0, ($parcel$interopDefault($gXNCa$reactga))).event({
1669
+ category: "Search",
1670
+ action: "SetFilter",
1671
+ label: sugg.name
1672
+ });
1673
+ }
1518
1674
  const $541b8b0d8c5501d2$var$Suggestions = (props)=>{
1519
1675
  let suggestions = props.grameneSuggestions;
1520
1676
  if (suggestions && suggestions.grouped) {
@@ -1551,6 +1707,7 @@ const $541b8b0d8c5501d2$var$Suggestions = (props)=>{
1551
1707
  size: "sm",
1552
1708
  variant: "outline-secondary",
1553
1709
  onClick: ()=>{
1710
+ $541b8b0d8c5501d2$var$logAction(sugg1);
1554
1711
  props.doAcceptSuggestion(sugg1);
1555
1712
  props.doAcceptGrameneSuggestion(sugg1);
1556
1713
  },
@@ -1561,6 +1718,7 @@ const $541b8b0d8c5501d2$var$Suggestions = (props)=>{
1561
1718
  size: "sm",
1562
1719
  variant: "outline-secondary",
1563
1720
  onClick: ()=>{
1721
+ $541b8b0d8c5501d2$var$logAction(sugg2);
1564
1722
  props.doAcceptSuggestion(sugg2);
1565
1723
  props.doAcceptGrameneSuggestion(sugg2);
1566
1724
  },
@@ -1586,6 +1744,7 @@ const $541b8b0d8c5501d2$var$Suggestions = (props)=>{
1586
1744
  size: "sm",
1587
1745
  variant: "outline-secondary",
1588
1746
  onClick: ()=>{
1747
+ $541b8b0d8c5501d2$var$logAction(sugg);
1589
1748
  props.doAcceptSuggestion(sugg);
1590
1749
  props.doAcceptGrameneSuggestion(sugg);
1591
1750
  },
@@ -2368,6 +2527,7 @@ var $264d7db426cab787$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.conn
2368
2527
 
2369
2528
 
2370
2529
 
2530
+
2371
2531
  var $54c74a4689d5a778$var$reactomeURL = "https://plantreactome.gramene.org";
2372
2532
  class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$react))).Component {
2373
2533
  constructor(props){
@@ -2412,10 +2572,10 @@ class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$
2412
2572
  0
2413
2573
  ];
2414
2574
  let parent = node;
2415
- while(node.children){
2575
+ while(node.nodes){
2416
2576
  path.push(0);
2417
2577
  parent = node;
2418
- node = node.children[0];
2578
+ node = node.nodes[0];
2419
2579
  }
2420
2580
  console.log(parent, node, path);
2421
2581
  this.loadNodes(path);
@@ -2468,6 +2628,7 @@ class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$
2468
2628
  let parentOffset = line.length - 2;
2469
2629
  nodes.push({
2470
2630
  id: pwyId,
2631
+ key: pwyId,
2471
2632
  label: pwy.name,
2472
2633
  type: pwy.type,
2473
2634
  checkbox: false,
@@ -2477,7 +2638,9 @@ class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$
2477
2638
  });
2478
2639
  }
2479
2640
  });
2480
- let nested = new (0, ($parcel$interopDefault($gXNCa$flattonested)))().convert(nodes);
2641
+ let nested = new (0, ($parcel$interopDefault($gXNCa$flattonested)))({
2642
+ children: "nodes"
2643
+ }).convert(nodes);
2481
2644
  this.setState({
2482
2645
  hierarchy: [
2483
2646
  nested
@@ -2485,6 +2648,29 @@ class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$
2485
2648
  selectedNode: undefined
2486
2649
  });
2487
2650
  }
2651
+ possiblyLoadNodes(node) {
2652
+ if (!node.selected) {
2653
+ let selectedNode = this.state.selectedNode;
2654
+ selectedNode.selected = false;
2655
+ node.selected = true;
2656
+ selectedNode = node;
2657
+ if (node.type === "Pathway") {
2658
+ let pathway = this.stableId(node.id);
2659
+ this.loadDiagram(pathway);
2660
+ } else {
2661
+ let reaction = this.stableId(node.id);
2662
+ let pathway1 = this.stableId(node.parent.split("/").pop());
2663
+ if (this.loadedDiagram === pathway1) this.diagram.selectItem(reaction);
2664
+ else {
2665
+ if (this.diagram) this.diagram.resetSelection();
2666
+ this.loadDiagram(pathway1, reaction);
2667
+ }
2668
+ }
2669
+ this.setState({
2670
+ selectedNode: selectedNode
2671
+ });
2672
+ }
2673
+ }
2488
2674
  loadNodes(nodes) {
2489
2675
  let hierarchy = this.state.hierarchy;
2490
2676
  let selectedNode = this.state.selectedNode;
@@ -2493,10 +2679,10 @@ class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$
2493
2679
  let lineage = [
2494
2680
  nodeRef
2495
2681
  ];
2496
- nodes.forEach(function(n) {
2497
- nodeRef = nodeRef.children[n];
2682
+ while(nodeRef.nodes){
2683
+ nodeRef = nodeRef.nodes[0];
2498
2684
  lineage.unshift(nodeRef);
2499
- });
2685
+ }
2500
2686
  if (lineage[0].id !== 2894885) {
2501
2687
  let pathway = this.stableId(lineage[0].id);
2502
2688
  let reaction = undefined;
@@ -2532,14 +2718,36 @@ class $54c74a4689d5a778$var$Pathways extends (0, ($parcel$interopDefault($gXNCa$
2532
2718
  }
2533
2719
  }
2534
2720
  renderHierarchy() {
2535
- if (this.state.hierarchy) return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reacttreemenu.TreeMenu), {
2536
- data: this.state.hierarchy,
2537
- expandIconClass: "fa fa-chevron-right",
2538
- collapseIconClass: "fa fa-chevron-down",
2539
- stateful: true,
2540
- collapsible: true,
2541
- onTreeNodeClick: this.loadNodes.bind(this)
2542
- });
2721
+ if (this.state.hierarchy) {
2722
+ let path = [];
2723
+ let allPaths = [];
2724
+ let nodes = this.state.hierarchy;
2725
+ while(nodes){
2726
+ path.push(nodes[0].key);
2727
+ allPaths.push(path.join("/"));
2728
+ if (nodes[0].hasOwnProperty("nodes")) nodes = nodes[0].nodes;
2729
+ else nodes = undefined;
2730
+ }
2731
+ // console.log(path);
2732
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, ($parcel$interopDefault($gXNCa$reactsimpletreemenu))), {
2733
+ data: this.state.hierarchy,
2734
+ hasSearch: false,
2735
+ onClickItem: (item)=>this.possiblyLoadNodes(item),
2736
+ onClickItemx: (item)=>console.log("onClickItem", item),
2737
+ initialActiveKey: path.join("/"),
2738
+ initialOpenNodes: allPaths
2739
+ });
2740
+ // return (
2741
+ // <TreeMenu
2742
+ // data={this.state.hierarchy}
2743
+ // expandIconClass="fa fa-chevron-right"
2744
+ // collapseIconClass="fa fa-chevron-down"
2745
+ // stateful={true}
2746
+ // collapsible={true}
2747
+ // onTreeNodeClick={this.loadNodes.bind(this)}
2748
+ // />
2749
+ // );
2750
+ }
2543
2751
  return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, $gXNCa$reactbootstrap.Spinner), {});
2544
2752
  }
2545
2753
  updateQuery() {
@@ -3069,6 +3277,11 @@ class $6c5c4f90059875bf$var$Gene extends (0, ($parcel$interopDefault($gXNCa$reac
3069
3277
  else {
3070
3278
  const geneId = this.props.searchResult.id;
3071
3279
  if (!(this.props.geneDocs && this.props.geneDocs.hasOwnProperty(geneId))) this.props.requestGene(geneId);
3280
+ (0, ($parcel$interopDefault($gXNCa$reactga))).event({
3281
+ category: "Search",
3282
+ action: "Details",
3283
+ label: d.label
3284
+ });
3072
3285
  this.setState({
3073
3286
  expandedDetail: d.id
3074
3287
  });
@@ -3106,28 +3319,25 @@ class $6c5c4f90059875bf$var$Gene extends (0, ($parcel$interopDefault($gXNCa$reac
3106
3319
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("div", {
3107
3320
  className: "result-gene-title-body",
3108
3321
  children: [
3109
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("h3", {
3322
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("div", {
3110
3323
  className: "gene-title",
3111
3324
  children: [
3112
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("span", {
3113
- className: "gene-name",
3114
- children: searchResult.name
3325
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("div", {
3326
+ className: "gene-species",
3327
+ children: taxName
3115
3328
  }),
3116
- searchResult.id !== searchResult.name && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("small", {
3117
- className: "gene-id",
3329
+ /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("h3", {
3330
+ className: "gene-name",
3118
3331
  children: [
3119
- " ",
3120
- searchResult.id
3332
+ searchResult.name,
3333
+ searchResult.id !== searchResult.name && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("small", {
3334
+ className: "gene-id",
3335
+ children: [
3336
+ "\xa0",
3337
+ searchResult.id
3338
+ ]
3339
+ })
3121
3340
  ]
3122
- }),
3123
- /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)((0, ($parcel$interopDefault($gXNCa$reactga))).OutboundLink, {
3124
- eventLabel: searchResult.system_name,
3125
- to: `${ensemblURL}/${searchResult.system_name}/Info/Index`,
3126
- className: "external-link",
3127
- children: /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("small", {
3128
- className: "gene-species",
3129
- children: taxName
3130
- })
3131
3341
  })
3132
3342
  ]
3133
3343
  }),
@@ -3572,6 +3782,26 @@ var $b36244140732570a$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.conn
3572
3782
 
3573
3783
 
3574
3784
 
3785
+ class $67bf5a43401bffdc$var$GeneAttribs extends (0, ($parcel$interopDefault($gXNCa$react))).Component {
3786
+ constructor(props){
3787
+ super(props);
3788
+ this.state = {};
3789
+ }
3790
+ render() {
3791
+ return /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("div", {
3792
+ className: "gramene-attribs",
3793
+ children: this.props.grameneGeneAttribs && /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("pre", {
3794
+ children: "hi"
3795
+ })
3796
+ });
3797
+ }
3798
+ }
3799
+ var $67bf5a43401bffdc$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.connect)("selectGrameneGeneAttribs", $67bf5a43401bffdc$var$GeneAttribs);
3800
+
3801
+
3802
+
3803
+
3804
+
3575
3805
 
3576
3806
  class $76e15aea9236bd47$var$TaxonomyModal extends (0, ($parcel$interopDefault($gXNCa$react))).Component {
3577
3807
  constructor(props){
@@ -3682,10 +3912,12 @@ var $76e15aea9236bd47$export$2e2bcd8739ae039 = (0, $gXNCa$reduxbundlerreact.conn
3682
3912
 
3683
3913
 
3684
3914
 
3915
+
3685
3916
  const $693dd8c7a5607c3a$var$inventory = {
3686
3917
  help: (0, $b36244140732570a$export$2e2bcd8739ae039),
3687
3918
  list: (0, $6c5c4f90059875bf$export$2e2bcd8739ae039),
3688
- taxonomy: (0, $a67cad486021eb32$export$2e2bcd8739ae039)
3919
+ taxonomy: (0, $a67cad486021eb32$export$2e2bcd8739ae039),
3920
+ attribs: (0, $67bf5a43401bffdc$export$2e2bcd8739ae039)
3689
3921
  };
3690
3922
  const $693dd8c7a5607c3a$var$StatusCmp = (props)=>{
3691
3923
  let content = props.grameneFiltersStatus;
@@ -3767,6 +3999,12 @@ const $693dd8c7a5607c3a$var$handleClick = (e, moveCopyMode, showMarked, node, ac
3767
3999
  }
3768
4000
  console.log(node, showMarked);
3769
4001
  };
4002
+ function $693dd8c7a5607c3a$var$logAction(action) {
4003
+ (0, ($parcel$interopDefault($gXNCa$reactga))).event({
4004
+ category: "Search",
4005
+ action: action
4006
+ });
4007
+ }
3770
4008
  const $693dd8c7a5607c3a$var$Filter = ({ node: node , moveCopyMode: moveCopyMode , showMarked: showMarked , actions: actions })=>{
3771
4009
  let classes = "gramene-filter gramene-filter";
3772
4010
  if (node.operation) classes = `${classes}-${node.operation}`;
@@ -3779,7 +4017,10 @@ const $693dd8c7a5607c3a$var$Filter = ({ node: node , moveCopyMode: moveCopyMode
3779
4017
  let key = 1;
3780
4018
  let menuItems = [];
3781
4019
  if (node.hasOwnProperty("operation")) menuItems.push(/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("li", {
3782
- onClick: ()=>actions.changeOperation(node),
4020
+ onClick: ()=>{
4021
+ $693dd8c7a5607c3a$var$logAction(`Change to ${node.operation}`);
4022
+ actions.changeOperation(node);
4023
+ },
3783
4024
  children: [
3784
4025
  "convert to ",
3785
4026
  /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("i", {
@@ -3789,18 +4030,27 @@ const $693dd8c7a5607c3a$var$Filter = ({ node: node , moveCopyMode: moveCopyMode
3789
4030
  }, key++));
3790
4031
  if (node.leftIdx > 0) {
3791
4032
  menuItems.push(/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("li", {
3792
- onClick: ()=>actions.deleteNode(node),
4033
+ onClick: ()=>{
4034
+ $693dd8c7a5607c3a$var$logAction(`Delete filter`);
4035
+ actions.deleteNode(node);
4036
+ },
3793
4037
  children: "delete"
3794
4038
  }, key++));
3795
4039
  menuItems.push(/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("li", {
3796
- onClick: ()=>actions.markTargets(node, "move"),
4040
+ onClick: ()=>{
4041
+ $693dd8c7a5607c3a$var$logAction(`Move filter`);
4042
+ actions.markTargets(node, "move");
4043
+ },
3797
4044
  children: [
3798
4045
  "move",
3799
4046
  node.isSource && " select destination"
3800
4047
  ]
3801
4048
  }, key++));
3802
4049
  menuItems.push(/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsxs)("li", {
3803
- onClick: ()=>actions.markTargets(node, "copy"),
4050
+ onClick: ()=>{
4051
+ $693dd8c7a5607c3a$var$logAction(`Copy filter`);
4052
+ actions.markTargets(node, "copy");
4053
+ },
3804
4054
  children: [
3805
4055
  "copy",
3806
4056
  node.isSource && " select destination"
@@ -3808,7 +4058,10 @@ const $693dd8c7a5607c3a$var$Filter = ({ node: node , moveCopyMode: moveCopyMode
3808
4058
  }, key++));
3809
4059
  }
3810
4060
  menuItems.push(/*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("li", {
3811
- onClick: ()=>actions.negate(node),
4061
+ onClick: ()=>{
4062
+ $693dd8c7a5607c3a$var$logAction(`Negate filter`);
4063
+ actions.negate(node);
4064
+ },
3812
4065
  children: "negate"
3813
4066
  }, key++));
3814
4067
  menu = /*#__PURE__*/ (0, $gXNCa$reactjsxruntime.jsx)("div", {