@jbrowse/plugin-alignments 2.17.0 → 3.0.0

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 (471) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -3
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +25 -24
  3. package/dist/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  4. package/dist/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  5. package/dist/AlignmentsFeatureDetail/Flags.d.ts +1 -2
  6. package/dist/AlignmentsFeatureDetail/Flags.js +8 -10
  7. package/dist/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
  8. package/dist/AlignmentsFeatureDetail/Formatter.js +11 -39
  9. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +4 -7
  10. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +46 -54
  11. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +4 -7
  12. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +58 -61
  13. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +3 -4
  14. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +4 -5
  15. package/dist/AlignmentsFeatureDetail/PairLink.d.ts +2 -3
  16. package/dist/AlignmentsFeatureDetail/PairLink.js +3 -7
  17. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +3 -4
  18. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +6 -9
  19. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +2 -3
  20. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +21 -31
  21. package/dist/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  22. package/dist/AlignmentsFeatureDetail/getSAFeatures.js +0 -4
  23. package/dist/AlignmentsFeatureDetail/index.d.ts +1 -1
  24. package/dist/AlignmentsFeatureDetail/index.js +17 -7
  25. package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  26. package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +2 -2
  27. package/dist/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  28. package/dist/AlignmentsFeatureDetail/tagInfo.js +1 -1
  29. package/dist/AlignmentsFeatureDetail/util.d.ts +1 -1
  30. package/dist/AlignmentsTrack/configSchemaF.d.ts +1 -1
  31. package/dist/AlignmentsTrack/configSchemaF.js +1 -8
  32. package/dist/AlignmentsTrack/index.d.ts +1 -1
  33. package/dist/AlignmentsTrack/index.js +0 -3
  34. package/dist/BamAdapter/BamAdapter.d.ts +6 -5
  35. package/dist/BamAdapter/BamAdapter.js +21 -39
  36. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -3
  37. package/dist/BamAdapter/BamSlightlyLazyFeature.js +0 -3
  38. package/dist/BamAdapter/configSchema.d.ts +0 -17
  39. package/dist/BamAdapter/configSchema.js +1 -22
  40. package/dist/BamAdapter/index.d.ts +1 -1
  41. package/dist/BamAdapter/index.js +17 -7
  42. package/dist/CramAdapter/CramAdapter.d.ts +6 -9
  43. package/dist/CramAdapter/CramAdapter.js +25 -43
  44. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +3 -3
  45. package/dist/CramAdapter/CramSlightlyLazyFeature.js +0 -17
  46. package/dist/CramAdapter/CramTestAdapters.d.ts +3 -3
  47. package/dist/CramAdapter/CramTestAdapters.js +6 -6
  48. package/dist/CramAdapter/configSchema.d.ts +0 -14
  49. package/dist/CramAdapter/configSchema.js +1 -19
  50. package/dist/CramAdapter/index.d.ts +1 -1
  51. package/dist/CramAdapter/index.js +17 -8
  52. package/dist/CramAdapter/util.d.ts +2 -2
  53. package/dist/CramAdapter/util.js +1 -24
  54. package/dist/GuessAlignmentsTypes/index.d.ts +1 -1
  55. package/dist/GuessAlignmentsTypes/index.js +19 -34
  56. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  57. package/dist/HtsgetBamAdapter/configSchema.d.ts +0 -9
  58. package/dist/HtsgetBamAdapter/configSchema.js +1 -14
  59. package/dist/HtsgetBamAdapter/index.d.ts +1 -1
  60. package/dist/HtsgetBamAdapter/index.js +18 -8
  61. package/dist/LinearAlignmentsDisplay/alignmentsModel.d.ts +2 -5
  62. package/dist/LinearAlignmentsDisplay/alignmentsModel.js +1 -31
  63. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +2 -3
  64. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -18
  65. package/dist/LinearAlignmentsDisplay/configSchema.d.ts +2 -16
  66. package/dist/LinearAlignmentsDisplay/configSchema.js +3 -20
  67. package/dist/LinearAlignmentsDisplay/index.d.ts +1 -1
  68. package/dist/LinearAlignmentsDisplay/index.js +1 -2
  69. package/dist/LinearAlignmentsDisplay/model.d.ts +7 -77
  70. package/dist/LinearAlignmentsDisplay/model.js +10 -85
  71. package/dist/LinearAlignmentsDisplay/util.d.ts +1 -1
  72. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +52 -164
  73. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +71 -145
  74. package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
  75. package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +12 -41
  76. package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +3 -4
  77. package/dist/LinearPileupDisplay/components/GroupByDialog.js +106 -92
  78. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -8
  79. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +3 -7
  80. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
  81. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +15 -44
  82. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
  83. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +12 -40
  84. package/dist/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
  85. package/dist/LinearPileupDisplay/components/SortByTagDialog.js +17 -46
  86. package/dist/LinearPileupDisplay/configSchema.d.ts +13 -16
  87. package/dist/LinearPileupDisplay/configSchema.js +12 -30
  88. package/dist/LinearPileupDisplay/index.d.ts +1 -1
  89. package/dist/LinearPileupDisplay/index.js +2 -2
  90. package/dist/LinearPileupDisplay/model.d.ts +123 -111
  91. package/dist/LinearPileupDisplay/model.js +29 -109
  92. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -3
  93. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +6 -33
  94. package/dist/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  95. package/dist/LinearReadArcsDisplay/configSchema.js +8 -31
  96. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  97. package/dist/LinearReadArcsDisplay/drawFeats.js +1 -9
  98. package/dist/LinearReadArcsDisplay/index.d.ts +1 -1
  99. package/dist/LinearReadArcsDisplay/index.js +18 -9
  100. package/dist/LinearReadArcsDisplay/model.d.ts +16 -94
  101. package/dist/LinearReadArcsDisplay/model.js +34 -111
  102. package/dist/LinearReadArcsDisplay/util.d.ts +1 -1
  103. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -3
  104. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +6 -33
  105. package/dist/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  106. package/dist/LinearReadCloudDisplay/configSchema.js +3 -28
  107. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  108. package/dist/LinearReadCloudDisplay/drawFeats.js +2 -2
  109. package/dist/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  110. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  111. package/dist/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  112. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -3
  113. package/dist/LinearReadCloudDisplay/index.d.ts +1 -1
  114. package/dist/LinearReadCloudDisplay/index.js +18 -9
  115. package/dist/LinearReadCloudDisplay/model.d.ts +14 -56
  116. package/dist/LinearReadCloudDisplay/model.js +34 -75
  117. package/dist/LinearReadCloudDisplay/util.js +0 -1
  118. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +2 -3
  119. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +16 -55
  120. package/dist/LinearSNPCoverageDisplay/configSchema.d.ts +17 -22
  121. package/dist/LinearSNPCoverageDisplay/configSchema.js +16 -32
  122. package/dist/LinearSNPCoverageDisplay/index.d.ts +1 -1
  123. package/dist/LinearSNPCoverageDisplay/index.js +1 -2
  124. package/dist/LinearSNPCoverageDisplay/model.d.ts +13 -54
  125. package/dist/LinearSNPCoverageDisplay/model.js +69 -159
  126. package/dist/MismatchParser/cigarToMismatches.d.ts +2 -3
  127. package/dist/MismatchParser/cigarToMismatches.js +4 -7
  128. package/dist/MismatchParser/getNextRefPos.js +0 -2
  129. package/dist/MismatchParser/index.d.ts +3 -4
  130. package/dist/MismatchParser/index.js +1 -9
  131. package/dist/MismatchParser/mdToMismatches.d.ts +2 -3
  132. package/dist/MismatchParser/mdToMismatches.js +0 -6
  133. package/dist/ModificationParser/index.d.ts +1 -1
  134. package/dist/ModificationParser/index.js +1 -18
  135. package/dist/PileupRPC/base.d.ts +2 -2
  136. package/dist/PileupRPC/base.js +0 -1
  137. package/dist/PileupRPC/index.d.ts +1 -1
  138. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  139. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
  140. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +2 -3
  141. package/dist/PileupRPC/methods/GetReducedFeatures.js +3 -5
  142. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +3 -4
  143. package/dist/PileupRPC/methods/GetVisibleModifications.js +1 -1
  144. package/dist/PileupRPC/util.d.ts +1 -1
  145. package/dist/PileupRenderer/PileupLayoutSession.d.ts +5 -5
  146. package/dist/PileupRenderer/PileupLayoutSession.js +2 -5
  147. package/dist/PileupRenderer/PileupRenderer.d.ts +14 -24
  148. package/dist/PileupRenderer/PileupRenderer.js +28 -23
  149. package/dist/PileupRenderer/colorBy.d.ts +2 -2
  150. package/dist/PileupRenderer/colorBy.js +0 -6
  151. package/dist/PileupRenderer/components/PileupRendering.d.ts +2 -3
  152. package/dist/PileupRenderer/components/PileupRendering.js +15 -43
  153. package/dist/PileupRenderer/configSchema.d.ts +5 -31
  154. package/dist/PileupRenderer/configSchema.js +6 -35
  155. package/dist/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  156. package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -6
  157. package/dist/PileupRenderer/index.d.ts +1 -1
  158. package/dist/PileupRenderer/index.js +1 -1
  159. package/dist/PileupRenderer/layoutFeature.d.ts +2 -2
  160. package/dist/PileupRenderer/layoutFeature.js +0 -1
  161. package/dist/PileupRenderer/layoutFeatures.d.ts +5 -2
  162. package/dist/PileupRenderer/layoutFeatures.js +6 -4
  163. package/dist/PileupRenderer/makeImageData.d.ts +3 -4
  164. package/dist/PileupRenderer/makeImageData.js +10 -2
  165. package/dist/PileupRenderer/renderAlignment.d.ts +3 -3
  166. package/dist/PileupRenderer/renderAlignment.js +3 -5
  167. package/dist/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  168. package/dist/PileupRenderer/renderAlignmentShape.js +1 -1
  169. package/dist/PileupRenderer/renderMethylation.d.ts +4 -4
  170. package/dist/PileupRenderer/renderMethylation.js +0 -4
  171. package/dist/PileupRenderer/renderMismatches.d.ts +5 -4
  172. package/dist/PileupRenderer/renderMismatches.js +19 -25
  173. package/dist/PileupRenderer/renderModifications.d.ts +3 -3
  174. package/dist/PileupRenderer/renderModifications.js +1 -3
  175. package/dist/PileupRenderer/renderPerBaseLettering.d.ts +2 -2
  176. package/dist/PileupRenderer/renderPerBaseLettering.js +0 -1
  177. package/dist/PileupRenderer/renderPerBaseQuality.d.ts +2 -2
  178. package/dist/PileupRenderer/renderPerBaseQuality.js +2 -2
  179. package/dist/PileupRenderer/renderSoftClipping.d.ts +5 -5
  180. package/dist/PileupRenderer/renderSoftClipping.js +0 -4
  181. package/dist/PileupRenderer/sortUtil.d.ts +2 -2
  182. package/dist/PileupRenderer/sortUtil.js +1 -4
  183. package/dist/PileupRenderer/types.d.ts +26 -0
  184. package/dist/PileupRenderer/types.js +2 -0
  185. package/dist/PileupRenderer/util.d.ts +2 -2
  186. package/dist/PileupRenderer/util.js +1 -3
  187. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  188. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +4 -6
  189. package/dist/SNPCoverageAdapter/configSchema.d.ts +0 -4
  190. package/dist/SNPCoverageAdapter/configSchema.js +1 -8
  191. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +4 -8
  192. package/dist/SNPCoverageAdapter/generateCoverageBins.js +25 -247
  193. package/dist/SNPCoverageAdapter/index.d.ts +1 -1
  194. package/dist/SNPCoverageAdapter/index.js +17 -7
  195. package/dist/SNPCoverageAdapter/processDepth.d.ts +8 -0
  196. package/dist/SNPCoverageAdapter/processDepth.js +38 -0
  197. package/dist/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  198. package/dist/SNPCoverageAdapter/processMismatches.js +58 -0
  199. package/dist/SNPCoverageAdapter/processModifications.d.ts +10 -0
  200. package/dist/SNPCoverageAdapter/processModifications.js +49 -0
  201. package/dist/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  202. package/dist/SNPCoverageAdapter/processReferenceCpGs.js +63 -0
  203. package/dist/SNPCoverageAdapter/util.d.ts +10 -0
  204. package/dist/SNPCoverageAdapter/util.js +41 -0
  205. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -18
  206. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +35 -288
  207. package/dist/SNPCoverageRenderer/configSchema.d.ts +3 -18
  208. package/dist/SNPCoverageRenderer/configSchema.js +4 -22
  209. package/dist/SNPCoverageRenderer/index.d.ts +1 -1
  210. package/dist/SNPCoverageRenderer/index.js +2 -2
  211. package/dist/SNPCoverageRenderer/makeImage.d.ts +2 -0
  212. package/dist/SNPCoverageRenderer/makeImage.js +270 -0
  213. package/dist/SNPCoverageRenderer/types.d.ts +19 -0
  214. package/dist/SNPCoverageRenderer/types.js +2 -0
  215. package/dist/index.d.ts +2 -2
  216. package/dist/index.js +29 -19
  217. package/dist/shared/afterAttach.d.ts +1 -1
  218. package/dist/shared/afterAttach.js +0 -2
  219. package/dist/shared/color.d.ts +1 -1
  220. package/dist/shared/color.js +0 -8
  221. package/dist/shared/components/BaseDisplayComponent.d.ts +3 -4
  222. package/dist/shared/components/BaseDisplayComponent.js +13 -19
  223. package/dist/shared/components/FilterByTagDialog.d.ts +2 -3
  224. package/dist/shared/components/FilterByTagDialog.js +44 -94
  225. package/dist/shared/fetchChains.d.ts +2 -2
  226. package/dist/shared/fetchChains.js +1 -2
  227. package/dist/shared/getMaximumModificationAtEachPosition.d.ts +1 -1
  228. package/dist/shared/getMaximumModificationAtEachPosition.js +1 -2
  229. package/dist/shared/getUniqueModifications.d.ts +5 -5
  230. package/dist/shared/getUniqueTags.d.ts +4 -4
  231. package/dist/shared/renderSvgUtil.d.ts +1 -2
  232. package/dist/shared/renderSvgUtil.js +20 -19
  233. package/dist/shared/util.d.ts +11 -1
  234. package/dist/shared/util.js +27 -1
  235. package/dist/util.d.ts +4 -4
  236. package/dist/util.js +3 -9
  237. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +2 -3
  238. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +8 -17
  239. package/esm/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  240. package/esm/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  241. package/esm/AlignmentsFeatureDetail/Flags.d.ts +1 -2
  242. package/esm/AlignmentsFeatureDetail/Flags.js +8 -10
  243. package/esm/AlignmentsFeatureDetail/Formatter.d.ts +1 -2
  244. package/esm/AlignmentsFeatureDetail/Formatter.js +11 -16
  245. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +4 -7
  246. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +30 -48
  247. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +4 -7
  248. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +41 -54
  249. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +3 -4
  250. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +4 -5
  251. package/esm/AlignmentsFeatureDetail/PairLink.d.ts +2 -3
  252. package/esm/AlignmentsFeatureDetail/PairLink.js +3 -4
  253. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +3 -4
  254. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +6 -9
  255. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +2 -3
  256. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +22 -29
  257. package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  258. package/esm/AlignmentsFeatureDetail/getSAFeatures.js +0 -4
  259. package/esm/AlignmentsFeatureDetail/index.d.ts +1 -1
  260. package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  261. package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +2 -2
  262. package/esm/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  263. package/esm/AlignmentsFeatureDetail/tagInfo.js +1 -1
  264. package/esm/AlignmentsFeatureDetail/util.d.ts +1 -1
  265. package/esm/AlignmentsTrack/configSchemaF.d.ts +1 -1
  266. package/esm/AlignmentsTrack/configSchemaF.js +1 -8
  267. package/esm/AlignmentsTrack/index.d.ts +1 -1
  268. package/esm/AlignmentsTrack/index.js +0 -3
  269. package/esm/BamAdapter/BamAdapter.d.ts +6 -5
  270. package/esm/BamAdapter/BamAdapter.js +19 -37
  271. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -3
  272. package/esm/BamAdapter/BamSlightlyLazyFeature.js +0 -3
  273. package/esm/BamAdapter/configSchema.d.ts +0 -17
  274. package/esm/BamAdapter/configSchema.js +1 -22
  275. package/esm/BamAdapter/index.d.ts +1 -1
  276. package/esm/CramAdapter/CramAdapter.d.ts +6 -9
  277. package/esm/CramAdapter/CramAdapter.js +24 -42
  278. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +3 -3
  279. package/esm/CramAdapter/CramSlightlyLazyFeature.js +0 -17
  280. package/esm/CramAdapter/CramTestAdapters.d.ts +3 -3
  281. package/esm/CramAdapter/CramTestAdapters.js +6 -6
  282. package/esm/CramAdapter/configSchema.d.ts +0 -14
  283. package/esm/CramAdapter/configSchema.js +1 -19
  284. package/esm/CramAdapter/index.d.ts +1 -1
  285. package/esm/CramAdapter/index.js +0 -1
  286. package/esm/CramAdapter/util.d.ts +2 -2
  287. package/esm/CramAdapter/util.js +1 -24
  288. package/esm/GuessAlignmentsTypes/index.d.ts +1 -1
  289. package/esm/GuessAlignmentsTypes/index.js +20 -35
  290. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  291. package/esm/HtsgetBamAdapter/configSchema.d.ts +0 -9
  292. package/esm/HtsgetBamAdapter/configSchema.js +1 -14
  293. package/esm/HtsgetBamAdapter/index.d.ts +1 -1
  294. package/esm/HtsgetBamAdapter/index.js +1 -1
  295. package/esm/LinearAlignmentsDisplay/alignmentsModel.d.ts +2 -5
  296. package/esm/LinearAlignmentsDisplay/alignmentsModel.js +1 -31
  297. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +2 -3
  298. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -15
  299. package/esm/LinearAlignmentsDisplay/configSchema.d.ts +2 -16
  300. package/esm/LinearAlignmentsDisplay/configSchema.js +3 -20
  301. package/esm/LinearAlignmentsDisplay/index.d.ts +1 -1
  302. package/esm/LinearAlignmentsDisplay/index.js +1 -2
  303. package/esm/LinearAlignmentsDisplay/model.d.ts +7 -77
  304. package/esm/LinearAlignmentsDisplay/model.js +11 -86
  305. package/esm/LinearAlignmentsDisplay/util.d.ts +1 -1
  306. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +52 -164
  307. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +56 -140
  308. package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +1 -2
  309. package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +12 -18
  310. package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +3 -4
  311. package/esm/LinearPileupDisplay/components/GroupByDialog.js +106 -69
  312. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +3 -8
  313. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +3 -4
  314. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.d.ts +1 -2
  315. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +15 -21
  316. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.d.ts +1 -2
  317. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +12 -17
  318. package/esm/LinearPileupDisplay/components/SortByTagDialog.d.ts +1 -2
  319. package/esm/LinearPileupDisplay/components/SortByTagDialog.js +17 -23
  320. package/esm/LinearPileupDisplay/configSchema.d.ts +13 -16
  321. package/esm/LinearPileupDisplay/configSchema.js +12 -30
  322. package/esm/LinearPileupDisplay/index.d.ts +1 -1
  323. package/esm/LinearPileupDisplay/index.js +2 -2
  324. package/esm/LinearPileupDisplay/model.d.ts +123 -111
  325. package/esm/LinearPileupDisplay/model.js +13 -103
  326. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +2 -3
  327. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +6 -10
  328. package/esm/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  329. package/esm/LinearReadArcsDisplay/configSchema.js +8 -31
  330. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  331. package/esm/LinearReadArcsDisplay/drawFeats.js +1 -9
  332. package/esm/LinearReadArcsDisplay/index.d.ts +1 -1
  333. package/esm/LinearReadArcsDisplay/index.js +1 -2
  334. package/esm/LinearReadArcsDisplay/model.d.ts +16 -94
  335. package/esm/LinearReadArcsDisplay/model.js +18 -105
  336. package/esm/LinearReadArcsDisplay/util.d.ts +1 -1
  337. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +2 -3
  338. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +6 -10
  339. package/esm/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  340. package/esm/LinearReadCloudDisplay/configSchema.js +3 -28
  341. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  342. package/esm/LinearReadCloudDisplay/drawFeats.js +2 -2
  343. package/esm/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  344. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  345. package/esm/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  346. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -3
  347. package/esm/LinearReadCloudDisplay/index.d.ts +1 -1
  348. package/esm/LinearReadCloudDisplay/index.js +1 -2
  349. package/esm/LinearReadCloudDisplay/model.d.ts +14 -56
  350. package/esm/LinearReadCloudDisplay/model.js +17 -68
  351. package/esm/LinearReadCloudDisplay/util.js +0 -1
  352. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +2 -3
  353. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +16 -52
  354. package/esm/LinearSNPCoverageDisplay/configSchema.d.ts +17 -22
  355. package/esm/LinearSNPCoverageDisplay/configSchema.js +16 -32
  356. package/esm/LinearSNPCoverageDisplay/index.d.ts +1 -1
  357. package/esm/LinearSNPCoverageDisplay/index.js +1 -2
  358. package/esm/LinearSNPCoverageDisplay/model.d.ts +13 -54
  359. package/esm/LinearSNPCoverageDisplay/model.js +53 -153
  360. package/esm/MismatchParser/cigarToMismatches.d.ts +2 -3
  361. package/esm/MismatchParser/cigarToMismatches.js +4 -7
  362. package/esm/MismatchParser/getNextRefPos.js +0 -2
  363. package/esm/MismatchParser/index.d.ts +3 -4
  364. package/esm/MismatchParser/index.js +1 -9
  365. package/esm/MismatchParser/mdToMismatches.d.ts +2 -3
  366. package/esm/MismatchParser/mdToMismatches.js +0 -6
  367. package/esm/ModificationParser/index.d.ts +1 -1
  368. package/esm/ModificationParser/index.js +1 -18
  369. package/esm/PileupRPC/base.d.ts +2 -2
  370. package/esm/PileupRPC/base.js +0 -1
  371. package/esm/PileupRPC/index.d.ts +1 -1
  372. package/esm/PileupRPC/index.js +1 -1
  373. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  374. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +1 -2
  375. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +2 -3
  376. package/esm/PileupRPC/methods/GetReducedFeatures.js +3 -5
  377. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +3 -4
  378. package/esm/PileupRPC/methods/GetVisibleModifications.js +1 -1
  379. package/esm/PileupRPC/util.d.ts +1 -1
  380. package/esm/PileupRenderer/PileupLayoutSession.d.ts +5 -5
  381. package/esm/PileupRenderer/PileupLayoutSession.js +2 -5
  382. package/esm/PileupRenderer/PileupRenderer.d.ts +14 -24
  383. package/esm/PileupRenderer/PileupRenderer.js +12 -17
  384. package/esm/PileupRenderer/colorBy.d.ts +2 -2
  385. package/esm/PileupRenderer/colorBy.js +1 -7
  386. package/esm/PileupRenderer/components/PileupRendering.d.ts +2 -3
  387. package/esm/PileupRenderer/components/PileupRendering.js +15 -20
  388. package/esm/PileupRenderer/configSchema.d.ts +5 -31
  389. package/esm/PileupRenderer/configSchema.js +6 -35
  390. package/esm/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  391. package/esm/PileupRenderer/getAlignmentShapeColor.js +2 -7
  392. package/esm/PileupRenderer/index.d.ts +1 -1
  393. package/esm/PileupRenderer/index.js +1 -1
  394. package/esm/PileupRenderer/layoutFeature.d.ts +2 -2
  395. package/esm/PileupRenderer/layoutFeature.js +0 -1
  396. package/esm/PileupRenderer/layoutFeatures.d.ts +5 -2
  397. package/esm/PileupRenderer/layoutFeatures.js +7 -5
  398. package/esm/PileupRenderer/makeImageData.d.ts +3 -4
  399. package/esm/PileupRenderer/makeImageData.js +10 -2
  400. package/esm/PileupRenderer/renderAlignment.d.ts +3 -3
  401. package/esm/PileupRenderer/renderAlignment.js +3 -5
  402. package/esm/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  403. package/esm/PileupRenderer/renderAlignmentShape.js +1 -1
  404. package/esm/PileupRenderer/renderMethylation.d.ts +4 -4
  405. package/esm/PileupRenderer/renderMethylation.js +0 -4
  406. package/esm/PileupRenderer/renderMismatches.d.ts +5 -4
  407. package/esm/PileupRenderer/renderMismatches.js +19 -25
  408. package/esm/PileupRenderer/renderModifications.d.ts +3 -3
  409. package/esm/PileupRenderer/renderModifications.js +1 -3
  410. package/esm/PileupRenderer/renderPerBaseLettering.d.ts +2 -2
  411. package/esm/PileupRenderer/renderPerBaseLettering.js +0 -1
  412. package/esm/PileupRenderer/renderPerBaseQuality.d.ts +2 -2
  413. package/esm/PileupRenderer/renderPerBaseQuality.js +2 -2
  414. package/esm/PileupRenderer/renderSoftClipping.d.ts +5 -5
  415. package/esm/PileupRenderer/renderSoftClipping.js +1 -5
  416. package/esm/PileupRenderer/sortUtil.d.ts +2 -2
  417. package/esm/PileupRenderer/sortUtil.js +1 -4
  418. package/esm/PileupRenderer/types.d.ts +26 -0
  419. package/esm/PileupRenderer/types.js +1 -0
  420. package/esm/PileupRenderer/util.d.ts +2 -2
  421. package/esm/PileupRenderer/util.js +1 -3
  422. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  423. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +5 -7
  424. package/esm/SNPCoverageAdapter/configSchema.d.ts +0 -4
  425. package/esm/SNPCoverageAdapter/configSchema.js +1 -8
  426. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +4 -8
  427. package/esm/SNPCoverageAdapter/generateCoverageBins.js +24 -246
  428. package/esm/SNPCoverageAdapter/index.d.ts +1 -1
  429. package/esm/SNPCoverageAdapter/processDepth.d.ts +8 -0
  430. package/esm/SNPCoverageAdapter/processDepth.js +35 -0
  431. package/esm/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  432. package/esm/SNPCoverageAdapter/processMismatches.js +55 -0
  433. package/esm/SNPCoverageAdapter/processModifications.d.ts +10 -0
  434. package/esm/SNPCoverageAdapter/processModifications.js +46 -0
  435. package/esm/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  436. package/esm/SNPCoverageAdapter/processReferenceCpGs.js +60 -0
  437. package/esm/SNPCoverageAdapter/util.d.ts +10 -0
  438. package/esm/SNPCoverageAdapter/util.js +35 -0
  439. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -18
  440. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +3 -289
  441. package/esm/SNPCoverageRenderer/configSchema.d.ts +3 -18
  442. package/esm/SNPCoverageRenderer/configSchema.js +4 -22
  443. package/esm/SNPCoverageRenderer/index.d.ts +1 -1
  444. package/esm/SNPCoverageRenderer/index.js +2 -2
  445. package/esm/SNPCoverageRenderer/makeImage.d.ts +2 -0
  446. package/esm/SNPCoverageRenderer/makeImage.js +267 -0
  447. package/esm/SNPCoverageRenderer/types.d.ts +19 -0
  448. package/esm/SNPCoverageRenderer/types.js +1 -0
  449. package/esm/index.d.ts +2 -2
  450. package/esm/index.js +10 -10
  451. package/esm/shared/afterAttach.d.ts +1 -1
  452. package/esm/shared/afterAttach.js +0 -2
  453. package/esm/shared/color.d.ts +1 -1
  454. package/esm/shared/color.js +0 -8
  455. package/esm/shared/components/BaseDisplayComponent.d.ts +3 -4
  456. package/esm/shared/components/BaseDisplayComponent.js +13 -16
  457. package/esm/shared/components/FilterByTagDialog.d.ts +2 -3
  458. package/esm/shared/components/FilterByTagDialog.js +44 -71
  459. package/esm/shared/fetchChains.d.ts +2 -2
  460. package/esm/shared/fetchChains.js +1 -2
  461. package/esm/shared/getMaximumModificationAtEachPosition.d.ts +1 -1
  462. package/esm/shared/getMaximumModificationAtEachPosition.js +1 -2
  463. package/esm/shared/getUniqueModifications.d.ts +5 -5
  464. package/esm/shared/getUniqueTags.d.ts +4 -4
  465. package/esm/shared/renderSvgUtil.d.ts +1 -2
  466. package/esm/shared/renderSvgUtil.js +3 -9
  467. package/esm/shared/util.d.ts +11 -1
  468. package/esm/shared/util.js +24 -0
  469. package/esm/util.d.ts +4 -4
  470. package/esm/util.js +3 -9
  471. package/package.json +6 -7
@@ -1,129 +1,86 @@
1
1
  import { lazy } from 'react';
2
- import { autorun, observable } from 'mobx';
3
- import { cast, types, addDisposer, isAlive } from 'mobx-state-tree';
4
- import copy from 'copy-to-clipboard';
5
- import { ConfigurationReference, readConfObject, getConf, } from '@jbrowse/core/configuration';
2
+ import { ConfigurationReference, getConf, readConfObject, } from '@jbrowse/core/configuration';
6
3
  import SerializableFilterChain from '@jbrowse/core/pluggableElementTypes/renderers/util/serializableFilterChain';
7
- import { getRpcSessionId } from '@jbrowse/core/util/tracks';
8
- import { getEnv, getSession, getContainingView, getContainingTrack, isSessionModelWithWidgets, SimpleFeature, } from '@jbrowse/core/util';
9
- import { BaseLinearDisplay, } from '@jbrowse/plugin-linear-genome-view';
10
- // icons
11
4
  import { ContentCopy as ContentCopyIcon } from '@jbrowse/core/ui/Icons';
12
- import MenuOpenIcon from '@mui/icons-material/MenuOpen';
5
+ import { SimpleFeature, getContainingTrack, getContainingView, getEnv, getSession, isSessionModelWithWidgets, } from '@jbrowse/core/util';
6
+ import { getRpcSessionId } from '@jbrowse/core/util/tracks';
7
+ import { BaseLinearDisplay } from '@jbrowse/plugin-linear-genome-view';
13
8
  import FilterListIcon from '@mui/icons-material/ClearAll';
14
- // locals
15
- import LinearPileupDisplayBlurb from './components/LinearPileupDisplayBlurb';
9
+ import MenuOpenIcon from '@mui/icons-material/MenuOpen';
10
+ import copy from 'copy-to-clipboard';
11
+ import { autorun, observable } from 'mobx';
12
+ import { addDisposer, cast, isAlive, types } from 'mobx-state-tree';
16
13
  import { createAutorun } from '../util';
14
+ import LinearPileupDisplayBlurb from './components/LinearPileupDisplayBlurb';
17
15
  import { getUniqueTags } from '../shared/getUniqueTags';
18
- import { defaultFilterFlags } from '../shared/util';
19
- // lazies
20
16
  const FilterByTagDialog = lazy(() => import('../shared/components/FilterByTagDialog'));
21
17
  const ColorByTagDialog = lazy(() => import('./components/ColorByTagDialog'));
22
18
  const SetFeatureHeightDialog = lazy(() => import('./components/SetFeatureHeightDialog'));
23
19
  const SetMaxHeightDialog = lazy(() => import('./components/SetMaxHeightDialog'));
24
- // using a map because it preserves order
25
20
  const rendererTypes = new Map([
26
21
  ['pileup', 'PileupRenderer'],
27
22
  ['svg', 'SvgFeatureRenderer'],
28
23
  ]);
29
- /**
30
- * #stateModel SharedLinearPileupDisplayMixin
31
- * #category display
32
- * extends `BaseLinearDisplay`
33
- */
34
24
  export function SharedLinearPileupDisplayMixin(configSchema) {
35
25
  return types
36
26
  .compose(BaseLinearDisplay, types.model({
37
- /**
38
- * #property
39
- */
40
27
  configuration: ConfigurationReference(configSchema),
41
- /**
42
- * #property
43
- */
44
28
  featureHeight: types.maybe(types.number),
45
- /**
46
- * #property
47
- */
48
29
  noSpacing: types.maybe(types.boolean),
49
- /**
50
- * #property
51
- */
52
30
  fadeLikelihood: types.maybe(types.boolean),
53
- /**
54
- * #property
55
- */
56
31
  trackMaxHeight: types.maybe(types.number),
57
- /**
58
- * #property
59
- */
60
- colorBy: types.frozen(),
61
- /**
62
- * #property
63
- */
64
- filterBy: types.optional(types.frozen(), defaultFilterFlags),
65
- /**
66
- * #property
67
- */
32
+ colorBySetting: types.frozen(),
33
+ filterBySetting: types.frozen(),
68
34
  jexlFilters: types.optional(types.array(types.string), []),
35
+ hideSmallIndelsSetting: types.maybe(types.boolean),
69
36
  }))
70
37
  .volatile(() => ({
71
38
  colorTagMap: observable.map({}),
72
39
  featureUnderMouseVolatile: undefined,
73
40
  tagsReady: false,
41
+ }))
42
+ .views(self => ({
43
+ get colorBy() {
44
+ var _a;
45
+ return (_a = self.colorBySetting) !== null && _a !== void 0 ? _a : getConf(self, 'colorBy');
46
+ },
47
+ get filterBy() {
48
+ var _a;
49
+ return (_a = self.filterBySetting) !== null && _a !== void 0 ? _a : getConf(self, 'filterBy');
50
+ },
74
51
  }))
75
52
  .views(self => ({
76
53
  get autorunReady() {
77
54
  const view = getContainingView(self);
78
- return (view.initialized &&
79
- self.featureDensityStatsReady &&
80
- !self.regionTooLarge);
55
+ return view.initialized && self.statsReadyAndRegionNotTooLarge;
56
+ },
57
+ get hideSmallIndels() {
58
+ return self.hideSmallIndelsSetting;
81
59
  },
82
60
  }))
83
61
  .actions(self => ({
84
- /**
85
- * #action
86
- */
87
62
  setTagsReady(flag) {
88
63
  self.tagsReady = flag;
89
64
  },
90
- /**
91
- * #action
92
- */
93
65
  setMaxHeight(n) {
94
66
  self.trackMaxHeight = n;
95
67
  },
96
- /**
97
- * #action
98
- */
99
68
  setFeatureHeight(n) {
100
69
  self.featureHeight = n;
101
70
  },
102
- /**
103
- * #action
104
- */
105
71
  setNoSpacing(flag) {
106
72
  self.noSpacing = flag;
107
73
  },
108
- /**
109
- * #action
110
- */
111
74
  setColorScheme(colorScheme) {
112
75
  self.colorTagMap = observable.map({});
113
- self.colorBy = {
76
+ self.colorBySetting = {
114
77
  ...colorScheme,
115
78
  };
116
79
  if (colorScheme.tag) {
117
80
  self.tagsReady = false;
118
81
  }
119
82
  },
120
- /**
121
- * #action
122
- */
123
83
  updateColorTagMap(uniqueTag) {
124
- // pale color scheme
125
- // https://cran.r-project.org/web/packages/khroma/vignettes/tol.html
126
- // e.g. "tol_light"
127
84
  const colorPalette = [
128
85
  '#BBCCEE',
129
86
  'pink',
@@ -143,15 +100,9 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
143
100
  }
144
101
  });
145
102
  },
146
- /**
147
- * #action
148
- */
149
103
  setFeatureUnderMouse(feat) {
150
104
  self.featureUnderMouseVolatile = feat;
151
105
  },
152
- /**
153
- * #action
154
- */
155
106
  selectFeature(feature) {
156
107
  const session = getSession(self);
157
108
  if (isSessionModelWithWidgets(session)) {
@@ -164,82 +115,53 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
164
115
  }
165
116
  session.setSelection(feature);
166
117
  },
167
- /**
168
- * #action
169
- * uses copy-to-clipboard and generates notification
170
- */
171
118
  copyFeatureToClipboard(feature) {
172
119
  const { uniqueId, ...rest } = feature.toJSON();
173
120
  const session = getSession(self);
174
121
  copy(JSON.stringify(rest, null, 4));
175
122
  session.notify('Copied to clipboard', 'success');
176
123
  },
177
- /**
178
- * #action
179
- */
180
124
  setConfig(conf) {
181
125
  self.configuration = conf;
182
126
  },
183
- /**
184
- * #action
185
- */
186
127
  setFilterBy(filter) {
187
- self.filterBy = {
128
+ self.filterBySetting = {
188
129
  ...filter,
189
130
  };
190
131
  },
191
- /**
192
- * #action
193
- */
194
132
  setJexlFilters(filters) {
195
133
  self.jexlFilters = cast(filters);
196
134
  },
135
+ setHideSmallIndels(arg) {
136
+ self.hideSmallIndelsSetting = arg;
137
+ },
197
138
  }))
198
139
  .views(self => ({
199
- /**
200
- * #getter
201
- */
202
140
  get rendererConfig() {
203
- const { featureHeight, noSpacing, trackMaxHeight, rendererTypeName } = self;
141
+ const { featureHeight: height, noSpacing, hideSmallIndels, trackMaxHeight: maxHeight, rendererTypeName, } = self;
204
142
  const configBlob = getConf(self, ['renderers', rendererTypeName]) || {};
205
143
  return self.rendererType.configSchema.create({
206
144
  ...configBlob,
207
- ...(featureHeight !== undefined ? { height: featureHeight } : {}),
145
+ ...(hideSmallIndels !== undefined ? { hideSmallIndels } : {}),
146
+ ...(height !== undefined ? { height } : {}),
208
147
  ...(noSpacing !== undefined ? { noSpacing } : {}),
209
- ...(trackMaxHeight !== undefined
210
- ? { maxHeight: trackMaxHeight }
211
- : {}),
148
+ ...(maxHeight !== undefined ? { maxHeight } : {}),
212
149
  }, getEnv(self));
213
150
  },
214
151
  }))
215
152
  .views(self => ({
216
- /**
217
- * #getter
218
- */
219
153
  get maxHeight() {
220
154
  return readConfObject(self.rendererConfig, 'maxHeight');
221
155
  },
222
- /**
223
- * #getter
224
- */
225
156
  get featureHeightSetting() {
226
157
  return readConfObject(self.rendererConfig, 'height');
227
158
  },
228
- /**
229
- * #getter
230
- */
231
159
  get featureUnderMouse() {
232
160
  return self.featureUnderMouseVolatile;
233
161
  },
234
- /**
235
- * #getter
236
- */
237
162
  renderReady() {
238
163
  return self.tagsReady;
239
164
  },
240
- /**
241
- * #getter
242
- */
243
165
  get filters() {
244
166
  return new SerializableFilterChain({ filters: self.jexlFilters });
245
167
  },
@@ -247,9 +169,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
247
169
  .views(self => {
248
170
  const { trackMenuItems: superTrackMenuItems, renderProps: superRenderProps, } = self;
249
171
  return {
250
- /**
251
- * #getter
252
- */
253
172
  get rendererTypeName() {
254
173
  const viewName = getConf(self, 'defaultRendering');
255
174
  const rendererType = rendererTypes.get(viewName);
@@ -258,9 +177,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
258
177
  }
259
178
  return rendererType;
260
179
  },
261
- /**
262
- * #method
263
- */
264
180
  contextMenuItems() {
265
181
  const feat = self.contextMenuFeature;
266
182
  return feat
@@ -283,15 +199,9 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
283
199
  ]
284
200
  : [];
285
201
  },
286
- /**
287
- * #getter
288
- */
289
202
  get DisplayBlurb() {
290
203
  return LinearPileupDisplayBlurb;
291
204
  },
292
- /**
293
- * #method
294
- */
295
205
  renderPropsPre() {
296
206
  const { colorTagMap, colorBy, filterBy, rpcDriverName } = self;
297
207
  const superProps = superRenderProps();
@@ -334,7 +244,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
334
244
  onClick() {
335
245
  self.clearFeatureSelection();
336
246
  },
337
- // similar to click but opens a menu with further options
338
247
  async onFeatureContextMenu(_, featureId) {
339
248
  const session = getSession(self);
340
249
  const { rpcManager } = session;
@@ -363,9 +272,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
363
272
  },
364
273
  };
365
274
  },
366
- /**
367
- * #method
368
- */
369
275
  colorSchemeSubMenuItems() {
370
276
  return [
371
277
  {
@@ -430,9 +336,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
430
336
  },
431
337
  ];
432
338
  },
433
- /**
434
- * #method
435
- */
436
339
  trackMenuItems() {
437
340
  return [
438
341
  ...superTrackMenuItems(),
@@ -468,6 +371,15 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
468
371
  },
469
372
  ],
470
373
  },
374
+ {
375
+ label: 'Hide small indels (<10bp)',
376
+ priority: -1,
377
+ type: 'checkbox',
378
+ checked: self.hideSmallIndels,
379
+ onClick: () => {
380
+ self.setHideSmallIndels(!self.hideSmallIndels);
381
+ },
382
+ },
471
383
  {
472
384
  label: 'Set max height...',
473
385
  priority: -1,
@@ -527,9 +439,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
527
439
  self.setTagsReady(true);
528
440
  }
529
441
  }, { delay: 1000 });
530
- // autorun synchronizes featureUnderMouse with featureIdUnderMouse
531
- // asynchronously. this is needed due to how we do not serialize all
532
- // features from the BAM/CRAM over the rpc
533
442
  addDisposer(self, autorun(async () => {
534
443
  var _a;
535
444
  const session = getSession(self);
@@ -548,10 +457,6 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
548
457
  layoutId: view.id,
549
458
  rendererType: 'PileupRenderer',
550
459
  }));
551
- // check featureIdUnderMouse is still the same as the
552
- // feature.id that was returned e.g. that the user hasn't
553
- // moused over to a new position during the async operation
554
- // above
555
460
  if (isAlive(self) &&
556
461
  feature &&
557
462
  self.featureIdUnderMouse === feature.uniqueId) {
@@ -566,5 +471,16 @@ export function SharedLinearPileupDisplayMixin(configSchema) {
566
471
  }
567
472
  }));
568
473
  },
569
- }));
474
+ }))
475
+ .preProcessSnapshot(snap => {
476
+ if (snap) {
477
+ const { colorBy, colorBySetting, filterBySetting, filterBy, ...rest } = snap;
478
+ return {
479
+ ...rest,
480
+ filterBySetting: filterBySetting || filterBy,
481
+ colorBySetting: colorBySetting || colorBy,
482
+ };
483
+ }
484
+ return snap;
485
+ });
570
486
  }
@@ -1,4 +1,3 @@
1
- import React from 'react';
2
1
  interface Tag {
3
2
  type: string;
4
3
  tag: string;
@@ -8,5 +7,5 @@ declare const ColorByTagDialog: ({ model, handleClose, }: {
8
7
  setColorScheme: (arg: Tag) => void;
9
8
  };
10
9
  handleClose: () => void;
11
- }) => React.JSX.Element;
10
+ }) => import("react/jsx-runtime").JSX.Element;
12
11
  export default ColorByTagDialog;
@@ -1,24 +1,18 @@
1
- import React, { useState } from 'react';
2
- import { observer } from 'mobx-react';
3
- import { Button, DialogContent, DialogActions, TextField, Typography, } from '@mui/material';
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from 'react';
4
3
  import { Dialog } from '@jbrowse/core/ui';
4
+ import { Button, DialogActions, DialogContent, TextField, Typography, } from '@mui/material';
5
+ import { observer } from 'mobx-react';
5
6
  const ColorByTagDialog = observer(function ({ model, handleClose, }) {
6
7
  const [tag, setTag] = useState('');
7
8
  const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag);
8
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Color by tag" },
9
- React.createElement(DialogContent, { style: { overflowX: 'hidden' } },
10
- React.createElement(Typography, null, "Enter tag to color by: "),
11
- React.createElement(Typography, { color: "textSecondary" }, "Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc."),
12
- React.createElement(TextField, { value: tag, onChange: event => {
13
- setTag(event.target.value);
14
- }, placeholder: "Enter tag name", error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off", slotProps: {
15
- htmlInput: { maxLength: 2 },
16
- } }),
17
- React.createElement(DialogActions, null,
18
- React.createElement(Button, { variant: "contained", color: "primary", onClick: () => {
19
- model.setColorScheme({ type: 'tag', tag });
20
- handleClose();
21
- }, disabled: !validTag }, "Submit"),
22
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: handleClose }, "Cancel")))));
9
+ return (_jsx(Dialog, { open: true, onClose: handleClose, title: "Color by tag", children: _jsxs(DialogContent, { style: { overflowX: 'hidden' }, children: [_jsx(Typography, { children: "Enter tag to color by: " }), _jsx(Typography, { color: "textSecondary", children: "Examples: XS or TS for RNA-seq inferred read strand, ts (lower-case) for minimap2 read strand, HP for haplotype, RG for read group, etc." }), _jsx(TextField, { value: tag, onChange: event => {
10
+ setTag(event.target.value);
11
+ }, placeholder: "Enter tag name", error: tag.length === 2 && !validTag, helperText: tag.length === 2 && !validTag ? 'Not a valid tag' : '', autoComplete: "off", slotProps: {
12
+ htmlInput: { maxLength: 2 },
13
+ } }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", onClick: () => {
14
+ model.setColorScheme({ type: 'tag', tag });
15
+ handleClose();
16
+ }, disabled: !validTag, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: handleClose, children: "Cancel" })] })] }) }));
23
17
  });
24
18
  export default ColorByTagDialog;
@@ -1,11 +1,10 @@
1
- import React from 'react';
2
- import { IAnyStateTreeNode } from 'mobx-state-tree';
3
- import { AnyConfigurationModel } from '@jbrowse/core/configuration';
1
+ import type { AnyConfigurationModel } from '@jbrowse/core/configuration';
2
+ import type { IAnyStateTreeNode } from 'mobx-state-tree';
4
3
  declare const GroupByTagDialog: (props: {
5
4
  model: {
6
5
  adapterConfig: AnyConfigurationModel;
7
6
  configuration: AnyConfigurationModel;
8
7
  } & IAnyStateTreeNode;
9
8
  handleClose: () => void;
10
- }) => React.JSX.Element;
9
+ }) => import("react/jsx-runtime").JSX.Element;
11
10
  export default GroupByTagDialog;
@@ -1,26 +1,23 @@
1
- import React, { useEffect, useState } from 'react';
2
- import { observer } from 'mobx-react';
3
- import { Button, Checkbox, DialogActions, DialogContent, FormControlLabel, TextField, Typography, } from '@mui/material';
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { useEffect, useState } from 'react';
4
3
  import { Dialog, ErrorMessage, LoadingEllipses } from '@jbrowse/core/ui';
5
- import { getSnapshot } from 'mobx-state-tree';
6
4
  import { getContainingTrack, getContainingView, getSession, useDebounce, } from '@jbrowse/core/util';
7
- // locals
5
+ import { Button, DialogActions, DialogContent, MenuItem, TextField, Typography, } from '@mui/material';
6
+ import { observer } from 'mobx-react';
7
+ import { getSnapshot } from 'mobx-state-tree';
8
8
  import { getUniqueTags } from '../../shared/getUniqueTags';
9
- function clone(c) {
10
- return JSON.parse(JSON.stringify(c));
11
- }
9
+ import { defaultFilterFlags, negFlags, posFlags } from '../../shared/util';
12
10
  const GroupByTagDialog = observer(function (props) {
13
11
  const { model, handleClose } = props;
14
- const [tag, setTag] = useState('');
15
- const [tagSet, setTagSet] = useState();
12
+ const [tag, setGroupByTag] = useState('');
13
+ const [tagSet, setGroupByTagSet] = useState();
16
14
  const [loading, setLoading] = useState(false);
17
15
  const [error, setError] = useState();
18
- const [includeUndefined, setIncludeUndefined] = useState(true);
19
16
  const validTag = /^[A-Za-z][A-Za-z0-9]$/.exec(tag);
20
17
  const isInvalid = tag.length === 2 && !validTag;
21
18
  const debouncedTag = useDebounce(tag, 1000);
19
+ const [type, setType] = useState('');
22
20
  useEffect(() => {
23
- // eslint-disable-next-line @typescript-eslint/no-floating-promises
24
21
  ;
25
22
  (async () => {
26
23
  try {
@@ -33,7 +30,7 @@ const GroupByTagDialog = observer(function (props) {
33
30
  blocks: getContainingView(model)
34
31
  .staticBlocks,
35
32
  });
36
- setTagSet(vals);
33
+ setGroupByTagSet(vals);
37
34
  }
38
35
  }
39
36
  catch (e) {
@@ -45,62 +42,102 @@ const GroupByTagDialog = observer(function (props) {
45
42
  }
46
43
  })();
47
44
  }, [model, isInvalid, debouncedTag]);
48
- return (React.createElement(Dialog, { open: true, onClose: handleClose, title: "Group by tag" },
49
- React.createElement(DialogContent, null,
50
- React.createElement(Typography, null, "Set the tag to group by. NOTE: this will make a set of fully functional subtracks with the filter by by default set to the values of the tag that are visible in the current view"),
51
- React.createElement(Typography, { color: "textSecondary" }, "Examples: HP for haplotype, RG for read group, etc."),
52
- React.createElement(FormControlLabel, { control: React.createElement(Checkbox, { checked: includeUndefined, onChange: () => {
53
- setIncludeUndefined(!includeUndefined);
54
- } }), label: "Make a new subtrack for undefined values of tag as well?" }),
55
- React.createElement(TextField, { value: tag, onChange: event => {
56
- setTag(event.target.value);
57
- }, placeholder: "Enter tag name", error: isInvalid, helperText: isInvalid ? 'Not a valid tag' : '', autoComplete: "off", "data-testid": "group-tag-name", slotProps: {
58
- htmlInput: {
59
- maxLength: 2,
60
- 'data-testid': 'group-tag-name-input',
61
- },
62
- } }),
63
- error ? (React.createElement(ErrorMessage, { error: error })) : loading ? (React.createElement(LoadingEllipses, { title: "Loading unique tags" })) : tagSet ? (React.createElement("div", null,
64
- React.createElement("div", null,
65
- "Found unique ",
66
- tag,
67
- " values:"),
68
- React.createElement("div", null, tagSet.join(', ')))) : null),
69
- React.createElement(DialogActions, null,
70
- React.createElement(Button, { variant: "contained", color: "primary", type: "submit", disabled: !tagSet, autoFocus: true, onClick: () => {
71
- const track = getContainingTrack(model);
72
- const trackConf = clone(getSnapshot(track.configuration));
73
- const session = getSession(model);
74
- if (tagSet) {
75
- const ret = [...tagSet];
76
- if (includeUndefined) {
77
- ret.push(undefined);
78
- }
79
- for (const tagValue of ret) {
80
- // @ts-expect-error
81
- const newTrackConf = session.addTrackConf({
82
- ...trackConf,
83
- trackId: `${trackConf.trackId}-${tag}:${tagValue}-${+Date.now()}-sessionTrack`,
84
- name: `${trackConf.name} ${tag}:${tagValue}`,
85
- displays: undefined,
86
- });
45
+ return (_jsxs(Dialog, { open: true, onClose: handleClose, title: "Group by", children: [_jsxs(DialogContent, { children: [_jsx(Typography, { children: "NOTE: this will create new session tracks with the \"filter by\" set to the values chosen here rather than affecting the current track state" }), _jsxs(TextField, { fullWidth: true, value: type, onChange: event => {
46
+ setType(event.target.value);
47
+ }, label: "Group by...", select: true, children: [_jsx(MenuItem, { value: "strand", children: "Strand" }), _jsx(MenuItem, { value: "tag", children: "Tag" })] }), type === 'tag' ? (_jsxs(_Fragment, { children: [_jsx(Typography, { color: "textSecondary", children: "Examples: HP for haplotype, RG for read group, etc." }), _jsx(TextField, { value: tag, onChange: event => {
48
+ setGroupByTag(event.target.value);
49
+ }, placeholder: "Enter tag name", error: isInvalid, helperText: isInvalid ? 'Not a valid tag' : '', autoComplete: "off", "data-testid": "group-tag-name", slotProps: {
50
+ htmlInput: {
51
+ maxLength: 2,
52
+ 'data-testid': 'group-tag-name-input',
53
+ },
54
+ } }), error ? (_jsx(ErrorMessage, { error: error })) : loading ? (_jsx(LoadingEllipses, { title: "Loading unique tags" })) : tagSet ? (_jsxs("div", { children: [_jsxs("div", { children: ["Found unique ", tag, " values:"] }), _jsx("div", { children: tagSet.join(', ') })] })) : null] })) : null] }), _jsxs(DialogActions, { children: [_jsx(Button, { variant: "contained", color: "primary", type: "submit", disabled: !tagSet, autoFocus: true, onClick: () => {
55
+ const track = getContainingTrack(model);
56
+ const trackConf = structuredClone(getSnapshot(track.configuration));
57
+ const session = getSession(model);
87
58
  const view = getContainingView(model);
88
- const t = view.showTrack(newTrackConf.trackId);
89
- const d = t.displays[0];
90
- d.setFilterBy({
91
- flagInclude: 0,
92
- flagExclude: 1540,
93
- tagFilter: {
94
- tag,
95
- value: tagValue,
96
- },
97
- });
98
- }
99
- }
100
- handleClose();
101
- } }, "Submit"),
102
- React.createElement(Button, { variant: "contained", color: "secondary", onClick: () => {
103
- handleClose();
104
- } }, "Cancel"))));
59
+ if (type === 'tag') {
60
+ if (tagSet) {
61
+ const ret = [...tagSet, undefined];
62
+ for (const tagValue of ret) {
63
+ const t1 = `${trackConf.trackId}-${tag}:${tagValue}-${+Date.now()}-sessionTrack`;
64
+ session.addTrackConf({
65
+ ...trackConf,
66
+ trackId: t1,
67
+ name: `${trackConf.name} (${tag}:${tagValue})`,
68
+ displays: [
69
+ {
70
+ displayId: `${t1}-LinearAlignmentsDisplay`,
71
+ type: 'LinearAlignmentsDisplay',
72
+ pileupDisplay: {
73
+ displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
74
+ type: 'LinearPileupDisplay',
75
+ filterBy: {
76
+ ...defaultFilterFlags,
77
+ tagFilter: {
78
+ tag,
79
+ value: tagValue,
80
+ },
81
+ },
82
+ },
83
+ },
84
+ ],
85
+ });
86
+ view.showTrack(t1);
87
+ }
88
+ }
89
+ }
90
+ else if (type === 'strand') {
91
+ const t1 = `${trackConf.trackId}-${tag}:(-)-${+Date.now()}-sessionTrack`;
92
+ const t2 = `${trackConf.trackId}-${tag}:(+)-${+Date.now()}-sessionTrack`;
93
+ session.addTrackConf({
94
+ ...trackConf,
95
+ trackId: t1,
96
+ name: `${trackConf.name} (-)`,
97
+ displays: [
98
+ {
99
+ displayId: `${t1}-LinearAlignmentsDisplay`,
100
+ type: 'LinearAlignmentsDisplay',
101
+ pileupDisplay: {
102
+ displayId: `${t1}-LinearAlignmentsDisplay-LinearPileupDisplay`,
103
+ type: 'LinearPileupDisplay',
104
+ filterBy: negFlags,
105
+ },
106
+ },
107
+ {
108
+ displayId: `${t1}-LinearSNPCoverageDisplay`,
109
+ type: 'LinearSNPCoverageDisplay',
110
+ filterBy: negFlags,
111
+ },
112
+ ],
113
+ });
114
+ session.addTrackConf({
115
+ ...trackConf,
116
+ trackId: t2,
117
+ name: `${trackConf.name} (+)`,
118
+ displays: [
119
+ {
120
+ displayId: `${t2}-LinearAlignmentsDisplay`,
121
+ type: 'LinearAlignmentsDisplay',
122
+ pileupDisplay: {
123
+ displayId: `${t2}-LinearAlignmentsDisplay-LinearPileupDisplay`,
124
+ type: 'LinearPileupDisplay',
125
+ filterBy: posFlags,
126
+ },
127
+ },
128
+ {
129
+ displayId: `${t2}-LinearSNPCoverageDisplay`,
130
+ type: 'LinearSNPCoverageDisplay',
131
+ filterBy: posFlags,
132
+ },
133
+ ],
134
+ });
135
+ view.showTrack(t1);
136
+ view.showTrack(t2);
137
+ }
138
+ handleClose();
139
+ }, children: "Submit" }), _jsx(Button, { variant: "contained", color: "secondary", onClick: () => {
140
+ handleClose();
141
+ }, children: "Cancel" })] })] }));
105
142
  });
106
143
  export default GroupByTagDialog;