higlass 1.13.5 → 2.0.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 (392) hide show
  1. package/README.md +48 -54
  2. package/app/globals.d.ts +1 -1
  3. package/app/missing-types.d.ts +4 -1
  4. package/app/scripts/AddTrackDialog.jsx +11 -4
  5. package/app/scripts/AddTrackPositionMenu.jsx +28 -7
  6. package/app/scripts/Annotations1dTrack.js +90 -251
  7. package/app/scripts/Annotations2dTrack.js +12 -7
  8. package/app/scripts/Autocomplete.jsx +13 -28
  9. package/app/scripts/AxisPixi.js +6 -10
  10. package/app/scripts/BarTrack.js +3 -3
  11. package/app/scripts/BedLikeTrack.js +556 -449
  12. package/app/scripts/Button.jsx +1 -1
  13. package/app/scripts/CNVIntervalTrack.js +1 -1
  14. package/app/scripts/CenterTrack.jsx +8 -7
  15. package/app/scripts/Chromosome2DAnnotations.js +1 -1
  16. package/app/scripts/Chromosome2DLabels.js +1 -1
  17. package/app/scripts/ChromosomeGrid.js +49 -38
  18. package/app/scripts/ChromosomeInfo.js +1 -1
  19. package/app/scripts/CombinedTrack.js +3 -1
  20. package/app/scripts/ConfigTrackMenu.jsx +1 -1
  21. package/app/scripts/ConfigViewMenu.jsx +2 -2
  22. package/app/scripts/ContextMenuContainer.jsx +4 -2
  23. package/app/scripts/ContextMenuItem.jsx +14 -2
  24. package/app/scripts/CrossRule.js +1 -1
  25. package/app/scripts/CustomTrackDialog.jsx +2 -2
  26. package/app/scripts/Dialog.jsx +2 -2
  27. package/app/scripts/DragListeningDiv.jsx +1 -1
  28. package/app/scripts/DraggableDiv.jsx +2 -3
  29. package/app/scripts/ExportLinkDialog.jsx +1 -1
  30. package/app/scripts/FilledLine.js +349 -0
  31. package/app/scripts/GalleryTracks.jsx +77 -78
  32. package/app/scripts/GenomePositionSearchBox.jsx +184 -482
  33. package/app/scripts/HeatmapOptions.jsx +4 -2
  34. package/app/scripts/HeatmapTiledPixiTrack.js +23 -32
  35. package/app/scripts/HiGlassComponent.jsx +515 -444
  36. package/app/scripts/HiGlassComponentContext.js +5 -0
  37. package/app/scripts/Horizontal1dHeatmapTrack.js +1 -1
  38. package/app/scripts/Horizontal2DDomainsTrack.js +1 -1
  39. package/app/scripts/HorizontalChromosomeLabels.js +28 -22
  40. package/app/scripts/HorizontalGeneAnnotationsTrack.js +1 -1
  41. package/app/scripts/HorizontalHeatmapTrack.js +2 -2
  42. package/app/scripts/HorizontalMultivecTrack.js +6 -7
  43. package/app/scripts/HorizontalRule.js +1 -2
  44. package/app/scripts/HorizontalTiled1DPixiTrack.js +4 -4
  45. package/app/scripts/HorizontalTiledPlot.jsx +9 -9
  46. package/app/scripts/LeftTrackModifier.js +4 -0
  47. package/app/scripts/ListWrapper.jsx +1 -2
  48. package/app/scripts/MapboxTilesTrack.js +1 -2
  49. package/app/scripts/Modal.jsx +2 -2
  50. package/app/scripts/MoveableTrack.jsx +10 -12
  51. package/app/scripts/NestedContextMenu.jsx +2 -1
  52. package/app/scripts/OSMTileIdsTrack.js +1 -1
  53. package/app/scripts/OverlayTrack.js +4 -4
  54. package/app/scripts/PixiTrack.js +27 -13
  55. package/app/scripts/PlotTypeChooser.jsx +3 -4
  56. package/app/scripts/SearchField.js +5 -5
  57. package/app/scripts/SeriesListItems.jsx +3 -4
  58. package/app/scripts/SeriesListMenu.jsx +95 -53
  59. package/app/scripts/SeriesListSubmenuMixin.jsx +2 -1
  60. package/app/scripts/SketchInlinePicker.jsx +2 -2
  61. package/app/scripts/SortableList.jsx +1 -1
  62. package/app/scripts/Tiled1DPixiTrack.js +4 -1
  63. package/app/scripts/TiledPixiTrack.js +244 -102
  64. package/app/scripts/TiledPlot.jsx +565 -118
  65. package/app/scripts/TilesetFinder.jsx +12 -4
  66. package/app/scripts/Track.js +1 -1
  67. package/app/scripts/TrackArea.jsx +4 -0
  68. package/app/scripts/TrackControl.jsx +2 -2
  69. package/app/scripts/TrackRenderer.jsx +32 -33
  70. package/app/scripts/ValueIntervalTrack.js +1 -1
  71. package/app/scripts/VerticalRule.js +2 -2
  72. package/app/scripts/VerticalTiledPlot.jsx +7 -7
  73. package/app/scripts/ViewConfigEditor.jsx +1 -1
  74. package/app/scripts/ViewContextMenu.jsx +53 -5
  75. package/app/scripts/ViewHeader.jsx +9 -9
  76. package/app/scripts/ViewportTracker2D.js +1 -1
  77. package/app/scripts/api.js +92 -12
  78. package/app/scripts/configs/available-track-types.js +1 -1
  79. package/app/scripts/configs/index.js +6 -1
  80. package/app/scripts/configs/positions-by-datatype.js +2 -2
  81. package/app/scripts/configs/primitives.js +2 -0
  82. package/app/scripts/configs/themes.js +0 -1
  83. package/app/scripts/configs/tracks-info-by-type.js +11 -8
  84. package/app/scripts/configs/tracks-info.js +3 -2
  85. package/app/scripts/d3-context-menu.js +3 -4
  86. package/app/scripts/data-fetchers/DataFetcher.js +35 -36
  87. package/app/scripts/data-fetchers/genbank-fetcher.js +13 -22
  88. package/app/scripts/data-fetchers/local-tile-fetcher.js +10 -8
  89. package/app/scripts/hglib.jsx +62 -71
  90. package/app/scripts/hocs/with-modal.jsx +32 -10
  91. package/app/scripts/hocs/with-pub-sub.js +12 -3
  92. package/app/scripts/hocs/with-theme.jsx +21 -14
  93. package/app/scripts/icons.jsx +3 -2
  94. package/app/scripts/mixwith.js +2 -2
  95. package/app/scripts/options-info.js +49 -11
  96. package/app/scripts/plugins/get-data-fetcher.js +2 -3
  97. package/app/scripts/services/chrom-info.js +32 -4
  98. package/app/scripts/services/element-resize-listener.js +2 -2
  99. package/app/scripts/services/index.js +0 -1
  100. package/app/scripts/services/tile-proxy.js +368 -285
  101. package/app/scripts/services/worker.js +31 -28
  102. package/app/scripts/test-helpers/index.js +2 -1
  103. package/app/scripts/test-helpers/test-helpers.jsx +157 -69
  104. package/app/scripts/types.ts +118 -47
  105. package/app/scripts/utils/LruCache.js +3 -2
  106. package/app/scripts/utils/assert.js +19 -0
  107. package/app/scripts/utils/background-task-scheduler.js +2 -0
  108. package/app/scripts/utils/color-domain-to-rgba-array.js +13 -3
  109. package/app/scripts/utils/copy-text-to-clipboard.js +36 -0
  110. package/app/scripts/utils/decompress.js +33 -0
  111. package/app/scripts/utils/default-tracks.js +46 -0
  112. package/app/scripts/utils/dict-items.js +1 -0
  113. package/app/scripts/utils/dict-keys.js +1 -0
  114. package/app/scripts/utils/dict-values.js +1 -0
  115. package/app/scripts/utils/expand-combined-tracks.js +11 -7
  116. package/app/scripts/utils/fill-in-min-widths.js +47 -21
  117. package/app/scripts/utils/flatten.js +0 -1
  118. package/app/scripts/utils/get-aggregation-function.js +1 -1
  119. package/app/scripts/utils/get-default-track-for-datatype.js +37 -10
  120. package/app/scripts/utils/get-default-tracks-for-datatype.ts +46 -0
  121. package/app/scripts/utils/get-higlass-components.js +27 -3
  122. package/app/scripts/utils/get-track-position-by-uid.js +8 -1
  123. package/app/scripts/utils/get-xylofon.js +12 -9
  124. package/app/scripts/utils/has-parent.js +5 -5
  125. package/app/scripts/utils/hex-string-to-int.js +1 -1
  126. package/app/scripts/utils/index.js +1 -0
  127. package/app/scripts/utils/interval-tree.js +222 -177
  128. package/app/scripts/utils/load-chrom-infos.js +4 -1
  129. package/app/scripts/utils/pixi-text-to-svg.js +5 -9
  130. package/app/scripts/utils/positioned-tracks-to-all-tracks.js +55 -0
  131. package/app/scripts/utils/range-query-2d.js +3 -3
  132. package/app/scripts/utils/reduce.js +12 -5
  133. package/app/scripts/utils/segments-to-rows.js +14 -11
  134. package/app/scripts/utils/svg-line.js +7 -8
  135. package/app/scripts/utils/type-guards.js +16 -7
  136. package/app/scripts/utils/visit-positioned-tracks.js +9 -4
  137. package/app/styles/AddTrackPositionMenu.module.scss +37 -0
  138. package/app/styles/HiGlass.module.scss +3 -1
  139. package/app/styles/d3-context-menu.css +0 -1
  140. package/app/styles/prism.css +1 -0
  141. package/dist/app/schema.json +525 -0
  142. package/dist/app/scripts/AddTrackDialog.d.ts +64 -0
  143. package/dist/app/scripts/AddTrackPositionMenu.d.ts +5 -0
  144. package/dist/app/scripts/Annotations1dTrack.d.ts +15 -0
  145. package/dist/app/scripts/Annotations2dTrack.d.ts +95 -0
  146. package/dist/app/scripts/ArrowheadDomainsTrack.d.ts +36 -0
  147. package/dist/app/scripts/Autocomplete.d.ts +102 -0
  148. package/dist/app/scripts/AxisPixi.d.ts +25 -0
  149. package/dist/app/scripts/BarTrack.d.ts +28 -0
  150. package/dist/app/scripts/BedLikeTrack.d.ts +84 -0
  151. package/dist/app/scripts/Button.d.ts +3 -0
  152. package/dist/app/scripts/CNVIntervalTrack.d.ts +12 -0
  153. package/dist/app/scripts/CenterTiledPlot.d.ts +3 -0
  154. package/dist/app/scripts/CenterTrack.d.ts +92 -0
  155. package/dist/app/scripts/Chromosome2DAnnotations.d.ts +10 -0
  156. package/dist/app/scripts/Chromosome2DLabels.d.ts +13 -0
  157. package/dist/app/scripts/ChromosomeGrid.d.ts +24 -0
  158. package/dist/app/scripts/ChromosomeInfo.d.ts +14 -0
  159. package/dist/app/scripts/CloseTrackMenu.d.ts +10 -0
  160. package/dist/app/scripts/CombinedTrack.d.ts +32 -0
  161. package/dist/app/scripts/ConfigTrackMenu.d.ts +10 -0
  162. package/dist/app/scripts/ConfigViewMenu.d.ts +34 -0
  163. package/dist/app/scripts/ConfigureSeriesMenu.d.ts +3 -0
  164. package/dist/app/scripts/ContextMenuContainer.d.ts +36 -0
  165. package/dist/app/scripts/ContextMenuItem.d.ts +34 -0
  166. package/dist/app/scripts/Cross.d.ts +3 -0
  167. package/dist/app/scripts/CrossRule.d.ts +24 -0
  168. package/dist/app/scripts/CustomTrackDialog.d.ts +17 -0
  169. package/dist/app/scripts/Dialog.d.ts +5 -0
  170. package/dist/app/scripts/DivergentBarTrack.d.ts +4 -0
  171. package/dist/app/scripts/DragListeningDiv.d.ts +32 -0
  172. package/dist/app/scripts/DraggableDiv.d.ts +63 -0
  173. package/dist/app/scripts/ExportLinkDialog.d.ts +21 -0
  174. package/dist/app/scripts/FilledLine.d.ts +5 -0
  175. package/dist/app/scripts/FixedTrack.d.ts +5 -0
  176. package/dist/app/scripts/GalleryTracks.d.ts +20 -0
  177. package/dist/app/scripts/GenomePositionSearchBox.d.ts +95 -0
  178. package/dist/app/scripts/HeatmapOptions.d.ts +30 -0
  179. package/dist/app/scripts/HeatmapTiledPixiTrack.d.ts +184 -0
  180. package/dist/app/scripts/HiGlassComponent.d.ts +762 -0
  181. package/dist/app/scripts/HiGlassComponentContext.d.ts +3 -0
  182. package/dist/app/scripts/HiGlassTrackComponent.d.ts +37 -0
  183. package/dist/app/scripts/Horizontal1dHeatmapTrack.d.ts +9 -0
  184. package/dist/app/scripts/Horizontal2DDomainsTrack.d.ts +21 -0
  185. package/dist/app/scripts/HorizontalChromosomeLabels.d.ts +47 -0
  186. package/dist/app/scripts/HorizontalGeneAnnotationsTrack.d.ts +25 -0
  187. package/dist/app/scripts/HorizontalHeatmapTrack.d.ts +12 -0
  188. package/dist/app/scripts/HorizontalItem.d.ts +3 -0
  189. package/dist/app/scripts/HorizontalLine1DPixiTrack.d.ts +23 -0
  190. package/dist/app/scripts/HorizontalMultivecTrack.d.ts +50 -0
  191. package/dist/app/scripts/HorizontalPoint1DPixiTrack.d.ts +5 -0
  192. package/dist/app/scripts/HorizontalRule.d.ts +22 -0
  193. package/dist/app/scripts/HorizontalTiled1DPixiTrack.d.ts +26 -0
  194. package/dist/app/scripts/HorizontalTiledPlot.d.ts +49 -0
  195. package/dist/app/scripts/HorizontalTrack.d.ts +6 -0
  196. package/dist/app/scripts/Id2DTiledPixiTrack.d.ts +10 -0
  197. package/dist/app/scripts/IdHorizontal1DTiledPixiTrack.d.ts +6 -0
  198. package/dist/app/scripts/IdVertical1DTiledPixiTrack.d.ts +7 -0
  199. package/dist/app/scripts/LeftAxisTrack.d.ts +9 -0
  200. package/dist/app/scripts/LeftTrackModifier.d.ts +29 -0
  201. package/dist/app/scripts/ListWrapper.d.ts +64 -0
  202. package/dist/app/scripts/MapboxTilesTrack.d.ts +9 -0
  203. package/dist/app/scripts/Modal.d.ts +5 -0
  204. package/dist/app/scripts/MoveableTrack.d.ts +18 -0
  205. package/dist/app/scripts/NestedContextMenu.d.ts +7 -0
  206. package/dist/app/scripts/OSMTileIdsTrack.d.ts +5 -0
  207. package/dist/app/scripts/OSMTilesTrack.d.ts +129 -0
  208. package/dist/app/scripts/OverlayTrack.d.ts +13 -0
  209. package/dist/app/scripts/PixiTrack.d.ts +174 -0
  210. package/dist/app/scripts/PlotTypeChooser.d.ts +25 -0
  211. package/dist/app/scripts/PopupMenu.d.ts +28 -0
  212. package/dist/app/scripts/RasterTilesTrack.d.ts +9 -0
  213. package/dist/app/scripts/RuleMixin.d.ts +2 -0
  214. package/dist/app/scripts/SVGTrack.d.ts +15 -0
  215. package/dist/app/scripts/SearchField.d.ts +13 -0
  216. package/dist/app/scripts/SeriesListItems.d.ts +2 -0
  217. package/dist/app/scripts/SeriesListMenu.d.ts +51 -0
  218. package/dist/app/scripts/SeriesListSubmenuMixin.d.ts +2 -0
  219. package/dist/app/scripts/SketchInlinePicker.d.ts +25 -0
  220. package/dist/app/scripts/SortableList.d.ts +22 -0
  221. package/dist/app/scripts/SquareMarkersTrack.d.ts +22 -0
  222. package/dist/app/scripts/Tiled1DPixiTrack.d.ts +60 -0
  223. package/dist/app/scripts/TiledPixiTrack.d.ts +369 -0
  224. package/dist/app/scripts/TiledPlot.d.ts +313 -0
  225. package/dist/app/scripts/TilesetFinder.d.ts +65 -0
  226. package/dist/app/scripts/TopAxisTrack.d.ts +9 -0
  227. package/dist/app/scripts/Track.d.ts +196 -0
  228. package/dist/app/scripts/TrackArea.d.ts +26 -0
  229. package/dist/app/scripts/TrackControl.d.ts +5 -0
  230. package/dist/app/scripts/TrackRenderer.d.ts +724 -0
  231. package/dist/app/scripts/UnknownPixiTrack.d.ts +7 -0
  232. package/dist/app/scripts/ValueIntervalTrack.d.ts +6 -0
  233. package/dist/app/scripts/VerticalItem.d.ts +3 -0
  234. package/dist/app/scripts/VerticalRule.d.ts +21 -0
  235. package/dist/app/scripts/VerticalTiled1DPixiTrack.d.ts +6 -0
  236. package/dist/app/scripts/VerticalTiledPlot.d.ts +50 -0
  237. package/dist/app/scripts/VerticalTrack.d.ts +6 -0
  238. package/dist/app/scripts/ViewConfigEditor.d.ts +53 -0
  239. package/dist/app/scripts/ViewContextMenu.d.ts +17 -0
  240. package/dist/app/scripts/ViewHeader.d.ts +75 -0
  241. package/dist/app/scripts/ViewportTracker2D.d.ts +17 -0
  242. package/dist/app/scripts/ViewportTracker2DPixi.d.ts +11 -0
  243. package/dist/app/scripts/ViewportTrackerHorizontal.d.ts +17 -0
  244. package/dist/app/scripts/ViewportTrackerVertical.d.ts +17 -0
  245. package/dist/app/scripts/api.d.ts +640 -0
  246. package/dist/app/scripts/configs/available-track-types.d.ts +2 -0
  247. package/dist/app/scripts/configs/colormaps.d.ts +2 -0
  248. package/dist/app/scripts/configs/datatype-to-track-type.d.ts +4 -0
  249. package/dist/app/scripts/configs/default-tracks-for-datatype.d.ts +38 -0
  250. package/dist/app/scripts/configs/dense-data-extrema-config.d.ts +2 -0
  251. package/dist/app/scripts/configs/globals.d.ts +5 -0
  252. package/dist/app/scripts/configs/index.d.ts +16 -0
  253. package/dist/app/scripts/configs/positions-by-datatype.d.ts +2 -0
  254. package/dist/app/scripts/configs/primitives.d.ts +20 -0
  255. package/dist/app/scripts/configs/themes.d.ts +3 -0
  256. package/dist/app/scripts/configs/tracks-info-by-type.d.ts +4 -0
  257. package/dist/app/scripts/configs/tracks-info.d.ts +24 -0
  258. package/dist/app/scripts/d3-context-menu.d.ts +2 -0
  259. package/dist/app/scripts/data-fetchers/DataFetcher.d.ts +151 -0
  260. package/dist/app/scripts/data-fetchers/genbank-fetcher.d.ts +86 -0
  261. package/dist/app/scripts/data-fetchers/index.d.ts +3 -0
  262. package/dist/app/scripts/data-fetchers/local-tile-fetcher.d.ts +47 -0
  263. package/dist/app/scripts/gosling-exports.d.ts +17 -0
  264. package/dist/app/scripts/hglib.d.ts +24 -0
  265. package/dist/app/scripts/hocs/with-modal.d.ts +19 -0
  266. package/dist/app/scripts/hocs/with-pub-sub.d.ts +22 -0
  267. package/dist/app/scripts/hocs/with-theme.d.ts +13 -0
  268. package/dist/app/scripts/icons.d.ts +161 -0
  269. package/dist/app/scripts/mixwith.d.ts +27 -0
  270. package/dist/app/scripts/options-info.d.ts +1355 -0
  271. package/dist/app/scripts/plugins/available-for-plugins.d.ts +2338 -0
  272. package/dist/app/scripts/plugins/get-data-fetcher.d.ts +2 -0
  273. package/dist/app/scripts/plugins/index.d.ts +2 -0
  274. package/dist/app/scripts/services/chrom-info.d.ts +10 -0
  275. package/dist/app/scripts/services/dom-event.d.ts +7 -0
  276. package/dist/app/scripts/services/element-resize-listener.d.ts +5 -0
  277. package/dist/app/scripts/services/index.d.ts +5 -0
  278. package/dist/app/scripts/services/tile-proxy.d.ts +180 -0
  279. package/dist/app/scripts/services/worker.d.ts +157 -0
  280. package/dist/app/scripts/symbol.d.ts +13 -0
  281. package/dist/app/scripts/test-helpers/index.d.ts +1 -0
  282. package/dist/app/scripts/test-helpers/test-helpers.d.ts +33 -0
  283. package/dist/app/scripts/track-utils.d.ts +73 -0
  284. package/dist/app/scripts/types.d.ts +199 -0
  285. package/dist/app/scripts/utils/DenseDataExtrema1D.d.ts +88 -0
  286. package/dist/app/scripts/utils/DenseDataExtrema2D.d.ts +97 -0
  287. package/dist/app/scripts/utils/LruCache.d.ts +44 -0
  288. package/dist/app/scripts/utils/abs-to-chr.d.ts +14 -0
  289. package/dist/app/scripts/utils/accessor-transposition.d.ts +14 -0
  290. package/dist/app/scripts/utils/add-arrays.d.ts +18 -0
  291. package/dist/app/scripts/utils/add-class.d.ts +8 -0
  292. package/dist/app/scripts/utils/add-event-listener-once.d.ts +11 -0
  293. package/dist/app/scripts/utils/assert.d.ts +17 -0
  294. package/dist/app/scripts/utils/background-task-scheduler.d.ts +47 -0
  295. package/dist/app/scripts/utils/base64-to-canvas.d.ts +9 -0
  296. package/dist/app/scripts/utils/chr-to-abs.d.ts +10 -0
  297. package/dist/app/scripts/utils/chrom-info-bisector.d.ts +4 -0
  298. package/dist/app/scripts/utils/clone-event.d.ts +12 -0
  299. package/dist/app/scripts/utils/color-domain-to-rgba-array.d.ts +13 -0
  300. package/dist/app/scripts/utils/color-to-hex.d.ts +9 -0
  301. package/dist/app/scripts/utils/color-to-rgba.d.ts +9 -0
  302. package/dist/app/scripts/utils/copy-text-to-clipboard.d.ts +2 -0
  303. package/dist/app/scripts/utils/data-to-genomic-loci.d.ts +11 -0
  304. package/dist/app/scripts/utils/debounce.d.ts +5 -0
  305. package/dist/app/scripts/utils/dec-to-hex-str.d.ts +8 -0
  306. package/dist/app/scripts/utils/decompress.d.ts +27 -0
  307. package/dist/app/scripts/utils/default-tracks.d.ts +3 -0
  308. package/dist/app/scripts/utils/dict-from-tuples.d.ts +11 -0
  309. package/dist/app/scripts/utils/dict-items.d.ts +18 -0
  310. package/dist/app/scripts/utils/dict-keys.d.ts +10 -0
  311. package/dist/app/scripts/utils/dict-values.d.ts +8 -0
  312. package/dist/app/scripts/utils/download.d.ts +7 -0
  313. package/dist/app/scripts/utils/expand-combined-tracks.d.ts +11 -0
  314. package/dist/app/scripts/utils/fake-pub-sub.d.ts +11 -0
  315. package/dist/app/scripts/utils/fill-in-min-widths.d.ts +44 -0
  316. package/dist/app/scripts/utils/flatten.d.ts +9 -0
  317. package/dist/app/scripts/utils/for-each.d.ts +9 -0
  318. package/dist/app/scripts/utils/forward-event.d.ts +7 -0
  319. package/dist/app/scripts/utils/genome-loci-to-pixels.d.ts +9 -0
  320. package/dist/app/scripts/utils/genomic-range-to-chromosome-chunks.d.ts +21 -0
  321. package/dist/app/scripts/utils/get-aggregation-function.d.ts +10 -0
  322. package/dist/app/scripts/utils/get-default-track-for-datatype.d.ts +21 -0
  323. package/dist/app/scripts/utils/get-default-tracks-for-datatype.d.ts +3 -0
  324. package/dist/app/scripts/utils/get-element-dim.d.ts +7 -0
  325. package/dist/app/scripts/utils/get-higlass-components.d.ts +7 -0
  326. package/dist/app/scripts/utils/get-track-by-uid.d.ts +7 -0
  327. package/dist/app/scripts/utils/get-track-conf-from-hgc.d.ts +10 -0
  328. package/dist/app/scripts/utils/get-track-obj-by-id.d.ts +2 -0
  329. package/dist/app/scripts/utils/get-track-position-by-uid.d.ts +13 -0
  330. package/dist/app/scripts/utils/get-xylofon.d.ts +2 -0
  331. package/dist/app/scripts/utils/gradient.d.ts +14 -0
  332. package/dist/app/scripts/utils/has-class.d.ts +8 -0
  333. package/dist/app/scripts/utils/has-parent.d.ts +9 -0
  334. package/dist/app/scripts/utils/hex-string-to-int.d.ts +14 -0
  335. package/dist/app/scripts/utils/index.d.ts +89 -0
  336. package/dist/app/scripts/utils/interval-tree.d.ts +109 -0
  337. package/dist/app/scripts/utils/into-the-void.d.ts +6 -0
  338. package/dist/app/scripts/utils/is-track-or-child-track.d.ts +7 -0
  339. package/dist/app/scripts/utils/is-track-range-selectable.d.ts +2 -0
  340. package/dist/app/scripts/utils/is-within.d.ts +12 -0
  341. package/dist/app/scripts/utils/lat-to-y.d.ts +9 -0
  342. package/dist/app/scripts/utils/lng-to-x.d.ts +8 -0
  343. package/dist/app/scripts/utils/load-chrom-infos.d.ts +8 -0
  344. package/dist/app/scripts/utils/map.d.ts +13 -0
  345. package/dist/app/scripts/utils/max-non-zero.d.ts +6 -0
  346. package/dist/app/scripts/utils/max.d.ts +10 -0
  347. package/dist/app/scripts/utils/min-non-zero.d.ts +6 -0
  348. package/dist/app/scripts/utils/min.d.ts +10 -0
  349. package/dist/app/scripts/utils/mod.d.ts +9 -0
  350. package/dist/app/scripts/utils/ndarray-assign.d.ts +2 -0
  351. package/dist/app/scripts/utils/ndarray-flatten.d.ts +2 -0
  352. package/dist/app/scripts/utils/ndarray-to-list.d.ts +2 -0
  353. package/dist/app/scripts/utils/numericify-version.d.ts +6 -0
  354. package/dist/app/scripts/utils/obj-vals.d.ts +8 -0
  355. package/dist/app/scripts/utils/or.d.ts +8 -0
  356. package/dist/app/scripts/utils/parse-chromsizes-rows.d.ts +34 -0
  357. package/dist/app/scripts/utils/pixi-text-to-svg.d.ts +2 -0
  358. package/dist/app/scripts/utils/positioned-tracks-to-all-tracks.d.ts +26 -0
  359. package/dist/app/scripts/utils/q.d.ts +18 -0
  360. package/dist/app/scripts/utils/rad-to-deg.d.ts +7 -0
  361. package/dist/app/scripts/utils/range-query-2d.d.ts +17 -0
  362. package/dist/app/scripts/utils/reduce.d.ts +14 -0
  363. package/dist/app/scripts/utils/rel-to-abs-chrom-pos.d.ts +10 -0
  364. package/dist/app/scripts/utils/remove-class.d.ts +7 -0
  365. package/dist/app/scripts/utils/reset-d3-brush-style.d.ts +10 -0
  366. package/dist/app/scripts/utils/rgb-to-hex.d.ts +8 -0
  367. package/dist/app/scripts/utils/scales-center-and-k.d.ts +12 -0
  368. package/dist/app/scripts/utils/scales-to-genome-loci.d.ts +3 -0
  369. package/dist/app/scripts/utils/segments-to-rows.d.ts +15 -0
  370. package/dist/app/scripts/utils/selected-items-to-cum-weights.d.ts +12 -0
  371. package/dist/app/scripts/utils/selected-items-to-size.d.ts +13 -0
  372. package/dist/app/scripts/utils/show-mouse-position.d.ts +54 -0
  373. package/dist/app/scripts/utils/some.d.ts +10 -0
  374. package/dist/app/scripts/utils/sum.d.ts +8 -0
  375. package/dist/app/scripts/utils/svg-line.d.ts +2 -0
  376. package/dist/app/scripts/utils/throttle-and-debounce.d.ts +33 -0
  377. package/dist/app/scripts/utils/tile-to-canvas.d.ts +9 -0
  378. package/dist/app/scripts/utils/timeout.d.ts +3 -0
  379. package/dist/app/scripts/utils/to-void.d.ts +3 -0
  380. package/dist/app/scripts/utils/total-track-pixel-height.d.ts +27 -0
  381. package/dist/app/scripts/utils/trim-trailing-slash.d.ts +7 -0
  382. package/dist/app/scripts/utils/type-guards.d.ts +36 -0
  383. package/dist/app/scripts/utils/value-to-color.d.ts +12 -0
  384. package/dist/app/scripts/utils/visit-positioned-tracks.d.ts +18 -0
  385. package/dist/app/scripts/utils/visit-tracks.d.ts +9 -0
  386. package/dist/esm.html +1 -3
  387. package/dist/hglib.js +86315 -100592
  388. package/dist/hglib.min.js +123 -131
  389. package/dist/higlass.mjs +88861 -103138
  390. package/dist/index.html +1 -3
  391. package/dist/package.json +134 -0
  392. package/package.json +25 -27
@@ -0,0 +1,724 @@
1
+ /** @typedef {import('./types').Scale} Scale */
2
+ /** @typedef {import('./types').TrackConfig} TrackConfig */
3
+ /** @typedef {import('./types').TrackObject} TrackObject */
4
+ /** @typedef {import('./types').TilesetInfo} TilesetInfo */
5
+ /** @typedef {TrackRenderer["setCenter"]} SetCentersFunction */
6
+ /** @typedef {(x: Scale, y: Scale) => [Scale, Scale]} ProjectorFunction */
7
+ /**
8
+ * @typedef TrackDefinition
9
+ * @property {TrackConfig} track
10
+ * @property {number} width
11
+ * @property {number} height
12
+ * @property {number} top
13
+ * @property {number} left
14
+ */
15
+ /**
16
+ * @typedef MetaPluginTrackContext
17
+ * @property {(trackId: string) => TrackObject | undefined} getTrackObject
18
+ * @property {() => void} onNewTilesLoaded
19
+ * @property {TrackConfig} definition
20
+ */
21
+ /**
22
+ * @typedef {Object} PluginTrackContext
23
+ * @property {string} id
24
+ * @property {string} trackUid
25
+ * @property {string} trackType
26
+ * @property {string} viewUid
27
+ * @property {import('pub-sub-es').PubSub} pubSub
28
+ * @property {import("pixi.js").Graphics} scene
29
+ * @property {Record<string, unknown>} dataConfig
30
+ * @property {unknown} dataFetcher
31
+ * @property {() => unknown} getLockGroupExtrema
32
+ * @property {(tilesetInfo: TilesetInfo) => void} handleTilesetInfoReceived
33
+ * @property {() => void} animate
34
+ * @property {HTMLElement} svgElement
35
+ * @property {() => boolean} isValueScaleLocked
36
+ * @property {() => void} onValueScaleChanged
37
+ * @property {(newOption: Record<string, unknown>) => void} onTrackOptionsChanged
38
+ * @property {() => void} onMouseMoveZoom
39
+ * @property {string=} chromInfoPath
40
+ * @property {() => boolean} isShowGlobalMousePosition
41
+ * @property {() => import('./types').Theme} getTheme
42
+ * @property {unknown=} AVAILABLE_FOR_PLUGINS
43
+ * @property {(HTMLDivElement | null)=} baseEl
44
+ * @property {TrackConfig=} definition
45
+ * @property {number=} x
46
+ * @property {number=} y
47
+ * @property {number=} xPosition
48
+ * @property {number=} yPosition
49
+ * @property {[number, number]=} projectionXDomain
50
+ * @property {[number, number]=} projectionYDomain
51
+ * @property {unknown=} registerViewportChanged
52
+ * @property {unknown=} removeViewportChanged
53
+ * @property {unknown=} setDomainsCallback
54
+ * @property {TrackConfig[]=} tracks
55
+ * @property {TrackRenderer["createTrackObject"]=} createTrackObject
56
+ * @property {string=} orientation
57
+ * @property {boolean=} isOverlay
58
+ */
59
+ /**
60
+ * @typedef PluginTrack
61
+ * @property {{ new (availableForPlugins: unknown, context: PluginTrackContext, options: Record<string, unknown>): TrackObject }} track
62
+ * @property {false=} isMetaTrack
63
+ */
64
+ /**
65
+ * @typedef MetaPluginTrack
66
+ * @property {{ new (availableForPlugins: unknown, context: MetaPluginTrackContext, options: Record<string, unknown>): TrackObject }} track
67
+ * @property {true} isMetaTrack
68
+ */
69
+ /**
70
+ * @template T
71
+ * @typedef {T & { __zoom?: import('d3-zoom').ZoomTransform }} WithZoomTransform
72
+ */
73
+ /**
74
+ * @typedef TrackRendererProps
75
+ * @property {HTMLElement} canvasElement
76
+ * @property {number} centerHeight
77
+ * @property {number} centerWidth
78
+ * @property {Array<JSX.Element>} children
79
+ * @property {number} galleryDim
80
+ * @property {number} height
81
+ * @property {[number, number]} initialXDomain
82
+ * @property {[number, number]} initialYDomain
83
+ * @property {boolean} isShowGlobalMousePosition
84
+ * @property {boolean} isRangeSelection
85
+ * @property {number} leftWidth
86
+ * @property {number} leftWidthNoGallery
87
+ * @property {number} paddingLeft
88
+ * @property {number} paddingTop
89
+ * @property {Array<TrackConfig>} metaTracks
90
+ * @property {() => void} onMouseMoveZoom
91
+ * @property {(trackId?: string) => void} onNewTilesLoaded
92
+ * @property {(x: Scale, y: Scale) => void} onScalesChanged
93
+ * @property {import("pixi.js").Renderer} pixiRenderer
94
+ * @property {import("pixi.js").Container} pixiStage
95
+ * @property {Record<string, unknown>} pluginDataFetchers
96
+ * @property {Record<string, PluginTrack | MetaPluginTrack>} pluginTracks
97
+ * @property {Array<TrackDefinition>} positionedTracks
98
+ * @property {import('pub-sub-es').PubSub} pubSub
99
+ * @property {(func: SetCentersFunction) => void} setCentersFunction
100
+ * @property {HTMLElement} svgElement
101
+ * @property {import('./types').Theme} theme
102
+ * @property {number} topHeight
103
+ * @property {number} topHeightNoGallery
104
+ * @property {{ backgroundColor?: string }} viewOptions
105
+ * @property {number} width
106
+ * @property {[number, number]} xDomainLimits
107
+ * @property {[number, number]} yDomainLimits
108
+ * @property {boolean} valueScaleZoom
109
+ * @property {boolean} zoomable
110
+ * @property {[number, number]} zoomDomain
111
+ * @property {[number, number]} zoomLimits
112
+ * @property {string} uid
113
+ * @property {boolean} dragging
114
+ * @property {(func: (draggingStatus: boolean) => void) => void} registerDraggingChangedListener
115
+ * @property {boolean} disableTrackMenu
116
+ * @property {(listener: (draggingStatus: boolean) => void) => void} removeDraggingChangedListener
117
+ * @property {(trackId: string, tilesetInfo: TilesetInfo) => void} onTilesetInfoReceived
118
+ * @property {(trackId: string) => unknown} getLockGroupExtrema
119
+ * @property {(trackId: string) => boolean} isValueScaleLocked
120
+ * @property {(trackId: string) => void} onValueScaleChanged
121
+ * @property {(trackId: string, newOption: Record<string, unknown>) => void} onTrackOptionsChanged
122
+ */
123
+ /**
124
+ * @extends {React.Component<TrackRendererProps>}
125
+ */
126
+ export class TrackRenderer extends React.Component<TrackRendererProps, any, any> {
127
+ /**
128
+ * Maintain a list of tracks, and re-render them whenever either
129
+ * their size changes or the zoom level changes
130
+ *
131
+ * Zooming changes the domain of the scales.
132
+ *
133
+ * Resizing changes the range. Both trigger a rerender.
134
+ *
135
+ * @param {TrackRendererProps} props
136
+ */
137
+ constructor(props: TrackRendererProps);
138
+ /** @type {boolean} */
139
+ dragging: boolean;
140
+ /** @type {WithZoomTransform<HTMLElement> | null} */
141
+ element: WithZoomTransform<HTMLElement> | null;
142
+ /** @type {HTMLElement | null} */
143
+ eventTracker: HTMLElement | null;
144
+ /** @type {HTMLElement | null} */
145
+ eventTrackerOld: HTMLElement | null;
146
+ /** @type {boolean} */
147
+ closing: boolean;
148
+ /** @type {number} */
149
+ yPositionOffset: number;
150
+ /** @type {number} */
151
+ xPositionOffset: number;
152
+ /** @type {number} */
153
+ scrollTop: number;
154
+ /** @type {ReturnType<typeof setTimeout> | null} */
155
+ scrollTimeout: ReturnType<typeof setTimeout> | null;
156
+ /** @type {number} */
157
+ activeTransitions: number;
158
+ /** @type {import('d3-zoom').ZoomTransform} */
159
+ zoomTransform: import("d3-zoom").ZoomTransform;
160
+ /** @type {() => void} */
161
+ windowScrolledBound: () => void;
162
+ /** @type {(event?: import('d3-zoom').D3ZoomEvent<HTMLElement, unknown>) => void} */
163
+ zoomStartedBound: (event?: import("d3-zoom").D3ZoomEvent<HTMLElement, unknown>) => void;
164
+ /** @type {(event: import('d3-zoom').D3ZoomEvent<HTMLElement, unknown> & { shiftKey?: boolean }) => void} */
165
+ zoomedBound: (event: import("d3-zoom").D3ZoomEvent<HTMLElement, unknown> & {
166
+ shiftKey?: boolean;
167
+ }) => void;
168
+ /** @type {() => void} */
169
+ zoomEndedBound: () => void;
170
+ /** @type {string} */
171
+ uid: string;
172
+ /** @type {string} */
173
+ viewUid: string;
174
+ /** @type {unknown} */
175
+ availableForPlugins: unknown;
176
+ /** @type {boolean} */
177
+ mounted: boolean;
178
+ /** @type {import("d3-zoom").ZoomBehavior<HTMLElement, unknown>} */
179
+ emptyZoomBehavior: import("d3-zoom").ZoomBehavior<HTMLElement, unknown>;
180
+ /** @type {TrackRendererProps} */
181
+ currentProps: TrackRendererProps;
182
+ /** @type {string} */
183
+ prevPropsStr: string;
184
+ /** @type {import("d3-zoom").ZoomBehavior<HTMLElement, unknown>} */
185
+ zoomBehavior: import("d3-zoom").ZoomBehavior<HTMLElement, unknown>;
186
+ /** @type {import('d3-zoom').ZoomTransform} */
187
+ prevZoomTransform: import("d3-zoom").ZoomTransform;
188
+ /** @type {[number, number]} */
189
+ initialXDomain: [number, number];
190
+ /** @type {[number, number]} */
191
+ initialYDomain: [number, number];
192
+ /** @type {[number, number]} */
193
+ xDomainLimits: [number, number];
194
+ /** @type {[number, number]} */
195
+ yDomainLimits: [number, number];
196
+ /** @type {[number, number]} */
197
+ zoomLimits: [number, number];
198
+ /** @type {number} */
199
+ prevCenterX: number;
200
+ /** @type {number} */
201
+ prevCenterY: number;
202
+ /** @type {number} */
203
+ cumCenterXOffset: number;
204
+ /** @type {number} */
205
+ cumCenterYOffset: number;
206
+ /** @type {Record<string, { trackObject: TrackObject, trackDef: TrackDefinition }>} */
207
+ trackDefObjects: Record<string, {
208
+ trackObject: TrackObject;
209
+ trackDef: TrackDefinition;
210
+ }>;
211
+ /** @type {Record<string, { trackObject: TrackObject | UnknownPixiTrack, trackDef: TrackConfig }>} */
212
+ metaTracks: Record<string, {
213
+ trackObject: TrackObject | UnknownPixiTrack;
214
+ trackDef: TrackConfig;
215
+ }>;
216
+ /** @type {Array<import("pub-sub-es").Subscription>} */
217
+ pubSubs: Array<import("pub-sub-es").Subscription>;
218
+ /** @type {<T extends Event>(event: T & { sourceUid?: string, forwarded?: boolean }) => void} */
219
+ boundForwardEvent: <T extends Event>(event: T & {
220
+ sourceUid?: string;
221
+ forwarded?: boolean;
222
+ }) => void;
223
+ /** @type {() => void} */
224
+ boundScrollEvent: () => void;
225
+ /** @type {(event: { altKey: boolean, preventDefault(): void }) => void} */
226
+ boundForwardContextMenu: (event: {
227
+ altKey: boolean;
228
+ preventDefault(): void;
229
+ }) => void;
230
+ /** @type {(event: Event & { sourceUid: string, type: string }) => void} */
231
+ dispatchEventBound: (event: Event & {
232
+ sourceUid: string;
233
+ type: string;
234
+ }) => void;
235
+ /** @type {(opts: { pos: [number, number, number, number], animateTime: number, isMercator: boolean }) => void} */
236
+ zoomToDataPosHandlerBound: (opts: {
237
+ pos: [number, number, number, number];
238
+ animateTime: number;
239
+ isMercator: boolean;
240
+ }) => void;
241
+ /** @type {(scrollTop: number) => void} */
242
+ onScrollHandlerBound: (scrollTop: number) => void;
243
+ /** @type {{ height: number, width: number, left: number, top: number }} */
244
+ elementPos: {
245
+ height: number;
246
+ width: number;
247
+ left: number;
248
+ top: number;
249
+ };
250
+ /** @type {import('d3-selection').Selection<WithZoomTransform<HTMLElement>, unknown, null, unknown> | null} */
251
+ elementSelection: import("d3-selection").Selection<WithZoomTransform<HTMLElement>, unknown, null, unknown> | null;
252
+ get xScale(): import("d3-scale").ScaleLinear<number, number, never>;
253
+ get yScale(): import("d3-scale").ScaleLinear<number, number, never>;
254
+ UNSAFE_componentWillMount(): void;
255
+ componentDidMount(): void;
256
+ /** @type {import('pixi.js').Graphics} */
257
+ pStage: import("pixi.js").Graphics | undefined;
258
+ /** @type {import('pixi.js').Graphics} */
259
+ pMask: import("pixi.js").Graphics | undefined;
260
+ /** @type {import('pixi.js').Graphics} */
261
+ pOutline: import("pixi.js").Graphics | undefined;
262
+ /** @type {import('pixi.js').Graphics} */
263
+ pBackground: import("pixi.js").Graphics | undefined;
264
+ svgElement: HTMLElement | undefined;
265
+ /** @param {TrackRendererProps} nextProps */
266
+ UNSAFE_componentWillReceiveProps(nextProps: TrackRendererProps): void;
267
+ /** @param {TrackRendererProps} prevProps */
268
+ componentDidUpdate(prevProps: TrackRendererProps): void;
269
+ componentWillUnmount(): void;
270
+ /**
271
+ * Dispatch a forwarded event on the main DOM element
272
+ *
273
+ * @param {Event & { sourceUid: string, type: string }} event Event to be dispatched.
274
+ */
275
+ dispatchEvent(event: Event & {
276
+ sourceUid: string;
277
+ type: string;
278
+ }): void;
279
+ /**
280
+ * Check of a view position (i.e., pixel coords) is within this view
281
+ *
282
+ * @param {number} x - X position to be tested.
283
+ * @param {number} y - Y position to be tested.
284
+ * @return {boolean} If `true` position is within this view.
285
+ */
286
+ isWithin(x: number, y: number): boolean;
287
+ /** @param {{ pos: [number, number, number, number], animateTime: number }} opts */
288
+ zoomToDataPosHandler({ pos, animateTime }: {
289
+ pos: [number, number, number, number];
290
+ animateTime: number;
291
+ }): void;
292
+ addZoom(): void;
293
+ removeZoom(): void;
294
+ setMask(): void;
295
+ setBackground(): void;
296
+ windowScrolled(): void;
297
+ /**
298
+ * @param {[number, number]} initialXDomain
299
+ * @param {[number, number]} initialYDomain
300
+ * @param {[number, number]} xDomainLimits
301
+ * @param {[number, number]} yDomainLimits
302
+ * @param {[number, number]} zoomLimits
303
+ */
304
+ setUpInitialScales(initialXDomain?: [number, number], initialYDomain?: [number, number], xDomainLimits?: [number, number], yDomainLimits?: [number, number], zoomLimits?: [number, number]): void;
305
+ drawableToDomainX: import("d3-scale").ScaleLinear<number, number, never> | undefined;
306
+ drawableToDomainY: import("d3-scale").ScaleLinear<number, number, never> | undefined;
307
+ /** @param {TrackRendererProps} props */
308
+ updatablePropsToString(props: TrackRendererProps): string;
309
+ /** @param {boolean} draggingStatus */
310
+ draggingChanged(draggingStatus: boolean): void;
311
+ setUpScales(notify?: boolean): void;
312
+ _xScale: import("d3-scale").ScaleLinear<number, number, never> | undefined;
313
+ _yScale: import("d3-scale").ScaleLinear<number, number, never> | undefined;
314
+ /**
315
+ * Get a track's viewconf definition by its object
316
+ *
317
+ * @param {TrackObject} trackObjectIn
318
+ */
319
+ getTrackDef(trackObjectIn: TrackObject): import("./types").TrackConfig | null;
320
+ /**
321
+ * Fetch the trackObject for a track with a given ID
322
+ *
323
+ * @param {string} trackId
324
+ * @return {TrackObject | undefined}
325
+ */
326
+ getTrackObject(trackId: string): TrackObject | undefined;
327
+ timedUpdatePositionAndDimensions(): void;
328
+ /**
329
+ * @param {Array<TrackConfig>} trackDefinitions
330
+ */
331
+ syncMetaTracks(trackDefinitions: Array<TrackConfig>): void;
332
+ /**
333
+ * @param {Array<TrackDefinition>} trackDefinitions
334
+ */
335
+ syncTrackObjects(trackDefinitions: Array<TrackDefinition>): void;
336
+ /**
337
+ * Make sure we have a track object for every passed track definition.
338
+ *
339
+ * If we get a track definition for which we have no Track object, we
340
+ * create a new one.
341
+ *
342
+ * If we have a track object for which we have no definition, we remove
343
+ * the object.
344
+ *
345
+ * All the others we ignore.
346
+ *
347
+ * Track definitions should be of the following form:
348
+ *
349
+ * { height: 100, width: 50, top: 30, left: 40, track: {...}}
350
+ *
351
+ * @param trackDefinitions: The definition of the track
352
+ * @return: Nothing
353
+ */
354
+ prevTrackDefinitions: string | undefined;
355
+ /**
356
+ * Add new meta tracks
357
+ *
358
+ * @param {Array<TrackConfig>} metaTrackDefs Definitions of meta tracks to be added.
359
+ */
360
+ addMetaTracks(metaTrackDefs: Array<TrackConfig>): void;
361
+ /**
362
+ * @param {Array<TrackDefinition>} newTrackDefinitions
363
+ */
364
+ addNewTracks(newTrackDefinitions: Array<TrackDefinition>): void;
365
+ /** @param {unknown} _unused */
366
+ updateMetaTracks(_unused: unknown): void;
367
+ /** @param {Array<TrackDefinition>} newTrackDefs */
368
+ updateExistingTrackDefs(newTrackDefs: Array<TrackDefinition>): void;
369
+ updateTrackPositions(): boolean;
370
+ /** @param {string[]} trackIds */
371
+ removeMetaTracks(trackIds: string[]): void;
372
+ /** @param {string[]} trackUids */
373
+ removeTracks(trackUids: string[]): void;
374
+ /**
375
+ * Set the center of this view to a paticular X and Y coordinate
376
+ * @param {number} centerX Centeral X data? position.
377
+ * @param {number} centerY Central Y data? position.
378
+ * @param {number} sourceK Source zoom level? @Pete what's the source?
379
+ * @param {boolean} notify If `true` notify listeners that the scales
380
+ * have changed. This can be turned off to prevent circular updates when
381
+ * scales are locked.
382
+ * @param {number} animateTime Animation time in milliseconds. Only used
383
+ * when `animate` is true.
384
+ * @param {Scale} xScale The scale to use for the X axis.
385
+ * @param {Scale} yScale The scale to use for the Y axis.
386
+ */
387
+ setCenter(centerX: number, centerY: number, sourceK: number, notify?: boolean, animateTime?: number, xScale?: Scale, yScale?: Scale): [import("d3-scale").ScaleContinuousNumeric<number, number, never>, import("d3-scale").ScaleContinuousNumeric<number, number, never>] | undefined;
388
+ /** @param {number} movement */
389
+ valueScaleMove(movement: number): void;
390
+ /**
391
+ * @param {{ sourceEvent: Event }} event
392
+ * @param {string | null} orientation
393
+ */
394
+ valueScaleZoom(event: {
395
+ sourceEvent: Event;
396
+ }, orientation: string | null): void;
397
+ /**
398
+ * Respond to a zoom event.
399
+ *
400
+ * We need to update our local record of the zoom transform and apply it
401
+ * to all the tracks.
402
+ *
403
+ * @param {import("d3-zoom").D3ZoomEvent<HTMLElement, unknown> & { shiftKey?: boolean }} event
404
+ */
405
+ zoomed(event: import("d3-zoom").D3ZoomEvent<HTMLElement, unknown> & {
406
+ shiftKey?: boolean;
407
+ }): void;
408
+ /**
409
+ * Return a list of tracks under this position.
410
+ *
411
+ * The position should be relative to this.props.canvasElement.
412
+ *
413
+ * @param {number} x The query x position
414
+ * @param {number} y The query y position
415
+ * @return {Array<TrackObject>} An array of tracks at this position
416
+ */
417
+ getTracksAtPosition(x: number, y: number): Array<TrackObject>;
418
+ /** @param {import('d3-zoom').D3ZoomEvent<HTMLElement, unknown>=} event */
419
+ zoomStarted(event?: import("d3-zoom").D3ZoomEvent<HTMLElement, unknown> | undefined): void;
420
+ zooming: boolean | undefined;
421
+ zoomStartPos: [number, number] | null | undefined;
422
+ valueScaleZooming: boolean | undefined;
423
+ zoomStartTransform: import("d3-zoom").ZoomTransform | undefined;
424
+ zoomEnded(): void;
425
+ /**
426
+ * @param {boolean=} notify
427
+ * @returns {[Scale, Scale] | undefined}
428
+ */
429
+ applyZoomTransform(notify?: boolean | undefined): [Scale, Scale] | undefined;
430
+ zoomedXScale: import("d3-scale").ScaleLinear<number, number, never> | undefined;
431
+ zoomedYScale: import("d3-scale").ScaleLinear<number, number, never> | undefined;
432
+ currentXScale: import("d3-scale").ScaleLinear<number, number, never> | undefined;
433
+ currentYScale: import("d3-scale").ScaleLinear<number, number, never> | undefined;
434
+ /** @param {TrackConfig} track */
435
+ createMetaTrack(track: TrackConfig): import("./types").TrackObject | UnknownPixiTrack;
436
+ /** @param {TrackConfig} track */
437
+ createTrackObject(track: TrackConfig): import("./types").TrackObject | CombinedTrack | Annotations1dTrack | BedLikeTrack | Annotations2dTrack | ArrowheadDomainsTrack | HorizontalLine1DPixiTrack | CNVIntervalTrack | Chromosome2DAnnotations | Chromosome2DLabels | ChromosomeGrid | CrossRule | HeatmapTiledPixiTrack | Horizontal2DDomainsTrack | HorizontalChromosomeLabels | HorizontalGeneAnnotationsTrack | HorizontalHeatmapTrack | HorizontalMultivecTrack | HorizontalPoint1DPixiTrack | HorizontalRule | Id2DTiledPixiTrack | IdHorizontal1DTiledPixiTrack | IdVertical1DTiledPixiTrack | SVGTrack | MapboxTilesTrack | OSMTilesTrack | OSMTileIdsTrack | OverlayTrack | RasterTilesTrack | SquareMarkersTrack | VerticalRule | ViewportTracker2D | ViewportTrackerHorizontal | ViewportTrackerVertical | UnknownPixiTrack | LeftTrackModifier | Track<{}>;
438
+ /** @param {TrackConfig} track */
439
+ createLocationAgnosticTrackObject(track: TrackConfig): import("./types").TrackObject | CombinedTrack | Annotations1dTrack | BedLikeTrack | Annotations2dTrack | ArrowheadDomainsTrack | HorizontalLine1DPixiTrack | CNVIntervalTrack | Chromosome2DAnnotations | Chromosome2DLabels | ChromosomeGrid | CrossRule | HeatmapTiledPixiTrack | Horizontal2DDomainsTrack | HorizontalChromosomeLabels | HorizontalGeneAnnotationsTrack | HorizontalHeatmapTrack | HorizontalMultivecTrack | HorizontalPoint1DPixiTrack | HorizontalRule | Id2DTiledPixiTrack | IdHorizontal1DTiledPixiTrack | IdVertical1DTiledPixiTrack | SVGTrack | MapboxTilesTrack | OSMTilesTrack | OSMTileIdsTrack | OverlayTrack | RasterTilesTrack | SquareMarkersTrack | VerticalRule | ViewportTracker2D | ViewportTrackerHorizontal | ViewportTrackerVertical | UnknownPixiTrack | Track<{}>;
440
+ /**
441
+ * Zoom to a location given the data coordinates
442
+ * @param {number} dataXStart Data start X coordinate.
443
+ * @param {number} dataXEnd Data end X coordinate.
444
+ * @param {number} dataYStart Data start Y coordinate.
445
+ * @param {number} dataYEnd Data end Y coordinate.
446
+ * @param {number} animateTime Animation time in milliseconds.
447
+ * @param {ProjectorFunction | null} projector If not `null` a projector function that
448
+ * provides adjusted x and y scales.
449
+ */
450
+ zoomToDataPos(dataXStart: number, dataXEnd: number, dataYStart: number, dataYEnd: number, animateTime?: number, projector?: ProjectorFunction | null): void;
451
+ /**
452
+ * @param {{ altKey: boolean, preventDefault: () => void }} e
453
+ */
454
+ forwardContextMenu(e: {
455
+ altKey: boolean;
456
+ preventDefault: () => void;
457
+ }): void;
458
+ addEventTracker(): void;
459
+ removeEventTracker(): void;
460
+ scrollEvent(): void;
461
+ /**
462
+ * Publishes an event to the pubSub channel, first overriding the
463
+ * sourceUid to be the uid of this track renderer.
464
+ *
465
+ * @template {Event} T
466
+ * @param {T & { sourceUid?: string; forwarded?: boolean }} event
467
+ */
468
+ forwardEvent<T extends Event>(event: T & {
469
+ sourceUid?: string;
470
+ forwarded?: boolean;
471
+ }): void;
472
+ /** @param {number} scrollTop */
473
+ onScrollHandler(scrollTop: number): void;
474
+ render(): React.JSX.Element;
475
+ baseEl: HTMLDivElement | null | undefined;
476
+ }
477
+ export namespace TrackRenderer {
478
+ namespace defaultProps {
479
+ let pluginDataFetchers: {};
480
+ let pluginTracks: {};
481
+ let canvasElement: null;
482
+ let centerHeight: number;
483
+ let centerWidth: number;
484
+ let children: never[];
485
+ let galleryDim: number;
486
+ let height: number;
487
+ let initialXDomain: never[];
488
+ let initialYDomain: never[];
489
+ let isShowGlobalMousePosition: boolean;
490
+ let isRangeSelection: boolean;
491
+ let leftWidth: number;
492
+ let leftWidthNoGallery: number;
493
+ let paddingLeft: number;
494
+ let paddingTop: number;
495
+ let positionedTracks: never[];
496
+ let topHeight: number;
497
+ let topHeightNoGallery: number;
498
+ let width: number;
499
+ let metaTracks: never[];
500
+ }
501
+ namespace propTypes {
502
+ let canvasElement_1: PropTypes.Requireable<object>;
503
+ export { canvasElement_1 as canvasElement };
504
+ let centerHeight_1: PropTypes.Requireable<number>;
505
+ export { centerHeight_1 as centerHeight };
506
+ let centerWidth_1: PropTypes.Requireable<number>;
507
+ export { centerWidth_1 as centerWidth };
508
+ let children_1: PropTypes.Requireable<any[]>;
509
+ export { children_1 as children };
510
+ export let disableTrackMenu: PropTypes.Requireable<boolean>;
511
+ let galleryDim_1: PropTypes.Requireable<number>;
512
+ export { galleryDim_1 as galleryDim };
513
+ let height_1: PropTypes.Requireable<number>;
514
+ export { height_1 as height };
515
+ let initialXDomain_1: PropTypes.Requireable<any[]>;
516
+ export { initialXDomain_1 as initialXDomain };
517
+ let initialYDomain_1: PropTypes.Requireable<any[]>;
518
+ export { initialYDomain_1 as initialYDomain };
519
+ let isShowGlobalMousePosition_1: PropTypes.Requireable<boolean>;
520
+ export { isShowGlobalMousePosition_1 as isShowGlobalMousePosition };
521
+ let isRangeSelection_1: PropTypes.Requireable<boolean>;
522
+ export { isRangeSelection_1 as isRangeSelection };
523
+ let leftWidth_1: PropTypes.Requireable<number>;
524
+ export { leftWidth_1 as leftWidth };
525
+ let leftWidthNoGallery_1: PropTypes.Requireable<number>;
526
+ export { leftWidthNoGallery_1 as leftWidthNoGallery };
527
+ let paddingLeft_1: PropTypes.Requireable<number>;
528
+ export { paddingLeft_1 as paddingLeft };
529
+ let paddingTop_1: PropTypes.Requireable<number>;
530
+ export { paddingTop_1 as paddingTop };
531
+ let metaTracks_1: PropTypes.Requireable<any[]>;
532
+ export { metaTracks_1 as metaTracks };
533
+ export let onMouseMoveZoom: PropTypes.Requireable<(...args: any[]) => any>;
534
+ export let onNewTilesLoaded: PropTypes.Validator<(...args: any[]) => any>;
535
+ export let onScalesChanged: PropTypes.Validator<(...args: any[]) => any>;
536
+ export let pixiRenderer: PropTypes.Validator<object>;
537
+ export let pixiStage: PropTypes.Validator<object>;
538
+ let pluginDataFetchers_1: PropTypes.Requireable<object>;
539
+ export { pluginDataFetchers_1 as pluginDataFetchers };
540
+ let pluginTracks_1: PropTypes.Requireable<object>;
541
+ export { pluginTracks_1 as pluginTracks };
542
+ let positionedTracks_1: PropTypes.Requireable<any[]>;
543
+ export { positionedTracks_1 as positionedTracks };
544
+ export let pubSub: PropTypes.Validator<object>;
545
+ export let setCentersFunction: PropTypes.Requireable<(...args: any[]) => any>;
546
+ export let svgElement: PropTypes.Validator<object>;
547
+ export let theme: PropTypes.Validator<symbol>;
548
+ let topHeight_1: PropTypes.Requireable<number>;
549
+ export { topHeight_1 as topHeight };
550
+ let topHeightNoGallery_1: PropTypes.Requireable<number>;
551
+ export { topHeightNoGallery_1 as topHeightNoGallery };
552
+ export let viewOptions: PropTypes.Requireable<object>;
553
+ let width_1: PropTypes.Requireable<number>;
554
+ export { width_1 as width };
555
+ export let xDomainLimits: PropTypes.Requireable<any[]>;
556
+ export let yDomainLimits: PropTypes.Requireable<any[]>;
557
+ export let valueScaleZoom: PropTypes.Requireable<boolean>;
558
+ export let zoomable: PropTypes.Validator<boolean>;
559
+ export let zoomDomain: PropTypes.Requireable<any[]>;
560
+ export let uid: PropTypes.Requireable<string>;
561
+ export let zoomLimits: PropTypes.Requireable<any[]>;
562
+ }
563
+ }
564
+ declare const _default: typeof TrackRenderer;
565
+ export default _default;
566
+ export type Scale = import("./types").Scale;
567
+ export type TrackConfig = import("./types").TrackConfig;
568
+ export type TrackObject = import("./types").TrackObject;
569
+ export type TilesetInfo = import("./types").TilesetInfo;
570
+ export type SetCentersFunction = TrackRenderer["setCenter"];
571
+ export type ProjectorFunction = (x: Scale, y: Scale) => [Scale, Scale];
572
+ export type TrackDefinition = {
573
+ track: TrackConfig;
574
+ width: number;
575
+ height: number;
576
+ top: number;
577
+ left: number;
578
+ };
579
+ export type MetaPluginTrackContext = {
580
+ getTrackObject: (trackId: string) => TrackObject | undefined;
581
+ onNewTilesLoaded: () => void;
582
+ definition: TrackConfig;
583
+ };
584
+ export type PluginTrackContext = {
585
+ id: string;
586
+ trackUid: string;
587
+ trackType: string;
588
+ viewUid: string;
589
+ pubSub: import("pub-sub-es").PubSub;
590
+ scene: import("pixi.js").Graphics;
591
+ dataConfig: Record<string, unknown>;
592
+ dataFetcher: unknown;
593
+ getLockGroupExtrema: () => unknown;
594
+ handleTilesetInfoReceived: (tilesetInfo: TilesetInfo) => void;
595
+ animate: () => void;
596
+ svgElement: HTMLElement;
597
+ isValueScaleLocked: () => boolean;
598
+ onValueScaleChanged: () => void;
599
+ onTrackOptionsChanged: (newOption: Record<string, unknown>) => void;
600
+ onMouseMoveZoom: () => void;
601
+ chromInfoPath?: string | undefined;
602
+ isShowGlobalMousePosition: () => boolean;
603
+ getTheme: () => import("./types").Theme;
604
+ AVAILABLE_FOR_PLUGINS?: unknown | undefined;
605
+ baseEl?: (HTMLDivElement | null) | undefined;
606
+ definition?: TrackConfig | undefined;
607
+ x?: number | undefined;
608
+ y?: number | undefined;
609
+ xPosition?: number | undefined;
610
+ yPosition?: number | undefined;
611
+ projectionXDomain?: [number, number] | undefined;
612
+ projectionYDomain?: [number, number] | undefined;
613
+ registerViewportChanged?: unknown | undefined;
614
+ removeViewportChanged?: unknown | undefined;
615
+ setDomainsCallback?: unknown | undefined;
616
+ tracks?: TrackConfig[] | undefined;
617
+ createTrackObject?: TrackRenderer["createTrackObject"] | undefined;
618
+ orientation?: string | undefined;
619
+ isOverlay?: boolean | undefined;
620
+ };
621
+ export type PluginTrack = {
622
+ track: {
623
+ new (availableForPlugins: unknown, context: PluginTrackContext, options: Record<string, unknown>): TrackObject;
624
+ };
625
+ isMetaTrack?: false | undefined;
626
+ };
627
+ export type MetaPluginTrack = {
628
+ track: {
629
+ new (availableForPlugins: unknown, context: MetaPluginTrackContext, options: Record<string, unknown>): TrackObject;
630
+ };
631
+ isMetaTrack: true;
632
+ };
633
+ export type WithZoomTransform<T> = T & {
634
+ __zoom?: import("d3-zoom").ZoomTransform;
635
+ };
636
+ export type TrackRendererProps = {
637
+ canvasElement: HTMLElement;
638
+ centerHeight: number;
639
+ centerWidth: number;
640
+ children: Array<JSX.Element>;
641
+ galleryDim: number;
642
+ height: number;
643
+ initialXDomain: [number, number];
644
+ initialYDomain: [number, number];
645
+ isShowGlobalMousePosition: boolean;
646
+ isRangeSelection: boolean;
647
+ leftWidth: number;
648
+ leftWidthNoGallery: number;
649
+ paddingLeft: number;
650
+ paddingTop: number;
651
+ metaTracks: Array<TrackConfig>;
652
+ onMouseMoveZoom: () => void;
653
+ onNewTilesLoaded: (trackId?: string) => void;
654
+ onScalesChanged: (x: Scale, y: Scale) => void;
655
+ pixiRenderer: import("pixi.js").Renderer;
656
+ pixiStage: import("pixi.js").Container;
657
+ pluginDataFetchers: Record<string, unknown>;
658
+ pluginTracks: Record<string, PluginTrack | MetaPluginTrack>;
659
+ positionedTracks: Array<TrackDefinition>;
660
+ pubSub: import("pub-sub-es").PubSub;
661
+ setCentersFunction: (func: SetCentersFunction) => void;
662
+ svgElement: HTMLElement;
663
+ theme: import("./types").Theme;
664
+ topHeight: number;
665
+ topHeightNoGallery: number;
666
+ viewOptions: {
667
+ backgroundColor?: string;
668
+ };
669
+ width: number;
670
+ xDomainLimits: [number, number];
671
+ yDomainLimits: [number, number];
672
+ valueScaleZoom: boolean;
673
+ zoomable: boolean;
674
+ zoomDomain: [number, number];
675
+ zoomLimits: [number, number];
676
+ uid: string;
677
+ dragging: boolean;
678
+ registerDraggingChangedListener: (func: (draggingStatus: boolean) => void) => void;
679
+ disableTrackMenu: boolean;
680
+ removeDraggingChangedListener: (listener: (draggingStatus: boolean) => void) => void;
681
+ onTilesetInfoReceived: (trackId: string, tilesetInfo: TilesetInfo) => void;
682
+ getLockGroupExtrema: (trackId: string) => unknown;
683
+ isValueScaleLocked: (trackId: string) => boolean;
684
+ onValueScaleChanged: (trackId: string) => void;
685
+ onTrackOptionsChanged: (trackId: string, newOption: Record<string, unknown>) => void;
686
+ };
687
+ import React from 'react';
688
+ import UnknownPixiTrack from './UnknownPixiTrack';
689
+ import CombinedTrack from './CombinedTrack';
690
+ import Annotations1dTrack from './Annotations1dTrack';
691
+ import BedLikeTrack from './BedLikeTrack';
692
+ import Annotations2dTrack from './Annotations2dTrack';
693
+ import ArrowheadDomainsTrack from './ArrowheadDomainsTrack';
694
+ import HorizontalLine1DPixiTrack from './HorizontalLine1DPixiTrack';
695
+ import CNVIntervalTrack from './CNVIntervalTrack';
696
+ import Chromosome2DAnnotations from './Chromosome2DAnnotations';
697
+ import Chromosome2DLabels from './Chromosome2DLabels';
698
+ import ChromosomeGrid from './ChromosomeGrid';
699
+ import CrossRule from './CrossRule';
700
+ import HeatmapTiledPixiTrack from './HeatmapTiledPixiTrack';
701
+ import Horizontal2DDomainsTrack from './Horizontal2DDomainsTrack';
702
+ import HorizontalChromosomeLabels from './HorizontalChromosomeLabels';
703
+ import HorizontalGeneAnnotationsTrack from './HorizontalGeneAnnotationsTrack';
704
+ import HorizontalHeatmapTrack from './HorizontalHeatmapTrack';
705
+ import HorizontalMultivecTrack from './HorizontalMultivecTrack';
706
+ import HorizontalPoint1DPixiTrack from './HorizontalPoint1DPixiTrack';
707
+ import HorizontalRule from './HorizontalRule';
708
+ import Id2DTiledPixiTrack from './Id2DTiledPixiTrack';
709
+ import IdHorizontal1DTiledPixiTrack from './IdHorizontal1DTiledPixiTrack';
710
+ import IdVertical1DTiledPixiTrack from './IdVertical1DTiledPixiTrack';
711
+ import SVGTrack from './SVGTrack';
712
+ import MapboxTilesTrack from './MapboxTilesTrack';
713
+ import OSMTilesTrack from './OSMTilesTrack';
714
+ import OSMTileIdsTrack from './OSMTileIdsTrack';
715
+ import OverlayTrack from './OverlayTrack';
716
+ import RasterTilesTrack from './RasterTilesTrack';
717
+ import SquareMarkersTrack from './SquareMarkersTrack';
718
+ import VerticalRule from './VerticalRule';
719
+ import ViewportTracker2D from './ViewportTracker2D';
720
+ import ViewportTrackerHorizontal from './ViewportTrackerHorizontal';
721
+ import ViewportTrackerVertical from './ViewportTrackerVertical';
722
+ import LeftTrackModifier from './LeftTrackModifier';
723
+ import Track from './Track';
724
+ import PropTypes from 'prop-types';