@jbrowse/plugin-alignments 2.16.1 → 2.18.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 (474) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +6 -13
  3. package/dist/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  4. package/dist/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  5. package/dist/AlignmentsFeatureDetail/Flags.js +2 -2
  6. package/dist/AlignmentsFeatureDetail/Formatter.js +0 -3
  7. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +3 -5
  8. package/dist/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +4 -9
  9. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +3 -5
  10. package/dist/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +37 -36
  11. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +2 -2
  12. package/dist/AlignmentsFeatureDetail/LinkedPairedAlignments.js +3 -4
  13. package/dist/AlignmentsFeatureDetail/PairLink.d.ts +1 -1
  14. package/dist/AlignmentsFeatureDetail/PairLink.js +0 -1
  15. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +2 -2
  16. package/dist/AlignmentsFeatureDetail/SupplementaryAlignments.js +5 -6
  17. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -1
  18. package/dist/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +1 -5
  19. package/dist/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  20. package/dist/AlignmentsFeatureDetail/getSAFeatures.js +2 -6
  21. package/dist/AlignmentsFeatureDetail/index.d.ts +1 -1
  22. package/dist/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  23. package/dist/AlignmentsFeatureDetail/stateModelFactory.d.ts +3 -3
  24. package/dist/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  25. package/dist/AlignmentsFeatureDetail/tagInfo.js +1 -1
  26. package/dist/AlignmentsFeatureDetail/util.d.ts +1 -1
  27. package/dist/AlignmentsTrack/configSchemaF.d.ts +1 -1
  28. package/dist/AlignmentsTrack/configSchemaF.js +1 -8
  29. package/dist/AlignmentsTrack/index.d.ts +1 -1
  30. package/dist/AlignmentsTrack/index.js +0 -3
  31. package/dist/BamAdapter/BamAdapter.d.ts +8 -6
  32. package/dist/BamAdapter/BamAdapter.js +35 -30
  33. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +6 -20
  34. package/dist/BamAdapter/BamSlightlyLazyFeature.js +42 -75
  35. package/dist/BamAdapter/configSchema.d.ts +0 -17
  36. package/dist/BamAdapter/configSchema.js +1 -22
  37. package/dist/BamAdapter/index.d.ts +1 -1
  38. package/dist/CramAdapter/CramAdapter.d.ts +8 -10
  39. package/dist/CramAdapter/CramAdapter.js +26 -32
  40. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +23 -29
  41. package/dist/CramAdapter/CramSlightlyLazyFeature.js +59 -75
  42. package/dist/CramAdapter/CramTestAdapters.d.ts +3 -3
  43. package/dist/CramAdapter/CramTestAdapters.js +4 -5
  44. package/dist/CramAdapter/configSchema.d.ts +0 -14
  45. package/dist/CramAdapter/configSchema.js +1 -19
  46. package/dist/CramAdapter/index.d.ts +1 -1
  47. package/dist/CramAdapter/index.js +0 -1
  48. package/dist/CramAdapter/util.d.ts +2 -11
  49. package/dist/CramAdapter/util.js +1 -24
  50. package/dist/GuessAlignmentsTypes/index.d.ts +1 -1
  51. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  52. package/dist/HtsgetBamAdapter/configSchema.d.ts +0 -9
  53. package/dist/HtsgetBamAdapter/configSchema.js +1 -14
  54. package/dist/HtsgetBamAdapter/index.d.ts +1 -1
  55. package/dist/HtsgetBamAdapter/index.js +1 -1
  56. package/dist/LinearAlignmentsDisplay/{models/alignmentsModel.d.ts → alignmentsModel.d.ts} +2 -5
  57. package/dist/LinearAlignmentsDisplay/{models/alignmentsModel.js → alignmentsModel.js} +1 -31
  58. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  59. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  60. package/dist/LinearAlignmentsDisplay/{models/configSchema.d.ts → configSchema.d.ts} +2 -16
  61. package/dist/LinearAlignmentsDisplay/{models/configSchema.js → configSchema.js} +3 -20
  62. package/dist/LinearAlignmentsDisplay/index.d.ts +1 -1
  63. package/dist/LinearAlignmentsDisplay/index.js +2 -3
  64. package/dist/LinearAlignmentsDisplay/{models/model.d.ts → model.d.ts} +7 -73
  65. package/dist/LinearAlignmentsDisplay/{models/model.js → model.js} +13 -82
  66. package/dist/LinearAlignmentsDisplay/{models/util.d.ts → util.d.ts} +1 -1
  67. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +34 -181
  68. package/dist/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +72 -149
  69. package/dist/LinearPileupDisplay/components/ColorByTagDialog.d.ts +5 -4
  70. package/dist/LinearPileupDisplay/components/ColorByTagDialog.js +5 -3
  71. package/dist/LinearPileupDisplay/components/GroupByDialog.d.ts +2 -2
  72. package/dist/LinearPileupDisplay/components/GroupByDialog.js +111 -56
  73. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +2 -6
  74. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +1 -1
  75. package/dist/LinearPileupDisplay/components/SetFeatureHeightDialog.js +2 -2
  76. package/dist/LinearPileupDisplay/components/SetMaxHeightDialog.js +2 -2
  77. package/dist/LinearPileupDisplay/components/SortByTagDialog.js +8 -6
  78. package/dist/LinearPileupDisplay/configSchema.d.ts +13 -16
  79. package/dist/LinearPileupDisplay/configSchema.js +12 -30
  80. package/dist/LinearPileupDisplay/index.d.ts +1 -1
  81. package/dist/LinearPileupDisplay/index.js +2 -2
  82. package/dist/LinearPileupDisplay/model.d.ts +121 -123
  83. package/dist/LinearPileupDisplay/model.js +110 -124
  84. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -1
  85. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +3 -7
  86. package/dist/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  87. package/dist/LinearReadArcsDisplay/configSchema.js +8 -31
  88. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  89. package/dist/LinearReadArcsDisplay/drawFeats.js +1 -9
  90. package/dist/LinearReadArcsDisplay/index.d.ts +1 -1
  91. package/dist/LinearReadArcsDisplay/index.js +1 -2
  92. package/dist/LinearReadArcsDisplay/model.d.ts +13 -90
  93. package/dist/LinearReadArcsDisplay/model.js +24 -112
  94. package/dist/LinearReadArcsDisplay/util.d.ts +1 -1
  95. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -1
  96. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +3 -7
  97. package/dist/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  98. package/dist/LinearReadCloudDisplay/configSchema.js +3 -28
  99. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  100. package/dist/LinearReadCloudDisplay/drawFeats.js +2 -2
  101. package/dist/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  102. package/dist/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  103. package/dist/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  104. package/dist/LinearReadCloudDisplay/drawPairChains.js +0 -3
  105. package/dist/LinearReadCloudDisplay/index.d.ts +1 -1
  106. package/dist/LinearReadCloudDisplay/index.js +1 -2
  107. package/dist/LinearReadCloudDisplay/model.d.ts +14 -64
  108. package/dist/LinearReadCloudDisplay/model.js +24 -76
  109. package/dist/LinearReadCloudDisplay/util.js +0 -1
  110. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  111. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +50 -20
  112. package/dist/LinearSNPCoverageDisplay/{models/configSchema.d.ts → configSchema.d.ts} +17 -22
  113. package/dist/LinearSNPCoverageDisplay/{models/configSchema.js → configSchema.js} +16 -32
  114. package/dist/LinearSNPCoverageDisplay/index.d.ts +1 -1
  115. package/dist/LinearSNPCoverageDisplay/index.js +3 -3
  116. package/{esm/LinearSNPCoverageDisplay/models → dist/LinearSNPCoverageDisplay}/model.d.ts +9 -60
  117. package/dist/LinearSNPCoverageDisplay/{models/model.js → model.js} +68 -146
  118. package/dist/MismatchParser/cigarToMismatches.d.ts +3 -0
  119. package/dist/MismatchParser/cigarToMismatches.js +91 -0
  120. package/dist/MismatchParser/getNextRefPos.d.ts +4 -0
  121. package/dist/MismatchParser/getNextRefPos.js +38 -0
  122. package/dist/MismatchParser/index.d.ts +5 -30
  123. package/dist/MismatchParser/index.js +10 -335
  124. package/dist/MismatchParser/mdToMismatches.d.ts +3 -0
  125. package/dist/MismatchParser/mdToMismatches.js +74 -0
  126. package/dist/ModificationParser/index.d.ts +19 -0
  127. package/dist/ModificationParser/index.js +127 -0
  128. package/dist/PileupRPC/base.d.ts +2 -2
  129. package/dist/PileupRPC/base.js +0 -1
  130. package/dist/PileupRPC/index.d.ts +1 -1
  131. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  132. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +2 -4
  133. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +3 -4
  134. package/dist/PileupRPC/methods/GetReducedFeatures.js +21 -20
  135. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +4 -4
  136. package/dist/PileupRPC/methods/GetVisibleModifications.js +10 -7
  137. package/dist/PileupRPC/util.d.ts +1 -1
  138. package/dist/PileupRenderer/PileupLayoutSession.d.ts +12 -11
  139. package/dist/PileupRenderer/PileupLayoutSession.js +2 -5
  140. package/dist/PileupRenderer/PileupRenderer.d.ts +11 -29
  141. package/dist/PileupRenderer/PileupRenderer.js +17 -20
  142. package/dist/PileupRenderer/colorBy.d.ts +2 -2
  143. package/dist/PileupRenderer/colorBy.js +0 -6
  144. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  145. package/dist/PileupRenderer/components/PileupRendering.js +0 -3
  146. package/dist/PileupRenderer/configSchema.d.ts +0 -31
  147. package/dist/PileupRenderer/configSchema.js +1 -35
  148. package/dist/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  149. package/dist/PileupRenderer/getAlignmentShapeColor.js +1 -6
  150. package/dist/PileupRenderer/index.d.ts +1 -1
  151. package/dist/PileupRenderer/index.js +1 -1
  152. package/dist/PileupRenderer/layoutFeature.d.ts +2 -2
  153. package/dist/PileupRenderer/layoutFeature.js +0 -1
  154. package/dist/PileupRenderer/layoutFeatures.d.ts +5 -2
  155. package/dist/PileupRenderer/layoutFeatures.js +6 -4
  156. package/dist/PileupRenderer/makeImageData.d.ts +3 -4
  157. package/dist/PileupRenderer/makeImageData.js +8 -2
  158. package/dist/PileupRenderer/renderAlignment.d.ts +3 -3
  159. package/dist/PileupRenderer/renderAlignment.js +19 -8
  160. package/dist/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  161. package/dist/PileupRenderer/renderAlignmentShape.js +102 -21
  162. package/dist/PileupRenderer/renderMethylation.d.ts +6 -5
  163. package/dist/PileupRenderer/renderMethylation.js +13 -9
  164. package/dist/PileupRenderer/renderMismatches.d.ts +3 -3
  165. package/dist/PileupRenderer/renderMismatches.js +17 -28
  166. package/dist/PileupRenderer/renderModifications.d.ts +6 -5
  167. package/dist/PileupRenderer/renderModifications.js +30 -35
  168. package/dist/PileupRenderer/renderPerBaseLettering.d.ts +4 -3
  169. package/dist/PileupRenderer/renderPerBaseLettering.js +1 -4
  170. package/dist/PileupRenderer/renderPerBaseQuality.d.ts +4 -3
  171. package/dist/PileupRenderer/renderPerBaseQuality.js +3 -5
  172. package/dist/PileupRenderer/renderSoftClipping.d.ts +5 -5
  173. package/dist/PileupRenderer/renderSoftClipping.js +6 -10
  174. package/dist/PileupRenderer/sortUtil.d.ts +3 -8
  175. package/dist/PileupRenderer/sortUtil.js +13 -16
  176. package/dist/PileupRenderer/types.d.ts +26 -0
  177. package/dist/PileupRenderer/types.js +2 -0
  178. package/dist/PileupRenderer/util.d.ts +2 -2
  179. package/dist/PileupRenderer/util.js +1 -3
  180. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  181. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +14 -11
  182. package/dist/SNPCoverageAdapter/configSchema.d.ts +0 -4
  183. package/dist/SNPCoverageAdapter/configSchema.js +1 -8
  184. package/dist/SNPCoverageAdapter/generateCoverageBins.d.ts +11 -11
  185. package/dist/SNPCoverageAdapter/generateCoverageBins.js +74 -193
  186. package/dist/SNPCoverageAdapter/index.d.ts +1 -1
  187. package/dist/SNPCoverageAdapter/processDepth.d.ts +8 -0
  188. package/dist/SNPCoverageAdapter/processDepth.js +38 -0
  189. package/dist/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  190. package/dist/SNPCoverageAdapter/processMismatches.js +58 -0
  191. package/dist/SNPCoverageAdapter/processModifications.d.ts +10 -0
  192. package/dist/SNPCoverageAdapter/processModifications.js +49 -0
  193. package/dist/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  194. package/dist/SNPCoverageAdapter/processReferenceCpGs.js +63 -0
  195. package/dist/SNPCoverageAdapter/util.d.ts +9 -24
  196. package/dist/SNPCoverageAdapter/util.js +39 -0
  197. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +6 -4
  198. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +165 -72
  199. package/dist/SNPCoverageRenderer/configSchema.d.ts +0 -15
  200. package/dist/SNPCoverageRenderer/configSchema.js +1 -19
  201. package/dist/SNPCoverageRenderer/index.d.ts +1 -1
  202. package/dist/SNPCoverageRenderer/index.js +2 -2
  203. package/dist/index.d.ts +2 -2
  204. package/dist/index.js +12 -12
  205. package/dist/shared/afterAttach.d.ts +1 -1
  206. package/dist/shared/afterAttach.js +0 -2
  207. package/dist/shared/color.d.ts +1 -11
  208. package/dist/shared/color.js +1 -15
  209. package/{esm/shared → dist/shared/components}/BaseDisplayComponent.d.ts +2 -2
  210. package/dist/shared/{BaseDisplayComponent.js → components/BaseDisplayComponent.js} +12 -11
  211. package/{esm/shared → dist/shared/components}/FilterByTagDialog.d.ts +3 -3
  212. package/dist/shared/{FilterByTagDialog.js → components/FilterByTagDialog.js} +7 -3
  213. package/dist/shared/fetchChains.d.ts +2 -2
  214. package/dist/shared/fetchChains.js +2 -4
  215. package/dist/shared/getMaximumModificationAtEachPosition.d.ts +8 -0
  216. package/dist/shared/getMaximumModificationAtEachPosition.js +41 -0
  217. package/dist/shared/getUniqueModifications.d.ts +14 -0
  218. package/dist/shared/getUniqueModifications.js +16 -0
  219. package/dist/shared/getUniqueTags.d.ts +15 -0
  220. package/dist/shared/getUniqueTags.js +18 -0
  221. package/dist/shared/{renderSvg.js → renderSvgUtil.js} +0 -2
  222. package/dist/shared/types.d.ts +94 -0
  223. package/dist/shared/types.js +2 -0
  224. package/dist/shared/util.d.ts +19 -1
  225. package/dist/shared/util.js +52 -0
  226. package/dist/util.d.ts +10 -7
  227. package/dist/util.js +26 -37
  228. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +1 -1
  229. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +6 -13
  230. package/esm/AlignmentsFeatureDetail/BreakendMultiLevelOptionDialog.js +0 -1
  231. package/esm/AlignmentsFeatureDetail/BreakendSingleLevelOptionDialog.js +0 -1
  232. package/esm/AlignmentsFeatureDetail/Flags.js +2 -2
  233. package/esm/AlignmentsFeatureDetail/Formatter.js +0 -3
  234. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.d.ts +3 -5
  235. package/esm/AlignmentsFeatureDetail/LaunchPairedEndBreakpointSplitViewPanel.js +5 -10
  236. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.d.ts +3 -5
  237. package/esm/AlignmentsFeatureDetail/LaunchSupplementaryAlignmentBreakpointSplitViewPanel.js +37 -36
  238. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.d.ts +2 -2
  239. package/esm/AlignmentsFeatureDetail/LinkedPairedAlignments.js +3 -4
  240. package/esm/AlignmentsFeatureDetail/PairLink.d.ts +1 -1
  241. package/esm/AlignmentsFeatureDetail/PairLink.js +0 -1
  242. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.d.ts +2 -2
  243. package/esm/AlignmentsFeatureDetail/SupplementaryAlignments.js +5 -6
  244. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.d.ts +1 -1
  245. package/esm/AlignmentsFeatureDetail/SupplementaryAlignmentsLocStrings.js +2 -6
  246. package/esm/AlignmentsFeatureDetail/getSAFeatures.d.ts +2 -2
  247. package/esm/AlignmentsFeatureDetail/getSAFeatures.js +2 -6
  248. package/esm/AlignmentsFeatureDetail/index.d.ts +1 -1
  249. package/esm/AlignmentsFeatureDetail/launchBreakpointSplitView.d.ts +2 -2
  250. package/esm/AlignmentsFeatureDetail/stateModelFactory.d.ts +3 -3
  251. package/esm/AlignmentsFeatureDetail/stateModelFactory.js +1 -1
  252. package/esm/AlignmentsFeatureDetail/tagInfo.js +1 -1
  253. package/esm/AlignmentsFeatureDetail/util.d.ts +1 -1
  254. package/esm/AlignmentsTrack/configSchemaF.d.ts +1 -1
  255. package/esm/AlignmentsTrack/configSchemaF.js +1 -8
  256. package/esm/AlignmentsTrack/index.d.ts +1 -1
  257. package/esm/AlignmentsTrack/index.js +0 -3
  258. package/esm/BamAdapter/BamAdapter.d.ts +8 -6
  259. package/esm/BamAdapter/BamAdapter.js +36 -31
  260. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +6 -20
  261. package/esm/BamAdapter/BamSlightlyLazyFeature.js +43 -76
  262. package/esm/BamAdapter/configSchema.d.ts +0 -17
  263. package/esm/BamAdapter/configSchema.js +1 -22
  264. package/esm/BamAdapter/index.d.ts +1 -1
  265. package/esm/CramAdapter/CramAdapter.d.ts +8 -10
  266. package/esm/CramAdapter/CramAdapter.js +28 -34
  267. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +23 -29
  268. package/esm/CramAdapter/CramSlightlyLazyFeature.js +59 -75
  269. package/esm/CramAdapter/CramTestAdapters.d.ts +3 -3
  270. package/esm/CramAdapter/CramTestAdapters.js +4 -5
  271. package/esm/CramAdapter/configSchema.d.ts +0 -14
  272. package/esm/CramAdapter/configSchema.js +1 -19
  273. package/esm/CramAdapter/index.d.ts +1 -1
  274. package/esm/CramAdapter/index.js +0 -1
  275. package/esm/CramAdapter/util.d.ts +2 -11
  276. package/esm/CramAdapter/util.js +1 -24
  277. package/esm/GuessAlignmentsTypes/index.d.ts +1 -1
  278. package/esm/GuessAlignmentsTypes/index.js +1 -1
  279. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +2 -2
  280. package/esm/HtsgetBamAdapter/configSchema.d.ts +0 -9
  281. package/esm/HtsgetBamAdapter/configSchema.js +1 -14
  282. package/esm/HtsgetBamAdapter/index.d.ts +1 -1
  283. package/esm/HtsgetBamAdapter/index.js +1 -1
  284. package/esm/LinearAlignmentsDisplay/{models/alignmentsModel.d.ts → alignmentsModel.d.ts} +2 -5
  285. package/esm/LinearAlignmentsDisplay/{models/alignmentsModel.js → alignmentsModel.js} +1 -31
  286. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +1 -1
  287. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +2 -2
  288. package/esm/LinearAlignmentsDisplay/{models/configSchema.d.ts → configSchema.d.ts} +2 -16
  289. package/esm/LinearAlignmentsDisplay/configSchema.js +16 -0
  290. package/esm/LinearAlignmentsDisplay/index.d.ts +1 -1
  291. package/esm/LinearAlignmentsDisplay/index.js +2 -3
  292. package/esm/LinearAlignmentsDisplay/{models/model.d.ts → model.d.ts} +7 -73
  293. package/esm/LinearAlignmentsDisplay/{models/model.js → model.js} +14 -83
  294. package/esm/LinearAlignmentsDisplay/{models/util.d.ts → util.d.ts} +1 -1
  295. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.d.ts +34 -181
  296. package/esm/LinearPileupDisplay/SharedLinearPileupDisplayMixin.js +74 -151
  297. package/esm/LinearPileupDisplay/components/ColorByTagDialog.d.ts +5 -4
  298. package/esm/LinearPileupDisplay/components/ColorByTagDialog.js +5 -3
  299. package/esm/LinearPileupDisplay/components/GroupByDialog.d.ts +2 -2
  300. package/esm/LinearPileupDisplay/components/GroupByDialog.js +111 -56
  301. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +2 -6
  302. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +1 -1
  303. package/esm/LinearPileupDisplay/components/SetFeatureHeightDialog.js +2 -2
  304. package/esm/LinearPileupDisplay/components/SetMaxHeightDialog.js +2 -2
  305. package/esm/LinearPileupDisplay/components/SortByTagDialog.js +8 -6
  306. package/esm/LinearPileupDisplay/configSchema.d.ts +13 -16
  307. package/esm/LinearPileupDisplay/configSchema.js +12 -30
  308. package/esm/LinearPileupDisplay/index.d.ts +1 -1
  309. package/esm/LinearPileupDisplay/index.js +2 -2
  310. package/esm/LinearPileupDisplay/model.d.ts +121 -123
  311. package/esm/LinearPileupDisplay/model.js +111 -125
  312. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +1 -1
  313. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +3 -7
  314. package/esm/LinearReadArcsDisplay/configSchema.d.ts +12 -20
  315. package/esm/LinearReadArcsDisplay/configSchema.js +8 -31
  316. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +1 -1
  317. package/esm/LinearReadArcsDisplay/drawFeats.js +1 -9
  318. package/esm/LinearReadArcsDisplay/index.d.ts +1 -1
  319. package/esm/LinearReadArcsDisplay/index.js +1 -2
  320. package/esm/LinearReadArcsDisplay/model.d.ts +13 -90
  321. package/esm/LinearReadArcsDisplay/model.js +25 -113
  322. package/esm/LinearReadArcsDisplay/util.d.ts +1 -1
  323. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +1 -1
  324. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +3 -7
  325. package/esm/LinearReadCloudDisplay/configSchema.d.ts +5 -17
  326. package/esm/LinearReadCloudDisplay/configSchema.js +3 -28
  327. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +1 -1
  328. package/esm/LinearReadCloudDisplay/drawFeats.js +2 -2
  329. package/esm/LinearReadCloudDisplay/drawLongReadChains.d.ts +4 -4
  330. package/esm/LinearReadCloudDisplay/drawLongReadChains.js +1 -4
  331. package/esm/LinearReadCloudDisplay/drawPairChains.d.ts +4 -4
  332. package/esm/LinearReadCloudDisplay/drawPairChains.js +0 -3
  333. package/esm/LinearReadCloudDisplay/index.d.ts +1 -1
  334. package/esm/LinearReadCloudDisplay/index.js +1 -2
  335. package/esm/LinearReadCloudDisplay/model.d.ts +14 -64
  336. package/esm/LinearReadCloudDisplay/model.js +24 -76
  337. package/esm/LinearReadCloudDisplay/util.js +0 -1
  338. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +1 -1
  339. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +50 -20
  340. package/esm/LinearSNPCoverageDisplay/{models/configSchema.d.ts → configSchema.d.ts} +17 -22
  341. package/esm/LinearSNPCoverageDisplay/{models/configSchema.js → configSchema.js} +16 -32
  342. package/esm/LinearSNPCoverageDisplay/index.d.ts +1 -1
  343. package/esm/LinearSNPCoverageDisplay/index.js +3 -3
  344. package/{dist/LinearSNPCoverageDisplay/models → esm/LinearSNPCoverageDisplay}/model.d.ts +9 -60
  345. package/esm/LinearSNPCoverageDisplay/{models/model.js → model.js} +69 -147
  346. package/esm/MismatchParser/cigarToMismatches.d.ts +3 -0
  347. package/esm/MismatchParser/cigarToMismatches.js +88 -0
  348. package/esm/MismatchParser/getNextRefPos.d.ts +4 -0
  349. package/esm/MismatchParser/getNextRefPos.js +35 -0
  350. package/esm/MismatchParser/index.d.ts +5 -30
  351. package/esm/MismatchParser/index.js +5 -325
  352. package/esm/MismatchParser/mdToMismatches.d.ts +3 -0
  353. package/esm/MismatchParser/mdToMismatches.js +71 -0
  354. package/esm/ModificationParser/index.d.ts +19 -0
  355. package/esm/ModificationParser/index.js +121 -0
  356. package/esm/PileupRPC/base.d.ts +2 -2
  357. package/esm/PileupRPC/base.js +0 -1
  358. package/esm/PileupRPC/index.d.ts +1 -1
  359. package/esm/PileupRPC/index.js +1 -1
  360. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +2 -3
  361. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +2 -4
  362. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +3 -4
  363. package/esm/PileupRPC/methods/GetReducedFeatures.js +21 -20
  364. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +4 -4
  365. package/esm/PileupRPC/methods/GetVisibleModifications.js +10 -7
  366. package/esm/PileupRPC/util.d.ts +1 -1
  367. package/esm/PileupRenderer/PileupLayoutSession.d.ts +12 -11
  368. package/esm/PileupRenderer/PileupLayoutSession.js +2 -5
  369. package/esm/PileupRenderer/PileupRenderer.d.ts +11 -29
  370. package/esm/PileupRenderer/PileupRenderer.js +19 -22
  371. package/esm/PileupRenderer/colorBy.d.ts +2 -2
  372. package/esm/PileupRenderer/colorBy.js +1 -7
  373. package/esm/PileupRenderer/components/PileupRendering.d.ts +1 -1
  374. package/esm/PileupRenderer/components/PileupRendering.js +1 -4
  375. package/esm/PileupRenderer/configSchema.d.ts +0 -31
  376. package/esm/PileupRenderer/configSchema.js +1 -35
  377. package/esm/PileupRenderer/getAlignmentShapeColor.d.ts +2 -2
  378. package/esm/PileupRenderer/getAlignmentShapeColor.js +2 -7
  379. package/esm/PileupRenderer/index.d.ts +1 -1
  380. package/esm/PileupRenderer/index.js +1 -1
  381. package/esm/PileupRenderer/layoutFeature.d.ts +2 -2
  382. package/esm/PileupRenderer/layoutFeature.js +0 -1
  383. package/esm/PileupRenderer/layoutFeatures.d.ts +5 -2
  384. package/esm/PileupRenderer/layoutFeatures.js +7 -5
  385. package/esm/PileupRenderer/makeImageData.d.ts +3 -4
  386. package/esm/PileupRenderer/makeImageData.js +8 -2
  387. package/esm/PileupRenderer/renderAlignment.d.ts +3 -3
  388. package/esm/PileupRenderer/renderAlignment.js +19 -8
  389. package/esm/PileupRenderer/renderAlignmentShape.d.ts +3 -3
  390. package/esm/PileupRenderer/renderAlignmentShape.js +102 -21
  391. package/esm/PileupRenderer/renderMethylation.d.ts +6 -5
  392. package/esm/PileupRenderer/renderMethylation.js +13 -9
  393. package/esm/PileupRenderer/renderMismatches.d.ts +3 -3
  394. package/esm/PileupRenderer/renderMismatches.js +17 -28
  395. package/esm/PileupRenderer/renderModifications.d.ts +6 -5
  396. package/esm/PileupRenderer/renderModifications.js +29 -34
  397. package/esm/PileupRenderer/renderPerBaseLettering.d.ts +4 -3
  398. package/esm/PileupRenderer/renderPerBaseLettering.js +1 -4
  399. package/esm/PileupRenderer/renderPerBaseQuality.d.ts +4 -3
  400. package/esm/PileupRenderer/renderPerBaseQuality.js +3 -5
  401. package/esm/PileupRenderer/renderSoftClipping.d.ts +5 -5
  402. package/esm/PileupRenderer/renderSoftClipping.js +7 -11
  403. package/esm/PileupRenderer/sortUtil.d.ts +3 -8
  404. package/esm/PileupRenderer/sortUtil.js +13 -16
  405. package/esm/PileupRenderer/types.d.ts +26 -0
  406. package/esm/PileupRenderer/types.js +1 -0
  407. package/esm/PileupRenderer/util.d.ts +2 -2
  408. package/esm/PileupRenderer/util.js +1 -3
  409. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +4 -3
  410. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +15 -12
  411. package/esm/SNPCoverageAdapter/configSchema.d.ts +0 -4
  412. package/esm/SNPCoverageAdapter/configSchema.js +1 -8
  413. package/esm/SNPCoverageAdapter/generateCoverageBins.d.ts +11 -11
  414. package/esm/SNPCoverageAdapter/generateCoverageBins.js +73 -192
  415. package/esm/SNPCoverageAdapter/index.d.ts +1 -1
  416. package/esm/SNPCoverageAdapter/processDepth.d.ts +8 -0
  417. package/esm/SNPCoverageAdapter/processDepth.js +35 -0
  418. package/esm/SNPCoverageAdapter/processMismatches.d.ts +9 -0
  419. package/esm/SNPCoverageAdapter/processMismatches.js +55 -0
  420. package/esm/SNPCoverageAdapter/processModifications.d.ts +10 -0
  421. package/esm/SNPCoverageAdapter/processModifications.js +46 -0
  422. package/esm/SNPCoverageAdapter/processReferenceCpGs.d.ts +9 -0
  423. package/esm/SNPCoverageAdapter/processReferenceCpGs.js +60 -0
  424. package/esm/SNPCoverageAdapter/util.d.ts +9 -24
  425. package/esm/SNPCoverageAdapter/util.js +35 -1
  426. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +6 -4
  427. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +167 -74
  428. package/esm/SNPCoverageRenderer/configSchema.d.ts +0 -15
  429. package/esm/SNPCoverageRenderer/configSchema.js +1 -19
  430. package/esm/SNPCoverageRenderer/index.d.ts +1 -1
  431. package/esm/SNPCoverageRenderer/index.js +2 -2
  432. package/esm/index.d.ts +2 -2
  433. package/esm/index.js +10 -10
  434. package/esm/shared/afterAttach.d.ts +1 -1
  435. package/esm/shared/afterAttach.js +0 -2
  436. package/esm/shared/color.d.ts +1 -11
  437. package/esm/shared/color.js +0 -14
  438. package/{dist/shared → esm/shared/components}/BaseDisplayComponent.d.ts +2 -2
  439. package/esm/shared/{BaseDisplayComponent.js → components/BaseDisplayComponent.js} +12 -11
  440. package/{dist/shared → esm/shared/components}/FilterByTagDialog.d.ts +3 -3
  441. package/esm/shared/{FilterByTagDialog.js → components/FilterByTagDialog.js} +7 -3
  442. package/esm/shared/fetchChains.d.ts +2 -2
  443. package/esm/shared/fetchChains.js +2 -4
  444. package/esm/shared/getMaximumModificationAtEachPosition.d.ts +8 -0
  445. package/esm/shared/getMaximumModificationAtEachPosition.js +38 -0
  446. package/esm/shared/getUniqueModifications.d.ts +14 -0
  447. package/esm/shared/getUniqueModifications.js +13 -0
  448. package/esm/shared/getUniqueTags.d.ts +15 -0
  449. package/esm/shared/getUniqueTags.js +15 -0
  450. package/esm/shared/{renderSvg.js → renderSvgUtil.js} +0 -2
  451. package/esm/shared/types.d.ts +94 -0
  452. package/esm/shared/types.js +1 -0
  453. package/esm/shared/util.d.ts +19 -1
  454. package/esm/shared/util.js +47 -0
  455. package/esm/util.d.ts +10 -7
  456. package/esm/util.js +24 -34
  457. package/package.json +4 -5
  458. package/dist/LinearPileupDisplay/components/ColorByModificationsDialog.d.ts +0 -15
  459. package/dist/LinearPileupDisplay/components/ColorByModificationsDialog.js +0 -41
  460. package/dist/LinearPileupDisplay/components/ModificationsTable.d.ts +0 -4
  461. package/dist/LinearPileupDisplay/components/ModificationsTable.js +0 -28
  462. package/dist/shared/index.d.ts +0 -49
  463. package/dist/shared/index.js +0 -41
  464. package/esm/LinearAlignmentsDisplay/models/configSchema.js +0 -33
  465. package/esm/LinearPileupDisplay/components/ColorByModificationsDialog.d.ts +0 -15
  466. package/esm/LinearPileupDisplay/components/ColorByModificationsDialog.js +0 -36
  467. package/esm/LinearPileupDisplay/components/ModificationsTable.d.ts +0 -4
  468. package/esm/LinearPileupDisplay/components/ModificationsTable.js +0 -22
  469. package/esm/shared/index.d.ts +0 -49
  470. package/esm/shared/index.js +0 -36
  471. /package/dist/LinearAlignmentsDisplay/{models/util.js → util.js} +0 -0
  472. /package/dist/shared/{renderSvg.d.ts → renderSvgUtil.d.ts} +0 -0
  473. /package/esm/LinearAlignmentsDisplay/{models/util.js → util.js} +0 -0
  474. /package/esm/shared/{renderSvg.d.ts → renderSvgUtil.d.ts} +0 -0
@@ -1,114 +1,62 @@
1
1
  import { lazy } from 'react';
2
- import { types } from 'mobx-state-tree';
3
- import { ConfigurationReference, readConfObject, getConf, } from '@jbrowse/core/configuration';
2
+ import { ConfigurationReference, getConf, readConfObject, } from '@jbrowse/core/configuration';
3
+ import { getContainingView, getEnv, getSession } from '@jbrowse/core/util';
4
4
  import { getRpcSessionId } from '@jbrowse/core/util/tracks';
5
- import { getEnv, getSession, getContainingView } from '@jbrowse/core/util';
6
- import { getUniqueModificationValues } from '../shared';
7
- import { createAutorun, randomColor, modificationColors } from '../util';
8
- // icons
5
+ import ColorLensIcon from '@mui/icons-material/ColorLens';
6
+ import SwapVertIcon from '@mui/icons-material/SwapVert';
9
7
  import VisibilityIcon from '@mui/icons-material/Visibility';
10
- import SortIcon from '@mui/icons-material/Sort';
11
8
  import WorkspacesIcon from '@mui/icons-material/Workspaces';
12
- import ColorLensIcon from '@mui/icons-material/ColorLens';
13
- // locals
14
- import { SharedLinearPileupDisplayMixin } from './SharedLinearPileupDisplayMixin';
15
9
  import { observable } from 'mobx';
16
- // lazies
10
+ import { isAlive, types } from 'mobx-state-tree';
11
+ import { SharedLinearPileupDisplayMixin } from './SharedLinearPileupDisplayMixin';
12
+ import { getUniqueModifications } from '../shared/getUniqueModifications';
13
+ import { createAutorun, getColorForModification, modificationData, } from '../util';
17
14
  const SortByTagDialog = lazy(() => import('./components/SortByTagDialog'));
18
15
  const GroupByDialog = lazy(() => import('./components/GroupByDialog'));
19
- const ModificationsDialog = lazy(() => import('./components/ColorByModificationsDialog'));
20
- /**
21
- * #stateModel LinearPileupDisplay
22
- * #category display
23
- * extends
24
- * - [SharedLinearPileupDisplayMixin](../sharedlinearpileupdisplaymixin)
25
- */
26
16
  function stateModelFactory(configSchema) {
27
17
  return types
28
18
  .compose('LinearPileupDisplay', SharedLinearPileupDisplayMixin(configSchema), types.model({
29
- /**
30
- * #property
31
- */
32
19
  type: types.literal('LinearPileupDisplay'),
33
- /**
34
- * #property
35
- */
36
20
  configuration: ConfigurationReference(configSchema),
37
- /**
38
- * #property
39
- */
40
21
  showSoftClipping: false,
41
- /**
42
- * #property
43
- */
44
22
  mismatchAlpha: types.maybe(types.boolean),
45
- /**
46
- * #property
47
- */
48
- sortedBy: types.maybe(types.model({
49
- type: types.string,
50
- pos: types.number,
51
- tag: types.maybe(types.string),
52
- refName: types.string,
53
- assemblyName: types.string,
54
- })),
23
+ sortedBy: types.frozen(),
55
24
  }))
56
25
  .volatile(() => ({
57
26
  sortReady: false,
58
27
  currSortBpPerPx: 0,
59
- modificationTagMap: observable.map({}),
28
+ visibleModifications: observable.map({}),
60
29
  modificationsReady: false,
61
30
  }))
62
31
  .actions(self => ({
63
- /**
64
- * #action
65
- */
66
32
  setCurrSortBpPerPx(n) {
67
33
  self.currSortBpPerPx = n;
68
34
  },
69
- /**
70
- * #action
71
- */
72
- updateModificationColorMap(uniqueModifications) {
35
+ updateVisibleModifications(uniqueModifications) {
73
36
  uniqueModifications.forEach(value => {
74
- if (!self.modificationTagMap.has(value)) {
75
- self.modificationTagMap.set(value, modificationColors[value] || randomColor(value));
37
+ if (!self.visibleModifications.has(value.type)) {
38
+ self.visibleModifications.set(value.type, {
39
+ ...value,
40
+ color: getColorForModification(value.type),
41
+ });
76
42
  }
77
43
  });
78
44
  },
79
- /**
80
- * #action
81
- */
82
45
  setModificationsReady(flag) {
83
46
  self.modificationsReady = flag;
84
47
  },
85
- /**
86
- * #action
87
- */
88
48
  setSortReady(flag) {
89
49
  self.sortReady = flag;
90
50
  },
91
- /**
92
- * #action
93
- */
94
51
  clearSelected() {
95
52
  self.sortedBy = undefined;
96
53
  },
97
- /**
98
- * #action
99
- */
100
54
  toggleSoftClipping() {
101
55
  self.showSoftClipping = !self.showSoftClipping;
102
56
  },
103
- /**
104
- * #action
105
- */
106
57
  toggleMismatchAlpha() {
107
58
  self.mismatchAlpha = !self.mismatchAlpha;
108
59
  },
109
- /**
110
- * #action
111
- */
112
60
  setSortedBy(type, tag) {
113
61
  const { centerLineInfo } = getContainingView(self);
114
62
  if (!centerLineInfo) {
@@ -128,23 +76,14 @@ function stateModelFactory(configSchema) {
128
76
  tag,
129
77
  };
130
78
  },
131
- /**
132
- * #action
133
- * overrides base from SharedLinearPileupDisplay to make sortReady false
134
- * since changing feature height destroys the sort-induced layout
135
- */
136
79
  setFeatureHeight(n) {
137
80
  self.sortReady = false;
138
81
  self.featureHeight = n;
139
82
  },
140
83
  }))
141
84
  .actions(self => {
142
- // resets the sort object and refresh whole display on reload
143
85
  const superReload = self.reload;
144
86
  return {
145
- /**
146
- * #action
147
- */
148
87
  reload() {
149
88
  self.clearSelected();
150
89
  superReload();
@@ -152,9 +91,9 @@ function stateModelFactory(configSchema) {
152
91
  };
153
92
  })
154
93
  .views(self => ({
155
- /**
156
- * #getter
157
- */
94
+ get visibleModificationTypes() {
95
+ return [...self.visibleModifications.keys()];
96
+ },
158
97
  get rendererConfig() {
159
98
  const { featureHeight, noSpacing, trackMaxHeight, mismatchAlpha, rendererTypeName, } = self;
160
99
  const configBlob = getConf(self, ['renderers', rendererTypeName]) || {};
@@ -172,15 +111,9 @@ function stateModelFactory(configSchema) {
172
111
  .views(self => {
173
112
  const { renderReady: superRenderReady } = self;
174
113
  return {
175
- /**
176
- * #getter
177
- */
178
114
  get mismatchAlphaSetting() {
179
115
  return readConfObject(self.rendererConfig, 'mismatchAlpha');
180
116
  },
181
- /**
182
- * #method
183
- */
184
117
  renderReady() {
185
118
  const view = getContainingView(self);
186
119
  return (self.modificationsReady &&
@@ -192,22 +125,16 @@ function stateModelFactory(configSchema) {
192
125
  .views(self => {
193
126
  const { trackMenuItems: superTrackMenuItems, renderPropsPre: superRenderPropsPre, renderProps: superRenderProps, colorSchemeSubMenuItems: superColorSchemeSubMenuItems, } = self;
194
127
  return {
195
- /**
196
- * #method
197
- */
198
128
  renderPropsPre() {
199
- const { sortedBy, showSoftClipping, modificationTagMap } = self;
129
+ const { sortedBy, showSoftClipping, visibleModifications } = self;
200
130
  const superProps = superRenderPropsPre();
201
131
  return {
202
132
  ...superProps,
203
133
  showSoftClip: showSoftClipping,
204
134
  sortedBy,
205
- modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
135
+ visibleModifications: Object.fromEntries(visibleModifications.toJSON()),
206
136
  };
207
137
  },
208
- /**
209
- * #method
210
- */
211
138
  renderProps() {
212
139
  const { sortReady } = self;
213
140
  const result = superRenderProps();
@@ -216,15 +143,12 @@ function stateModelFactory(configSchema) {
216
143
  notReady: result.notReady || !sortReady,
217
144
  };
218
145
  },
219
- /**
220
- * #method
221
- */
222
146
  trackMenuItems() {
223
147
  return [
224
148
  ...superTrackMenuItems(),
225
149
  {
226
150
  label: 'Sort by...',
227
- icon: SortIcon,
151
+ icon: SwapVertIcon,
228
152
  disabled: self.showSoftClipping,
229
153
  subMenu: [
230
154
  ...['Start location', 'Read strand', 'Base pair'].map(option => ({
@@ -260,25 +184,88 @@ function stateModelFactory(configSchema) {
260
184
  {
261
185
  label: 'Pair orientation',
262
186
  onClick: () => {
263
- self.setColorScheme({ type: 'pairOrientation' });
187
+ self.setColorScheme({
188
+ type: 'pairOrientation',
189
+ });
264
190
  },
265
191
  },
266
192
  {
267
- label: 'Modifications or methylation',
268
- onClick: () => {
269
- getSession(self).queueDialog(doneCallback => [
270
- ModificationsDialog,
193
+ label: 'Modifications',
194
+ type: 'subMenu',
195
+ subMenu: self.modificationsReady
196
+ ? [
271
197
  {
272
- model: self,
273
- handleClose: doneCallback,
198
+ label: 'All modifications',
199
+ onClick: () => {
200
+ self.setColorScheme({
201
+ type: 'modifications',
202
+ });
203
+ },
274
204
  },
275
- ]);
276
- },
205
+ ...self.visibleModificationTypes.map(key => {
206
+ var _a;
207
+ return ({
208
+ label: `Show only ${((_a = modificationData[key]) === null || _a === void 0 ? void 0 : _a.name) || key}`,
209
+ onClick: () => {
210
+ self.setColorScheme({
211
+ type: 'modifications',
212
+ modifications: {
213
+ isolatedModification: key,
214
+ },
215
+ });
216
+ },
217
+ });
218
+ }),
219
+ { type: 'divider' },
220
+ {
221
+ label: 'All modifications (<50% prob colored blue)',
222
+ onClick: () => {
223
+ self.setColorScheme({
224
+ type: 'modifications',
225
+ modifications: {
226
+ twoColor: true,
227
+ },
228
+ });
229
+ },
230
+ },
231
+ ...self.visibleModificationTypes.map(key => {
232
+ var _a;
233
+ return ({
234
+ label: `Show only ${((_a = modificationData[key]) === null || _a === void 0 ? void 0 : _a.name) || key} (<50% prob colored blue)`,
235
+ onClick: () => {
236
+ self.setColorScheme({
237
+ type: 'modifications',
238
+ modifications: {
239
+ isolatedModification: key,
240
+ twoColor: true,
241
+ },
242
+ });
243
+ },
244
+ });
245
+ }),
246
+ { type: 'divider' },
247
+ {
248
+ label: 'All reference CpGs',
249
+ onClick: () => {
250
+ self.setColorScheme({
251
+ type: 'methylation',
252
+ });
253
+ },
254
+ },
255
+ ]
256
+ : [
257
+ {
258
+ label: 'Loading modifications...',
259
+ onClick: () => { },
260
+ },
261
+ ],
277
262
  },
278
263
  {
279
264
  label: 'Insert size',
280
265
  onClick: () => {
281
- self.setColorScheme({ type: 'insertSize' });
266
+ self.setColorScheme({
267
+ type: 'insertSize',
268
+ });
282
269
  },
283
270
  },
284
271
  ...superColorSchemeSubMenuItems(),
@@ -290,7 +277,10 @@ function stateModelFactory(configSchema) {
290
277
  onClick: () => {
291
278
  getSession(self).queueDialog(handleClose => [
292
279
  GroupByDialog,
293
- { model: self, handleClose },
280
+ {
281
+ model: self,
282
+ handleClose,
283
+ },
294
284
  ]);
295
285
  },
296
286
  },
@@ -301,8 +291,6 @@ function stateModelFactory(configSchema) {
301
291
  checked: self.showSoftClipping,
302
292
  onClick: () => {
303
293
  self.toggleSoftClipping();
304
- // if toggling from off to on, will break sort for this track
305
- // so clear it
306
294
  if (self.showSoftClipping) {
307
295
  self.clearSelected();
308
296
  }
@@ -340,8 +328,6 @@ function stateModelFactory(configSchema) {
340
328
  if (sortedBy &&
341
329
  (!sortReady || self.currSortBpPerPx === view.bpPerPx)) {
342
330
  const { pos, refName, assemblyName } = sortedBy;
343
- // render just the sorted region first
344
- // @ts-expect-error
345
331
  await self.rendererType.renderInClient(rpcManager, {
346
332
  assemblyName,
347
333
  regions: [
@@ -360,25 +346,25 @@ function stateModelFactory(configSchema) {
360
346
  ...self.renderPropsPre(),
361
347
  });
362
348
  }
363
- self.setCurrSortBpPerPx(bpPerPx);
364
- self.setSortReady(true);
349
+ if (isAlive(self)) {
350
+ self.setCurrSortBpPerPx(bpPerPx);
351
+ self.setSortReady(true);
352
+ }
365
353
  }, { delay: 1000 });
366
354
  createAutorun(self, async () => {
367
355
  if (!self.autorunReady) {
368
356
  return;
369
357
  }
370
- const { parentTrack, colorBy } = self;
371
358
  const { staticBlocks } = getContainingView(self);
372
- if ((colorBy === null || colorBy === void 0 ? void 0 : colorBy.type) === 'modifications') {
373
- const adapter = getConf(parentTrack, ['adapter']);
374
- const vals = await getUniqueModificationValues({
375
- self,
376
- adapterConfig: adapter,
377
- blocks: staticBlocks,
378
- });
379
- self.updateModificationColorMap(vals);
359
+ const vals = await getUniqueModifications({
360
+ self,
361
+ adapterConfig: getConf(self.parentTrack, 'adapter'),
362
+ blocks: staticBlocks,
363
+ });
364
+ if (isAlive(self)) {
365
+ self.updateVisibleModifications(vals);
366
+ self.setModificationsReady(true);
380
367
  }
381
- self.setModificationsReady(true);
382
368
  });
383
369
  },
384
370
  }));
@@ -1,5 +1,5 @@
1
1
  import React from 'react';
2
- import { LinearReadArcsDisplayModel } from '../model';
2
+ import type { LinearReadArcsDisplayModel } from '../model';
3
3
  declare const LinearReadArcsReactComponent: ({ model, }: {
4
4
  model: LinearReadArcsDisplayModel;
5
5
  }) => React.JSX.Element;
@@ -1,18 +1,14 @@
1
1
  import React, { useCallback } from 'react';
2
- import { observer } from 'mobx-react';
3
2
  import { getContainingView } from '@jbrowse/core/util';
4
- import BaseDisplayComponent from '../../shared/BaseDisplayComponent';
3
+ import { observer } from 'mobx-react';
4
+ import BaseDisplayComponent from '../../shared/components/BaseDisplayComponent';
5
5
  const Arcs = observer(function ({ model, }) {
6
6
  const view = getContainingView(model);
7
7
  const width = Math.round(view.dynamicBlocks.totalWidthPx);
8
8
  const height = model.height;
9
- // biome-ignore lint/correctness/useExhaustiveDependencies:
10
9
  const cb = useCallback((ref) => {
11
10
  model.setRef(ref);
12
- },
13
- // eslint-disable-next-line react-hooks/exhaustive-deps
14
- [model, width, height]);
15
- // note: the position absolute below avoids scrollbar from appearing on track
11
+ }, [model, width, height]);
16
12
  return (React.createElement("canvas", { "data-testid": "arc-canvas", ref: cb, style: { width, height, position: 'absolute' }, width: width * 2, height: height * 2 }));
17
13
  });
18
14
  const LinearReadArcsReactComponent = observer(function ({ model, }) {
@@ -1,40 +1,32 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
2
- /**
3
- * #config LinearReadArcsDisplay
4
- */
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
5
2
  declare function configSchemaF(pluginManager: PluginManager): import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
6
- /**
7
- * #slot
8
- */
9
3
  maxFeatureScreenDensity: {
10
4
  type: string;
11
5
  description: string;
12
6
  defaultValue: number;
13
7
  };
14
- /**
15
- * #slot
16
- */
17
8
  lineWidth: {
18
9
  type: string;
19
10
  description: string;
20
11
  defaultValue: number;
21
12
  };
22
- /**
23
- * #slot
24
- */
25
13
  jitter: {
26
14
  type: string;
27
15
  description: string;
28
16
  defaultValue: number;
29
17
  };
30
- /**
31
- * #slot
32
- */
33
- colorScheme: {
18
+ colorBy: {
34
19
  type: string;
35
- model: import("mobx-state-tree").ISimpleType<string>;
36
- description: string;
37
- defaultValue: string;
20
+ defaultValue: {
21
+ type: string;
22
+ };
23
+ };
24
+ filterBy: {
25
+ type: string;
26
+ defaultValue: {
27
+ flagInclude: number;
28
+ flagExclude: number;
29
+ };
38
30
  };
39
31
  }, import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaOptions<import("@jbrowse/core/configuration/configurationSchema").ConfigurationSchemaType<{
40
32
  renderer: import("mobx-state-tree").IAnyModelType;
@@ -1,55 +1,32 @@
1
1
  import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
2
  import { linearBasicDisplayConfigSchemaFactory } from '@jbrowse/plugin-linear-genome-view';
3
- import { types } from 'mobx-state-tree';
4
- /**
5
- * #config LinearReadArcsDisplay
6
- */
3
+ import { defaultFilterFlags } from '../shared/util';
7
4
  function configSchemaF(pluginManager) {
8
5
  return ConfigurationSchema('LinearReadArcsDisplay', {
9
- /**
10
- * #slot
11
- */
12
6
  maxFeatureScreenDensity: {
13
7
  type: 'number',
14
8
  description: 'maximum features per pixel that is displayed in the view',
15
9
  defaultValue: 5,
16
10
  },
17
- /**
18
- * #slot
19
- */
20
11
  lineWidth: {
21
12
  type: 'number',
22
13
  description: 'set arc line width',
23
14
  defaultValue: 1,
24
15
  },
25
- /**
26
- * #slot
27
- */
28
16
  jitter: {
29
17
  type: 'number',
30
18
  description: 'jitters the x position so e.g. if many reads map to exact same x position, jittering makes it easy to see that there are many of them',
31
19
  defaultValue: 0,
32
20
  },
33
- /**
34
- * #slot
35
- */
36
- colorScheme: {
37
- type: 'stringEnum',
38
- model: types.enumeration('colorScheme', [
39
- 'strand',
40
- 'normal',
41
- 'insertSize',
42
- 'insertSizeAndOrientation',
43
- 'mappingQuality',
44
- 'tag',
45
- ]),
46
- description: 'color scheme to use',
47
- defaultValue: 'normal',
21
+ colorBy: {
22
+ type: 'frozen',
23
+ defaultValue: { type: 'insertSizeAndOrientation' },
24
+ },
25
+ filterBy: {
26
+ type: 'frozen',
27
+ defaultValue: defaultFilterFlags,
48
28
  },
49
29
  }, {
50
- /**
51
- * #baseConfiguration
52
- */
53
30
  baseConfiguration: linearBasicDisplayConfigSchemaFactory(pluginManager),
54
31
  explicitlyTyped: true,
55
32
  });
@@ -1,2 +1,2 @@
1
- import { LinearReadArcsDisplayModel } from './model';
1
+ import type { LinearReadArcsDisplayModel } from './model';
2
2
  export declare function drawFeats(self: LinearReadArcsDisplayModel, ctx: CanvasRenderingContext2D, width: number, height: number): void;
@@ -1,13 +1,11 @@
1
1
  import { getContainingView, getSession } from '@jbrowse/core/util';
2
- // locals
3
- import { getPairedOrientationColor, getPairedInsertSizeColor, getPairedInsertSizeAndOrientationColor, } from '../shared/color';
4
2
  import { featurizeSA } from '../MismatchParser';
3
+ import { getPairedInsertSizeAndOrientationColor, getPairedInsertSizeColor, getPairedOrientationColor, } from '../shared/color';
5
4
  import { hasPairedReads } from '../shared/util';
6
5
  function jitter(n) {
7
6
  return Math.random() * 2 * n - n;
8
7
  }
9
8
  function drawLineAtOffset(ctx, offset, height, color) {
10
- // draws a vertical line off to middle of nowhere if the second end not found
11
9
  ctx.strokeStyle = color;
12
10
  ctx.beginPath();
13
11
  ctx.moveTo(offset, 0);
@@ -47,9 +45,6 @@ export function drawFeats(self, ctx, width, height) {
47
45
  const p = r1 - view.offsetPx;
48
46
  const p2 = r2 - view.offsetPx;
49
47
  const drawArcInsteadOfBezier = absrad > 10000;
50
- // bezier (used for non-long-range arcs) requires moveTo before beginPath
51
- // arc (used for long-range) requires moveTo after beginPath (or else a
52
- // unwanted line at y=0 is rendered along with the arc)
53
48
  if (longRange && drawArcInsteadOfBezier) {
54
49
  ctx.moveTo(p, 0);
55
50
  ctx.beginPath();
@@ -97,8 +92,6 @@ export function drawFeats(self, ctx, width, height) {
97
92
  const destX = p + radius * 2;
98
93
  const destY = Math.min(height + jitter(jitterVal), absrad);
99
94
  if (longRange) {
100
- // avoid drawing gigantic circles that glitch out the rendering,
101
- // instead draw vertical lines
102
95
  if (absrad > 100000) {
103
96
  drawLineAtOffset(ctx, p + jitter(jitterVal), height, 'red');
104
97
  drawLineAtOffset(ctx, p2 + jitter(jitterVal), height, 'red');
@@ -122,7 +115,6 @@ export function drawFeats(self, ctx, width, height) {
122
115
  }
123
116
  }
124
117
  for (const chain of chains) {
125
- // chain.length === 1, singleton (other pairs/mates not in view)
126
118
  if (chain.length === 1 && drawLongRange) {
127
119
  const f = chain[0];
128
120
  if (hasPaired && !(f.flags & 8)) {
@@ -1,2 +1,2 @@
1
- import PluginManager from '@jbrowse/core/PluginManager';
1
+ import type PluginManager from '@jbrowse/core/PluginManager';
2
2
  export default function register(pluginManager: PluginManager): void;
@@ -1,8 +1,7 @@
1
+ import { lazy } from 'react';
1
2
  import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
2
- // locals
3
3
  import configSchemaF from './configSchema';
4
4
  import stateModelF from './model';
5
- import { lazy } from 'react';
6
5
  export default function register(pluginManager) {
7
6
  pluginManager.addDisplayType(() => {
8
7
  const configSchema = configSchemaF(pluginManager);