@jbrowse/plugin-alignments 2.2.2 → 2.3.1

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 (308) hide show
  1. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
  2. package/dist/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  3. package/dist/AlignmentsTrack/index.js +1 -0
  4. package/dist/AlignmentsTrack/index.js.map +1 -1
  5. package/dist/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
  6. package/dist/BamAdapter/BamSlightlyLazyFeature.js +11 -18
  7. package/dist/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  8. package/dist/BamAdapter/index.js +1 -0
  9. package/dist/BamAdapter/index.js.map +1 -1
  10. package/dist/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
  11. package/dist/CramAdapter/CramSlightlyLazyFeature.js +6 -8
  12. package/dist/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  13. package/dist/CramAdapter/index.js +1 -0
  14. package/dist/CramAdapter/index.js.map +1 -1
  15. package/dist/GuessAlignmentsTypes/index.d.ts +3 -0
  16. package/dist/GuessAlignmentsTypes/index.js +56 -0
  17. package/dist/GuessAlignmentsTypes/index.js.map +1 -0
  18. package/dist/HtsgetBamAdapter/index.js +11 -11
  19. package/dist/HtsgetBamAdapter/index.js.map +1 -1
  20. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
  21. package/dist/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  22. package/dist/LinearAlignmentsDisplay/index.js +1 -0
  23. package/dist/LinearAlignmentsDisplay/index.js.map +1 -1
  24. package/dist/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
  25. package/dist/LinearAlignmentsDisplay/models/configSchema.js +2 -3
  26. package/dist/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  27. package/dist/LinearAlignmentsDisplay/models/model.d.ts +22 -36
  28. package/dist/LinearAlignmentsDisplay/models/model.js +166 -151
  29. package/dist/LinearAlignmentsDisplay/models/model.js.map +1 -1
  30. package/dist/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
  31. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js +2 -4
  32. package/dist/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  33. package/dist/LinearPileupDisplay/configSchema.d.ts +0 -3
  34. package/dist/LinearPileupDisplay/configSchema.js.map +1 -1
  35. package/dist/LinearPileupDisplay/index.js +2 -0
  36. package/dist/LinearPileupDisplay/index.js.map +1 -1
  37. package/dist/LinearPileupDisplay/model.d.ts +19 -16
  38. package/dist/LinearPileupDisplay/model.js +28 -13
  39. package/dist/LinearPileupDisplay/model.js.map +1 -1
  40. package/dist/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
  41. package/dist/LinearReadArcsDisplay/components/ReactComponent.js +49 -0
  42. package/dist/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
  43. package/dist/LinearReadArcsDisplay/configSchema.d.ts +6 -0
  44. package/dist/LinearReadArcsDisplay/configSchema.js +52 -0
  45. package/dist/LinearReadArcsDisplay/configSchema.js.map +1 -0
  46. package/dist/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
  47. package/dist/LinearReadArcsDisplay/drawFeats.js +162 -0
  48. package/dist/LinearReadArcsDisplay/drawFeats.js.map +1 -0
  49. package/dist/LinearReadArcsDisplay/index.d.ts +2 -0
  50. package/dist/LinearReadArcsDisplay/index.js +27 -0
  51. package/dist/LinearReadArcsDisplay/index.js.map +1 -0
  52. package/dist/LinearReadArcsDisplay/model.d.ts +342 -0
  53. package/dist/LinearReadArcsDisplay/model.js +327 -0
  54. package/dist/LinearReadArcsDisplay/model.js.map +1 -0
  55. package/dist/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
  56. package/dist/LinearReadCloudDisplay/components/ReactComponent.js +49 -0
  57. package/dist/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
  58. package/dist/LinearReadCloudDisplay/configSchema.d.ts +6 -0
  59. package/dist/LinearReadCloudDisplay/configSchema.js +51 -0
  60. package/dist/LinearReadCloudDisplay/configSchema.js.map +1 -0
  61. package/dist/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
  62. package/dist/LinearReadCloudDisplay/drawFeats.js +159 -0
  63. package/dist/LinearReadCloudDisplay/drawFeats.js.map +1 -0
  64. package/dist/LinearReadCloudDisplay/index.d.ts +2 -0
  65. package/dist/LinearReadCloudDisplay/index.js +27 -0
  66. package/dist/LinearReadCloudDisplay/index.js.map +1 -0
  67. package/dist/LinearReadCloudDisplay/model.d.ts +320 -0
  68. package/dist/LinearReadCloudDisplay/model.js +252 -0
  69. package/dist/LinearReadCloudDisplay/model.js.map +1 -0
  70. package/dist/LinearSNPCoverageDisplay/index.js +1 -0
  71. package/dist/LinearSNPCoverageDisplay/index.js.map +1 -1
  72. package/dist/LinearSNPCoverageDisplay/models/model.d.ts +19 -20
  73. package/dist/LinearSNPCoverageDisplay/models/model.js +1 -6
  74. package/dist/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  75. package/dist/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
  76. package/dist/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +116 -3
  77. package/dist/MismatchParser/index.js.map +1 -0
  78. package/dist/PileupRPC/base.d.ts +8 -0
  79. package/dist/PileupRPC/base.js +22 -0
  80. package/dist/PileupRPC/base.js.map +1 -0
  81. package/dist/PileupRPC/index.d.ts +3 -0
  82. package/dist/PileupRPC/index.js +9 -0
  83. package/dist/PileupRPC/index.js.map +1 -0
  84. package/dist/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
  85. package/dist/PileupRPC/methods/GetGlobalValueForTag.js +29 -0
  86. package/dist/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
  87. package/dist/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
  88. package/dist/PileupRPC/methods/GetReducedFeatures.js +61 -0
  89. package/dist/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
  90. package/dist/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
  91. package/dist/PileupRPC/methods/GetVisibleModifications.js +32 -0
  92. package/dist/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
  93. package/dist/PileupRPC/rpcMethods.d.ts +4 -34
  94. package/dist/PileupRPC/rpcMethods.js +7 -77
  95. package/dist/PileupRPC/rpcMethods.js.map +1 -1
  96. package/dist/PileupRPC/util.d.ts +8 -0
  97. package/dist/PileupRPC/util.js +20 -0
  98. package/dist/PileupRPC/util.js.map +1 -0
  99. package/dist/PileupRenderer/PileupRenderer.d.ts +1 -1
  100. package/dist/PileupRenderer/PileupRenderer.js +5 -5
  101. package/dist/PileupRenderer/PileupRenderer.js.map +1 -1
  102. package/dist/PileupRenderer/index.js +1 -0
  103. package/dist/PileupRenderer/index.js.map +1 -1
  104. package/dist/PileupRenderer/sortUtil.d.ts +1 -1
  105. package/dist/PileupRenderer/sortUtil.js +2 -2
  106. package/dist/PileupRenderer/sortUtil.js.map +1 -1
  107. package/dist/SNPCoverageAdapter/generateCoverageBins.js +1 -1
  108. package/dist/SNPCoverageAdapter/generateCoverageBins.js.map +1 -1
  109. package/dist/SNPCoverageAdapter/index.js +1 -3
  110. package/dist/SNPCoverageAdapter/index.js.map +1 -1
  111. package/dist/index.d.ts +2 -2
  112. package/dist/index.js +12 -58
  113. package/dist/index.js.map +1 -1
  114. package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
  115. package/dist/{LinearPileupDisplay/components → shared}/FilterByTag.js +3 -9
  116. package/dist/shared/FilterByTag.js.map +1 -0
  117. package/dist/shared/color.d.ts +17 -0
  118. package/dist/shared/color.js +43 -0
  119. package/dist/shared/color.js.map +1 -0
  120. package/dist/shared/fetchChains.d.ts +27 -0
  121. package/dist/shared/fetchChains.js +30 -0
  122. package/dist/shared/fetchChains.js.map +1 -0
  123. package/dist/shared/index.d.ts +36 -0
  124. package/dist/{shared.js → shared/index.js} +12 -2
  125. package/dist/shared/index.js.map +1 -0
  126. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js +1 -1
  127. package/esm/AlignmentsFeatureDetail/AlignmentsFeatureDetail.js.map +1 -1
  128. package/esm/AlignmentsTrack/index.js +1 -0
  129. package/esm/AlignmentsTrack/index.js.map +1 -1
  130. package/esm/BamAdapter/BamSlightlyLazyFeature.d.ts +3 -4
  131. package/esm/BamAdapter/BamSlightlyLazyFeature.js +11 -18
  132. package/esm/BamAdapter/BamSlightlyLazyFeature.js.map +1 -1
  133. package/esm/BamAdapter/index.js +1 -0
  134. package/esm/BamAdapter/index.js.map +1 -1
  135. package/esm/CramAdapter/CramSlightlyLazyFeature.d.ts +5 -7
  136. package/esm/CramAdapter/CramSlightlyLazyFeature.js +6 -8
  137. package/esm/CramAdapter/CramSlightlyLazyFeature.js.map +1 -1
  138. package/esm/CramAdapter/index.js +1 -0
  139. package/esm/CramAdapter/index.js.map +1 -1
  140. package/esm/GuessAlignmentsTypes/index.d.ts +3 -0
  141. package/esm/GuessAlignmentsTypes/index.js +54 -0
  142. package/esm/GuessAlignmentsTypes/index.js.map +1 -0
  143. package/esm/HtsgetBamAdapter/index.js +11 -11
  144. package/esm/HtsgetBamAdapter/index.js.map +1 -1
  145. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js +10 -13
  146. package/esm/LinearAlignmentsDisplay/components/AlignmentsDisplay.js.map +1 -1
  147. package/esm/LinearAlignmentsDisplay/index.js +1 -0
  148. package/esm/LinearAlignmentsDisplay/index.js.map +1 -1
  149. package/esm/LinearAlignmentsDisplay/models/configSchema.d.ts +6 -3
  150. package/esm/LinearAlignmentsDisplay/models/configSchema.js +2 -4
  151. package/esm/LinearAlignmentsDisplay/models/configSchema.js.map +1 -1
  152. package/esm/LinearAlignmentsDisplay/models/model.d.ts +22 -36
  153. package/esm/LinearAlignmentsDisplay/models/model.js +167 -152
  154. package/esm/LinearAlignmentsDisplay/models/model.js.map +1 -1
  155. package/esm/LinearPileupDisplay/components/SetFeatureHeight.d.ts +2 -2
  156. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js +2 -4
  157. package/esm/LinearPileupDisplay/components/SetFeatureHeight.js.map +1 -1
  158. package/esm/LinearPileupDisplay/configSchema.d.ts +0 -3
  159. package/esm/LinearPileupDisplay/configSchema.js.map +1 -1
  160. package/esm/LinearPileupDisplay/index.js +2 -0
  161. package/esm/LinearPileupDisplay/index.js.map +1 -1
  162. package/esm/LinearPileupDisplay/model.d.ts +19 -16
  163. package/esm/LinearPileupDisplay/model.js +29 -14
  164. package/esm/LinearPileupDisplay/model.js.map +1 -1
  165. package/esm/LinearReadArcsDisplay/components/ReactComponent.d.ts +6 -0
  166. package/esm/LinearReadArcsDisplay/components/ReactComponent.js +44 -0
  167. package/esm/LinearReadArcsDisplay/components/ReactComponent.js.map +1 -0
  168. package/esm/LinearReadArcsDisplay/configSchema.d.ts +6 -0
  169. package/esm/LinearReadArcsDisplay/configSchema.js +50 -0
  170. package/esm/LinearReadArcsDisplay/configSchema.js.map +1 -0
  171. package/esm/LinearReadArcsDisplay/drawFeats.d.ts +14 -0
  172. package/esm/LinearReadArcsDisplay/drawFeats.js +157 -0
  173. package/esm/LinearReadArcsDisplay/drawFeats.js.map +1 -0
  174. package/esm/LinearReadArcsDisplay/index.d.ts +2 -0
  175. package/esm/LinearReadArcsDisplay/index.js +21 -0
  176. package/esm/LinearReadArcsDisplay/index.js.map +1 -0
  177. package/esm/LinearReadArcsDisplay/model.d.ts +342 -0
  178. package/esm/LinearReadArcsDisplay/model.js +299 -0
  179. package/esm/LinearReadArcsDisplay/model.js.map +1 -0
  180. package/esm/LinearReadCloudDisplay/components/ReactComponent.d.ts +6 -0
  181. package/esm/LinearReadCloudDisplay/components/ReactComponent.js +44 -0
  182. package/esm/LinearReadCloudDisplay/components/ReactComponent.js.map +1 -0
  183. package/esm/LinearReadCloudDisplay/configSchema.d.ts +6 -0
  184. package/esm/LinearReadCloudDisplay/configSchema.js +49 -0
  185. package/esm/LinearReadCloudDisplay/configSchema.js.map +1 -0
  186. package/esm/LinearReadCloudDisplay/drawFeats.d.ts +10 -0
  187. package/esm/LinearReadCloudDisplay/drawFeats.js +156 -0
  188. package/esm/LinearReadCloudDisplay/drawFeats.js.map +1 -0
  189. package/esm/LinearReadCloudDisplay/index.d.ts +2 -0
  190. package/esm/LinearReadCloudDisplay/index.js +21 -0
  191. package/esm/LinearReadCloudDisplay/index.js.map +1 -0
  192. package/esm/LinearReadCloudDisplay/model.d.ts +320 -0
  193. package/esm/LinearReadCloudDisplay/model.js +224 -0
  194. package/esm/LinearReadCloudDisplay/model.js.map +1 -0
  195. package/esm/LinearSNPCoverageDisplay/index.js +1 -0
  196. package/esm/LinearSNPCoverageDisplay/index.js.map +1 -1
  197. package/esm/LinearSNPCoverageDisplay/models/model.d.ts +19 -20
  198. package/esm/LinearSNPCoverageDisplay/models/model.js +2 -7
  199. package/esm/LinearSNPCoverageDisplay/models/model.js.map +1 -1
  200. package/esm/{BamAdapter/MismatchParser.d.ts → MismatchParser/index.d.ts} +23 -0
  201. package/esm/{BamAdapter/MismatchParser.js → MismatchParser/index.js} +107 -2
  202. package/esm/MismatchParser/index.js.map +1 -0
  203. package/esm/PileupRPC/base.d.ts +8 -0
  204. package/esm/PileupRPC/base.js +16 -0
  205. package/esm/PileupRPC/base.js.map +1 -0
  206. package/esm/PileupRPC/index.d.ts +3 -0
  207. package/esm/PileupRPC/index.js +7 -0
  208. package/esm/PileupRPC/index.js.map +1 -0
  209. package/esm/PileupRPC/methods/GetGlobalValueForTag.d.ts +14 -0
  210. package/esm/PileupRPC/methods/GetGlobalValueForTag.js +23 -0
  211. package/esm/PileupRPC/methods/GetGlobalValueForTag.js.map +1 -0
  212. package/esm/PileupRPC/methods/GetReducedFeatures.d.ts +25 -0
  213. package/esm/PileupRPC/methods/GetReducedFeatures.js +55 -0
  214. package/esm/PileupRPC/methods/GetReducedFeatures.js.map +1 -0
  215. package/esm/PileupRPC/methods/GetVisibleModifications.d.ts +14 -0
  216. package/esm/PileupRPC/methods/GetVisibleModifications.js +26 -0
  217. package/esm/PileupRPC/methods/GetVisibleModifications.js.map +1 -0
  218. package/esm/PileupRPC/rpcMethods.d.ts +4 -34
  219. package/esm/PileupRPC/rpcMethods.js +4 -74
  220. package/esm/PileupRPC/rpcMethods.js.map +1 -1
  221. package/esm/PileupRPC/util.d.ts +8 -0
  222. package/esm/PileupRPC/util.js +15 -0
  223. package/esm/PileupRPC/util.js.map +1 -0
  224. package/esm/PileupRenderer/PileupRenderer.d.ts +1 -1
  225. package/esm/PileupRenderer/PileupRenderer.js +5 -5
  226. package/esm/PileupRenderer/PileupRenderer.js.map +1 -1
  227. package/esm/PileupRenderer/index.js +1 -0
  228. package/esm/PileupRenderer/index.js.map +1 -1
  229. package/esm/PileupRenderer/sortUtil.d.ts +1 -1
  230. package/esm/PileupRenderer/sortUtil.js +1 -1
  231. package/esm/PileupRenderer/sortUtil.js.map +1 -1
  232. package/esm/SNPCoverageAdapter/generateCoverageBins.js +1 -1
  233. package/esm/SNPCoverageAdapter/generateCoverageBins.js.map +1 -1
  234. package/esm/SNPCoverageAdapter/index.js +1 -3
  235. package/esm/SNPCoverageAdapter/index.js.map +1 -1
  236. package/esm/index.d.ts +2 -2
  237. package/esm/index.js +10 -56
  238. package/esm/index.js.map +1 -1
  239. package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.d.ts +0 -0
  240. package/esm/{LinearPileupDisplay/components → shared}/FilterByTag.js +3 -9
  241. package/esm/shared/FilterByTag.js.map +1 -0
  242. package/esm/shared/color.d.ts +17 -0
  243. package/esm/shared/color.js +37 -0
  244. package/esm/shared/color.js.map +1 -0
  245. package/esm/shared/fetchChains.d.ts +27 -0
  246. package/esm/shared/fetchChains.js +26 -0
  247. package/esm/shared/fetchChains.js.map +1 -0
  248. package/esm/shared/index.d.ts +36 -0
  249. package/esm/{shared.js → shared/index.js} +11 -1
  250. package/esm/shared/index.js.map +1 -0
  251. package/package.json +4 -4
  252. package/src/AlignmentsFeatureDetail/AlignmentsFeatureDetail.tsx +1 -1
  253. package/src/AlignmentsTrack/index.ts +1 -0
  254. package/src/BamAdapter/BamSlightlyLazyFeature.ts +13 -19
  255. package/src/BamAdapter/index.ts +1 -0
  256. package/src/CramAdapter/CramSlightlyLazyFeature.ts +13 -15
  257. package/src/CramAdapter/__snapshots__/CramAdapter.test.ts.snap +0 -10
  258. package/src/CramAdapter/index.ts +1 -0
  259. package/src/GuessAlignmentsTypes/index.ts +79 -0
  260. package/src/HtsgetBamAdapter/index.ts +11 -15
  261. package/src/LinearAlignmentsDisplay/components/AlignmentsDisplay.tsx +21 -29
  262. package/src/LinearAlignmentsDisplay/index.ts +1 -0
  263. package/src/LinearAlignmentsDisplay/models/configSchema.ts +2 -6
  264. package/src/LinearAlignmentsDisplay/models/model.tsx +238 -199
  265. package/src/LinearPileupDisplay/components/SetFeatureHeight.tsx +4 -6
  266. package/src/LinearPileupDisplay/configSchema.ts +1 -3
  267. package/src/LinearPileupDisplay/index.ts +2 -0
  268. package/src/LinearPileupDisplay/model.ts +36 -23
  269. package/src/LinearReadArcsDisplay/components/ReactComponent.tsx +86 -0
  270. package/src/LinearReadArcsDisplay/configSchema.ts +58 -0
  271. package/src/LinearReadArcsDisplay/declare.d.ts +1 -0
  272. package/src/LinearReadArcsDisplay/drawFeats.ts +199 -0
  273. package/src/LinearReadArcsDisplay/index.ts +23 -0
  274. package/src/LinearReadArcsDisplay/model.tsx +370 -0
  275. package/src/LinearReadCloudDisplay/components/ReactComponent.tsx +86 -0
  276. package/src/LinearReadCloudDisplay/configSchema.ts +57 -0
  277. package/src/LinearReadCloudDisplay/drawFeats.ts +201 -0
  278. package/src/LinearReadCloudDisplay/index.ts +23 -0
  279. package/src/LinearReadCloudDisplay/model.tsx +289 -0
  280. package/src/LinearSNPCoverageDisplay/index.ts +1 -0
  281. package/src/LinearSNPCoverageDisplay/models/model.ts +3 -13
  282. package/src/{BamAdapter/MismatchParser.test.ts → MismatchParser/index.test.ts} +1 -1
  283. package/src/{BamAdapter/MismatchParser.ts → MismatchParser/index.ts} +129 -2
  284. package/src/PileupRPC/base.ts +24 -0
  285. package/src/PileupRPC/index.ts +12 -0
  286. package/src/PileupRPC/methods/GetGlobalValueForTag.ts +41 -0
  287. package/src/PileupRPC/methods/GetReducedFeatures.ts +76 -0
  288. package/src/PileupRPC/methods/GetVisibleModifications.ts +45 -0
  289. package/src/PileupRPC/rpcMethods.ts +8 -113
  290. package/src/PileupRPC/util.ts +19 -0
  291. package/src/PileupRenderer/PileupRenderer.ts +5 -8
  292. package/src/PileupRenderer/index.ts +1 -0
  293. package/src/PileupRenderer/sortUtil.ts +2 -3
  294. package/src/SNPCoverageAdapter/generateCoverageBins.ts +1 -1
  295. package/src/SNPCoverageAdapter/index.ts +1 -3
  296. package/src/index.ts +12 -93
  297. package/src/{LinearPileupDisplay/components → shared}/FilterByTag.tsx +3 -9
  298. package/src/shared/color.ts +47 -0
  299. package/src/shared/fetchChains.ts +63 -0
  300. package/src/{shared.ts → shared/index.ts} +17 -4
  301. package/dist/BamAdapter/MismatchParser.js.map +0 -1
  302. package/dist/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
  303. package/dist/shared.d.ts +0 -25
  304. package/dist/shared.js.map +0 -1
  305. package/esm/BamAdapter/MismatchParser.js.map +0 -1
  306. package/esm/LinearPileupDisplay/components/FilterByTag.js.map +0 -1
  307. package/esm/shared.d.ts +0 -25
  308. package/esm/shared.js.map +0 -1
@@ -0,0 +1,44 @@
1
+ import React from 'react';
2
+ import { isAlive } from 'mobx-state-tree';
3
+ import { observer } from 'mobx-react';
4
+ import { makeStyles } from 'tss-react/mui';
5
+ import { getContainingView } from '@jbrowse/core/util';
6
+ import { LoadingEllipses } from '@jbrowse/core/ui';
7
+ import { BlockMsg, } from '@jbrowse/plugin-linear-genome-view';
8
+ const useStyles = makeStyles()(theme => ({
9
+ loading: {
10
+ paddingLeft: '0.6em',
11
+ backgroundColor: theme.palette.action.disabledBackground,
12
+ backgroundImage: 'repeating-linear-gradient(45deg, transparent, transparent 5px, rgba(255,255,255,.5) 5px, rgba(255,255,255,.5) 10px)',
13
+ height: '100%',
14
+ width: '100%',
15
+ pointerEvents: 'none',
16
+ textAlign: 'center',
17
+ },
18
+ }));
19
+ const Cloud = observer(function ({ model, }) {
20
+ const view = getContainingView(model);
21
+ return (React.createElement("canvas", { "data-testid": `ReadCloud-display-${model.drawn}`, ref: ref => {
22
+ if (isAlive(model)) {
23
+ model.setRef(ref);
24
+ }
25
+ }, style: {
26
+ position: 'absolute',
27
+ left: -view.offsetPx + model.lastDrawnOffsetPx,
28
+ width: view.dynamicBlocks.totalWidthPx,
29
+ height: model.height,
30
+ }, width: view.dynamicBlocks.totalWidthPx * 2, height: model.height * 2 }));
31
+ });
32
+ export default observer(function ({ model, }) {
33
+ const view = getContainingView(model);
34
+ const { classes } = useStyles();
35
+ const err = model.error;
36
+ return err ? (React.createElement(BlockMsg, { message: `${err}`, severity: "error", buttonText: 'Reload', action: model.reload })) : model.loading ? (React.createElement("div", { className: classes.loading, style: {
37
+ width: view.dynamicBlocks.totalWidthPx,
38
+ height: 20,
39
+ position: 'absolute',
40
+ left: Math.max(0, -view.offsetPx),
41
+ } },
42
+ React.createElement(LoadingEllipses, { message: model.message }))) : (React.createElement(Cloud, { model: model }));
43
+ });
44
+ //# sourceMappingURL=ReactComponent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ReactComponent.js","sourceRoot":"","sources":["../../../src/LinearReadCloudDisplay/components/ReactComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AACzC,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAA;AAC1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AACtD,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAA;AAClD,OAAO,EACL,QAAQ,GAET,MAAM,oCAAoC,CAAA;AAO3C,MAAM,SAAS,GAAG,UAAU,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACvC,OAAO,EAAE;QACP,WAAW,EAAE,OAAO;QACpB,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,kBAAkB;QACxD,eAAe,EACb,qHAAqH;QACvH,MAAM,EAAE,MAAM;QACd,KAAK,EAAE,MAAM;QACb,aAAa,EAAE,MAAM;QACrB,SAAS,EAAE,QAAQ;KACpB;CACF,CAAC,CAAC,CAAA;AAEH,MAAM,KAAK,GAAG,QAAQ,CAAC,UAAU,EAC/B,KAAK,GAGN;IACC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAQ,CAAA;IAC5C,OAAO,CACL,+CACe,qBAAqB,KAAK,CAAC,KAAK,EAAE,EAC/C,GAAG,EAAE,GAAG,CAAC,EAAE;YACT,IAAI,OAAO,CAAC,KAAK,CAAC,EAAE;gBAClB,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;aAClB;QACH,CAAC,EACD,KAAK,EAAE;YACL,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,iBAAiB;YAC9C,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;YACtC,MAAM,EAAE,KAAK,CAAC,MAAM;SACrB,EACD,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY,GAAG,CAAC,EAC1C,MAAM,EAAE,KAAK,CAAC,MAAM,GAAG,CAAC,GACxB,CACH,CAAA;AACH,CAAC,CAAC,CAAA;AAEF,eAAe,QAAQ,CAAC,UAAU,EAChC,KAAK,GAGN;IACC,MAAM,IAAI,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAA;IACrC,MAAM,EAAE,OAAO,EAAE,GAAG,SAAS,EAAE,CAAA;IAC/B,MAAM,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;IACvB,OAAO,GAAG,CAAC,CAAC,CAAC,CACX,oBAAC,QAAQ,IACP,OAAO,EAAE,GAAG,GAAG,EAAE,EACjB,QAAQ,EAAC,OAAO,EAChB,UAAU,EAAE,QAAQ,EACpB,MAAM,EAAE,KAAK,CAAC,MAAM,GACpB,CACH,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAClB,6BACE,SAAS,EAAE,OAAO,CAAC,OAAO,EAC1B,KAAK,EAAE;YACL,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,YAAY;YACtC,MAAM,EAAE,EAAE;YACV,QAAQ,EAAE,UAAU;YACpB,IAAI,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAClC;QAED,oBAAC,eAAe,IAAC,OAAO,EAAE,KAAK,CAAC,OAAO,GAAI,CACvC,CACP,CAAC,CAAC,CAAC,CACF,oBAAC,KAAK,IAAC,KAAK,EAAE,KAAK,GAAI,CACxB,CAAA;AACH,CAAC,CAAC,CAAA"}
@@ -0,0 +1,6 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ /**
3
+ * #config LinearReadCloudDisplay
4
+ */
5
+ declare function configSchemaF(pluginManager: PluginManager): import("@jbrowse/core/configuration").AnyConfigurationSchemaType;
6
+ export default configSchemaF;
@@ -0,0 +1,49 @@
1
+ import { ConfigurationSchema } from '@jbrowse/core/configuration';
2
+ import { linearBasicDisplayConfigSchemaFactory } from '@jbrowse/plugin-linear-genome-view';
3
+ import { types } from 'mobx-state-tree';
4
+ /**
5
+ * #config LinearReadCloudDisplay
6
+ */
7
+ function configSchemaF(pluginManager) {
8
+ return ConfigurationSchema('LinearReadCloudDisplay', {
9
+ /**
10
+ * #slot
11
+ */
12
+ maxFeatureScreenDensity: {
13
+ type: 'number',
14
+ description: 'maximum features per pixel that is displayed in the view',
15
+ defaultValue: 5,
16
+ },
17
+ /**
18
+ * #slot
19
+ */
20
+ featureHeight: {
21
+ type: 'number',
22
+ defaultValue: 7,
23
+ },
24
+ /**
25
+ * #slot
26
+ */
27
+ colorScheme: {
28
+ type: 'stringEnum',
29
+ model: types.enumeration('colorScheme', [
30
+ 'strand',
31
+ 'normal',
32
+ 'insertSize',
33
+ 'insertSizeAndOrientation',
34
+ 'mappingQuality',
35
+ 'tag',
36
+ ]),
37
+ description: 'color scheme to use',
38
+ defaultValue: 'normal',
39
+ },
40
+ }, {
41
+ /**
42
+ * #baseConfiguration
43
+ */
44
+ baseConfiguration: linearBasicDisplayConfigSchemaFactory(pluginManager),
45
+ explicitlyTyped: true,
46
+ });
47
+ }
48
+ export default configSchemaF;
49
+ //# sourceMappingURL=configSchema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"configSchema.js","sourceRoot":"","sources":["../../src/LinearReadCloudDisplay/configSchema.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AACjE,OAAO,EAAE,qCAAqC,EAAE,MAAM,oCAAoC,CAAA;AAC1F,OAAO,EAAE,KAAK,EAAE,MAAM,iBAAiB,CAAA;AAEvC;;GAEG;AACH,SAAS,aAAa,CAAC,aAA4B;IACjD,OAAO,mBAAmB,CACxB,wBAAwB,EACxB;QACE;;WAEG;QACH,uBAAuB,EAAE;YACvB,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,0DAA0D;YACvE,YAAY,EAAE,CAAC;SAChB;QAED;;WAEG;QACH,aAAa,EAAE;YACb,IAAI,EAAE,QAAQ;YACd,YAAY,EAAE,CAAC;SAChB;QAED;;WAEG;QACH,WAAW,EAAE;YACX,IAAI,EAAE,YAAY;YAClB,KAAK,EAAE,KAAK,CAAC,WAAW,CAAC,aAAa,EAAE;gBACtC,QAAQ;gBACR,QAAQ;gBACR,YAAY;gBACZ,0BAA0B;gBAC1B,gBAAgB;gBAChB,KAAK;aACN,CAAC;YACF,WAAW,EAAE,qBAAqB;YAClC,YAAY,EAAE,QAAQ;SACvB;KACF,EACD;QACE;;WAEG;QACH,iBAAiB,EAAE,qCAAqC,CAAC,aAAa,CAAC;QACvE,eAAe,EAAE,IAAI;KACtB,CACF,CAAA;AACH,CAAC;AAED,eAAe,aAAa,CAAA"}
@@ -0,0 +1,10 @@
1
+ import { ChainData } from '../shared/fetchChains';
2
+ export default function drawFeats(self: {
3
+ setLastDrawnOffsetPx: (n: number) => void;
4
+ setError: (e: unknown) => void;
5
+ colorBy?: {
6
+ type: string;
7
+ };
8
+ height: number;
9
+ chainData?: ChainData;
10
+ }, ctx: CanvasRenderingContext2D): Promise<void>;
@@ -0,0 +1,156 @@
1
+ import { getConf } from '@jbrowse/core/configuration';
2
+ import { getContainingView } from '@jbrowse/core/util';
3
+ // locals
4
+ import { getOrientationColor, getInsertSizeColor, getInsertSizeAndOrientationColor, } from '../shared/color';
5
+ // avoid drawing negative width features for SVG exports
6
+ function fillRectCtx(x, y, width, height, ctx, color) {
7
+ if (width < 0) {
8
+ x += width;
9
+ width = -width;
10
+ }
11
+ if (height < 0) {
12
+ y += height;
13
+ height = -height;
14
+ }
15
+ if (color) {
16
+ ctx.fillStyle = color;
17
+ }
18
+ ctx.fillRect(x, y, width, height);
19
+ }
20
+ export default async function drawFeats(self, ctx) {
21
+ var _a;
22
+ const { chainData } = self;
23
+ if (!chainData) {
24
+ return;
25
+ }
26
+ const featureHeight = getConf(self, 'featureHeight');
27
+ const displayHeight = self.height;
28
+ const view = getContainingView(self);
29
+ self.setLastDrawnOffsetPx(view.offsetPx);
30
+ const { chains, stats } = chainData;
31
+ const coords = [];
32
+ for (let i = 0; i < chains.length; i++) {
33
+ const chain = chains[i];
34
+ // if we're looking at a paired read (flag 1) then assume it is just two
35
+ // reads (some small cases may defy this assumption such as secondary
36
+ // alignments but this may be uncommon)
37
+ if (chain[0].flags & 1 && chain.length > 1) {
38
+ const v0 = chain[0];
39
+ const v1 = chain[1];
40
+ const r1s = view.bpToPx({
41
+ refName: v0.refName,
42
+ coord: v0.start,
43
+ });
44
+ const r1e = view.bpToPx({
45
+ refName: v0.refName,
46
+ coord: v0.end,
47
+ });
48
+ const r2s = view.bpToPx({
49
+ refName: v1.refName,
50
+ coord: v1.start,
51
+ });
52
+ const r2e = view.bpToPx({
53
+ refName: v1.refName,
54
+ coord: v1.end,
55
+ });
56
+ let distance = 0;
57
+ if (r1s !== undefined &&
58
+ r1e !== undefined &&
59
+ r2s !== undefined &&
60
+ r2e !== undefined) {
61
+ if (v0.refName === v1.refName) {
62
+ const s = Math.min(v0.start, v1.start);
63
+ const e = Math.max(v0.end, v1.end);
64
+ distance = Math.abs(e - s);
65
+ }
66
+ coords.push({
67
+ r1s: r1s.offsetPx,
68
+ r1e: r1e.offsetPx,
69
+ r2s: r2s.offsetPx,
70
+ r2e: r2e.offsetPx,
71
+ v0,
72
+ v1,
73
+ distance,
74
+ });
75
+ }
76
+ }
77
+ else {
78
+ // if we're not looking at pairs, then it could be a multiply-split-long
79
+ // read, so traverse chain
80
+ for (let i = 1; i < chain.length; i++) {
81
+ const v0 = chain[i - 1];
82
+ const v1 = chain[i];
83
+ const r1s = view.bpToPx({
84
+ refName: v0.refName,
85
+ coord: v0.start,
86
+ });
87
+ const r1e = view.bpToPx({
88
+ refName: v0.refName,
89
+ coord: v0.end,
90
+ });
91
+ const r2s = view.bpToPx({
92
+ refName: v1.refName,
93
+ coord: v1.start,
94
+ });
95
+ const r2e = view.bpToPx({
96
+ refName: v1.refName,
97
+ coord: v1.end,
98
+ });
99
+ let distance = 0;
100
+ if (r1s !== undefined &&
101
+ r1e !== undefined &&
102
+ r2s !== undefined &&
103
+ r2e !== undefined) {
104
+ if (v0.refName === v1.refName) {
105
+ const s = Math.min(v0.start, v1.start);
106
+ const e = Math.max(v0.end, v1.end);
107
+ distance = Math.abs(e - s);
108
+ }
109
+ coords.push({
110
+ r1s: r1s.offsetPx,
111
+ r1e: r1e.offsetPx,
112
+ r2s: r2s.offsetPx,
113
+ r2e: r2e.offsetPx,
114
+ v0,
115
+ v1,
116
+ distance,
117
+ });
118
+ }
119
+ }
120
+ }
121
+ }
122
+ let max = 0;
123
+ for (let i = 0; i < coords.length; i++) {
124
+ const { distance } = coords[i];
125
+ max = Math.max(max, distance);
126
+ }
127
+ const halfHeight = featureHeight / 2 - 0.5;
128
+ const scaler = (displayHeight - 20) / Math.log(max);
129
+ for (let i = 0; i < coords.length; i++) {
130
+ const { r1s, r1e, r2s, r2e, v0, v1, distance } = coords[i];
131
+ const type = ((_a = self.colorBy) === null || _a === void 0 ? void 0 : _a.type) || 'insertSizeAndOrientation';
132
+ const top = Math.log(distance) * scaler;
133
+ ctx.fillStyle = 'black';
134
+ const w = r2s - r1e;
135
+ fillRectCtx(r1e - view.offsetPx, top + halfHeight, w, 1, ctx);
136
+ if (type === 'insertSizeAndOrientation') {
137
+ ctx.fillStyle = getInsertSizeAndOrientationColor(v0, v1, stats);
138
+ }
139
+ else if (type === 'orientation') {
140
+ ctx.fillStyle = getOrientationColor(v0);
141
+ }
142
+ else if (type === 'insertSize') {
143
+ ctx.fillStyle = getInsertSizeColor(v0, v1, stats) || 'grey';
144
+ }
145
+ else if (type === 'gradient') {
146
+ const s = Math.min(v0.start, v1.start);
147
+ const e = Math.max(v0.end, v1.end);
148
+ ctx.fillStyle = `hsl(${Math.log10(Math.abs(e - s)) * 10},50%,50%)`;
149
+ }
150
+ const w1 = Math.max(r1e - r1s, 2);
151
+ const w2 = Math.max(r2e - r2s, 2);
152
+ fillRectCtx(r1s - view.offsetPx, top, w1, featureHeight, ctx);
153
+ fillRectCtx(r2s - view.offsetPx, top, w2, featureHeight, ctx);
154
+ }
155
+ }
156
+ //# sourceMappingURL=drawFeats.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawFeats.js","sourceRoot":"","sources":["../../src/LinearReadCloudDisplay/drawFeats.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,6BAA6B,CAAA;AACrD,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAA;AAGtD,SAAS;AACT,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,gCAAgC,GACjC,MAAM,iBAAiB,CAAA;AAexB,wDAAwD;AACxD,SAAS,WAAW,CAClB,CAAS,EACT,CAAS,EACT,KAAa,EACb,MAAc,EACd,GAA6B,EAC7B,KAAc;IAEd,IAAI,KAAK,GAAG,CAAC,EAAE;QACb,CAAC,IAAI,KAAK,CAAA;QACV,KAAK,GAAG,CAAC,KAAK,CAAA;KACf;IACD,IAAI,MAAM,GAAG,CAAC,EAAE;QACd,CAAC,IAAI,MAAM,CAAA;QACX,MAAM,GAAG,CAAC,MAAM,CAAA;KACjB;IAED,IAAI,KAAK,EAAE;QACT,GAAG,CAAC,SAAS,GAAG,KAAK,CAAA;KACtB;IACD,GAAG,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,CAAA;AACnC,CAAC;AAED,MAAM,CAAC,OAAO,CAAC,KAAK,UAAU,SAAS,CACrC,IAMC,EACD,GAA6B;;IAE7B,MAAM,EAAE,SAAS,EAAE,GAAG,IAAI,CAAA;IAC1B,IAAI,CAAC,SAAS,EAAE;QACd,OAAM;KACP;IACD,MAAM,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,eAAe,CAAC,CAAA;IACpD,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAA;IACjC,MAAM,IAAI,GAAG,iBAAiB,CAAC,IAAI,CAAQ,CAAA;IAE3C,IAAI,CAAC,oBAAoB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IAExC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,SAAS,CAAA;IACnC,MAAM,MAAM,GAAiB,EAAE,CAAA;IAC/B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QACvB,wEAAwE;QACxE,qEAAqE;QACrE,uCAAuC;QACvC,IAAI,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;YAC1C,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;YACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,KAAK,EAAE,EAAE,CAAC,KAAK;aAChB,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,KAAK,EAAE,EAAE,CAAC,GAAG;aACd,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,KAAK,EAAE,EAAE,CAAC,KAAK;aAChB,CAAC,CAAA;YACF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;gBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;gBACnB,KAAK,EAAE,EAAE,CAAC,GAAG;aACd,CAAC,CAAA;YACF,IAAI,QAAQ,GAAG,CAAC,CAAA;YAEhB,IACE,GAAG,KAAK,SAAS;gBACjB,GAAG,KAAK,SAAS;gBACjB,GAAG,KAAK,SAAS;gBACjB,GAAG,KAAK,SAAS,EACjB;gBACA,IAAI,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE;oBAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;oBACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;oBAClC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;iBAC3B;gBACD,MAAM,CAAC,IAAI,CAAC;oBACV,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,GAAG,EAAE,GAAG,CAAC,QAAQ;oBACjB,EAAE;oBACF,EAAE;oBACF,QAAQ;iBACT,CAAC,CAAA;aACH;SACF;aAAM;YACL,wEAAwE;YACxE,0BAA0B;YAC1B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;gBACrC,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;gBACvB,MAAM,EAAE,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;gBACnB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,KAAK,EAAE,EAAE,CAAC,KAAK;iBAChB,CAAC,CAAA;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,KAAK,EAAE,EAAE,CAAC,GAAG;iBACd,CAAC,CAAA;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,KAAK,EAAE,EAAE,CAAC,KAAK;iBAChB,CAAC,CAAA;gBACF,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;oBACtB,OAAO,EAAE,EAAE,CAAC,OAAO;oBACnB,KAAK,EAAE,EAAE,CAAC,GAAG;iBACd,CAAC,CAAA;gBACF,IAAI,QAAQ,GAAG,CAAC,CAAA;gBAEhB,IACE,GAAG,KAAK,SAAS;oBACjB,GAAG,KAAK,SAAS;oBACjB,GAAG,KAAK,SAAS;oBACjB,GAAG,KAAK,SAAS,EACjB;oBACA,IAAI,EAAE,CAAC,OAAO,KAAK,EAAE,CAAC,OAAO,EAAE;wBAC7B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;wBACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;wBAClC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAA;qBAC3B;oBACD,MAAM,CAAC,IAAI,CAAC;wBACV,GAAG,EAAE,GAAG,CAAC,QAAQ;wBACjB,GAAG,EAAE,GAAG,CAAC,QAAQ;wBACjB,GAAG,EAAE,GAAG,CAAC,QAAQ;wBACjB,GAAG,EAAE,GAAG,CAAC,QAAQ;wBACjB,EAAE;wBACF,EAAE;wBACF,QAAQ;qBACT,CAAC,CAAA;iBACH;aACF;SACF;KACF;IAED,IAAI,GAAG,GAAG,CAAC,CAAA;IACX,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAC9B,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAA;KAC9B;IACD,MAAM,UAAU,GAAG,aAAa,GAAG,CAAC,GAAG,GAAG,CAAA;IAC1C,MAAM,MAAM,GAAG,CAAC,aAAa,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAEnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;QACtC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,CAAA;QAC1D,MAAM,IAAI,GAAG,CAAA,MAAA,IAAI,CAAC,OAAO,0CAAE,IAAI,KAAI,0BAA0B,CAAA;QAE7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAA;QACvC,GAAG,CAAC,SAAS,GAAG,OAAO,CAAA;QACvB,MAAM,CAAC,GAAG,GAAG,GAAG,GAAG,CAAA;QACnB,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,CAAA;QAE7D,IAAI,IAAI,KAAK,0BAA0B,EAAE;YACvC,GAAG,CAAC,SAAS,GAAG,gCAAgC,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,CAAA;SAChE;aAAM,IAAI,IAAI,KAAK,aAAa,EAAE;YACjC,GAAG,CAAC,SAAS,GAAG,mBAAmB,CAAC,EAAE,CAAC,CAAA;SACxC;aAAM,IAAI,IAAI,KAAK,YAAY,EAAE;YAChC,GAAG,CAAC,SAAS,GAAG,kBAAkB,CAAC,EAAE,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,MAAM,CAAA;SAC5D;aAAM,IAAI,IAAI,KAAK,UAAU,EAAE;YAC9B,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,CAAA;YACtC,MAAM,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,CAAA;YAClC,GAAG,CAAC,SAAS,GAAG,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,EAAE,WAAW,CAAA;SACnE;QAED,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;QACjC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC,CAAA;QACjC,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;QAC7D,WAAW,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAAa,EAAE,GAAG,CAAC,CAAA;KAC9D;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ import PluginManager from '@jbrowse/core/PluginManager';
2
+ export default function register(pluginManager: PluginManager): void;
@@ -0,0 +1,21 @@
1
+ import DisplayType from '@jbrowse/core/pluggableElementTypes/DisplayType';
2
+ // locals
3
+ import ReactComponent from './components/ReactComponent';
4
+ import configSchemaF from './configSchema';
5
+ import stateModelF from './model';
6
+ export default function register(pluginManager) {
7
+ pluginManager.addDisplayType(() => {
8
+ const configSchema = configSchemaF(pluginManager);
9
+ return new DisplayType({
10
+ name: 'LinearReadCloudDisplay',
11
+ displayName: 'Read cloud display',
12
+ configSchema,
13
+ stateModel: stateModelF(configSchema),
14
+ trackType: 'AlignmentsTrack',
15
+ viewType: 'LinearGenomeView',
16
+ subDisplay: { type: 'LinearAlignmentsDisplay', lowerPanel: true },
17
+ ReactComponent,
18
+ });
19
+ });
20
+ }
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/LinearReadCloudDisplay/index.ts"],"names":[],"mappings":"AACA,OAAO,WAAW,MAAM,iDAAiD,CAAA;AAEzE,SAAS;AACT,OAAO,cAAc,MAAM,6BAA6B,CAAA;AACxD,OAAO,aAAa,MAAM,gBAAgB,CAAA;AAC1C,OAAO,WAAW,MAAM,SAAS,CAAA;AAEjC,MAAM,CAAC,OAAO,UAAU,QAAQ,CAAC,aAA4B;IAC3D,aAAa,CAAC,cAAc,CAAC,GAAG,EAAE;QAChC,MAAM,YAAY,GAAG,aAAa,CAAC,aAAa,CAAC,CAAA;QACjD,OAAO,IAAI,WAAW,CAAC;YACrB,IAAI,EAAE,wBAAwB;YAC9B,WAAW,EAAE,oBAAoB;YACjC,YAAY;YACZ,UAAU,EAAE,WAAW,CAAC,YAAY,CAAC;YACrC,SAAS,EAAE,iBAAiB;YAC5B,QAAQ,EAAE,kBAAkB;YAC5B,UAAU,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,IAAI,EAAE;YACjE,cAAc;SACf,CAAC,CAAA;IACJ,CAAC,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,320 @@
1
+ import React from 'react';
2
+ import { Instance } from 'mobx-state-tree';
3
+ import { AnyConfigurationSchemaType } from '@jbrowse/core/configuration';
4
+ import { ChainData } from '../shared/fetchChains';
5
+ import { ExportSvgOptions } from '@jbrowse/plugin-linear-genome-view/src/LinearGenomeView';
6
+ interface Filter {
7
+ flagInclude: number;
8
+ flagExclude: number;
9
+ readName?: string;
10
+ tagFilter?: {
11
+ tag: string;
12
+ value: string;
13
+ };
14
+ }
15
+ /**
16
+ * #stateModel LinearReadCloudDisplay
17
+ * extends `BaseLinearDisplay`
18
+ */
19
+ declare function stateModelFactory(configSchema: AnyConfigurationSchemaType): import("mobx-state-tree").IModelType<{
20
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
21
+ type: import("mobx-state-tree").ISimpleType<string>;
22
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
23
+ } & {
24
+ height: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
25
+ blockState: import("mobx-state-tree").IMapType<import("mobx-state-tree").IModelType<{
26
+ key: import("mobx-state-tree").ISimpleType<string>;
27
+ region: import("mobx-state-tree").IModelType<{
28
+ refName: import("mobx-state-tree").ISimpleType<string>;
29
+ /**
30
+ * #property
31
+ */
32
+ start: import("mobx-state-tree").ISimpleType<number>;
33
+ end: import("mobx-state-tree").ISimpleType<number>;
34
+ reversed: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<boolean>, [undefined]>;
35
+ } & {
36
+ assemblyName: import("mobx-state-tree").ISimpleType<string>;
37
+ }, {
38
+ setRefName(newRefName: string): void;
39
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>;
40
+ reloadFlag: import("mobx-state-tree").IType<number | undefined, number, number>;
41
+ isLeftEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
42
+ isRightEndOfDisplayedRegion: import("mobx-state-tree").IType<boolean | undefined, boolean, boolean>;
43
+ }, {
44
+ renderInProgress: AbortController | undefined;
45
+ filled: boolean;
46
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>> | undefined;
47
+ features: Map<string, import("@jbrowse/core/util").Feature> | undefined;
48
+ layout: any;
49
+ /**
50
+ * #action
51
+ */
52
+ status: string;
53
+ error: unknown;
54
+ message: string | undefined;
55
+ maxHeightReached: boolean;
56
+ ReactComponent: ({ model, }: {
57
+ model: any;
58
+ }) => any;
59
+ /**
60
+ * #action
61
+ */
62
+ renderProps: any;
63
+ } & {
64
+ doReload(): void;
65
+ afterAttach(): void;
66
+ setStatus(message: string): void;
67
+ setLoading(abortController: AbortController): void;
68
+ setMessage(messageText: string): void;
69
+ setRendered(props: {
70
+ reactElement: React.ReactElement<any, string | React.JSXElementConstructor<any>>;
71
+ features: Map<string, import("@jbrowse/core/util").Feature>; /**
72
+ * #getter
73
+ */
74
+ layout: any;
75
+ maxHeightReached: boolean;
76
+ renderProps: any;
77
+ } | undefined): void;
78
+ setError(error: unknown): void;
79
+ reload(): void;
80
+ beforeDestroy(): void;
81
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
82
+ userBpPerPxLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
83
+ userByteSizeLimit: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<number>>;
84
+ } & {
85
+ /**
86
+ * #property
87
+ */
88
+ type: import("mobx-state-tree").ISimpleType<"LinearReadCloudDisplay">;
89
+ /**
90
+ * #property
91
+ */
92
+ configuration: import("mobx-state-tree").ITypeUnion<any, any, any>;
93
+ /**
94
+ * #property
95
+ */
96
+ filterBy: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").IModelType<{
97
+ flagInclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
98
+ flagExclude: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<number>, [undefined]>;
99
+ readName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
100
+ tagFilter: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
101
+ tag: import("mobx-state-tree").ISimpleType<string>;
102
+ value: import("mobx-state-tree").ISimpleType<string>;
103
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
104
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>, [undefined]>;
105
+ /**
106
+ * #property
107
+ */
108
+ colorBy: import("mobx-state-tree").IMaybe<import("mobx-state-tree").IModelType<{
109
+ type: import("mobx-state-tree").ISimpleType<string>;
110
+ tag: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
111
+ extra: import("mobx-state-tree").IType<any, any, any>;
112
+ }, {}, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
113
+ }, {
114
+ rendererTypeName: string;
115
+ error: unknown;
116
+ } & {
117
+ readonly RenderingComponent: React.FC<{
118
+ model: {
119
+ id: string;
120
+ type: string;
121
+ rpcDriverName: string | undefined;
122
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
123
+ rendererTypeName: string;
124
+ error: unknown;
125
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
126
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
127
+ type: import("mobx-state-tree").ISimpleType<string>;
128
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
129
+ }, {
130
+ rendererTypeName: string;
131
+ error: unknown;
132
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
133
+ onHorizontalScroll?: Function | undefined;
134
+ blockState?: Record<string, any> | undefined;
135
+ }>;
136
+ readonly DisplayBlurb: React.FC<{
137
+ model: {
138
+ id: string;
139
+ type: string;
140
+ rpcDriverName: string | undefined;
141
+ } & import("mobx-state-tree/dist/internal").NonEmptyObject & {
142
+ rendererTypeName: string;
143
+ error: unknown;
144
+ } & import("mobx-state-tree").IStateTreeNode<import("mobx-state-tree").IModelType<{
145
+ id: import("mobx-state-tree").IOptionalIType<import("mobx-state-tree").ISimpleType<string>, [undefined]>;
146
+ type: import("mobx-state-tree").ISimpleType<string>;
147
+ rpcDriverName: import("mobx-state-tree").IMaybe<import("mobx-state-tree").ISimpleType<string>>;
148
+ }, {
149
+ rendererTypeName: string;
150
+ error: unknown;
151
+ }, import("mobx-state-tree")._NotCustomized, import("mobx-state-tree")._NotCustomized>>;
152
+ }> | null;
153
+ readonly adapterConfig: any;
154
+ readonly parentTrack: any;
155
+ renderProps(): any;
156
+ readonly rendererType: import("@jbrowse/core/pluggableElementTypes").RendererType;
157
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
158
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
159
+ readonly viewMenuActions: import("@jbrowse/core/ui").MenuItem[];
160
+ regionCannotBeRendered(): undefined;
161
+ } & {
162
+ setError(error?: unknown): void;
163
+ setRpcDriverName(rpcDriverName: string): void;
164
+ reload(): void;
165
+ } & {
166
+ currBpPerPx: number;
167
+ scrollTop: number;
168
+ message: string;
169
+ featureIdUnderMouse: string | undefined;
170
+ contextMenuFeature: import("@jbrowse/core/util").Feature | undefined;
171
+ estimatedRegionStatsP: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined;
172
+ estimatedRegionStats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined;
173
+ } & {
174
+ readonly blockType: "dynamicBlocks" | "staticBlocks";
175
+ readonly blockDefinitions: import("@jbrowse/core/util/blockTypes").BlockSet;
176
+ } & {
177
+ readonly renderDelay: number;
178
+ readonly TooltipComponent: React.FC<any>;
179
+ readonly selectedFeatureId: string | undefined;
180
+ readonly DisplayMessageComponent: React.FC<any> | undefined;
181
+ } & {
182
+ readonly features: import("@jbrowse/core/util/compositeMap").default<string, import("@jbrowse/core/util").Feature>;
183
+ readonly featureUnderMouse: import("@jbrowse/core/util").Feature | undefined;
184
+ getFeatureOverlapping(blockKey: string, x: number, y: number): any;
185
+ getFeatureByID(blockKey: string, id: string): [number, number, number, number] | undefined;
186
+ searchFeatureByID(id: string): [number, number, number, number] | undefined;
187
+ readonly currentBytesRequested: number;
188
+ readonly currentFeatureScreenDensity: number;
189
+ readonly maxFeatureScreenDensity: any;
190
+ readonly estimatedStatsReady: boolean;
191
+ readonly maxAllowableBytes: number;
192
+ } & {
193
+ setMessage(message: string): void;
194
+ afterAttach(): void;
195
+ estimateRegionsStats(regions: import("@jbrowse/core/util").Region[], opts: {
196
+ headers?: Record<string, string> | undefined;
197
+ signal?: AbortSignal | undefined;
198
+ filters?: string[] | undefined;
199
+ }): Promise<{}>;
200
+ setRegionStatsP(p?: Promise<import("@jbrowse/core/data_adapters/BaseAdapter").Stats> | undefined): void;
201
+ setRegionStats(estimatedRegionStats?: import("@jbrowse/core/data_adapters/BaseAdapter").Stats | undefined): void;
202
+ clearRegionStats(): void;
203
+ setHeight(displayHeight: number): number;
204
+ resizeHeight(distance: number): number;
205
+ setScrollTop(scrollTop: number): void;
206
+ updateStatsLimit(stats: import("@jbrowse/core/data_adapters/BaseAdapter").Stats): void;
207
+ addBlock(key: string, block: import("@jbrowse/core/util/blockTypes").BaseBlock): void;
208
+ setCurrBpPerPx(n: number): void;
209
+ deleteBlock(key: string): void;
210
+ selectFeature(feature: import("@jbrowse/core/util").Feature): void;
211
+ clearFeatureSelection(): void;
212
+ setFeatureIdUnderMouse(feature: string | undefined): void;
213
+ reload(): void;
214
+ setContextMenuFeature(feature?: import("@jbrowse/core/util").Feature | undefined): void;
215
+ } & {
216
+ readonly regionTooLarge: boolean;
217
+ readonly regionTooLargeReason: string;
218
+ } & {
219
+ reload(): Promise<void>;
220
+ afterAttach(): void;
221
+ } & {
222
+ regionCannotBeRenderedText(_region: import("@jbrowse/core/util").Region): "" | "Force load to see features";
223
+ regionCannotBeRendered(_region: import("@jbrowse/core/util").Region): JSX.Element | null;
224
+ trackMenuItems(): import("@jbrowse/core/ui").MenuItem[];
225
+ contextMenuItems(): {
226
+ label: string;
227
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
228
+ muiName: string;
229
+ };
230
+ onClick: () => void;
231
+ }[];
232
+ renderProps(): any;
233
+ } & {
234
+ renderSvg(opts: ExportSvgOptions & {
235
+ overrideHeight: number;
236
+ }): Promise<JSX.Element>;
237
+ } & {
238
+ loading: boolean;
239
+ drawn: boolean;
240
+ chainData: ChainData | undefined;
241
+ ref: HTMLCanvasElement | null;
242
+ lastDrawnOffsetPx: number;
243
+ } & {
244
+ /**
245
+ * #action
246
+ * internal, a reference to a HTMLCanvas because we use a autorun to draw the canvas
247
+ */
248
+ reload(): void;
249
+ /**
250
+ * #action
251
+ */
252
+ setRef(ref: HTMLCanvasElement | null): void;
253
+ setColorScheme(s: {
254
+ type: string;
255
+ }): void;
256
+ /**
257
+ * #action
258
+ */
259
+ setChainData(args: ChainData): void;
260
+ /**
261
+ * #action
262
+ */
263
+ setLoading(f: boolean): void;
264
+ /**
265
+ * #action
266
+ */
267
+ setDrawn(f: boolean): void;
268
+ /**
269
+ * #action
270
+ */
271
+ setFilterBy(filter: Filter): void;
272
+ /**
273
+ * #action
274
+ */
275
+ setLastDrawnOffsetPx(n: number): void;
276
+ } & {
277
+ /**
278
+ * #getter
279
+ */
280
+ readonly ready: boolean;
281
+ readonly rendererTypeName: string;
282
+ renderProps(): any;
283
+ /**
284
+ * #method
285
+ */
286
+ trackMenuItems(): (import("@jbrowse/core/ui").MenuDivider | import("@jbrowse/core/ui").MenuSubHeader | import("@jbrowse/core/ui").NormalMenuItem | import("@jbrowse/core/ui").CheckboxMenuItem | import("@jbrowse/core/ui").RadioMenuItem | import("@jbrowse/core/ui").SubMenuItem | {
287
+ label: string;
288
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
289
+ muiName: string;
290
+ };
291
+ onClick: () => void;
292
+ subMenu?: undefined;
293
+ } | {
294
+ label: string;
295
+ icon: import("@mui/material/OverridableComponent").OverridableComponent<import("@mui/material").SvgIconTypeMap<{}, "svg">> & {
296
+ muiName: string;
297
+ };
298
+ subMenu: {
299
+ label: string;
300
+ onClick: () => void;
301
+ }[];
302
+ onClick?: undefined;
303
+ })[];
304
+ /**
305
+ * #method
306
+ */
307
+ renderSvg(opts: ExportSvgOptions): Promise<JSX.Element | undefined>;
308
+ } & {
309
+ afterAttach(): void;
310
+ }, import("mobx-state-tree")._NotCustomized, {
311
+ type: string;
312
+ height: number;
313
+ id: string;
314
+ rpcDriverName: string | undefined;
315
+ userBpPerPxLimit: number | undefined;
316
+ userByteSizeLimit: number | undefined;
317
+ } & import("mobx-state-tree")._NotCustomized>;
318
+ export type LinearReadCloudDisplayStateModel = ReturnType<typeof stateModelFactory>;
319
+ export type LinearReadCloudDisplayModel = Instance<LinearReadCloudDisplayStateModel>;
320
+ export default stateModelFactory;