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