@jbrowse/plugin-alignments 1.7.11 → 2.1.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 (295) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +192 -216
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  3. package/dist/AlignmentsFeatureDetail/index.d.ts +3 -3
  4. package/dist/AlignmentsFeatureDetail/index.js +48 -44
  5. package/dist/AlignmentsFeatureDetail/index.js.map +1 -0
  6. package/dist/AlignmentsTrack/index.js +24 -32
  7. package/dist/AlignmentsTrack/index.js.map +1 -0
  8. package/dist/BamAdapter/BamAdapter.d.ts +6 -1
  9. package/dist/BamAdapter/BamAdapter.js +345 -585
  10. package/dist/BamAdapter/BamAdapter.js.map +1 -0
  11. package/dist/BamAdapter/BamSlightlyLazyFeature.js +143 -174
  12. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  13. package/dist/BamAdapter/MismatchParser.d.ts +1 -1
  14. package/dist/BamAdapter/MismatchParser.js +341 -417
  15. package/dist/BamAdapter/MismatchParser.js.map +1 -0
  16. package/dist/BamAdapter/configSchema.js +33 -46
  17. package/dist/BamAdapter/configSchema.js.map +1 -0
  18. package/dist/BamAdapter/index.js +36 -32
  19. package/dist/BamAdapter/index.js.map +1 -0
  20. package/dist/CramAdapter/CramAdapter.js +376 -644
  21. package/dist/CramAdapter/CramAdapter.js.map +1 -0
  22. package/dist/CramAdapter/CramSlightlyLazyFeature.js +374 -439
  23. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  24. package/dist/CramAdapter/CramTestAdapters.js +169 -227
  25. package/dist/CramAdapter/CramTestAdapters.js.map +1 -0
  26. package/dist/CramAdapter/configSchema.js +28 -38
  27. package/dist/CramAdapter/configSchema.js.map +1 -0
  28. package/dist/CramAdapter/index.js +37 -32
  29. package/dist/CramAdapter/index.js.map +1 -0
  30. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js +91 -93
  31. package/dist/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  32. package/dist/HtsgetBamAdapter/configSchema.js +19 -29
  33. package/dist/HtsgetBamAdapter/configSchema.js.map +1 -0
  34. package/dist/HtsgetBamAdapter/index.js +44 -38
  35. package/dist/HtsgetBamAdapter/index.js.map +1 -0
  36. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +36 -65
  37. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  38. package/dist/LinearAlignmentsDisplay/index.js +22 -28
  39. package/dist/LinearAlignmentsDisplay/index.js.map +1 -0
  40. package/dist/LinearAlignmentsDisplay/models/configSchema.js +12 -23
  41. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  42. package/dist/LinearAlignmentsDisplay/models/model.d.ts +10 -10
  43. package/dist/LinearAlignmentsDisplay/models/model.js +257 -245
  44. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -0
  45. package/dist/LinearPileupDisplay/components/ColorByModifications.js +98 -116
  46. package/dist/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  47. package/dist/LinearPileupDisplay/components/ColorByTag.js +82 -91
  48. package/dist/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  49. package/dist/LinearPileupDisplay/components/FilterByTag.js +156 -192
  50. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  51. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +15 -29
  52. package/dist/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  53. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +79 -93
  54. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  55. package/dist/LinearPileupDisplay/components/SetMaxHeight.js +78 -81
  56. package/dist/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  57. package/dist/LinearPileupDisplay/components/SortByTag.js +80 -88
  58. package/dist/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  59. package/dist/LinearPileupDisplay/configSchema.js +40 -42
  60. package/dist/LinearPileupDisplay/configSchema.js.map +1 -0
  61. package/dist/LinearPileupDisplay/index.js +21 -27
  62. package/dist/LinearPileupDisplay/index.js.map +1 -0
  63. package/dist/LinearPileupDisplay/model.d.ts +27 -17
  64. package/dist/LinearPileupDisplay/model.js +701 -797
  65. package/dist/LinearPileupDisplay/model.js.map +1 -0
  66. package/dist/LinearSNPCoverageDisplay/components/Tooltip.d.ts +5 -2
  67. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js +103 -77
  68. package/dist/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  69. package/dist/LinearSNPCoverageDisplay/index.js +21 -27
  70. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -0
  71. package/dist/LinearSNPCoverageDisplay/models/configSchema.js +45 -55
  72. package/dist/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  73. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +41 -17
  74. package/dist/LinearSNPCoverageDisplay/models/model.js +258 -230
  75. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  76. package/dist/NestedFrequencyTable.js +104 -139
  77. package/dist/NestedFrequencyTable.js.map +1 -0
  78. package/dist/PileupRPC/rpcMethods.js +199 -278
  79. package/dist/PileupRPC/rpcMethods.js.map +1 -0
  80. package/dist/PileupRenderer/PileupLayoutSession.js +56 -76
  81. package/dist/PileupRenderer/PileupLayoutSession.js.map +1 -0
  82. package/dist/PileupRenderer/PileupRenderer.d.ts +4 -8
  83. package/dist/PileupRenderer/PileupRenderer.js +938 -1205
  84. package/dist/PileupRenderer/PileupRenderer.js.map +1 -0
  85. package/dist/PileupRenderer/components/PileupRendering.d.ts +1 -1
  86. package/dist/PileupRenderer/components/PileupRendering.js +173 -253
  87. package/dist/PileupRenderer/components/PileupRendering.js.map +1 -0
  88. package/dist/PileupRenderer/configSchema.js +65 -71
  89. package/dist/PileupRenderer/configSchema.js.map +1 -0
  90. package/dist/PileupRenderer/index.js +17 -22
  91. package/dist/PileupRenderer/index.js.map +1 -0
  92. package/dist/PileupRenderer/sortUtil.js +83 -107
  93. package/dist/PileupRenderer/sortUtil.js.map +1 -0
  94. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js +437 -589
  95. package/dist/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  96. package/dist/SNPCoverageAdapter/configSchema.js +10 -20
  97. package/dist/SNPCoverageAdapter/configSchema.js.map +1 -0
  98. package/dist/SNPCoverageAdapter/index.js +46 -41
  99. package/dist/SNPCoverageAdapter/index.js.map +1 -0
  100. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +2 -2
  101. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js +265 -290
  102. package/dist/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  103. package/dist/SNPCoverageRenderer/configSchema.js +30 -39
  104. package/dist/SNPCoverageRenderer/configSchema.js.map +1 -0
  105. package/dist/SNPCoverageRenderer/index.js +19 -30
  106. package/dist/SNPCoverageRenderer/index.js.map +1 -0
  107. package/dist/index.js +135 -152
  108. package/dist/index.js.map +1 -0
  109. package/dist/shared.js +84 -92
  110. package/dist/shared.js.map +1 -0
  111. package/dist/util.js +130 -121
  112. package/dist/util.js.map +1 -0
  113. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.d.ts +6 -0
  114. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +145 -0
  115. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -0
  116. package/esm/AlignmentsFeatureDetail/index.d.ts +38 -0
  117. package/esm/AlignmentsFeatureDetail/index.js +23 -0
  118. package/esm/AlignmentsFeatureDetail/index.js.map +1 -0
  119. package/esm/AlignmentsTrack/index.d.ts +2 -0
  120. package/esm/AlignmentsTrack/index.js +23 -0
  121. package/esm/AlignmentsTrack/index.js.map +1 -0
  122. package/esm/BamAdapter/BamAdapter.d.ts +45 -0
  123. package/esm/BamAdapter/BamAdapter.js +173 -0
  124. package/esm/BamAdapter/BamAdapter.js.map +1 -0
  125. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +33 -0
  126. package/esm/BamAdapter/BamSlightlyLazyFeature.js +107 -0
  127. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -0
  128. package/esm/BamAdapter/MismatchParser.d.ts +25 -0
  129. package/esm/BamAdapter/MismatchParser.js +294 -0
  130. package/esm/BamAdapter/MismatchParser.js.map +1 -0
  131. package/esm/BamAdapter/configSchema.d.ts +2 -0
  132. package/esm/BamAdapter/configSchema.js +31 -0
  133. package/esm/BamAdapter/configSchema.js.map +1 -0
  134. package/esm/BamAdapter/index.d.ts +3 -0
  135. package/esm/BamAdapter/index.js +10 -0
  136. package/esm/BamAdapter/index.js.map +1 -0
  137. package/esm/CramAdapter/CramAdapter.d.ts +53 -0
  138. package/esm/CramAdapter/CramAdapter.js +228 -0
  139. package/esm/CramAdapter/CramAdapter.js.map +1 -0
  140. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +49 -0
  141. package/esm/CramAdapter/CramSlightlyLazyFeature.js +349 -0
  142. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -0
  143. package/esm/CramAdapter/CramTestAdapters.d.ts +29 -0
  144. package/esm/CramAdapter/CramTestAdapters.js +70 -0
  145. package/esm/CramAdapter/CramTestAdapters.js.map +1 -0
  146. package/esm/CramAdapter/configSchema.d.ts +3 -0
  147. package/esm/CramAdapter/configSchema.js +26 -0
  148. package/esm/CramAdapter/configSchema.js.map +1 -0
  149. package/esm/CramAdapter/index.d.ts +3 -0
  150. package/esm/CramAdapter/index.js +11 -0
  151. package/esm/CramAdapter/index.js.map +1 -0
  152. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.d.ts +9 -0
  153. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js +27 -0
  154. package/esm/HtsgetBamAdapter/HtsgetBamAdapter.js.map +1 -0
  155. package/esm/HtsgetBamAdapter/configSchema.d.ts +2 -0
  156. package/esm/HtsgetBamAdapter/configSchema.js +17 -0
  157. package/esm/HtsgetBamAdapter/configSchema.js.map +1 -0
  158. package/esm/HtsgetBamAdapter/index.d.ts +3 -0
  159. package/esm/HtsgetBamAdapter/index.js +16 -0
  160. package/esm/HtsgetBamAdapter/index.js.map +1 -0
  161. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.d.ts +7 -0
  162. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +34 -0
  163. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -0
  164. package/esm/LinearAlignmentsDisplay/index.d.ts +2 -0
  165. package/esm/LinearAlignmentsDisplay/index.js +19 -0
  166. package/esm/LinearAlignmentsDisplay/index.js.map +1 -0
  167. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +4 -0
  168. package/esm/LinearAlignmentsDisplay/models/configSchema.js +12 -0
  169. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -0
  170. package/esm/LinearAlignmentsDisplay/models/model.d.ts +105 -0
  171. package/esm/LinearAlignmentsDisplay/models/model.js +181 -0
  172. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -0
  173. package/esm/LinearPileupDisplay/components/ColorByModifications.d.ts +14 -0
  174. package/esm/LinearPileupDisplay/components/ColorByModifications.js +71 -0
  175. package/esm/LinearPileupDisplay/components/ColorByModifications.js.map +1 -0
  176. package/esm/LinearPileupDisplay/components/ColorByTag.d.ts +9 -0
  177. package/esm/LinearPileupDisplay/components/ColorByTag.js +45 -0
  178. package/esm/LinearPileupDisplay/components/ColorByTag.js.map +1 -0
  179. package/esm/LinearPileupDisplay/components/FilterByTag.d.ts +18 -0
  180. package/esm/LinearPileupDisplay/components/FilterByTag.js +123 -0
  181. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +1 -0
  182. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.d.ts +13 -0
  183. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js +13 -0
  184. package/esm/LinearPileupDisplay/components/LinearPileupDisplayBlurb.js.map +1 -0
  185. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +16 -0
  186. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +41 -0
  187. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -0
  188. package/esm/LinearPileupDisplay/components/SetMaxHeight.d.ts +10 -0
  189. package/esm/LinearPileupDisplay/components/SetMaxHeight.js +43 -0
  190. package/esm/LinearPileupDisplay/components/SetMaxHeight.js.map +1 -0
  191. package/esm/LinearPileupDisplay/components/SortByTag.d.ts +9 -0
  192. package/esm/LinearPileupDisplay/components/SortByTag.js +43 -0
  193. package/esm/LinearPileupDisplay/components/SortByTag.js.map +1 -0
  194. package/esm/LinearPileupDisplay/configSchema.d.ts +6 -0
  195. package/esm/LinearPileupDisplay/configSchema.js +41 -0
  196. package/esm/LinearPileupDisplay/configSchema.js.map +1 -0
  197. package/esm/LinearPileupDisplay/index.d.ts +2 -0
  198. package/esm/LinearPileupDisplay/index.js +18 -0
  199. package/esm/LinearPileupDisplay/index.js.map +1 -0
  200. package/esm/LinearPileupDisplay/model.d.ts +332 -0
  201. package/esm/LinearPileupDisplay/model.js +575 -0
  202. package/esm/LinearPileupDisplay/model.js.map +1 -0
  203. package/esm/LinearSNPCoverageDisplay/components/Tooltip.d.ts +13 -0
  204. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js +56 -0
  205. package/esm/LinearSNPCoverageDisplay/components/Tooltip.js.map +1 -0
  206. package/esm/LinearSNPCoverageDisplay/index.d.ts +2 -0
  207. package/esm/LinearSNPCoverageDisplay/index.js +18 -0
  208. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -0
  209. package/esm/LinearSNPCoverageDisplay/models/configSchema.d.ts +2 -0
  210. package/esm/LinearSNPCoverageDisplay/models/configSchema.js +44 -0
  211. package/esm/LinearSNPCoverageDisplay/models/configSchema.js.map +1 -0
  212. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +370 -0
  213. package/esm/LinearSNPCoverageDisplay/models/model.js +186 -0
  214. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -0
  215. package/esm/NestedFrequencyTable.d.ts +14 -0
  216. package/esm/NestedFrequencyTable.js +101 -0
  217. package/esm/NestedFrequencyTable.js.map +1 -0
  218. package/esm/PileupRPC/rpcMethods.d.ts +34 -0
  219. package/esm/PileupRPC/rpcMethods.js +70 -0
  220. package/esm/PileupRPC/rpcMethods.js.map +1 -0
  221. package/esm/PileupRenderer/PileupLayoutSession.d.ts +32 -0
  222. package/esm/PileupRenderer/PileupLayoutSession.js +32 -0
  223. package/esm/PileupRenderer/PileupLayoutSession.js.map +1 -0
  224. package/esm/PileupRenderer/PileupRenderer.d.ts +178 -0
  225. package/esm/PileupRenderer/PileupRenderer.js +830 -0
  226. package/esm/PileupRenderer/PileupRenderer.js.map +1 -0
  227. package/esm/PileupRenderer/components/PileupRendering.d.ts +23 -0
  228. package/esm/PileupRenderer/components/PileupRendering.js +138 -0
  229. package/esm/PileupRenderer/components/PileupRendering.js.map +1 -0
  230. package/esm/PileupRenderer/configSchema.d.ts +2 -0
  231. package/esm/PileupRenderer/configSchema.js +64 -0
  232. package/esm/PileupRenderer/configSchema.js.map +1 -0
  233. package/esm/PileupRenderer/index.d.ts +2 -0
  234. package/esm/PileupRenderer/index.js +12 -0
  235. package/esm/PileupRenderer/index.js.map +1 -0
  236. package/esm/PileupRenderer/sortUtil.d.ts +8 -0
  237. package/esm/PileupRenderer/sortUtil.js +80 -0
  238. package/esm/PileupRenderer/sortUtil.js.map +1 -0
  239. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.d.ts +67 -0
  240. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js +260 -0
  241. package/esm/SNPCoverageAdapter/SNPCoverageAdapter.js.map +1 -0
  242. package/esm/SNPCoverageAdapter/configSchema.d.ts +3 -0
  243. package/esm/SNPCoverageAdapter/configSchema.js +6 -0
  244. package/esm/SNPCoverageAdapter/configSchema.js.map +1 -0
  245. package/esm/SNPCoverageAdapter/index.d.ts +3 -0
  246. package/esm/SNPCoverageAdapter/index.js +18 -0
  247. package/esm/SNPCoverageAdapter/index.js.map +1 -0
  248. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.d.ts +20 -0
  249. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js +185 -0
  250. package/esm/SNPCoverageRenderer/SNPCoverageRenderer.js.map +1 -0
  251. package/esm/SNPCoverageRenderer/configSchema.d.ts +2 -0
  252. package/esm/SNPCoverageRenderer/configSchema.js +29 -0
  253. package/esm/SNPCoverageRenderer/configSchema.js.map +1 -0
  254. package/esm/SNPCoverageRenderer/index.d.ts +3 -0
  255. package/esm/SNPCoverageRenderer/index.js +14 -0
  256. package/esm/SNPCoverageRenderer/index.js.map +1 -0
  257. package/esm/index.d.ts +10 -0
  258. package/esm/index.js +91 -0
  259. package/esm/index.js.map +1 -0
  260. package/esm/shared.d.ts +25 -0
  261. package/esm/shared.js +28 -0
  262. package/esm/shared.js.map +1 -0
  263. package/esm/util.d.ts +19 -0
  264. package/esm/util.js +83 -0
  265. package/esm/util.js.map +1 -0
  266. package/package.json +23 -15
  267. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +4 -4
  268. package/src/AlignmentsFeatureDetail/__snapshots__/index.test.js.snap +321 -397
  269. package/src/BamAdapter/BamAdapter.ts +1 -1
  270. package/src/BamAdapter/MismatchParser.ts +2 -2
  271. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +3 -3
  272. package/src/LinearPileupDisplay/components/ColorByModifications.tsx +7 -7
  273. package/src/LinearPileupDisplay/components/ColorByTag.tsx +5 -5
  274. package/src/LinearPileupDisplay/components/FilterByTag.tsx +5 -5
  275. package/src/LinearPileupDisplay/components/LinearPileupDisplayBlurb.tsx +1 -1
  276. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +9 -9
  277. package/src/LinearPileupDisplay/components/SetMaxHeight.tsx +5 -5
  278. package/src/LinearPileupDisplay/components/SortByTag.tsx +5 -5
  279. package/src/LinearPileupDisplay/model.ts +18 -12
  280. package/src/LinearSNPCoverageDisplay/components/Tooltip.tsx +3 -4
  281. package/src/LinearSNPCoverageDisplay/models/model.ts +28 -26
  282. package/src/PileupRenderer/PileupRenderer.tsx +66 -56
  283. package/src/PileupRenderer/components/PileupRendering.tsx +11 -11
  284. package/src/SNPCoverageAdapter/SNPCoverageAdapter.ts +4 -3
  285. package/src/SNPCoverageRenderer/SNPCoverageRenderer.ts +8 -7
  286. package/dist/AlignmentsFeatureDetail/index.test.js +0 -60
  287. package/dist/BamAdapter/BamAdapter.test.js +0 -177
  288. package/dist/BamAdapter/MismatchParser.test.js +0 -251
  289. package/dist/CramAdapter/CramAdapter.test.js +0 -138
  290. package/dist/LinearAlignmentsDisplay/models/configSchema.test.js +0 -83
  291. package/dist/LinearPileupDisplay/configSchema.test.js +0 -92
  292. package/dist/LinearSNPCoverageDisplay/models/configSchema.test.js +0 -62
  293. package/dist/PileupRenderer/components/PileupRendering.test.js +0 -36
  294. package/dist/declare.d.js +0 -1
  295. package/dist/index.test.js +0 -26
@@ -105,7 +105,7 @@ export default class BamAdapter extends BaseFeatureDataAdapter {
105
105
  return this.samHeader
106
106
  }
107
107
 
108
- private async setup(opts?: BaseOptions) {
108
+ async setup(opts?: BaseOptions) {
109
109
  if (!this.setupP) {
110
110
  this.setupP = this.setupPre(opts).catch(e => {
111
111
  this.setupP = undefined
@@ -11,8 +11,8 @@ export interface Mismatch {
11
11
  }
12
12
  const mdRegex = new RegExp(/(\d+|\^[a-z]+|[a-z])/gi)
13
13
  const modificationRegex = new RegExp(/([A-Z])([-+])([^,.?]+)([.?])?/)
14
- export function parseCigar(cigar: string) {
15
- return (cigar || '').split(/([MIDNSHPX=])/)
14
+ export function parseCigar(cigar = '') {
15
+ return cigar.split(/([MIDNSHPX=])/).slice(0, -1)
16
16
  }
17
17
  export function cigarToMismatches(
18
18
  ops: string[],
@@ -2,10 +2,10 @@ import React from 'react'
2
2
  import { observer } from 'mobx-react'
3
3
  import { getConf } from '@jbrowse/core/configuration'
4
4
  import { ResizeHandle } from '@jbrowse/core/ui'
5
- import { makeStyles } from '@material-ui/core'
5
+ import { makeStyles } from 'tss-react/mui'
6
6
  import { AlignmentsDisplayModel } from '../models/model'
7
7
 
8
- const useStyles = makeStyles(() => ({
8
+ const useStyles = makeStyles()(() => ({
9
9
  resizeHandle: {
10
10
  height: 2,
11
11
  position: 'absolute',
@@ -15,7 +15,7 @@ const useStyles = makeStyles(() => ({
15
15
 
16
16
  function AlignmentsDisplay({ model }: { model: AlignmentsDisplayModel }) {
17
17
  const { PileupDisplay, SNPCoverageDisplay, showPileup, showCoverage } = model
18
- const classes = useStyles()
18
+ const { classes } = useStyles()
19
19
  const top = SNPCoverageDisplay.height
20
20
  return (
21
21
  <div
@@ -3,18 +3,18 @@ import { observer } from 'mobx-react'
3
3
  import { ObservableMap } from 'mobx'
4
4
  import {
5
5
  Button,
6
+ CircularProgress,
6
7
  Dialog,
7
8
  DialogActions,
8
9
  DialogContent,
9
10
  DialogTitle,
10
11
  IconButton,
11
12
  Typography,
12
- CircularProgress,
13
- makeStyles,
14
- } from '@material-ui/core'
15
- import CloseIcon from '@material-ui/icons/Close'
13
+ } from '@mui/material'
14
+ import { makeStyles } from 'tss-react/mui'
15
+ import CloseIcon from '@mui/icons-material/Close'
16
16
 
17
- const useStyles = makeStyles(theme => ({
17
+ const useStyles = makeStyles()(theme => ({
18
18
  closeButton: {
19
19
  position: 'absolute',
20
20
  right: theme.spacing(1),
@@ -35,7 +35,7 @@ function ModificationTable({
35
35
  }: {
36
36
  modifications: [string, string][]
37
37
  }) {
38
- const classes = useStyles()
38
+ const { classes } = useStyles()
39
39
  return (
40
40
  <table className={classes.table}>
41
41
  <tbody>
@@ -64,7 +64,7 @@ function ColorByTagDlg(props: {
64
64
  }
65
65
  handleClose: () => void
66
66
  }) {
67
- const classes = useStyles()
67
+ const { classes } = useStyles()
68
68
  const { model, handleClose } = props
69
69
  const { colorBy, modificationTagMap } = model
70
70
 
@@ -9,11 +9,11 @@ import {
9
9
  IconButton,
10
10
  TextField,
11
11
  Typography,
12
- makeStyles,
13
- } from '@material-ui/core'
14
- import CloseIcon from '@material-ui/icons/Close'
12
+ } from '@mui/material'
13
+ import { makeStyles } from 'tss-react/mui'
14
+ import CloseIcon from '@mui/icons-material/Close'
15
15
 
16
- const useStyles = makeStyles(theme => ({
16
+ const useStyles = makeStyles()(theme => ({
17
17
  root: {
18
18
  width: 300,
19
19
  },
@@ -29,7 +29,7 @@ function ColorByTagDlg(props: {
29
29
  model: { setColorScheme: Function }
30
30
  handleClose: () => void
31
31
  }) {
32
- const classes = useStyles()
32
+ const { classes } = useStyles()
33
33
  const { model, handleClose } = props
34
34
  const [tag, setTag] = useState('')
35
35
  const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/)
@@ -11,12 +11,12 @@ import {
11
11
  Paper,
12
12
  TextField,
13
13
  Typography,
14
- makeStyles,
15
- } from '@material-ui/core'
14
+ } from '@mui/material'
15
+ import { makeStyles } from 'tss-react/mui'
16
16
 
17
- import CloseIcon from '@material-ui/icons/Close'
17
+ import CloseIcon from '@mui/icons-material/Close'
18
18
 
19
- const useStyles = makeStyles(theme => ({
19
+ const useStyles = makeStyles()(theme => ({
20
20
  paper: {
21
21
  padding: theme.spacing(2),
22
22
  margin: theme.spacing(2),
@@ -93,7 +93,7 @@ function FilterByTagDlg(props: {
93
93
  handleClose: () => void
94
94
  }) {
95
95
  const { model, handleClose } = props
96
- const classes = useStyles()
96
+ const { classes } = useStyles()
97
97
  const { filterBy } = model
98
98
  const [flagInclude, setFlagInclude] = useState(filterBy?.flagInclude)
99
99
  const [flagExclude, setFlagExclude] = useState(filterBy?.flagExclude)
@@ -1,6 +1,6 @@
1
1
  import React from 'react'
2
2
  import { observer } from 'mobx-react'
3
- import Typography from '@material-ui/core/Typography'
3
+ import Typography from '@mui/material/Typography'
4
4
 
5
5
  export interface LinearPileupDisplayBlurbProps {
6
6
  model: {
@@ -2,20 +2,20 @@ import React, { useState } from 'react'
2
2
  import { observer } from 'mobx-react'
3
3
  import {
4
4
  Button,
5
- TextField,
6
- Typography,
7
- IconButton,
5
+ Checkbox,
8
6
  Dialog,
9
7
  DialogActions,
10
8
  DialogContent,
11
9
  DialogTitle,
12
- Checkbox,
13
10
  FormControlLabel,
14
- makeStyles,
15
- } from '@material-ui/core'
16
- import CloseIcon from '@material-ui/icons/Close'
11
+ IconButton,
12
+ TextField,
13
+ Typography,
14
+ } from '@mui/material'
15
+ import { makeStyles } from 'tss-react/mui'
16
+ import CloseIcon from '@mui/icons-material/Close'
17
17
 
18
- const useStyles = makeStyles(theme => ({
18
+ const useStyles = makeStyles()(theme => ({
19
19
  closeButton: {
20
20
  position: 'absolute',
21
21
  right: theme.spacing(1),
@@ -37,7 +37,7 @@ function SetFeatureHeightDlg(props: {
37
37
  }
38
38
  handleClose: () => void
39
39
  }) {
40
- const classes = useStyles()
40
+ const { classes } = useStyles()
41
41
  const { model, handleClose } = props
42
42
  const { featureHeightSetting, noSpacing: noSpacingSetting } = model
43
43
  const [height, setHeight] = useState(`${featureHeightSetting}`)
@@ -9,11 +9,11 @@ import {
9
9
  IconButton,
10
10
  TextField,
11
11
  Typography,
12
- makeStyles,
13
- } from '@material-ui/core'
14
- import CloseIcon from '@material-ui/icons/Close'
12
+ } from '@mui/material'
13
+ import { makeStyles } from 'tss-react/mui'
14
+ import CloseIcon from '@mui/icons-material/Close'
15
15
 
16
- const useStyles = makeStyles(theme => ({
16
+ const useStyles = makeStyles()(theme => ({
17
17
  root: {
18
18
  width: 500,
19
19
  },
@@ -36,7 +36,7 @@ function SetMaxHeightDlg(props: {
36
36
  handleClose: () => void
37
37
  }) {
38
38
  const { model, handleClose } = props
39
- const classes = useStyles()
39
+ const { classes } = useStyles()
40
40
  const { maxHeight = '' } = model
41
41
  const [max, setMax] = useState(`${maxHeight}`)
42
42
 
@@ -9,12 +9,12 @@ import {
9
9
  IconButton,
10
10
  TextField,
11
11
  Typography,
12
- makeStyles,
13
- } from '@material-ui/core'
12
+ } from '@mui/material'
13
+ import { makeStyles } from 'tss-react/mui'
14
14
 
15
- import CloseIcon from '@material-ui/icons/Close'
15
+ import CloseIcon from '@mui/icons-material/Close'
16
16
 
17
- const useStyles = makeStyles(theme => ({
17
+ const useStyles = makeStyles()(theme => ({
18
18
  root: {
19
19
  margin: 0,
20
20
  padding: theme.spacing(2),
@@ -31,7 +31,7 @@ function SortByTagDlg(props: {
31
31
  model: { setSortedBy: Function }
32
32
  handleClose: () => void
33
33
  }) {
34
- const classes = useStyles()
34
+ const { classes } = useStyles()
35
35
  const { model, handleClose } = props
36
36
  const [tag, setTag] = useState('')
37
37
  const validTag = tag.match(/^[A-Za-z][A-Za-z0-9]$/)
@@ -23,17 +23,18 @@ import {
23
23
  } from '@jbrowse/plugin-linear-genome-view'
24
24
 
25
25
  // icons
26
- import VisibilityIcon from '@material-ui/icons/Visibility'
26
+ import VisibilityIcon from '@mui/icons-material/Visibility'
27
27
  import { ContentCopy as ContentCopyIcon } from '@jbrowse/core/ui/Icons'
28
- import MenuOpenIcon from '@material-ui/icons/MenuOpen'
29
- import SortIcon from '@material-ui/icons/Sort'
30
- import PaletteIcon from '@material-ui/icons/Palette'
31
- import FilterListIcon from '@material-ui/icons/ClearAll'
28
+ import MenuOpenIcon from '@mui/icons-material/MenuOpen'
29
+ import SortIcon from '@mui/icons-material/Sort'
30
+ import PaletteIcon from '@mui/icons-material/Palette'
31
+ import FilterListIcon from '@mui/icons-material/ClearAll'
32
32
 
33
33
  // locals
34
34
  import { LinearPileupDisplayConfigModel } from './configSchema'
35
35
  import LinearPileupDisplayBlurb from './components/LinearPileupDisplayBlurb'
36
36
  import { getUniqueTagValues, getUniqueModificationValues } from '../shared'
37
+ import { SimpleFeatureSerialized } from '@jbrowse/core/util/simpleFeature'
37
38
 
38
39
  // async
39
40
  const ColorByTagDlg = lazy(() => import('./components/ColorByTag'))
@@ -178,6 +179,13 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
178
179
  } = self
179
180
  const { staticBlocks, bpPerPx } = view
180
181
 
182
+ if (!self.estimatedStatsReady) {
183
+ return
184
+ }
185
+ if (self.regionTooLarge) {
186
+ return
187
+ }
188
+
181
189
  // continually generate the vc pairing, set and rerender if any
182
190
  // new values seen
183
191
  if (colorBy?.tag) {
@@ -321,16 +329,15 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
321
329
  }
322
330
  const { refName, assemblyName, offset } = centerLineInfo
323
331
  const centerBp = Math.round(offset) + 1
324
- const centerRefName = refName
325
332
 
326
- if (centerBp < 0) {
333
+ if (centerBp < 0 || !refName) {
327
334
  return
328
335
  }
329
336
 
330
337
  self.sortedBy = {
331
338
  type,
332
339
  pos: centerBp,
333
- refName: centerRefName,
340
+ refName,
334
341
  assemblyName,
335
342
  tag,
336
343
  }
@@ -466,8 +473,8 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
466
473
  sortedBy,
467
474
  colorBy,
468
475
  filterBy: JSON.parse(JSON.stringify(filterBy)),
469
- colorTagMap: JSON.parse(JSON.stringify(colorTagMap)),
470
- modificationTagMap: JSON.parse(JSON.stringify(modificationTagMap)),
476
+ colorTagMap: Object.fromEntries(colorTagMap.toJSON()),
477
+ modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
471
478
  showSoftClip: self.showSoftClipping,
472
479
  config: self.rendererConfig,
473
480
  async onFeatureClick(_: unknown, featureId?: string) {
@@ -523,10 +530,9 @@ const stateModelFactory = (configSchema: LinearPileupDisplayConfigModel) =>
523
530
  layoutId: getContainingView(self).id,
524
531
  rendererType: 'PileupRenderer',
525
532
  },
526
- )) as { feature: unknown }
533
+ )) as { feature: SimpleFeatureSerialized }
527
534
 
528
535
  if (feature) {
529
- // @ts-ignore
530
536
  self.setContextMenuFeature(new SimpleFeature(feature))
531
537
  }
532
538
  }
@@ -1,4 +1,3 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
1
  import React from 'react'
3
2
  import { observer } from 'mobx-react'
4
3
  import { Feature } from '@jbrowse/core/util/simpleFeature'
@@ -31,8 +30,8 @@ const en = (n: number) => n.toLocaleString('en-US')
31
30
  const toP = (s = 0) => +(+s).toFixed(1)
32
31
  const pct = (n: number, total: number) => `${toP((n / (total || 1)) * 100)}%`
33
32
 
34
- const TooltipContents = React.forwardRef(
35
- ({ feature }: { feature: Feature }, reactRef: any) => {
33
+ const TooltipContents = React.forwardRef<HTMLDivElement, { feature: Feature }>(
34
+ ({ feature }, reactRef) => {
36
35
  const start = feature.get('start')
37
36
  const end = feature.get('end')
38
37
  const name = feature.get('refName')
@@ -109,7 +108,7 @@ type Coord = [number, number]
109
108
 
110
109
  const SNPCoverageTooltip = observer(
111
110
  (props: {
112
- model: any
111
+ model: { featureUnderMouse: Feature }
113
112
  height: number
114
113
  offsetMouseCoord: Coord
115
114
  clientMouseCoord: Coord
@@ -7,12 +7,14 @@ import {
7
7
  AnyConfigurationModel,
8
8
  } from '@jbrowse/core/configuration'
9
9
  import { linearWiggleDisplayModelFactory } from '@jbrowse/plugin-wiggle'
10
+ import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'
10
11
 
11
12
  import PluginManager from '@jbrowse/core/PluginManager'
12
13
  import { getContainingView } from '@jbrowse/core/util'
14
+
15
+ // locals
13
16
  import Tooltip from '../components/Tooltip'
14
17
  import { getUniqueModificationValues } from '../../shared'
15
- import { LinearGenomeViewModel } from '@jbrowse/plugin-linear-genome-view'
16
18
 
17
19
  // using a map because it preserves order
18
20
  const rendererTypes = new Map([['snpcoverage', 'SNPCoverageRenderer']])
@@ -93,35 +95,29 @@ const stateModelFactory = (
93
95
  {
94
96
  ...configBlob,
95
97
  drawInterbaseCounts:
96
- self.drawInterbaseCounts === undefined
97
- ? configBlob.drawInterbaseCounts
98
- : self.drawInterbaseCounts,
99
- drawIndicators:
100
- self.drawIndicators === undefined
101
- ? configBlob.drawIndicators
102
- : self.drawIndicators,
103
- drawArcs:
104
- self.drawArcs === undefined
105
- ? configBlob.drawArcs
106
- : self.drawArcs,
98
+ self.drawInterbaseCounts ?? configBlob.drawInterbaseCounts,
99
+ drawIndicators: self.drawIndicators ?? configBlob.drawIndicators,
100
+ drawArcs: self.drawArcs ?? configBlob.drawArcs,
107
101
  },
108
102
  getEnv(self),
109
103
  )
110
104
  },
111
105
  get drawArcsSetting() {
112
- return self.drawArcs !== undefined
113
- ? self.drawArcs
114
- : readConfObject(this.rendererConfig, 'drawArcs')
106
+ return (
107
+ self.drawArcs ?? readConfObject(this.rendererConfig, 'drawArcs')
108
+ )
115
109
  },
116
110
  get drawInterbaseCountsSetting() {
117
- return self.drawInterbaseCounts !== undefined
118
- ? self.drawInterbaseCounts
119
- : readConfObject(this.rendererConfig, 'drawInterbaseCounts')
111
+ return (
112
+ self.drawInterbaseCounts ??
113
+ readConfObject(this.rendererConfig, 'drawInterbaseCounts')
114
+ )
120
115
  },
121
116
  get drawIndicatorsSetting() {
122
- return self.drawIndicators !== undefined
123
- ? self.drawIndicators
124
- : readConfObject(this.rendererConfig, 'drawIndicators')
117
+ return (
118
+ self.drawIndicators ??
119
+ readConfObject(this.rendererConfig, 'drawIndicators')
120
+ )
125
121
  },
126
122
 
127
123
  get modificationsReady() {
@@ -133,17 +129,16 @@ const stateModelFactory = (
133
129
 
134
130
  renderProps() {
135
131
  const superProps = superRenderProps()
132
+ const { colorBy, filterBy, modificationTagMap } = self
136
133
  return {
137
134
  ...superProps,
138
135
  notReady: superProps.notReady || !this.modificationsReady,
139
- modificationTagMap: JSON.parse(
140
- JSON.stringify(self.modificationTagMap),
141
- ),
136
+ modificationTagMap: Object.fromEntries(modificationTagMap.toJSON()),
142
137
 
143
138
  // must use getSnapshot because otherwise changes to e.g. just the
144
139
  // colorBy.type are not read
145
- colorBy: self.colorBy ? getSnapshot(self.colorBy) : undefined,
146
- filterBy: self.filterBy ? getSnapshot(self.filterBy) : undefined,
140
+ colorBy: colorBy ? getSnapshot(colorBy) : undefined,
141
+ filterBy: filterBy ? getSnapshot(filterBy) : undefined,
147
142
  }
148
143
  },
149
144
  }
@@ -166,6 +161,13 @@ const stateModelFactory = (
166
161
  try {
167
162
  const { colorBy } = self
168
163
  const { staticBlocks } = getContainingView(self) as LGV
164
+
165
+ if (!self.estimatedStatsReady) {
166
+ return
167
+ }
168
+ if (self.regionTooLarge) {
169
+ return
170
+ }
169
171
  if (colorBy?.type === 'modifications') {
170
172
  const vals = await getUniqueModificationValues(
171
173
  self,