@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
@@ -1,4 +1,4 @@
1
- import Color from 'color'
1
+ import { Theme } from '@mui/material/styles'
2
2
  import BoxRendererType, {
3
3
  RenderArgs,
4
4
  RenderArgsSerialized,
@@ -7,7 +7,6 @@ import BoxRendererType, {
7
7
  ResultsSerialized,
8
8
  ResultsDeserialized,
9
9
  } from '@jbrowse/core/pluggableElementTypes/renderers/BoxRendererType'
10
- import { Theme } from '@material-ui/core'
11
10
  import { createJBrowseTheme } from '@jbrowse/core/ui'
12
11
  import {
13
12
  bpSpanPx,
@@ -64,11 +63,13 @@ function fillRect(
64
63
  }
65
64
 
66
65
  function getColorBaseMap(theme: Theme) {
66
+ // @ts-ignore
67
+ const { bases } = theme.palette
67
68
  return {
68
- A: theme.palette.bases.A.main,
69
- C: theme.palette.bases.C.main,
70
- G: theme.palette.bases.G.main,
71
- T: theme.palette.bases.T.main,
69
+ A: bases.A.main,
70
+ C: bases.C.main,
71
+ G: bases.G.main,
72
+ T: bases.T.main,
72
73
  deletion: '#808080', // gray
73
74
  }
74
75
  }
@@ -137,8 +138,8 @@ interface LayoutFeature {
137
138
  feature: Feature
138
139
  }
139
140
 
140
- function shouldDrawSNPs(type?: string) {
141
- return !['methylation', 'modifications'].includes(type || '')
141
+ function shouldDrawSNPsMuted(type?: string) {
142
+ return ['methylation', 'modifications'].includes(type || '')
142
143
  }
143
144
 
144
145
  function shouldDrawIndels(type?: string) {
@@ -152,7 +153,7 @@ export default class PileupRenderer extends BoxRendererType {
152
153
  // letter M is approximately the height
153
154
  getCharWidthHeight(ctx: CanvasRenderingContext2D) {
154
155
  const charWidth = measureText('A')
155
- const charHeight = measureText('M')
156
+ const charHeight = measureText('M') - 2
156
157
  return { charWidth, charHeight }
157
158
  }
158
159
 
@@ -244,7 +245,8 @@ export default class PileupRenderer extends BoxRendererType {
244
245
  )
245
246
 
246
247
  return {
247
- ...region,
248
+ // xref https://github.com/mobxjs/mobx-state-tree/issues/1524 for Omit
249
+ ...(region as Omit<typeof region, symbol>),
248
250
  start: Math.floor(Math.max(start - bpExpansion, 0)),
249
251
  end: Math.ceil(end + bpExpansion),
250
252
  }
@@ -453,7 +455,7 @@ export default class PileupRenderer extends BoxRendererType {
453
455
  canvasWidth: number
454
456
  }) {
455
457
  const { feature, topPx, heightPx } = feat
456
- const { modificationTagMap = {} } = renderArgs
458
+ const { Color, modificationTagMap = {} } = renderArgs
457
459
 
458
460
  const mm = (getTagAlt(feature, 'MM', 'Mm') as string) || ''
459
461
 
@@ -481,6 +483,8 @@ export default class PileupRenderer extends BoxRendererType {
481
483
  for (let i = 0; i < modifications.length; i++) {
482
484
  const { type, positions } = modifications[i]
483
485
  const col = modificationTagMap[type] || 'black'
486
+
487
+ // @ts-ignore
484
488
  const base = Color(col)
485
489
  for (const readPos of getNextRefPos(cigarOps, positions)) {
486
490
  const r = start + readPos
@@ -826,7 +830,7 @@ export default class PileupRenderer extends BoxRendererType {
826
830
  colorForBase,
827
831
  contrastForBase,
828
832
  canvasWidth,
829
- drawSNPs = true,
833
+ drawSNPsMuted,
830
834
  drawIndels = true,
831
835
  }: {
832
836
  ctx: CanvasRenderingContext2D
@@ -835,15 +839,15 @@ export default class PileupRenderer extends BoxRendererType {
835
839
  colorForBase: { [key: string]: string }
836
840
  contrastForBase: { [key: string]: string }
837
841
  mismatchAlpha?: boolean
838
- drawSNPs?: boolean
839
842
  drawIndels?: boolean
843
+ drawSNPsMuted?: boolean
840
844
  minSubfeatureWidth: number
841
845
  largeInsertionIndicatorScale: number
842
846
  charWidth: number
843
847
  charHeight: number
844
848
  canvasWidth: number
845
849
  }) {
846
- const { bpPerPx, regions } = renderArgs
850
+ const { Color, bpPerPx, regions } = renderArgs
847
851
  const { heightPx, topPx, feature } = feat
848
852
  const [region] = regions
849
853
  const start = feature.get('start')
@@ -868,33 +872,39 @@ export default class PileupRenderer extends BoxRendererType {
868
872
  const mbase = mismatch.base
869
873
  const [leftPx, rightPx] = bpSpanPx(mstart, mstart + mlen, region, bpPerPx)
870
874
  const widthPx = Math.max(minSubfeatureWidth, Math.abs(leftPx - rightPx))
871
- if (mismatch.type === 'mismatch' && drawSNPs) {
872
- const baseColor = colorForBase[mismatch.base] || '#888'
875
+ if (mismatch.type === 'mismatch') {
876
+ if (!drawSNPsMuted) {
877
+ const baseColor = colorForBase[mismatch.base] || '#888'
873
878
 
874
- fillRect(
875
- ctx,
876
- leftPx,
877
- topPx,
878
- widthPx,
879
- heightPx,
880
- canvasWidth,
881
- !mismatchAlpha
882
- ? baseColor
883
- : mismatch.qual !== undefined
884
- ? Color(baseColor)
885
- .alpha(Math.min(1, mismatch.qual / 50))
886
- .hsl()
887
- .string()
888
- : baseColor,
889
- )
879
+ fillRect(
880
+ ctx,
881
+ leftPx,
882
+ topPx,
883
+ widthPx,
884
+ heightPx,
885
+ canvasWidth,
886
+ !mismatchAlpha
887
+ ? baseColor
888
+ : mismatch.qual !== undefined
889
+ ? // @ts-ignore
890
+ Color(baseColor)
891
+ .alpha(Math.min(1, mismatch.qual / 50))
892
+ .hsl()
893
+ .string()
894
+ : baseColor,
895
+ )
896
+ }
890
897
 
891
898
  if (widthPx >= charWidth && heightPx >= heightLim) {
892
899
  // normal SNP coloring
893
- const contrastColor = contrastForBase[mismatch.base] || 'black'
900
+ const contrastColor = drawSNPsMuted
901
+ ? 'black'
902
+ : contrastForBase[mismatch.base] || 'black'
894
903
  ctx.fillStyle = !mismatchAlpha
895
904
  ? contrastColor
896
905
  : mismatch.qual !== undefined
897
- ? Color(contrastColor)
906
+ ? // @ts-ignore
907
+ Color(contrastColor)
898
908
  .alpha(Math.min(1, mismatch.qual / 50))
899
909
  .hsl()
900
910
  .string()
@@ -1050,11 +1060,13 @@ export default class PileupRenderer extends BoxRendererType {
1050
1060
  const mismatches: Mismatch[] = feature.get('mismatches')
1051
1061
  const seq = feature.get('seq')
1052
1062
  const { charWidth, charHeight } = this.getCharWidthHeight(ctx)
1063
+ // @ts-ignore
1064
+ const { bases } = theme.palette
1053
1065
  const colorForBase: { [key: string]: string } = {
1054
- A: theme.palette.bases.A.main,
1055
- C: theme.palette.bases.C.main,
1056
- G: theme.palette.bases.G.main,
1057
- T: theme.palette.bases.T.main,
1066
+ A: bases.A.main,
1067
+ C: bases.C.main,
1068
+ G: bases.G.main,
1069
+ T: bases.T.main,
1058
1070
  deletion: '#808080', // gray
1059
1071
  }
1060
1072
 
@@ -1152,7 +1164,7 @@ export default class PileupRenderer extends BoxRendererType {
1152
1164
  ctx.font = 'bold 10px Courier New,monospace'
1153
1165
 
1154
1166
  const { charWidth, charHeight } = this.getCharWidthHeight(ctx)
1155
- const drawSNPs = shouldDrawSNPs(colorBy?.type)
1167
+ const drawSNPsMuted = shouldDrawSNPsMuted(colorBy?.type)
1156
1168
  const drawIndels = shouldDrawIndels(colorBy?.type)
1157
1169
  for (let i = 0; i < layoutRecords.length; i++) {
1158
1170
  const feat = layoutRecords[i]
@@ -1176,7 +1188,7 @@ export default class PileupRenderer extends BoxRendererType {
1176
1188
  feat,
1177
1189
  renderArgs,
1178
1190
  mismatchAlpha,
1179
- drawSNPs,
1191
+ drawSNPsMuted,
1180
1192
  drawIndels,
1181
1193
  largeInsertionIndicatorScale,
1182
1194
  minSubfeatureWidth,
@@ -1279,22 +1291,20 @@ export default class PileupRenderer extends BoxRendererType {
1279
1291
 
1280
1292
  const width = (end - start) / bpPerPx
1281
1293
  const height = Math.max(layout.getTotalHeight(), 1)
1282
- const res = await renderToAbstractCanvas(
1283
- width,
1284
- height,
1285
- renderProps,
1286
- (ctx: CanvasRenderingContext2D) =>
1287
- this.makeImageData({
1288
- ctx,
1289
- layoutRecords,
1290
- canvasWidth: width,
1291
- renderArgs: {
1292
- ...renderProps,
1293
- layout,
1294
- features,
1295
- regionSequence,
1296
- },
1297
- }),
1294
+ const Color = await import('color').then(f => f.default)
1295
+ const res = await renderToAbstractCanvas(width, height, renderProps, ctx =>
1296
+ this.makeImageData({
1297
+ ctx,
1298
+ layoutRecords,
1299
+ canvasWidth: width,
1300
+ renderArgs: {
1301
+ ...renderProps,
1302
+ layout,
1303
+ features,
1304
+ regionSequence,
1305
+ Color,
1306
+ },
1307
+ }),
1298
1308
  )
1299
1309
 
1300
1310
  const results = await super.render({
@@ -1,8 +1,8 @@
1
+ import React, { useRef, useState, useEffect } from 'react'
1
2
  import { Region } from '@jbrowse/core/util/types'
2
3
  import { PrerenderedCanvas } from '@jbrowse/core/ui'
3
4
  import { bpSpanPx } from '@jbrowse/core/util'
4
5
  import { observer } from 'mobx-react'
5
- import React, { MouseEvent, useRef, useState, useEffect } from 'react'
6
6
  import type { BaseLinearDisplayModel } from '@jbrowse/plugin-linear-genome-view'
7
7
 
8
8
  // used so that user can click-away-from-feature below the laid out features
@@ -91,46 +91,46 @@ function PileupRendering(props: {
91
91
  contextMenuFeature,
92
92
  ])
93
93
 
94
- function onMouseDown(event: MouseEvent) {
94
+ function onMouseDown(event: React.MouseEvent) {
95
95
  setMouseIsDown(true)
96
96
  setMovedDuringLastMouseDown(false)
97
97
  callMouseHandler('MouseDown', event)
98
98
  }
99
99
 
100
- function onMouseEnter(event: MouseEvent) {
100
+ function onMouseEnter(event: React.MouseEvent) {
101
101
  callMouseHandler('MouseEnter', event)
102
102
  }
103
103
 
104
- function onMouseOut(event: MouseEvent) {
104
+ function onMouseOut(event: React.MouseEvent) {
105
105
  callMouseHandler('MouseOut', event)
106
106
  callMouseHandler('MouseLeave', event)
107
107
  }
108
108
 
109
- function onMouseOver(event: MouseEvent) {
109
+ function onMouseOver(event: React.MouseEvent) {
110
110
  callMouseHandler('MouseOver', event)
111
111
  }
112
112
 
113
- function onMouseUp(event: MouseEvent) {
113
+ function onMouseUp(event: React.MouseEvent) {
114
114
  setMouseIsDown(false)
115
115
  callMouseHandler('MouseUp', event)
116
116
  }
117
117
 
118
- function onClick(event: MouseEvent) {
118
+ function onClick(event: React.MouseEvent) {
119
119
  if (!movedDuringLastMouseDown) {
120
120
  callMouseHandler('Click', event)
121
121
  }
122
122
  }
123
123
 
124
- function onMouseLeave(event: MouseEvent) {
124
+ function onMouseLeave(event: React.MouseEvent) {
125
125
  callMouseHandler('MouseOut', event)
126
126
  callMouseHandler('MouseLeave', event)
127
127
  }
128
128
 
129
- function onContextMenu(event: MouseEvent) {
129
+ function onContextMenu(event: React.MouseEvent) {
130
130
  callMouseHandler('ContextMenu', event)
131
131
  }
132
132
 
133
- function mouseMove(event: MouseEvent) {
133
+ function mouseMove(event: React.MouseEvent) {
134
134
  if (mouseIsDown) {
135
135
  setMovedDuringLastMouseDown(true)
136
136
  }
@@ -158,7 +158,7 @@ function PileupRendering(props: {
158
158
  }
159
159
  }
160
160
 
161
- function callMouseHandler(handlerName: string, event: MouseEvent) {
161
+ function callMouseHandler(handlerName: string, event: React.MouseEvent) {
162
162
  // @ts-ignore
163
163
  // eslint-disable-next-line react/destructuring-assignment
164
164
  const featureHandler = props[`onFeature${handlerName}`]
@@ -88,14 +88,15 @@ export default class SNPCoverageAdapter extends BaseFeatureDataAdapter {
88
88
  )
89
89
 
90
90
  bins.forEach((bin, index) => {
91
+ const start = region.start + index
91
92
  observer.next(
92
93
  new SimpleFeature({
93
- id: `${this.id}-${region.start + index}`,
94
+ id: `${this.id}-${start}`,
94
95
  data: {
95
96
  score: bin.total,
96
97
  snpinfo: bin,
97
- start: region.start + index,
98
- end: region.start + index + 1,
98
+ start,
99
+ end: start + 1,
99
100
  refName: region.refName,
100
101
  },
101
102
  }),
@@ -1,6 +1,5 @@
1
1
  import { createJBrowseTheme } from '@jbrowse/core/ui'
2
- import { featureSpanPx, bpSpanPx } from '@jbrowse/core/util'
3
- import { Feature } from '@jbrowse/core/util/simpleFeature'
2
+ import { featureSpanPx, bpSpanPx, Feature } from '@jbrowse/core/util'
4
3
  import { readConfObject } from '@jbrowse/core/configuration'
5
4
  import { RenderArgsDeserialized as FeatureRenderArgsDeserialized } from '@jbrowse/core/pluggableElementTypes/renderers/FeatureRendererType'
6
5
  import {
@@ -39,7 +38,7 @@ interface SNPInfo {
39
38
  export default class SNPCoverageRenderer extends WiggleBaseRenderer {
40
39
  // note: the snps are drawn on linear scale even if the data is drawn in log
41
40
  // scape hence the two different scales being used
42
- draw(
41
+ async draw(
43
42
  ctx: CanvasRenderingContext2D,
44
43
  props: RenderArgsDeserializedWithFeatures,
45
44
  ) {
@@ -94,11 +93,13 @@ export default class SNPCoverageRenderer extends WiggleBaseRenderer {
94
93
  const indicatorToHeight = (n: number) =>
95
94
  indicatorToY(getOrigin('linear')) - indicatorToY(n)
96
95
 
96
+ // @ts-ignore
97
+ const { bases } = theme.palette
97
98
  const colorForBase: { [key: string]: string } = {
98
- A: theme.palette.bases.A.main,
99
- C: theme.palette.bases.C.main,
100
- G: theme.palette.bases.G.main,
101
- T: theme.palette.bases.T.main,
99
+ A: bases.A.main,
100
+ C: bases.C.main,
101
+ G: bases.G.main,
102
+ T: bases.T.main,
102
103
  total: 'lightgrey',
103
104
  insertion: 'purple',
104
105
  softclip: 'blue',
@@ -1,60 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _react = require("@testing-library/react");
6
-
7
- var _mobxStateTree = require("mobx-state-tree");
8
-
9
- var _react2 = _interopRequireDefault(require("react"));
10
-
11
- var _PluginManager = _interopRequireDefault(require("@jbrowse/core/PluginManager"));
12
-
13
- var _configuration = require("@jbrowse/core/configuration");
14
-
15
- var _ = require(".");
16
-
17
- var _AlignmentsFeatureDetail = _interopRequireDefault(require("./AlignmentsFeatureDetail"));
18
-
19
- test('open up a widget', function () {
20
- console.warn = jest.fn();
21
- var pluginManager = new _PluginManager.default([]);
22
-
23
- var Session = _mobxStateTree.types.model({
24
- pluginManager: _mobxStateTree.types.optional(_mobxStateTree.types.frozen(), {}),
25
- rpcManager: _mobxStateTree.types.optional(_mobxStateTree.types.frozen(), {}),
26
- configuration: (0, _configuration.ConfigurationSchema)('test', {}),
27
- widget: (0, _.stateModelFactory)(pluginManager)
28
- });
29
-
30
- var session = Session.create({
31
- widget: {
32
- type: 'AlignmentsFeatureWidget'
33
- }
34
- });
35
- session.widget.setFeatureData({
36
- seq: 'TTGTTGCGGAGTTGAACAACGGCATTAGGAACACTTCCGTCTCTCACTTTTATACGATTATGATTGGTTCTTTAGCCTTGGTTTAGATTGGTAGTAGTAG',
37
- start: 2,
38
- end: 102,
39
- strand: 1,
40
- score: 37,
41
- qual: '17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17 17',
42
- MQ: 37,
43
- CIGAR: '100M',
44
- length_on_ref: 100,
45
- template_length: 0,
46
- seq_length: 100,
47
- name: 'ctgA_3_555_0:0:0_2:0:0_102d',
48
- refName: 'ctgA',
49
- type: 'match'
50
- });
51
-
52
- var _render = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_AlignmentsFeatureDetail.default, {
53
- model: session.widget
54
- })),
55
- container = _render.container,
56
- getByText = _render.getByText;
57
-
58
- expect(container.firstChild).toMatchSnapshot();
59
- expect(getByText('ctgA:3..102 (+)')).toBeTruthy();
60
- });
@@ -1,177 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
-
5
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
6
-
7
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
8
-
9
- var _operators = require("rxjs/operators");
10
-
11
- var _BamAdapter = _interopRequireDefault(require("./BamAdapter"));
12
-
13
- var _configSchema = _interopRequireDefault(require("./configSchema"));
14
-
15
- test('adapter can fetch features from volvox.bam', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee() {
16
- var adapter, features, featuresArray, featuresJsonArray, adapterCSI, featuresCSI, featuresArrayCSI, featuresJsonArrayCSI;
17
- return _regenerator.default.wrap(function _callee$(_context) {
18
- while (1) {
19
- switch (_context.prev = _context.next) {
20
- case 0:
21
- adapter = new _BamAdapter.default(_configSchema.default.create({
22
- bamLocation: {
23
- localPath: require.resolve('../../test_data/volvox-sorted.bam'),
24
- locationType: 'LocalPathLocation'
25
- },
26
- index: {
27
- location: {
28
- localPath: require.resolve('../../test_data/volvox-sorted.bam.bai'),
29
- locationType: 'LocalPathLocation'
30
- }
31
- }
32
- }));
33
- features = adapter.getFeatures({
34
- assemblyName: 'volvox',
35
- refName: 'ctgA',
36
- start: 0,
37
- end: 20000
38
- });
39
- _context.next = 4;
40
- return features.pipe((0, _operators.toArray)()).toPromise();
41
-
42
- case 4:
43
- featuresArray = _context.sent;
44
- expect(featuresArray[0].get('refName')).toBe('ctgA');
45
- featuresJsonArray = featuresArray.map(function (f) {
46
- return f.toJSON();
47
- });
48
- expect(featuresJsonArray.length).toEqual(3809);
49
- expect(featuresJsonArray.slice(1000, 1010)).toMatchSnapshot();
50
- expect(adapter.refIdToName(0)).toBe('ctgA');
51
- expect(adapter.refIdToName(1)).toBe(undefined);
52
- _context.t0 = expect;
53
- _context.next = 14;
54
- return adapter.hasDataForRefName('ctgA');
55
-
56
- case 14:
57
- _context.t1 = _context.sent;
58
- (0, _context.t0)(_context.t1).toBe(true);
59
- adapterCSI = new _BamAdapter.default(_configSchema.default.create({
60
- bamLocation: {
61
- localPath: require.resolve('../../test_data/volvox-sorted.bam'),
62
- locationType: 'LocalPathLocation'
63
- },
64
- index: {
65
- indexType: 'CSI',
66
- location: {
67
- localPath: require.resolve('../../test_data/volvox-sorted.bam.csi'),
68
- locationType: 'LocalPathLocation'
69
- }
70
- }
71
- }));
72
- featuresCSI = adapterCSI.getFeatures({
73
- assemblyName: 'volvox',
74
- refName: 'ctgA',
75
- start: 0,
76
- end: 20000
77
- });
78
- _context.next = 20;
79
- return featuresCSI.pipe((0, _operators.toArray)()).toPromise();
80
-
81
- case 20:
82
- featuresArrayCSI = _context.sent;
83
- featuresJsonArrayCSI = featuresArrayCSI.map(function (f) {
84
- return f.toJSON();
85
- });
86
- expect(featuresJsonArrayCSI).toEqual(featuresJsonArray);
87
-
88
- case 23:
89
- case "end":
90
- return _context.stop();
91
- }
92
- }
93
- }, _callee);
94
- })));
95
- test('test usage of BamSlightlyLazyFeature toJSON (used in the widget)', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee2() {
96
- var adapter, features, featuresArray, f;
97
- return _regenerator.default.wrap(function _callee2$(_context2) {
98
- while (1) {
99
- switch (_context2.prev = _context2.next) {
100
- case 0:
101
- adapter = new _BamAdapter.default(_configSchema.default.create({
102
- bamLocation: {
103
- localPath: require.resolve('../../test_data/volvox-sorted.bam'),
104
- locationType: 'LocalPathLocation'
105
- },
106
- index: {
107
- location: {
108
- localPath: require.resolve('../../test_data/volvox-sorted.bam.bai'),
109
- locationType: 'LocalPathLocation'
110
- },
111
- indexType: 'BAI'
112
- }
113
- }));
114
- features = adapter.getFeatures({
115
- assemblyName: 'volvox',
116
- refName: 'ctgA',
117
- start: 0,
118
- end: 100
119
- });
120
- _context2.next = 4;
121
- return features.pipe((0, _operators.toArray)()).toPromise();
122
-
123
- case 4:
124
- featuresArray = _context2.sent;
125
- f = featuresArray[0].toJSON();
126
- expect(f.refName).toBe('ctgA');
127
- expect(f.start).toBe(2);
128
- expect(f.end).toBe(102);
129
- expect(f.mismatches).not.toBeTruthy();
130
-
131
- case 10:
132
- case "end":
133
- return _context2.stop();
134
- }
135
- }
136
- }, _callee2);
137
- })));
138
- test('test usage of BamSlightlyLazyFeature for extended CIGAR', /*#__PURE__*/(0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee3() {
139
- var adapter, features, featuresArray, f;
140
- return _regenerator.default.wrap(function _callee3$(_context3) {
141
- while (1) {
142
- switch (_context3.prev = _context3.next) {
143
- case 0:
144
- adapter = new _BamAdapter.default(_configSchema.default.create({
145
- bamLocation: {
146
- localPath: require.resolve('../../test_data/extended_cigar.bam'),
147
- locationType: 'LocalPathLocation'
148
- },
149
- index: {
150
- location: {
151
- localPath: require.resolve('../../test_data/extended_cigar.bam.bai'),
152
- locationType: 'LocalPathLocation'
153
- },
154
- indexType: 'BAI'
155
- }
156
- }));
157
- features = adapter.getFeatures({
158
- assemblyName: 'hg19',
159
- refName: '1',
160
- start: 13260,
161
- end: 13340
162
- });
163
- _context3.next = 4;
164
- return features.pipe((0, _operators.toArray)()).toPromise();
165
-
166
- case 4:
167
- featuresArray = _context3.sent;
168
- f = featuresArray[0];
169
- expect(f.get('mismatches')).toMatchSnapshot();
170
-
171
- case 7:
172
- case "end":
173
- return _context3.stop();
174
- }
175
- }
176
- }, _callee3);
177
- })));