jbrowse-plugin-mafviewer 1.4.3 → 1.4.6

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 (204) hide show
  1. package/README.md +1 -1
  2. package/dist/BigMafAdapter/BigMafAdapter.js +4 -5
  3. package/dist/BigMafAdapter/BigMafAdapter.js.map +1 -1
  4. package/dist/BigMafAdapter/configSchema.d.ts +2 -2
  5. package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js +39 -109
  6. package/dist/LinearMafDisplay/components/LinearMafDisplayComponent.js.map +1 -1
  7. package/dist/LinearMafDisplay/components/MAFTooltip.d.ts +0 -3
  8. package/dist/LinearMafDisplay/components/MAFTooltip.js.map +1 -1
  9. package/dist/LinearMafDisplay/components/MsaHighlightOverlay.d.ts +9 -0
  10. package/dist/LinearMafDisplay/components/MsaHighlightOverlay.js +34 -0
  11. package/dist/LinearMafDisplay/components/MsaHighlightOverlay.js.map +1 -0
  12. package/dist/LinearMafDisplay/components/Sidebar/ColorLegend.js +2 -2
  13. package/dist/LinearMafDisplay/components/Sidebar/ColorLegend.js.map +1 -1
  14. package/dist/LinearMafDisplay/components/Sidebar/RectBg.d.ts +1 -1
  15. package/dist/LinearMafDisplay/components/Sidebar/RectBg.js +2 -3
  16. package/dist/LinearMafDisplay/components/Sidebar/RectBg.js.map +1 -1
  17. package/dist/LinearMafDisplay/components/Sidebar/SvgWrapper.js +81 -11
  18. package/dist/LinearMafDisplay/components/Sidebar/SvgWrapper.js.map +1 -1
  19. package/dist/LinearMafDisplay/components/Sidebar/Tree.js +30 -9
  20. package/dist/LinearMafDisplay/components/Sidebar/Tree.js.map +1 -1
  21. package/dist/LinearMafDisplay/components/Sidebar/YScaleBars.d.ts +0 -1
  22. package/dist/LinearMafDisplay/components/Sidebar/YScaleBars.js.map +1 -1
  23. package/dist/LinearMafDisplay/components/useDragSelection.d.ts +25 -0
  24. package/dist/LinearMafDisplay/components/useDragSelection.js +103 -0
  25. package/dist/LinearMafDisplay/components/useDragSelection.js.map +1 -0
  26. package/dist/LinearMafDisplay/configSchema.d.ts +3 -30
  27. package/dist/LinearMafDisplay/renderSvg.js +1 -1
  28. package/dist/LinearMafDisplay/renderSvg.js.map +1 -1
  29. package/dist/LinearMafDisplay/stateModel.d.ts +1090 -102
  30. package/dist/LinearMafDisplay/stateModel.js +156 -17
  31. package/dist/LinearMafDisplay/stateModel.js.map +1 -1
  32. package/dist/LinearMafDisplay/types.d.ts +2 -2
  33. package/dist/LinearMafDisplay/util.d.ts +6 -0
  34. package/dist/LinearMafDisplay/util.js +28 -6
  35. package/dist/LinearMafDisplay/util.js.map +1 -1
  36. package/dist/LinearMafRenderer/LinearMafRenderer.d.ts +43 -10
  37. package/dist/LinearMafRenderer/LinearMafRenderer.js +1 -1
  38. package/dist/LinearMafRenderer/LinearMafRenderer.js.map +1 -1
  39. package/dist/LinearMafRenderer/components/LinearMafRendering.d.ts +14 -5
  40. package/dist/LinearMafRenderer/components/LinearMafRendering.js +40 -20
  41. package/dist/LinearMafRenderer/components/LinearMafRendering.js.map +1 -1
  42. package/dist/LinearMafRenderer/configSchema.d.ts +1 -6
  43. package/dist/LinearMafRenderer/configSchema.js +1 -6
  44. package/dist/LinearMafRenderer/configSchema.js.map +1 -1
  45. package/dist/LinearMafRenderer/makeImageData.js +6 -7
  46. package/dist/LinearMafRenderer/makeImageData.js.map +1 -1
  47. package/dist/LinearMafRenderer/rendering/features.d.ts +0 -1
  48. package/dist/LinearMafRenderer/rendering/features.js +1 -14
  49. package/dist/LinearMafRenderer/rendering/features.js.map +1 -1
  50. package/dist/LinearMafRenderer/rendering/insertions.d.ts +1 -1
  51. package/dist/LinearMafRenderer/rendering/insertions.js +10 -8
  52. package/dist/LinearMafRenderer/rendering/insertions.js.map +1 -1
  53. package/dist/LinearMafRenderer/rendering/matches.d.ts +1 -1
  54. package/dist/LinearMafRenderer/rendering/matches.js +3 -15
  55. package/dist/LinearMafRenderer/rendering/matches.js.map +1 -1
  56. package/dist/LinearMafRenderer/rendering/mismatches.d.ts +1 -1
  57. package/dist/LinearMafRenderer/rendering/mismatches.js +3 -3
  58. package/dist/LinearMafRenderer/rendering/spatialIndex.js +8 -2
  59. package/dist/LinearMafRenderer/rendering/spatialIndex.js.map +1 -1
  60. package/dist/LinearMafRenderer/rendering/text.js +1 -3
  61. package/dist/LinearMafRenderer/rendering/text.js.map +1 -1
  62. package/dist/LinearMafRenderer/rendering/types.d.ts +6 -5
  63. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js +1 -1
  64. package/dist/MafAddTrackWorkflow/AddTrackWorkflow.js.map +1 -1
  65. package/dist/MafAddTrackWorkflow/index.js +1 -1
  66. package/dist/MafAddTrackWorkflow/index.js.map +1 -1
  67. package/dist/MafGetSequences/MafGetSequences.d.ts +1 -0
  68. package/dist/MafGetSequences/MafGetSequences.js +2 -1
  69. package/dist/MafGetSequences/MafGetSequences.js.map +1 -1
  70. package/dist/MafSequenceWidget/LabelsCanvas.d.ts +8 -0
  71. package/dist/MafSequenceWidget/LabelsCanvas.js +37 -0
  72. package/dist/MafSequenceWidget/LabelsCanvas.js.map +1 -0
  73. package/dist/MafSequenceWidget/MafSequenceHoverHighlight.d.ts +6 -0
  74. package/dist/MafSequenceWidget/MafSequenceHoverHighlight.js +52 -0
  75. package/dist/MafSequenceWidget/MafSequenceHoverHighlight.js.map +1 -0
  76. package/dist/MafSequenceWidget/MafSequenceHoverHighlightExtension.d.ts +2 -0
  77. package/dist/MafSequenceWidget/MafSequenceHoverHighlightExtension.js +12 -0
  78. package/dist/MafSequenceWidget/MafSequenceHoverHighlightExtension.js.map +1 -0
  79. package/dist/MafSequenceWidget/MafSequenceWidget.d.ts +6 -0
  80. package/dist/MafSequenceWidget/MafSequenceWidget.js +189 -0
  81. package/dist/MafSequenceWidget/MafSequenceWidget.js.map +1 -0
  82. package/dist/MafSequenceWidget/SequenceCanvas.d.ts +12 -0
  83. package/dist/MafSequenceWidget/SequenceCanvas.js +86 -0
  84. package/dist/MafSequenceWidget/SequenceCanvas.js.map +1 -0
  85. package/dist/MafSequenceWidget/SequenceDisplay.d.ts +12 -0
  86. package/dist/MafSequenceWidget/SequenceDisplay.js +117 -0
  87. package/dist/MafSequenceWidget/SequenceDisplay.js.map +1 -0
  88. package/dist/MafSequenceWidget/SequenceTooltip.d.ts +11 -0
  89. package/dist/MafSequenceWidget/SequenceTooltip.js +39 -0
  90. package/dist/MafSequenceWidget/SequenceTooltip.js.map +1 -0
  91. package/dist/MafSequenceWidget/baseColors.d.ts +3 -0
  92. package/dist/MafSequenceWidget/baseColors.js +64 -0
  93. package/dist/MafSequenceWidget/baseColors.js.map +1 -0
  94. package/dist/MafSequenceWidget/colToGenomePos.d.ts +13 -0
  95. package/dist/MafSequenceWidget/colToGenomePos.js +32 -0
  96. package/dist/MafSequenceWidget/colToGenomePos.js.map +1 -0
  97. package/dist/MafSequenceWidget/colToGenomePos.test.d.ts +1 -0
  98. package/dist/MafSequenceWidget/colToGenomePos.test.js +136 -0
  99. package/dist/MafSequenceWidget/colToGenomePos.test.js.map +1 -0
  100. package/dist/MafSequenceWidget/configSchema.d.ts +1 -0
  101. package/dist/MafSequenceWidget/configSchema.js +3 -0
  102. package/dist/MafSequenceWidget/configSchema.js.map +1 -0
  103. package/dist/MafSequenceWidget/constants.d.ts +4 -0
  104. package/dist/MafSequenceWidget/constants.js +5 -0
  105. package/dist/MafSequenceWidget/constants.js.map +1 -0
  106. package/dist/MafSequenceWidget/index.d.ts +2 -0
  107. package/dist/MafSequenceWidget/index.js +16 -0
  108. package/dist/MafSequenceWidget/index.js.map +1 -0
  109. package/dist/MafSequenceWidget/stateModelFactory.d.ts +67 -0
  110. package/dist/MafSequenceWidget/stateModelFactory.js +21 -0
  111. package/dist/MafSequenceWidget/stateModelFactory.js.map +1 -0
  112. package/dist/MafTabixAdapter/MafTabixAdapter.js +4 -35
  113. package/dist/MafTabixAdapter/MafTabixAdapter.js.map +1 -1
  114. package/dist/MafTabixAdapter/configSchema.d.ts +4 -4
  115. package/dist/MafTrack/configSchema.d.ts +16 -11
  116. package/dist/index.js +2 -0
  117. package/dist/index.js.map +1 -1
  118. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js +12 -24
  119. package/dist/jbrowse-plugin-mafviewer.umd.production.min.js.map +4 -4
  120. package/dist/util/clipboard.d.ts +2 -0
  121. package/dist/util/clipboard.js +28 -0
  122. package/dist/util/clipboard.js.map +1 -0
  123. package/dist/util/fastaUtils.d.ts +2 -1
  124. package/dist/util/fastaUtils.js +93 -50
  125. package/dist/util/fastaUtils.js.map +1 -1
  126. package/dist/util/fastaUtils.test.js +190 -0
  127. package/dist/util/fastaUtils.test.js.map +1 -1
  128. package/dist/util/parseAssemblyName.d.ts +32 -0
  129. package/dist/util/parseAssemblyName.js +87 -0
  130. package/dist/util/parseAssemblyName.js.map +1 -0
  131. package/dist/util/parseAssemblyName.test.d.ts +1 -0
  132. package/dist/util/parseAssemblyName.test.js +269 -0
  133. package/dist/util/parseAssemblyName.test.js.map +1 -0
  134. package/package.json +12 -12
  135. package/src/BigMafAdapter/BigMafAdapter.ts +5 -5
  136. package/src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx +63 -145
  137. package/src/LinearMafDisplay/components/MAFTooltip.tsx +0 -3
  138. package/src/LinearMafDisplay/components/MsaHighlightOverlay.tsx +62 -0
  139. package/src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx +2 -6
  140. package/src/LinearMafDisplay/components/Sidebar/RectBg.tsx +8 -3
  141. package/src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx +117 -15
  142. package/src/LinearMafDisplay/components/Sidebar/Tree.tsx +53 -8
  143. package/src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx +0 -1
  144. package/src/LinearMafDisplay/components/useDragSelection.ts +159 -0
  145. package/src/LinearMafDisplay/renderSvg.tsx +1 -1
  146. package/src/LinearMafDisplay/stateModel.ts +215 -20
  147. package/src/LinearMafDisplay/types.ts +2 -2
  148. package/src/LinearMafDisplay/util.ts +35 -7
  149. package/src/LinearMafRenderer/LinearMafRenderer.ts +3 -5
  150. package/src/LinearMafRenderer/components/LinearMafRendering.tsx +67 -33
  151. package/src/LinearMafRenderer/configSchema.ts +1 -6
  152. package/src/LinearMafRenderer/makeImageData.ts +5 -14
  153. package/src/LinearMafRenderer/rendering/features.ts +2 -36
  154. package/src/LinearMafRenderer/rendering/insertions.ts +13 -8
  155. package/src/LinearMafRenderer/rendering/matches.ts +2 -27
  156. package/src/LinearMafRenderer/rendering/mismatches.ts +3 -3
  157. package/src/LinearMafRenderer/rendering/spatialIndex.ts +9 -2
  158. package/src/LinearMafRenderer/rendering/text.ts +1 -2
  159. package/src/LinearMafRenderer/rendering/types.ts +8 -5
  160. package/src/MafAddTrackWorkflow/AddTrackWorkflow.tsx +1 -1
  161. package/src/MafAddTrackWorkflow/index.ts +1 -1
  162. package/src/MafGetSequences/MafGetSequences.ts +10 -2
  163. package/src/MafSequenceWidget/LabelsCanvas.tsx +58 -0
  164. package/src/MafSequenceWidget/MafSequenceHoverHighlight.tsx +83 -0
  165. package/src/MafSequenceWidget/MafSequenceHoverHighlightExtension.tsx +24 -0
  166. package/src/MafSequenceWidget/MafSequenceWidget.tsx +294 -0
  167. package/src/MafSequenceWidget/SequenceCanvas.tsx +136 -0
  168. package/src/MafSequenceWidget/SequenceDisplay.tsx +188 -0
  169. package/src/MafSequenceWidget/SequenceTooltip.tsx +70 -0
  170. package/src/MafSequenceWidget/baseColors.ts +76 -0
  171. package/src/MafSequenceWidget/colToGenomePos.test.ts +166 -0
  172. package/src/MafSequenceWidget/colToGenomePos.ts +40 -0
  173. package/src/MafSequenceWidget/configSchema.ts +3 -0
  174. package/src/MafSequenceWidget/constants.ts +4 -0
  175. package/src/MafSequenceWidget/index.ts +24 -0
  176. package/src/MafSequenceWidget/stateModelFactory.ts +43 -0
  177. package/src/MafTabixAdapter/MafTabixAdapter.ts +12 -51
  178. package/src/index.ts +2 -0
  179. package/src/util/__snapshots__/fastaUtils.test.ts.snap +35 -0
  180. package/src/util/clipboard.ts +35 -0
  181. package/src/util/fastaUtils.test.ts +199 -0
  182. package/src/util/fastaUtils.ts +118 -51
  183. package/src/util/parseAssemblyName.test.ts +350 -0
  184. package/src/util/parseAssemblyName.ts +106 -0
  185. package/dist/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.d.ts +0 -11
  186. package/dist/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.js +0 -97
  187. package/dist/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.js.map +0 -1
  188. package/dist/LinearMafDisplay/components/util.d.ts +0 -1
  189. package/dist/LinearMafDisplay/components/util.js +0 -8
  190. package/dist/LinearMafDisplay/components/util.js.map +0 -1
  191. package/dist/LinearMafRenderer/components/util.d.ts +0 -1
  192. package/dist/LinearMafRenderer/components/util.js +0 -13
  193. package/dist/LinearMafRenderer/components/util.js.map +0 -1
  194. package/dist/util/fetchSequences.d.ts +0 -18
  195. package/dist/util/fetchSequences.js +0 -39
  196. package/dist/util/fetchSequences.js.map +0 -1
  197. package/dist/util/useSequences.d.ts +0 -21
  198. package/dist/util/useSequences.js +0 -64
  199. package/dist/util/useSequences.js.map +0 -1
  200. package/src/LinearMafDisplay/components/GetSequenceDialog/GetSequenceDialog.tsx +0 -175
  201. package/src/LinearMafDisplay/components/util.ts +0 -7
  202. package/src/LinearMafRenderer/components/util.ts +0 -13
  203. package/src/util/fetchSequences.ts +0 -57
  204. package/src/util/useSequences.ts +0 -90
package/README.md CHANGED
@@ -9,7 +9,7 @@ JBrowse 2
9
9
 
10
10
  ## Demo
11
11
 
12
- https://jbrowse.org/code/jb2/main/?config=%2Fdemos%2Fmaf%2Fhg38%2Fdistconfig.json&session=share-2v5qIkvufP&password=uYpiC
12
+ https://jbrowse.org/code/jb2/main/?config=%2Fdemos%2Fmaf%2Fhg38%2Fdistconfig.json&session=share-bJXbDiWcc9&password=87GhV
13
13
 
14
14
  ## GUI usage (e.g. in JBrowse Desktop)
15
15
 
@@ -2,10 +2,11 @@ import { BaseFeatureDataAdapter } from '@jbrowse/core/data_adapters/BaseAdapter'
2
2
  import { SimpleFeature, updateStatus } from '@jbrowse/core/util';
3
3
  import { openLocation } from '@jbrowse/core/util/io';
4
4
  import { ObservableCreate } from '@jbrowse/core/util/rxjs';
5
- import { getSnapshot } from 'mobx-state-tree';
5
+ import { getSnapshot } from '@jbrowse/mobx-state-tree';
6
6
  import { firstValueFrom, toArray } from 'rxjs';
7
7
  import parseNewick from '../parseNewick';
8
8
  import { normalize } from '../util';
9
+ import { parseAssemblyAndChrSimple } from '../util/parseAssemblyName';
9
10
  export default class BigMafAdapter extends BaseFeatureDataAdapter {
10
11
  setupP;
11
12
  async setup() {
@@ -72,10 +73,8 @@ export default class BigMafAdapter extends BaseFeatureDataAdapter {
72
73
  if (referenceSeq === undefined) {
73
74
  referenceSeq = sequence;
74
75
  }
75
- // Parse organism and chromosome once
76
- const dotIndex = organismChr.indexOf('.');
77
- const org = organismChr.slice(0, Math.max(0, dotIndex));
78
- const chr = organismChr.slice(Math.max(0, dotIndex + 1));
76
+ // Parse organism and chromosome
77
+ const { assemblyName: org, chr } = parseAssemblyAndChrSimple(organismChr);
79
78
  // Create alignment record directly
80
79
  alignments[org] = {
81
80
  chr,
@@ -1 +1 @@
1
- {"version":3,"file":"BigMafAdapter.js","sourceRoot":"","sources":["../../src/BigMafAdapter/BigMafAdapter.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BigMafAdapter.js","sourceRoot":"","sources":["../../src/BigMafAdapter/BigMafAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,yCAAyC,CAAA;AAChF,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAA;AAChE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAA;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAA;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,0BAA0B,CAAA;AACtD,OAAO,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAE9C,OAAO,WAAW,MAAM,gBAAgB,CAAA;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAA;AACnC,OAAO,EAAE,yBAAyB,EAAE,MAAM,2BAA2B,CAAA;AAarE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,sBAAsB;IACxD,MAAM,CAA+C;IAE5D,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAA;QAC/C,CAAC;QACD,OAAO;YACL,OAAO,EAAE,CACP,MAAM,IAAI,CAAC,aAAa,CAAC;gBACvB,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC;gBAC3B,IAAI,EAAE,eAAe;aACtB,CAAC,CACH,CAAC,WAAqC;SACxC,CAAA;IACH,CAAC;IACD,KAAK,CAAC,QAAQ;QACZ,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACjB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAU,EAAE,EAAE;gBAC9C,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;gBACvB,MAAM,CAAC,CAAA;YACT,CAAC,CAAC,CAAA;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAA;IACpB,CAAC;IAED,KAAK,CAAC,WAAW;QACf,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QACtC,OAAO,OAAO,CAAC,WAAW,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;QACtC,OAAO,OAAO,CAAC,SAAS,EAAE,CAAA;IAC5B,CAAC;IAED,WAAW,CAAC,KAAa,EAAE,IAAkB;QAC3C,MAAM,EAAE,cAAc,GAAG,GAAG,EAAE,GAAE,CAAC,EAAE,GAAG,IAAI,IAAI,EAAE,CAAA;QAChD,2CAA2C;QAC3C,MAAM,gBAAgB,GAAG,IAAI,CAAA;QAE7B,OAAO,gBAAgB,CAAU,KAAK,EAAC,QAAQ,EAAC,EAAE;YAChD,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,IAAI,CAAC,KAAK,EAAE,CAAA;YACtC,MAAM,QAAQ,GAAG,MAAM,YAAY,CACjC,wBAAwB,EACxB,cAAc,EACd,GAAG,EAAE,CAAC,cAAc,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CACjE,CAAA;YACD,MAAM,YAAY,CAAC,uBAAuB,EAAE,cAAc,EAAE,GAAG,EAAE;gBAC/D,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,UAAU,CAAW,CAAA;oBAC7C,MAAM,MAAM,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;oBAE7B,iDAAiD;oBACjD,IAAI,kBAAkB,GAAG,CAAC,CAAA;oBAC1B,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1B,kBAAkB,EAAE,CAAA;wBACtB,CAAC;oBACH,CAAC;oBAED,uDAAuD;oBACvD,MAAM,IAAI,GAAG,IAAI,KAAK,CAAS,kBAAkB,CAAC,CAAA;oBAClD,MAAM,UAAU,GAAG,EAAoC,CAAA;oBAEvD,IAAI,aAAa,GAAG,CAAC,CAAA;oBACrB,IAAI,YAAgC,CAAA;oBAEpC,6CAA6C;oBAC7C,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;wBAC3B,IAAI,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;4BAC1B,kCAAkC;4BAClC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAA;4BAC3C,MAAM,QAAQ,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;4BAC1B,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,CAAE,CAAA;4BAE7B,oCAAoC;4BACpC,IAAI,CAAC,aAAa,CAAC,GAAG,QAAQ,CAAA;4BAE9B,0CAA0C;4BAC1C,IAAI,YAAY,KAAK,SAAS,EAAE,CAAC;gCAC/B,YAAY,GAAG,QAAQ,CAAA;4BACzB,CAAC;4BAED,gCAAgC;4BAChC,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,GAAG,EAAE,GAC9B,yBAAyB,CAAC,WAAW,CAAC,CAAA;4BAExC,mCAAmC;4BACnC,UAAU,CAAC,GAAG,CAAC,GAAG;gCAChB,GAAG;gCACH,KAAK,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE;gCACjB,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE;gCACnB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;gCACjC,OAAO,EAAE,CAAC,KAAK,CAAC,CAAC,CAAE;gCACnB,GAAG,EAAE,QAAQ;6BACd,CAAA;4BAED,aAAa,EAAE,CAAA;wBACjB,CAAC;oBACH,CAAC;oBAED,QAAQ,CAAC,IAAI,CACX,IAAI,aAAa,CAAC;wBAChB,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE;wBAChB,IAAI,EAAE;4BACJ,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,OAAO,CAAC;4BAC3B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC;4BACvB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,SAAS,CAAC;4BAC/B,GAAG,EAAE,YAAY;4BACjB,UAAU;yBACX;qBACF,CAAC,CACH,CAAA;gBACH,CAAC;YACH,CAAC,CAAC,CAAA;YACF,QAAQ,CAAC,QAAQ,EAAE,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,MAAc;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAA;QACxC,MAAM,EAAE,GACN,KAAK,CAAC,GAAG,KAAK,gBAAgB;YAC5B,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,MAAM,YAAY,CAAC,KAAK,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAA;QAEhD,2EAA2E;QAC3E,OAAO;QACP,OAAO;YACL,OAAO,EAAE,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;YAC3C,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;SACvC,CAAA;IACH,CAAC;IAED,aAAa,KAAU,CAAC;CACzB"}
@@ -1,4 +1,4 @@
1
- declare const configSchema: import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
1
+ declare const configSchema: import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaType<{
2
2
  /**
3
3
  * #slot
4
4
  */
@@ -28,5 +28,5 @@ declare const configSchema: import("@jbrowse/core/configuration/configurationSch
28
28
  locationType: string;
29
29
  };
30
30
  };
31
- }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
31
+ }, import("@jbrowse/core/esm/configuration/configurationSchema").ConfigurationSchemaOptions<undefined, undefined>>;
32
32
  export default configSchema;
@@ -1,118 +1,39 @@
1
- import React, { useEffect, useRef, useState } from 'react';
1
+ import React, { useRef } from 'react';
2
2
  import { Menu } from '@jbrowse/core/ui';
3
- import { getContainingView, getEnv } from '@jbrowse/core/util';
3
+ import { getContainingView, getEnv, getSession, isSessionModelWithWidgets, } from '@jbrowse/core/util';
4
4
  import { useTheme } from '@mui/material';
5
5
  import { observer } from 'mobx-react';
6
6
  import Crosshairs from './Crosshairs';
7
- import SequenceDialog from './GetSequenceDialog/GetSequenceDialog';
8
7
  import MAFTooltip from './MAFTooltip';
8
+ import MsaHighlightOverlay from './MsaHighlightOverlay';
9
9
  import YScaleBars from './Sidebar/YScaleBars';
10
+ import { useDragSelection } from './useDragSelection';
10
11
  const LinearMafDisplay = observer(function (props) {
11
12
  const { model } = props;
12
13
  const { pluginManager } = getEnv(model);
13
- const { rowHeight, height, scrollTop, samples: sources } = model;
14
+ const { height, scrollTop, samples: sources } = model;
14
15
  const ref = useRef(null);
15
16
  const theme = useTheme();
17
+ const session = getSession(model);
16
18
  const LinearGenomePlugin = pluginManager.getPlugin('LinearGenomeViewPlugin');
17
19
  const { BaseLinearDisplayComponent } = LinearGenomePlugin.exports;
18
- const [mouseY, setMouseY] = useState();
19
- const [mouseX, setMouseX] = useState();
20
- const [isDragging, setIsDragging] = useState(false);
21
- const [dragStartX, setDragStartX] = useState();
22
- const [dragEndX, setDragEndX] = useState();
23
- const [showSelectionBox, setShowSelectionBox] = useState(false);
24
- const [contextCoord, setContextCoord] = useState();
25
- const [showSequenceDialog, setShowSequenceDialog] = useState(false);
26
- const [selectionCoords, setSelectionCoords] = useState();
27
- const { width } = getContainingView(model);
28
- const handleMouseDown = (event) => {
29
- const rect = ref.current?.getBoundingClientRect();
30
- const left = rect?.left || 0;
31
- const clientX = event.clientX - left;
32
- // Clear the previous selection box when starting a new drag
33
- setShowSelectionBox(false);
34
- setIsDragging(true);
35
- setDragStartX(clientX);
36
- setDragEndX(clientX);
37
- event.stopPropagation();
38
- };
39
- const handleMouseMove = (event) => {
40
- const rect = ref.current?.getBoundingClientRect();
41
- const top = rect?.top || 0;
42
- const left = rect?.left || 0;
43
- const clientX = event.clientX - left;
44
- const clientY = event.clientY - top;
45
- setMouseY(clientY);
46
- setMouseX(clientX);
47
- if (isDragging) {
48
- setDragEndX(clientX);
49
- }
50
- };
51
- const handleMouseUp = (event) => {
52
- if (isDragging && dragStartX !== undefined && dragEndX !== undefined) {
53
- // Calculate the drag distance
54
- const dragDistanceX = Math.abs(dragEndX - dragStartX);
55
- // Only show context menu if the drag distance is at least 2 pixels in either direction
56
- if (dragDistanceX >= 2) {
57
- setContextCoord({
58
- coord: [event.clientX, event.clientY],
59
- dragEndX: event.clientX,
60
- dragStartX: dragStartX,
61
- });
62
- // Set showSelectionBox to true to keep the selection visible
63
- setShowSelectionBox(true);
64
- }
65
- else {
66
- // For very small drags (less than 2px), don't show selection box or context menu
67
- clearSelectionBox();
68
- }
69
- }
70
- // Only set isDragging to false, but keep the coordinates
71
- setIsDragging(false);
72
- };
73
- // Function to clear the selection box
74
- const clearSelectionBox = () => {
75
- setShowSelectionBox(false);
76
- setDragStartX(undefined);
77
- setDragEndX(undefined);
78
- };
79
- // Add keydown event handler to clear selection box when Escape key is pressed
80
- useEffect(() => {
81
- const handleKeyDown = (event) => {
82
- if (event.key === 'Escape' && showSelectionBox) {
83
- clearSelectionBox();
84
- }
85
- };
86
- // Add click handler to clear selection box when clicking outside of it
87
- const handleClickOutside = (event) => {
88
- if (ref.current &&
89
- !ref.current.contains(event.target) &&
90
- showSelectionBox) {
91
- clearSelectionBox();
92
- }
93
- };
94
- document.addEventListener('keydown', handleKeyDown);
95
- document.addEventListener('click', handleClickOutside);
96
- return () => {
97
- document.removeEventListener('keydown', handleKeyDown);
98
- document.removeEventListener('click', handleClickOutside);
99
- };
100
- }, [showSelectionBox, clearSelectionBox]);
20
+ const { isDragging, dragStartX, dragEndX, showSelectionBox, mouseX, mouseY, contextCoord, setContextCoord, handleMouseDown, handleMouseMove, handleMouseUp, handleMouseLeave, clearSelectionBox, } = useDragSelection(ref);
21
+ const view = getContainingView(model);
22
+ const { width } = view;
101
23
  return (React.createElement("div", { ref: ref, onMouseDown: handleMouseDown, onMouseMove: handleMouseMove, onMouseUp: handleMouseUp, onDoubleClick: () => {
102
- // Clear selection box on double click
103
24
  if (showSelectionBox) {
104
25
  clearSelectionBox();
105
26
  }
106
- }, onMouseLeave: () => {
107
- setMouseY(undefined);
108
- setMouseX(undefined);
109
- setIsDragging(false);
110
- } },
27
+ }, onMouseLeave: handleMouseLeave },
111
28
  React.createElement(BaseLinearDisplayComponent, { ...props }),
112
- React.createElement(YScaleBars, { model: model }),
113
- mouseY && mouseX && sources && !contextCoord && !showSequenceDialog ? (React.createElement("div", { style: { position: 'relative' } },
29
+ model.showSidebar ? React.createElement(YScaleBars, { model: model }) : null,
30
+ React.createElement(MsaHighlightOverlay, { model: model, view: view, height: height }),
31
+ mouseY !== undefined &&
32
+ mouseX !== undefined &&
33
+ sources &&
34
+ !contextCoord ? (React.createElement("div", { style: { position: 'relative' } },
114
35
  React.createElement(Crosshairs, { width: width, height: height, scrollTop: scrollTop, mouseX: mouseX, mouseY: mouseY }),
115
- React.createElement(MAFTooltip, { model: model, mouseX: mouseX, mouseY: mouseY, origMouseX: dragStartX, rowHeight: rowHeight, sources: sources }))) : null,
36
+ React.createElement(MAFTooltip, { model: model, mouseX: mouseX, origMouseX: isDragging ? dragStartX : undefined }))) : null,
116
37
  (isDragging || showSelectionBox) &&
117
38
  dragStartX !== undefined &&
118
39
  dragEndX !== undefined ? (React.createElement("div", { style: {
@@ -147,22 +68,31 @@ const LinearMafDisplay = observer(function (props) {
147
68
  if (!contextCoord) {
148
69
  return;
149
70
  }
150
- // Store the selection coordinates for the SequenceDialog to use
151
- setSelectionCoords({
152
- dragStartX: contextCoord.dragStartX,
153
- dragEndX: contextCoord.dragEndX,
154
- });
155
- // Show the dialog
156
- setShowSequenceDialog(true);
157
- // Close the context menu
71
+ const { refName, assemblyName } = view.displayedRegions[0];
72
+ const [s, e] = [
73
+ Math.min(contextCoord.dragStartX, contextCoord.dragEndX),
74
+ Math.max(contextCoord.dragStartX, contextCoord.dragEndX),
75
+ ];
76
+ if (isSessionModelWithWidgets(session)) {
77
+ const widget = session.addWidget('MafSequenceWidget', 'mafSequence', {
78
+ adapterConfig: model.adapterConfig,
79
+ samples: model.samples,
80
+ regions: [
81
+ {
82
+ refName,
83
+ start: view.pxToBp(s).coord - 1,
84
+ end: view.pxToBp(e).coord,
85
+ assemblyName,
86
+ },
87
+ ],
88
+ connectedViewId: view.id,
89
+ });
90
+ session.showWidget(widget);
91
+ }
158
92
  setContextCoord(undefined);
159
93
  },
160
94
  },
161
- ] }),
162
- showSequenceDialog ? (React.createElement(SequenceDialog, { model: model, selectionCoords: selectionCoords, onClose: () => {
163
- setShowSequenceDialog(false);
164
- setSelectionCoords(undefined);
165
- } })) : null));
95
+ ] })));
166
96
  });
167
97
  export default LinearMafDisplay;
168
98
  //# sourceMappingURL=LinearMafDisplayComponent.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LinearMafDisplayComponent.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LinearMafDisplayComponent.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/LinearMafDisplayComponent.tsx"],"names":[],"mappings":"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"}
@@ -1,10 +1,7 @@
1
1
  import React from 'react';
2
2
  import type { LinearMafDisplayModel } from '../stateModel';
3
3
  declare const MAFTooltip: ({ model, mouseX, origMouseX, }: {
4
- mouseY: number;
5
4
  mouseX: number;
6
- rowHeight: number;
7
- sources: Record<string, any>[];
8
5
  model: LinearMafDisplayModel;
9
6
  origMouseX?: number;
10
7
  }) => React.JSX.Element | null;
@@ -1 +1 @@
1
- {"version":3,"file":"MAFTooltip.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/MAFTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,WAAW,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMhD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EACpC,KAAK,EACL,MAAM,EACN,UAAU,GAQX;IACC,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAC7B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAA0B,CAAA;IAC9D,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9B,OAAO,WAAW,CAAC,CAAC,CAAC,CACnB,oBAAC,WAAW;QACV,oBAAC,aAAa,IACZ,IAAI,EAAE,sBAAsB,CAAC,WAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,GAChE,CACU,CACf,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"MAFTooltip.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/MAFTooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAA;AAChD,OAAO,WAAW,MAAM,8BAA8B,CAAA;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,EAAE,sBAAsB,EAAE,MAAM,SAAS,CAAA;AAMhD,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EACpC,KAAK,EACL,MAAM,EACN,UAAU,GAKX;IACC,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;IAC7B,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAA0B,CAAA;IAC9D,MAAM,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,SAAS,CAAA;IAC3D,MAAM,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;IAE9B,OAAO,WAAW,CAAC,CAAC,CAAC,CACnB,oBAAC,WAAW;QACV,oBAAC,aAAa,IACZ,IAAI,EAAE,sBAAsB,CAAC,WAA0B,EAAE,EAAE,EAAE,EAAE,CAAC,GAChE,CACU,CACf,CAAC,CAAC,CAAC,IAAI,CAAA;AACV,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
@@ -0,0 +1,9 @@
1
+ import React from 'react';
2
+ import type { LinearMafDisplayModel } from '../stateModel';
3
+ import type { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view';
4
+ declare const MsaHighlightOverlay: ({ model, view, height, }: {
5
+ model: LinearMafDisplayModel;
6
+ view: LinearGenomeViewModel;
7
+ height: number;
8
+ }) => React.JSX.Element | null;
9
+ export default MsaHighlightOverlay;
@@ -0,0 +1,34 @@
1
+ import React from 'react';
2
+ import { observer } from 'mobx-react';
3
+ const MsaHighlightOverlay = observer(function MsaHighlightOverlay({ model, view, height, }) {
4
+ const { msaHighlights } = model;
5
+ if (msaHighlights.length === 0) {
6
+ return null;
7
+ }
8
+ const { offsetPx } = view;
9
+ const displayedRegion = view.displayedRegions[0];
10
+ if (!displayedRegion) {
11
+ return null;
12
+ }
13
+ return (React.createElement(React.Fragment, null, msaHighlights.map((highlight, idx) => {
14
+ // Check if highlight is on the displayed refName
15
+ if (highlight.refName !== displayedRegion.refName) {
16
+ return null;
17
+ }
18
+ const startPx = (highlight.start - displayedRegion.start) / view.bpPerPx - offsetPx;
19
+ const endPx = (highlight.end - displayedRegion.start) / view.bpPerPx - offsetPx;
20
+ const widthPx = Math.max(endPx - startPx, 2);
21
+ return (React.createElement("div", { key: idx, style: {
22
+ position: 'absolute',
23
+ left: startPx,
24
+ top: 0,
25
+ width: widthPx,
26
+ height,
27
+ backgroundColor: 'rgba(255, 165, 0, 0.4)',
28
+ border: '1px solid rgba(255, 165, 0, 0.8)',
29
+ pointerEvents: 'none',
30
+ } }));
31
+ })));
32
+ });
33
+ export default MsaHighlightOverlay;
34
+ //# sourceMappingURL=MsaHighlightOverlay.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MsaHighlightOverlay.js","sourceRoot":"","sources":["../../../src/LinearMafDisplay/components/MsaHighlightOverlay.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,SAAS,mBAAmB,CAAC,EAChE,KAAK,EACL,IAAI,EACJ,MAAM,GAKP;IACC,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAA;IAC/B,IAAI,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAA;IACb,CAAC;IAED,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAA;IACzB,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAA;IAChD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,OAAO,IAAI,CAAA;IACb,CAAC;IAED,OAAO,CACL,0CACG,aAAa,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,GAAG,EAAE,EAAE;QACpC,iDAAiD;QACjD,IAAI,SAAS,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO,EAAE,CAAC;YAClD,OAAO,IAAI,CAAA;QACb,CAAC;QAED,MAAM,OAAO,GACX,CAAC,SAAS,CAAC,KAAK,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACrE,MAAM,KAAK,GACT,CAAC,SAAS,CAAC,GAAG,GAAG,eAAe,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,GAAG,QAAQ,CAAA;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,OAAO,EAAE,CAAC,CAAC,CAAA;QAE5C,OAAO,CACL,6BACE,GAAG,EAAE,GAAG,EACR,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,IAAI,EAAE,OAAO;gBACb,GAAG,EAAE,CAAC;gBACN,KAAK,EAAE,OAAO;gBACd,MAAM;gBACN,eAAe,EAAE,wBAAwB;gBACzC,MAAM,EAAE,kCAAkC;gBAC1C,aAAa,EAAE,MAAM;aACtB,GACD,CACH,CAAA;IACH,CAAC,CAAC,CACD,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,mBAAmB,CAAA"}
@@ -3,10 +3,10 @@ import { observer } from 'mobx-react';
3
3
  import RectBg from './RectBg';
4
4
  import Tree from './Tree';
5
5
  const ColorLegend = observer(function ({ model, }) {
6
- const { labelWidth, canDisplayLabel, totalHeight, treeWidth, samples = [], rowHeight, svgFontSize, } = model;
6
+ const { labelWidth, canDisplayLabel, totalHeight, treeWidth, sidebarWidth, samples = [], rowHeight, svgFontSize, } = model;
7
7
  const boxHeight = Math.min(20, rowHeight);
8
8
  return (React.createElement(React.Fragment, null,
9
- React.createElement(RectBg, { y: 0, x: 0, width: labelWidth + 5 + treeWidth, height: totalHeight }),
9
+ React.createElement(RectBg, { y: 0, x: 0, width: sidebarWidth, height: totalHeight }),
10
10
  React.createElement(Tree, { model: model }),
11
11
  React.createElement("g", { transform: `translate(${treeWidth + 5},0)` },
12
12
  samples.map((sample, idx) => (React.createElement(RectBg, { key: `${sample.id}-${idx}`, y: idx * rowHeight, x: 0, width: labelWidth + 5, height: boxHeight, color: sample.color }))),
@@ -1 +1 @@
1
- {"version":3,"file":"ColorLegend.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,IAAI,MAAM,QAAQ,CAAA;AAIzB,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EACrC,KAAK,GAGN;IACC,MAAM,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,WAAW,GACZ,GAAG,KAAK,CAAA;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAEzC,OAAO,CACL;QACE,oBAAC,MAAM,IACL,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,GAAG,SAAS,EACjC,MAAM,EAAE,WAAW,GACnB;QACF,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI;QACtB,2BAAG,SAAS,EAAE,aAAa,SAAS,GAAG,CAAC,KAAK;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,oBAAC,MAAM,IACL,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,CAAC,EAAE,GAAG,GAAG,SAAS,EAClB,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,EACrB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB,CACH,CAAC;YACD,eAAe;gBACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,8BACE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,gBAAgB,EAAC,QAAQ,EACzB,QAAQ,EAAE,WAAW,EACrB,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,IAEjC,MAAM,CAAC,KAAK,CACR,CACR,CAAC;gBACJ,CAAC,CAAC,IAAI,CACN,CACH,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,WAAW,CAAA"}
1
+ {"version":3,"file":"ColorLegend.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/ColorLegend.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,MAAM,MAAM,UAAU,CAAA;AAC7B,OAAO,IAAI,MAAM,QAAQ,CAAA;AAIzB,MAAM,WAAW,GAAG,QAAQ,CAAC,UAAU,EACrC,KAAK,GAGN;IACC,MAAM,EACJ,UAAU,EACV,eAAe,EACf,WAAW,EACX,SAAS,EACT,YAAY,EACZ,OAAO,GAAG,EAAE,EACZ,SAAS,EACT,WAAW,GACZ,GAAG,KAAK,CAAA;IACT,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,SAAS,CAAC,CAAA;IAEzC,OAAO,CACL;QACE,oBAAC,MAAM,IAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,EAAE,WAAW,GAAI;QAChE,oBAAC,IAAI,IAAC,KAAK,EAAE,KAAK,GAAI;QACtB,2BAAG,SAAS,EAAE,aAAa,SAAS,GAAG,CAAC,KAAK;YAC1C,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC5B,oBAAC,MAAM,IACL,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,CAAC,EAAE,GAAG,GAAG,SAAS,EAClB,CAAC,EAAE,CAAC,EACJ,KAAK,EAAE,UAAU,GAAG,CAAC,EACrB,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,MAAM,CAAC,KAAK,GACnB,CACH,CAAC;YACD,eAAe;gBACd,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,GAAG,EAAE,EAAE,CAAC,CAC3B,8BACE,GAAG,EAAE,GAAG,MAAM,CAAC,EAAE,IAAI,GAAG,EAAE,EAC1B,gBAAgB,EAAC,QAAQ,EACzB,QAAQ,EAAE,WAAW,EACrB,CAAC,EAAE,CAAC,EACJ,CAAC,EAAE,GAAG,GAAG,SAAS,GAAG,SAAS,GAAG,CAAC,IAEjC,MAAM,CAAC,KAAK,CACR,CACR,CAAC;gBACJ,CAAC,CAAC,IAAI,CACN,CACH,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,WAAW,CAAA"}
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- declare const RectBg: (props: {
2
+ declare const RectBg: ({ x, y, width, height, color, }: {
3
3
  x: number;
4
4
  y: number;
5
5
  width: number;
@@ -1,7 +1,6 @@
1
1
  import React from 'react';
2
- const RectBg = (props) => {
3
- const { color = 'rgb(255,255,255,0.5)' } = props;
4
- return React.createElement("rect", { ...props, fill: color });
2
+ const RectBg = ({ x, y, width, height, color = 'rgb(255,255,255,0.5)', }) => {
3
+ return React.createElement("rect", { x: x, y: y, width: width, height: height, fill: color });
5
4
  };
6
5
  export default RectBg;
7
6
  //# sourceMappingURL=RectBg.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RectBg.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/RectBg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,GAAG,CAAC,KAMf,EAAE,EAAE;IACH,MAAM,EAAE,KAAK,GAAG,sBAAsB,EAAE,GAAG,KAAK,CAAA;IAChD,OAAO,iCAAU,KAAK,EAAE,IAAI,EAAE,KAAK,GAAI,CAAA;AACzC,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
1
+ {"version":3,"file":"RectBg.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/RectBg.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,MAAM,MAAM,GAAG,CAAC,EACd,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,KAAK,GAAG,sBAAsB,GAO/B,EAAE,EAAE;IACH,OAAO,8BAAM,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAI,CAAA;AACxE,CAAC,CAAA;AAED,eAAe,MAAM,CAAA"}
@@ -1,22 +1,92 @@
1
- import React from 'react';
1
+ import React, { useEffect, useRef } from 'react';
2
+ import { ResizeHandle } from '@jbrowse/core/ui';
2
3
  import { getContainingView } from '@jbrowse/core/util';
4
+ import { isAlive } from '@jbrowse/mobx-state-tree';
5
+ import { autorun } from 'mobx';
3
6
  import { observer } from 'mobx-react';
7
+ import { makeStyles } from 'tss-react/mui';
8
+ const useStyles = makeStyles()({
9
+ resizeHandle: {
10
+ position: 'absolute',
11
+ top: 0,
12
+ height: '100%',
13
+ width: 4,
14
+ zIndex: 1001,
15
+ background: 'transparent',
16
+ cursor: 'col-resize',
17
+ '&:hover': {
18
+ background: 'rgba(0,0,0,0.2)',
19
+ },
20
+ },
21
+ });
4
22
  const SvgWrapper = observer(function ({ children, model, exportSVG, }) {
23
+ const { classes } = useStyles();
24
+ const mouseoverRef = useRef(null);
25
+ useEffect(() => {
26
+ const ctx = mouseoverRef.current?.getContext('2d');
27
+ return ctx
28
+ ? autorun(() => {
29
+ if (isAlive(model)) {
30
+ const { totalHeight, leafMap, rowHeight, highlightedRowNames, hoveredTreeNode, } = model;
31
+ const { width: viewWidth } = getContainingView(model);
32
+ ctx.resetTransform();
33
+ ctx.clearRect(0, 0, viewWidth, totalHeight);
34
+ if (highlightedRowNames) {
35
+ ctx.fillStyle = 'rgba(255,165,0,0.2)';
36
+ const halfRowHeight = rowHeight / 2;
37
+ for (const name of highlightedRowNames) {
38
+ const leaf = leafMap.get(name);
39
+ if (leaf) {
40
+ ctx.fillRect(0, leaf.x - halfRowHeight, viewWidth, rowHeight);
41
+ }
42
+ }
43
+ // Draw orange dot at hovered tree node
44
+ if (hoveredTreeNode) {
45
+ ctx.fillStyle = 'rgba(255,165,0,0.8)';
46
+ ctx.beginPath();
47
+ ctx.arc(hoveredTreeNode.y, hoveredTreeNode.x, 4, 0, 2 * Math.PI);
48
+ ctx.fill();
49
+ ctx.strokeStyle = 'rgba(255,140,0,1)';
50
+ ctx.lineWidth = 1;
51
+ ctx.stroke();
52
+ }
53
+ }
54
+ }
55
+ })
56
+ : undefined;
57
+ }, [model]);
5
58
  if (exportSVG) {
6
59
  return React.createElement(React.Fragment, null, children);
7
60
  }
8
61
  else {
9
- const { totalHeight } = model;
62
+ const { totalHeight, treeWidth, hierarchy } = model;
10
63
  const { width } = getContainingView(model);
11
- return (React.createElement("svg", { style: {
12
- position: 'absolute',
13
- userSelect: 'none',
14
- top: 0,
15
- left: 0,
16
- pointerEvents: 'none',
17
- height: totalHeight,
18
- width,
19
- } }, children));
64
+ return (React.createElement(React.Fragment, null,
65
+ React.createElement("svg", { style: {
66
+ position: 'absolute',
67
+ userSelect: 'none',
68
+ top: 0,
69
+ left: 0,
70
+ pointerEvents: 'none',
71
+ height: totalHeight,
72
+ width,
73
+ } }, children),
74
+ React.createElement("canvas", { ref: mouseoverRef, width: width, height: totalHeight, style: {
75
+ position: 'absolute',
76
+ top: 0,
77
+ left: 0,
78
+ width,
79
+ height: totalHeight,
80
+ zIndex: 1000,
81
+ pointerEvents: 'none',
82
+ } }),
83
+ hierarchy ? (React.createElement("div", { onMouseDown: e => {
84
+ e.stopPropagation();
85
+ } },
86
+ React.createElement(ResizeHandle, { onDrag: distance => {
87
+ model.setTreeAreaWidth(Math.max(20, model.treeAreaWidth + distance));
88
+ return undefined;
89
+ }, className: classes.resizeHandle, style: { left: treeWidth }, vertical: true }))) : null));
20
90
  }
21
91
  });
22
92
  export default SvgWrapper;
@@ -1 +1 @@
1
- {"version":3,"file":"SvgWrapper.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAKrC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,EACpC,QAAQ,EACR,KAAK,EACL,SAAS,GAKV;IACC,IAAI,SAAS,EAAE,CAAC;QACd,OAAO,0CAAG,QAAQ,CAAI,CAAA;IACxB,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,WAAW,EAAE,GAAG,KAAK,CAAA;QAC7B,MAAM,EAAE,KAAK,EAAE,GAAG,iBAAiB,CAAC,KAAK,CAA0B,CAAA;QACnE,OAAO,CACL,6BACE,KAAK,EAAE;gBACL,QAAQ,EAAE,UAAU;gBACpB,UAAU,EAAE,MAAM;gBAClB,GAAG,EAAE,CAAC;gBACN,IAAI,EAAE,CAAC;gBACP,aAAa,EAAE,MAAM;gBACrB,MAAM,EAAE,WAAW;gBACnB,KAAK;aACN,IAEA,QAAQ,CACL,CACP,CAAA;IACH,CAAC;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"SvgWrapper.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/SvgWrapper.tsx"],"names":[],"mappings":"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"}
@@ -1,11 +1,33 @@
1
- import React from 'react';
1
+ import React, { useCallback, useMemo } from 'react';
2
2
  import { observer } from 'mobx-react';
3
+ const hitboxStyle = {
4
+ pointerEvents: 'all',
5
+ cursor: 'pointer',
6
+ strokeWidth: 8,
7
+ stroke: 'transparent',
8
+ };
3
9
  const Tree = observer(function ({ model }) {
4
10
  const {
5
- // this is needed for redrawing after zoom change, similar to react-msaview
6
- // renderTreeCanvas
11
+ // rowHeight is needed for redrawing after zoom change
7
12
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
8
- rowHeight: _rowHeight, hierarchy, showBranchLen, } = model;
13
+ rowHeight: _rowHeight, treeAreaWidth, hierarchy, showBranchLen, nodeDescendantNames, } = model;
14
+ const clearHighlight = useCallback(() => {
15
+ model.setHighlightedRowNames(undefined);
16
+ }, [model]);
17
+ const nodeHandlers = useMemo(() => {
18
+ const handlers = new Map();
19
+ if (hierarchy) {
20
+ for (const node of hierarchy.descendants()) {
21
+ handlers.set(node, () => {
22
+ model.setHighlightedRowNames(nodeDescendantNames.get(node), {
23
+ x: node.x,
24
+ y: node.y,
25
+ });
26
+ });
27
+ }
28
+ }
29
+ return handlers;
30
+ }, [model, hierarchy, nodeDescendantNames, treeAreaWidth]);
9
31
  return (React.createElement(React.Fragment, null, hierarchy
10
32
  ? [...hierarchy.links()].map(link => {
11
33
  const { source, target } = link;
@@ -15,12 +37,11 @@ const Tree = observer(function ({ model }) {
15
37
  const tx = showBranchLen ? target.len : target.y;
16
38
  // @ts-expect-error
17
39
  const sx = showBranchLen ? source.len : source.y;
18
- // 1d line intersection to check if line crosses block at all, this is
19
- // an optimization that allows us to skip drawing most tree links
20
- // outside the block
21
- return (React.createElement(React.Fragment, { key: [sy, ty, tx, sx].join('-') },
40
+ return (React.createElement(React.Fragment, { key: `${treeAreaWidth}-${sy}-${ty}-${tx}-${sx}` },
22
41
  React.createElement("line", { stroke: "black", x1: sx, y1: sy, x2: sx, y2: ty }),
23
- React.createElement("line", { stroke: "black", x1: sx, y1: ty, x2: tx, y2: ty })));
42
+ React.createElement("line", { stroke: "black", x1: sx, y1: ty, x2: tx, y2: ty }),
43
+ React.createElement("line", { x1: sx, y1: sy, x2: sx, y2: ty, style: hitboxStyle, onMouseEnter: nodeHandlers.get(source), onMouseLeave: clearHighlight }),
44
+ React.createElement("line", { x1: sx, y1: ty, x2: tx, y2: ty, style: hitboxStyle, onMouseEnter: nodeHandlers.get(target), onMouseLeave: clearHighlight })));
24
45
  })
25
46
  : null));
26
47
  });
@@ -1 +1 @@
1
- {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/Tree.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAIrC,MAAM,IAAI,GAAG,QAAQ,CAAC,UAAU,EAAE,KAAK,EAAoC;IACzE,MAAM;IACJ,2EAA2E;IAC3E,mBAAmB;IACnB,8DAA8D;IAC9D,SAAS,EAAE,UAAU,EAErB,SAAS,EACT,aAAa,GACd,GAAG,KAAK,CAAA;IAET,OAAO,CACL,0CACG,SAAS;QACR,CAAC,CAAC,CAAC,GAAG,SAAS,CAAC,KAAK,EAAE,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE;YAChC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,IAAI,CAAA;YAC/B,MAAM,EAAE,GAAG,MAAM,CAAC,CAAE,CAAA;YACpB,MAAM,EAAE,GAAG,MAAM,CAAC,CAAE,CAAA;YACpB,mBAAmB;YACnB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAChD,mBAAmB;YACnB,MAAM,EAAE,GAAG,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAA;YAEhD,sEAAsE;YACtE,iEAAiE;YACjE,oBAAoB;YACpB,OAAO,CACL,oBAAC,KAAK,CAAC,QAAQ,IAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;gBAC7C,8BAAM,MAAM,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI;gBACvD,8BAAM,MAAM,EAAC,OAAO,EAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAI,CACxC,CAClB,CAAA;QACH,CAAC,CAAC;QACJ,CAAC,CAAC,IAAI,CACP,CACJ,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,IAAI,CAAA"}
1
+ {"version":3,"file":"Tree.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/Tree.tsx"],"names":[],"mappings":"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"}
@@ -2,7 +2,6 @@ import React from 'react';
2
2
  import type { LinearMafDisplayModel } from '../../stateModel';
3
3
  export declare const YScaleBars: (props: {
4
4
  model: LinearMafDisplayModel;
5
- orientation?: string;
6
5
  exportSVG?: boolean;
7
6
  }) => React.JSX.Element;
8
7
  export default YScaleBars;
@@ -1 +1 @@
1
- {"version":3,"file":"YScaleBars.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,UAAU,MAAM,cAAc,CAAA;AAIrC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,KAI5C;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,CACL,oBAAC,UAAU,OAAK,KAAK;QACnB,oBAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAClB,CACd,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}
1
+ {"version":3,"file":"YScaleBars.js","sourceRoot":"","sources":["../../../../src/LinearMafDisplay/components/Sidebar/YScaleBars.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAErC,OAAO,WAAW,MAAM,eAAe,CAAA;AACvC,OAAO,UAAU,MAAM,cAAc,CAAA;AAIrC,MAAM,CAAC,MAAM,UAAU,GAAG,QAAQ,CAAC,UAAU,KAG5C;IACC,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAA;IACvB,OAAO,CACL,oBAAC,UAAU,OAAK,KAAK;QACnB,oBAAC,WAAW,IAAC,KAAK,EAAE,KAAK,GAAI,CAClB,CACd,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,UAAU,CAAA"}