gosling.js 1.0.5 → 2.0.0-alpha.2

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 (286) hide show
  1. package/README.md +15 -6
  2. package/dist/assets/bam-worker-146b4a0a.js.map +1 -0
  3. package/dist/assets/bed-worker-49850b1d.js.map +1 -0
  4. package/dist/assets/gff-worker-c1616095.js.map +1 -0
  5. package/dist/assets/vcf-worker-5469c2fe.js.map +1 -0
  6. package/dist/demo/gosling-component.d.ts +34 -0
  7. package/dist/demo/gosling-component.d.ts.map +1 -0
  8. package/dist/demo/linking/linkedEncoding.d.ts +18 -0
  9. package/dist/demo/linking/linkedEncoding.d.ts.map +1 -0
  10. package/dist/demo/renderer/dataFetcher.d.ts +17 -0
  11. package/dist/demo/renderer/dataFetcher.d.ts.map +1 -0
  12. package/dist/demo/renderer/main.d.ts +11 -0
  13. package/dist/demo/renderer/main.d.ts.map +1 -0
  14. package/dist/demo/track-def/axis.d.ts +22 -0
  15. package/dist/demo/track-def/axis.d.ts.map +1 -0
  16. package/dist/demo/track-def/brush.d.ts +11 -0
  17. package/dist/demo/track-def/brush.d.ts.map +1 -0
  18. package/dist/demo/track-def/dummy.d.ts +10 -0
  19. package/dist/demo/track-def/dummy.d.ts.map +1 -0
  20. package/dist/demo/track-def/gosling.d.ts +18 -0
  21. package/dist/demo/track-def/gosling.d.ts.map +1 -0
  22. package/dist/demo/track-def/heatmap.d.ts +13 -0
  23. package/dist/demo/track-def/heatmap.d.ts.map +1 -0
  24. package/dist/demo/track-def/main.d.ts +68 -0
  25. package/dist/demo/track-def/main.d.ts.map +1 -0
  26. package/dist/demo/track-def/text.d.ts +17 -0
  27. package/dist/demo/track-def/text.d.ts.map +1 -0
  28. package/dist/demo/track-def/types.d.ts +73 -0
  29. package/dist/demo/track-def/types.d.ts.map +1 -0
  30. package/dist/exported-utils-b3ea2b1e.js +9950 -0
  31. package/dist/exported-utils-b3ea2b1e.js.map +1 -0
  32. package/dist/gosling.js +24891 -4592
  33. package/dist/gosling.js.map +1 -1
  34. package/dist/src/alias/buffer-shim.d.ts +2 -0
  35. package/dist/src/alias/buffer-shim.d.ts.map +1 -0
  36. package/dist/src/alias/zlib.d.ts +0 -1
  37. package/dist/src/alias/zlib.d.ts.map +1 -1
  38. package/dist/src/api/api-data.d.ts.map +1 -1
  39. package/dist/src/api/api.d.ts +11 -4
  40. package/dist/src/api/api.d.ts.map +1 -1
  41. package/dist/src/compiler/bounding-box.d.ts +2 -1
  42. package/dist/src/compiler/bounding-box.d.ts.map +1 -1
  43. package/dist/src/compiler/compile.d.ts +15 -11
  44. package/dist/src/compiler/compile.d.ts.map +1 -1
  45. package/dist/src/compiler/defaults.d.ts +1 -0
  46. package/dist/src/compiler/defaults.d.ts.map +1 -1
  47. package/dist/src/compiler/normalize.d.ts +12 -0
  48. package/dist/src/compiler/normalize.d.ts.map +1 -0
  49. package/dist/src/compiler/spec-preprocess.d.ts.map +1 -1
  50. package/dist/src/compiler/views-and-tracks.d.ts +14 -0
  51. package/dist/src/compiler/views-and-tracks.d.ts.map +1 -0
  52. package/dist/src/core/mark/area.d.ts +1 -1
  53. package/dist/src/core/mark/area.d.ts.map +1 -1
  54. package/dist/src/core/mark/axis.d.ts +2 -6
  55. package/dist/src/core/mark/axis.d.ts.map +1 -1
  56. package/dist/src/core/mark/index.d.ts +3 -3
  57. package/dist/src/core/mark/index.d.ts.map +1 -1
  58. package/dist/src/core/mark/legend.d.ts +4 -13
  59. package/dist/src/core/mark/legend.d.ts.map +1 -1
  60. package/dist/src/core/mark/outline-circular.d.ts.map +1 -1
  61. package/dist/src/core/mark/rect.d.ts +1 -1
  62. package/dist/src/core/mark/rect.d.ts.map +1 -1
  63. package/dist/src/core/mark/rule.d.ts +1 -1
  64. package/dist/src/core/mark/rule.d.ts.map +1 -1
  65. package/dist/src/core/mark/text.d.ts +1 -1
  66. package/dist/src/core/mark/text.d.ts.map +1 -1
  67. package/dist/src/core/mark/title.d.ts +1 -1
  68. package/dist/src/core/mark/title.d.ts.map +1 -1
  69. package/dist/src/core/utils/assembly.d.ts.map +1 -1
  70. package/dist/src/core/utils/define-plugin-track.d.ts +8 -3
  71. package/dist/src/core/utils/define-plugin-track.d.ts.map +1 -1
  72. package/dist/src/core/utils/fake-pub-sub.d.ts +11 -0
  73. package/dist/src/core/utils/fake-pub-sub.d.ts.map +1 -0
  74. package/dist/src/core/utils/text-style.d.ts +9 -9
  75. package/dist/src/core/utils/text-style.d.ts.map +1 -1
  76. package/dist/src/data-fetchers/bam/bam-data-fetcher.d.ts +1 -1
  77. package/dist/src/data-fetchers/bam/bam-data-fetcher.d.ts.map +1 -1
  78. package/dist/src/data-fetchers/bam/bam-worker.d.ts.map +1 -1
  79. package/dist/src/data-fetchers/bed/bed-data-fetcher.d.ts +1 -1
  80. package/dist/src/data-fetchers/bed/bed-data-fetcher.d.ts.map +1 -1
  81. package/dist/src/data-fetchers/bed/bed-worker.d.ts.map +1 -1
  82. package/dist/src/data-fetchers/bigwig/bigwig-data-fetcher.d.ts +15 -14
  83. package/dist/src/data-fetchers/bigwig/bigwig-data-fetcher.d.ts.map +1 -1
  84. package/dist/src/data-fetchers/csv/csv-data-fetcher.d.ts +1 -1
  85. package/dist/src/data-fetchers/csv/csv-data-fetcher.d.ts.map +1 -1
  86. package/dist/src/data-fetchers/gff/gff-data-fetcher.d.ts +1 -1
  87. package/dist/src/data-fetchers/gff/gff-data-fetcher.d.ts.map +1 -1
  88. package/dist/src/data-fetchers/gff/gff-worker.d.ts.map +1 -1
  89. package/dist/src/data-fetchers/index.d.ts +3 -3
  90. package/dist/src/data-fetchers/index.d.ts.map +1 -1
  91. package/dist/src/data-fetchers/json/json-data-fetcher.d.ts +28 -1
  92. package/dist/src/data-fetchers/json/json-data-fetcher.d.ts.map +1 -1
  93. package/dist/src/data-fetchers/utils.d.ts +15 -2
  94. package/dist/src/data-fetchers/utils.d.ts.map +1 -1
  95. package/dist/src/data-fetchers/vcf/vcf-data-fetcher.d.ts +4 -1
  96. package/dist/src/data-fetchers/vcf/vcf-data-fetcher.d.ts.map +1 -1
  97. package/dist/src/data-fetchers/vcf/vcf-worker.d.ts.map +1 -1
  98. package/dist/src/exported-utils.d.ts +0 -1
  99. package/dist/src/exported-utils.d.ts.map +1 -1
  100. package/dist/src/gosling-schema/gosling.schema.d.ts +0 -2
  101. package/dist/src/gosling-schema/gosling.schema.d.ts.map +1 -1
  102. package/dist/src/gosling-schema/gosling.schema.guards.d.ts +5 -2
  103. package/dist/src/gosling-schema/gosling.schema.guards.d.ts.map +1 -1
  104. package/dist/src/higlass/datafetcher.d.ts +2 -0
  105. package/dist/src/higlass/datafetcher.d.ts.map +1 -0
  106. package/dist/src/higlass/higlass-vendored.d.ts +1297 -0
  107. package/dist/src/higlass/higlass-vendored.d.ts.map +1 -0
  108. package/dist/src/higlass/services.d.ts +2 -0
  109. package/dist/src/higlass/services.d.ts.map +1 -0
  110. package/dist/src/higlass/tracks.d.ts +5 -0
  111. package/dist/src/higlass/tracks.d.ts.map +1 -0
  112. package/dist/src/higlass/utils.d.ts +2 -0
  113. package/dist/src/higlass/utils.d.ts.map +1 -0
  114. package/dist/src/index.d.ts +2 -5
  115. package/dist/src/index.d.ts.map +1 -1
  116. package/dist/src/interactors/cursor-2d.d.ts +10 -0
  117. package/dist/src/interactors/cursor-2d.d.ts.map +1 -0
  118. package/dist/src/interactors/cursor-circular.d.ts +18 -0
  119. package/dist/src/interactors/cursor-circular.d.ts.map +1 -0
  120. package/dist/src/interactors/cursor.d.ts +10 -0
  121. package/dist/src/interactors/cursor.d.ts.map +1 -0
  122. package/dist/src/interactors/index.d.ts +5 -0
  123. package/dist/src/interactors/index.d.ts.map +1 -0
  124. package/dist/src/interactors/pan-zoom-2d.d.ts +7 -0
  125. package/dist/src/interactors/pan-zoom-2d.d.ts.map +1 -0
  126. package/dist/src/interactors/pan-zoom-circular.d.ts +17 -0
  127. package/dist/src/interactors/pan-zoom-circular.d.ts.map +1 -0
  128. package/dist/src/interactors/pan-zoom.d.ts +7 -0
  129. package/dist/src/interactors/pan-zoom.d.ts.map +1 -0
  130. package/dist/src/pixi-manager/index.d.ts +2 -0
  131. package/dist/src/pixi-manager/index.d.ts.map +1 -0
  132. package/dist/src/pixi-manager/pixi-manager.d.ts +52 -0
  133. package/dist/src/pixi-manager/pixi-manager.d.ts.map +1 -0
  134. package/dist/src/tracks/brush-circular/brush-circular-plot.d.ts +23 -0
  135. package/dist/src/tracks/brush-circular/brush-circular-plot.d.ts.map +1 -0
  136. package/dist/src/tracks/brush-circular/brush-circular.d.ts +60 -0
  137. package/dist/src/tracks/brush-circular/brush-circular.d.ts.map +1 -0
  138. package/dist/src/tracks/brush-circular/index.d.ts +3 -0
  139. package/dist/src/tracks/brush-circular/index.d.ts.map +1 -0
  140. package/dist/src/tracks/brush-linear/brush-linear-plot.d.ts +18 -0
  141. package/dist/src/tracks/brush-linear/brush-linear-plot.d.ts.map +1 -0
  142. package/dist/src/tracks/brush-linear/brush-linear-track.d.ts +39 -0
  143. package/dist/src/tracks/brush-linear/brush-linear-track.d.ts.map +1 -0
  144. package/dist/src/tracks/brush-linear/index.d.ts +3 -0
  145. package/dist/src/tracks/brush-linear/index.d.ts.map +1 -0
  146. package/dist/src/tracks/dummy-track/dummy-track-plot.d.ts +6 -0
  147. package/dist/src/tracks/dummy-track/dummy-track-plot.d.ts.map +1 -0
  148. package/dist/src/tracks/dummy-track/dummy-track.d.ts +6 -10
  149. package/dist/src/tracks/dummy-track/dummy-track.d.ts.map +1 -1
  150. package/dist/src/tracks/dummy-track/index.d.ts +3 -1
  151. package/dist/src/tracks/dummy-track/index.d.ts.map +1 -1
  152. package/dist/src/tracks/genomic-axis/axis-track-plot.d.ts +21 -0
  153. package/dist/src/tracks/genomic-axis/axis-track-plot.d.ts.map +1 -0
  154. package/dist/src/tracks/genomic-axis/axis-track.d.ts +110 -0
  155. package/dist/src/tracks/genomic-axis/axis-track.d.ts.map +1 -0
  156. package/dist/src/tracks/genomic-axis/index.d.ts +3 -0
  157. package/dist/src/tracks/genomic-axis/index.d.ts.map +1 -0
  158. package/dist/src/tracks/gosling-track/gosling-track-model.d.ts.map +1 -1
  159. package/dist/src/tracks/gosling-track/gosling-track-plot.d.ts +28 -0
  160. package/dist/src/tracks/gosling-track/gosling-track-plot.d.ts.map +1 -0
  161. package/dist/src/tracks/gosling-track/gosling-track.d.ts +196 -10
  162. package/dist/src/tracks/gosling-track/gosling-track.d.ts.map +1 -1
  163. package/dist/src/tracks/gosling-track/index.d.ts +2 -1
  164. package/dist/src/tracks/gosling-track/index.d.ts.map +1 -1
  165. package/dist/src/tracks/{gosling-brush → gosling-track}/linear-brush-model.d.ts +1 -2
  166. package/dist/src/tracks/gosling-track/linear-brush-model.d.ts.map +1 -0
  167. package/dist/src/tracks/gosling-track/utils.d.ts +2 -0
  168. package/dist/src/tracks/gosling-track/utils.d.ts.map +1 -0
  169. package/dist/src/tracks/heatmap/heatmap-plot.d.ts +56 -0
  170. package/dist/src/tracks/heatmap/heatmap-plot.d.ts.map +1 -0
  171. package/dist/src/tracks/heatmap/index.d.ts +3 -0
  172. package/dist/src/tracks/heatmap/index.d.ts.map +1 -0
  173. package/dist/src/tracks/text-track/index.d.ts +4 -0
  174. package/dist/src/tracks/text-track/index.d.ts.map +1 -0
  175. package/dist/src/tracks/text-track/text-track-plot.d.ts +10 -0
  176. package/dist/src/tracks/text-track/text-track-plot.d.ts.map +1 -0
  177. package/dist/src/tracks/text-track/text-track.d.ts +33 -0
  178. package/dist/src/tracks/text-track/text-track.d.ts.map +1 -0
  179. package/dist/src/tracks/utils.d.ts +31 -0
  180. package/dist/src/tracks/utils.d.ts.map +1 -0
  181. package/dist/utils.js +18 -11
  182. package/dist/utils.js.map +1 -1
  183. package/package.json +44 -38
  184. package/dist/assets/bam-worker-Dcv_bU7t.js.map +0 -1
  185. package/dist/assets/bed-worker-BJN3rskf.js.map +0 -1
  186. package/dist/assets/gff-worker-BnsF6Ylf.js.map +0 -1
  187. package/dist/assets/vcf-worker-DCjwwMlo.js.map +0 -1
  188. package/dist/client-C0UZV21F.js +0 -61
  189. package/dist/client-C0UZV21F.js.map +0 -1
  190. package/dist/compile-DjkAkVl6.js +0 -13511
  191. package/dist/compile-DjkAkVl6.js.map +0 -1
  192. package/dist/compiler.js +0 -5
  193. package/dist/compiler.js.map +0 -1
  194. package/dist/editor/example/json-spec/basic-semantic-zoom.d.ts +0 -3
  195. package/dist/editor/example/json-spec/basic-semantic-zoom.d.ts.map +0 -1
  196. package/dist/editor/example/json-spec/cancer-variant.d.ts +0 -5
  197. package/dist/editor/example/json-spec/cancer-variant.d.ts.map +0 -1
  198. package/dist/editor/example/json-spec/circos.d.ts +0 -5
  199. package/dist/editor/example/json-spec/circos.d.ts.map +0 -1
  200. package/dist/editor/example/json-spec/circular-overview-linear-detail-views.d.ts +0 -3
  201. package/dist/editor/example/json-spec/circular-overview-linear-detail-views.d.ts.map +0 -1
  202. package/dist/editor/example/json-spec/debug.d.ts +0 -3
  203. package/dist/editor/example/json-spec/debug.d.ts.map +0 -1
  204. package/dist/editor/example/json-spec/gene-annotation.d.ts +0 -14
  205. package/dist/editor/example/json-spec/gene-annotation.d.ts.map +0 -1
  206. package/dist/editor/example/json-spec/gene-transcript.d.ts +0 -3
  207. package/dist/editor/example/json-spec/gene-transcript.d.ts.map +0 -1
  208. package/dist/editor/example/json-spec/give.d.ts +0 -3
  209. package/dist/editor/example/json-spec/give.d.ts.map +0 -1
  210. package/dist/editor/example/json-spec/gosling-data.d.ts +0 -17
  211. package/dist/editor/example/json-spec/gosling-data.d.ts.map +0 -1
  212. package/dist/editor/example/json-spec/gremlin.d.ts +0 -3
  213. package/dist/editor/example/json-spec/gremlin.d.ts.map +0 -1
  214. package/dist/editor/example/json-spec/ideograms.d.ts +0 -4
  215. package/dist/editor/example/json-spec/ideograms.d.ts.map +0 -1
  216. package/dist/editor/example/json-spec/index.d.ts +0 -35
  217. package/dist/editor/example/json-spec/index.d.ts.map +0 -1
  218. package/dist/editor/example/json-spec/layout-and-arrangement.d.ts +0 -6
  219. package/dist/editor/example/json-spec/layout-and-arrangement.d.ts.map +0 -1
  220. package/dist/editor/example/json-spec/mark-displacement.d.ts +0 -3
  221. package/dist/editor/example/json-spec/mark-displacement.d.ts.map +0 -1
  222. package/dist/editor/example/json-spec/matrix-hffc6.d.ts +0 -3
  223. package/dist/editor/example/json-spec/matrix-hffc6.d.ts.map +0 -1
  224. package/dist/editor/example/json-spec/matrix.d.ts +0 -4
  225. package/dist/editor/example/json-spec/matrix.d.ts.map +0 -1
  226. package/dist/editor/example/json-spec/mouse-event.d.ts +0 -4
  227. package/dist/editor/example/json-spec/mouse-event.d.ts.map +0 -1
  228. package/dist/editor/example/json-spec/pathogenic.d.ts +0 -4
  229. package/dist/editor/example/json-spec/pathogenic.d.ts.map +0 -1
  230. package/dist/editor/example/json-spec/perf-alignment.d.ts +0 -3
  231. package/dist/editor/example/json-spec/perf-alignment.d.ts.map +0 -1
  232. package/dist/editor/example/json-spec/pileup.d.ts +0 -4
  233. package/dist/editor/example/json-spec/pileup.d.ts.map +0 -1
  234. package/dist/editor/example/json-spec/responsive-alignment.d.ts +0 -24
  235. package/dist/editor/example/json-spec/responsive-alignment.d.ts.map +0 -1
  236. package/dist/editor/example/json-spec/responsive-track-wise-comparison.d.ts +0 -4
  237. package/dist/editor/example/json-spec/responsive-track-wise-comparison.d.ts.map +0 -1
  238. package/dist/editor/example/json-spec/responsive.d.ts +0 -7
  239. package/dist/editor/example/json-spec/responsive.d.ts.map +0 -1
  240. package/dist/editor/example/json-spec/sars-cov-2.d.ts +0 -4
  241. package/dist/editor/example/json-spec/sars-cov-2.d.ts.map +0 -1
  242. package/dist/editor/example/json-spec/semantic-zoom.d.ts +0 -9
  243. package/dist/editor/example/json-spec/semantic-zoom.d.ts.map +0 -1
  244. package/dist/editor/example/json-spec/track-template.d.ts +0 -3
  245. package/dist/editor/example/json-spec/track-template.d.ts.map +0 -1
  246. package/dist/editor/example/json-spec/visual-linking.d.ts +0 -3
  247. package/dist/editor/example/json-spec/visual-linking.d.ts.map +0 -1
  248. package/dist/editor/example/spec/visual-encoding.d.ts +0 -5
  249. package/dist/editor/example/spec/visual-encoding.d.ts.map +0 -1
  250. package/dist/src/compiler/create-higlass-models.d.ts +0 -7
  251. package/dist/src/compiler/create-higlass-models.d.ts.map +0 -1
  252. package/dist/src/compiler/gosling-to-higlass.d.ts +0 -11
  253. package/dist/src/compiler/gosling-to-higlass.d.ts.map +0 -1
  254. package/dist/src/compiler/higlass-model.d.ts +0 -82
  255. package/dist/src/compiler/higlass-model.d.ts.map +0 -1
  256. package/dist/src/core/gosling-component.d.ts +0 -36
  257. package/dist/src/core/gosling-component.d.ts.map +0 -1
  258. package/dist/src/core/gosling-component.test.d.ts +0 -2
  259. package/dist/src/core/gosling-component.test.d.ts.map +0 -1
  260. package/dist/src/core/gosling-embed.d.ts +0 -20
  261. package/dist/src/core/gosling-embed.d.ts.map +0 -1
  262. package/dist/src/core/higlass-component-wrapper.d.ts +0 -28
  263. package/dist/src/core/higlass-component-wrapper.d.ts.map +0 -1
  264. package/dist/src/core/init.d.ts +0 -5
  265. package/dist/src/core/init.d.ts.map +0 -1
  266. package/dist/src/core/utils/higlass-zoom-config.d.ts +0 -6
  267. package/dist/src/core/utils/higlass-zoom-config.d.ts.map +0 -1
  268. package/dist/src/core/utils/linking.d.ts +0 -12
  269. package/dist/src/core/utils/linking.d.ts.map +0 -1
  270. package/dist/src/exported-compiler.d.ts +0 -2
  271. package/dist/src/exported-compiler.d.ts.map +0 -1
  272. package/dist/src/higlass-schema/higlass.schema.d.ts +0 -148
  273. package/dist/src/higlass-schema/higlass.schema.d.ts.map +0 -1
  274. package/dist/src/higlass-schema/index.d.ts +0 -3
  275. package/dist/src/higlass-schema/index.d.ts.map +0 -1
  276. package/dist/src/tracks/gosling-brush/brush-track.d.ts +0 -26
  277. package/dist/src/tracks/gosling-brush/brush-track.d.ts.map +0 -1
  278. package/dist/src/tracks/gosling-brush/index.d.ts +0 -3
  279. package/dist/src/tracks/gosling-brush/index.d.ts.map +0 -1
  280. package/dist/src/tracks/gosling-brush/linear-brush-model.d.ts.map +0 -1
  281. package/dist/src/tracks/gosling-genomic-axis/axis-track.d.ts +0 -40
  282. package/dist/src/tracks/gosling-genomic-axis/axis-track.d.ts.map +0 -1
  283. package/dist/src/tracks/gosling-genomic-axis/index.d.ts +0 -3
  284. package/dist/src/tracks/gosling-genomic-axis/index.d.ts.map +0 -1
  285. package/dist/utils-DAef6RYs.js +0 -85
  286. package/dist/utils-DAef6RYs.js.map +0 -1
@@ -0,0 +1,1297 @@
1
+ export type SelectedRowsOptions = {
2
+ /**
3
+ * - Row indices, for ordering and filtering rows. Used by the HorizontalMultivecTrack.
4
+ */
5
+ selectedRows: number[] | number[][];
6
+ /**
7
+ * - The aggregation function to use ("mean", "sum", etc).
8
+ */
9
+ selectedRowsAggregationMode: "mean" | "sum" | "variance" | "deviation";
10
+ /**
11
+ * - Whether the height of row groups should be relative to the size of the group.
12
+ */
13
+ selectedRowsAggregationWithRelativeHeight: boolean;
14
+ /**
15
+ * - Where will the aggregation be performed? Possible values: "client", "server".
16
+ */
17
+ selectedRowsAggregationMethod: "client" | "server";
18
+ };
19
+ /**
20
+ * <Server>
21
+ */
22
+ export type TileData = {
23
+ server: string;
24
+ tileId: string;
25
+ zoomLevel: number;
26
+ tilePos: [number] | [number, number];
27
+ tilesetUid: string;
28
+ };
29
+ export type DenseTileData = {
30
+ server: string;
31
+ tileId: string;
32
+ zoomLevel: number;
33
+ tilePos: [number] | [number, number];
34
+ tilesetUid: string;
35
+ dense: Float32Array;
36
+ dtype: string;
37
+ denseDataExtrema: DenseDataExtrema1D | DenseDataExtrema2D;
38
+ minNonZero: number;
39
+ maxNonZero: number;
40
+ };
41
+ export type CompletedTileData<T> = Omit<T, keyof DenseTileData> & (TileData | DenseTileData);
42
+ export type TileResponse = {
43
+ /**
44
+ * - a base64 encoded string
45
+ */
46
+ dense?: string | undefined;
47
+ };
48
+ export type DataConfig = any;
49
+ export type TilesetInfo = any;
50
+ export type AbstractDataFetcher<T> = any;
51
+ export type Tile = {
52
+ min_value: number;
53
+ max_value: number;
54
+ denseDataExtrema: DenseDataExtrema1D | DenseDataExtrema2D;
55
+ minNonZero: number;
56
+ maxNonZero: number;
57
+ dense: Array<number> | Float32Array;
58
+ dtype: string;
59
+ server: string;
60
+ tilePos: number[];
61
+ tilePositionId: string;
62
+ tilesetUid: string;
63
+ zoomLevel: number;
64
+ };
65
+ export type DividedTileA = Pick<Tile, "zoomLevel" | "tilePos" | "tilePositionId">;
66
+ export type DividedTileB = Pick<Tile, "zoomLevel" | "tilePos" | "tilePositionId" | "dense" | "denseDataExtrema" | "minNonZero" | "maxNonZero">;
67
+ export type DividedTile = DividedTileA | DividedTileB;
68
+ export type ResolvedDataConfig = Omit<DataConfig, "children"> & {
69
+ children?: DataFetcher[];
70
+ tilesetUid?: string;
71
+ tilesetInfo: TilesetInfo;
72
+ };
73
+ export type ChromsizeRow = [string, number];
74
+ export type CumulativeChromsizeEntry = {
75
+ id: number;
76
+ chr: string;
77
+ pos: number;
78
+ };
79
+ export type ParsedChromsizes = {
80
+ cumPositions: CumulativeChromsizeEntry[];
81
+ chrPositions: Record<string, CumulativeChromsizeEntry>;
82
+ totalLength: number;
83
+ chromLengths: Record<string, number>;
84
+ };
85
+ export type DataTask<T> = {
86
+ data: T;
87
+ handler: (data: T) => void;
88
+ trackId?: string | undefined;
89
+ };
90
+ export type NullDataTask = {
91
+ data: null;
92
+ handler: () => void;
93
+ trackId?: string | undefined;
94
+ };
95
+ export type Task = DataTask<any> | NullDataTask;
96
+ export type TrackContext = {
97
+ /**
98
+ * - The track ID.
99
+ */
100
+ id: string;
101
+ /**
102
+ * - The pub-sub channel.
103
+ */
104
+ pubSub?: (import("pub-sub-es/dist/pub-sub").PubSub & {
105
+ __fake__?: boolean;
106
+ }) | undefined;
107
+ };
108
+ export type ExtendedTrackContext<T> = T & TrackContext;
109
+ export type PixiTrackOptions = {
110
+ /**
111
+ * - If the label is to be drawn, where should it be drawn?
112
+ */
113
+ labelPosition: string;
114
+ /**
115
+ * - What should be drawn in the label.
116
+ * If either labelPosition or labelText are false, no label will be drawn.
117
+ */
118
+ labelText: string;
119
+ trackBorderWidth?: number | undefined;
120
+ trackBorderColor?: string | undefined;
121
+ backgroundColor?: string | undefined;
122
+ labelColor?: string | undefined;
123
+ lineStrokeColor?: string | undefined;
124
+ barFillColor?: string | undefined;
125
+ name?: string | undefined;
126
+ labelTextOpacity?: number | undefined;
127
+ labelBackgroundColor?: string | undefined;
128
+ labelLeftMargin?: number | undefined;
129
+ labelRightMargin?: number | undefined;
130
+ labelTopMargin?: number | undefined;
131
+ labelBottomMargin?: number | undefined;
132
+ labelBackgroundOpacity?: number | undefined;
133
+ labelShowAssembly?: boolean | undefined;
134
+ labelShowResolution?: boolean | undefined;
135
+ dataTransform?: string | undefined;
136
+ };
137
+ export type View2D = {
138
+ get: (i: number, j: number) => number;
139
+ set: (i: number, j: number, v: number) => void;
140
+ };
141
+ export type Aggregation = (values: number[]) => number | undefined;
142
+ export type ChromosomePosition<Name extends string> = [name: Name, pos: number, offset: number, insertPoint: number];
143
+ export type MouseTrackOptions = {
144
+ /**
145
+ * - Color of the mouse position.
146
+ */
147
+ mousePositionColor?: string | undefined;
148
+ /**
149
+ * - Alpha of the mouse position.
150
+ */
151
+ mousePositionAlpha?: number | undefined;
152
+ };
153
+ export type ClassContext = {
154
+ pForeground?: import("pixi.js").Container | undefined;
155
+ pMasked?: import("pixi.js").Container | undefined;
156
+ pMain?: import("pixi.js").Container | undefined;
157
+ xScale: () => any;
158
+ yScale: () => any;
159
+ getPosition: () => [number, number];
160
+ getDimensions: () => [number, number];
161
+ pubSub: import("pub-sub-es").PubSub;
162
+ pubSubs: Array<import("pub-sub-es").Subscription>;
163
+ getProp: (prop: "flipText") => () => boolean;
164
+ options: {};
165
+ };
166
+ /** @implements {AbstractDataFetcher<Tile | DividedTile>} */
167
+ export class DataFetcher implements AbstractDataFetcher<Tile | DividedTile> {
168
+ /**
169
+ * @param {import('../types').DataConfig} dataConfig
170
+ * @param {import('pub-sub-es').PubSub} pubSub
171
+ */
172
+ constructor(dataConfig: any, pubSub: import("pub-sub-es").PubSub);
173
+ /** @type {boolean} */
174
+ tilesetInfoLoading: boolean;
175
+ /** @type {ResolvedDataConfig} */
176
+ dataConfig: ResolvedDataConfig;
177
+ /** @type {string} */
178
+ uuid: string;
179
+ /** @type {import('pub-sub-es').PubSub} */
180
+ pubSub: import("pub-sub-es").PubSub;
181
+ /**
182
+ * We don't a have a tilesetUid for this track. But we do have a url, filetype
183
+ * and server. Using these, we can use the server to fullfill tile requests
184
+ * from this dataset.
185
+ *
186
+ * @param {object} opts
187
+ * @param {string} opts.server - The server api location (e.g. 'localhost:8000/api/v1')
188
+ * @param {string} opts.url - The location of the data file (e.g. 'encode.org/my.file.bigwig')
189
+ * @param {string} opts.filetype - The type of file being served (e.g. 'bigwig')
190
+ * @param {string=} opts.coordSystem - The coordinate system being served (e.g. 'hg38')
191
+ */
192
+ registerFileUrl({ server, url, filetype, coordSystem }: {
193
+ server: string;
194
+ url: string;
195
+ filetype: string;
196
+ coordSystem?: string | undefined;
197
+ }): Promise<Response>;
198
+ /**
199
+ * Obtain tileset infos for all of the tilesets listed
200
+ * @param {import('../types').HandleTilesetInfoFinished} finished - A callback that will be called
201
+ */
202
+ tilesetInfo(finished: any): Promise<any>;
203
+ /**
204
+ * Obtain tileset infos for all of the tilesets listed
205
+ *
206
+ * If there is more than one tileset info, this function
207
+ * should (not currently implemented) check if the tileset
208
+ * infos have the same dimensions and then return a common
209
+ * one.
210
+ *
211
+ * @param {import('../types').HandleTilesetInfoFinished} finished - A callback that will be called
212
+ * when all tileset infos are loaded
213
+ */
214
+ tilesetInfoAfterRegister(finished: any): void;
215
+ /**
216
+ * @param {string} tilesetUid - Uid of the tileset on the server
217
+ * @param {string} tileId - The tileId of the tile
218
+ * @returns {string} The full tile id that the server will parse.
219
+ *
220
+ * @example
221
+ * ```javascript
222
+ * // returns 'xyxx.0.0.0'
223
+ * fullTileId('xyxx', '0.0.0');
224
+ * ```
225
+ */
226
+ fullTileId(tilesetUid: string, tileId: string): string;
227
+ /**
228
+ * Fetch a set of tiles.
229
+ *
230
+ * Because the track shouldn't care about tileset ids, the tile ids
231
+ * should just include positions and any necessary transforms.
232
+ *
233
+ * @param {(tiles: Record<string, DividedTile | Tile>) => void} receivedTiles - A function to call once the tiles have been fetched
234
+ * @param {string[]} tileIds - The tile ids to fetch
235
+ * @returns {Promise<Record<string, DividedTile | Tile>>}
236
+ */
237
+ fetchTilesDebounced(receivedTiles: (tiles: Record<string, DividedTile | Tile>) => void, tileIds: string[]): Promise<Record<string, DividedTile | Tile>>;
238
+ /**
239
+ * Return an array consisting of the division of the numerator
240
+ * array by the denominator array
241
+ *
242
+ * @param {ArrayLike<number>} numeratorData - An array of numerical values
243
+ * @param {ArrayLike<number>} denominatorData - An array of numerical values
244
+ *
245
+ * @returns {Float32Array} An array consisting of the division of the numerator by the denominator
246
+ */
247
+ divideData(numeratorData: ArrayLike<number>, denominatorData: ArrayLike<number>): Float32Array;
248
+ horizontalSlice(): null;
249
+ /**
250
+ * Extract a slice from a matrix at a given position.
251
+ *
252
+ * @param {Array<number>} inputData - An array containing a matrix stored row-wise
253
+ * @param {Array<number>} arrayShape - The shape of the array, should be a
254
+ * two element array e.g. [256,256].
255
+ * @param {number} sliceIndex - The index across which to take the slice
256
+ * @param {number=} axis - The axis along which to take the slice
257
+ * @returns {Array<number>} an array corresponding to a slice of this matrix
258
+ */
259
+ extractDataSlice(inputData: Array<number>, arrayShape: Array<number>, sliceIndex: number, axis?: number | undefined): Array<number>;
260
+ /**
261
+ * Fetch a horizontal section of a 2D dataset
262
+ * @param {(tiles: Record<string, Tile>) => void} receivedTiles - A function to call once the tiles have been fetched
263
+ * @param {string[]} tileIds - The tile ids to fetch
264
+ * @param {boolean=} vertical - Whether to fetch a vertical section
265
+ * @returns {Promise<Record<string, Tile>>}
266
+ */
267
+ fetchHorizontalSection(receivedTiles: (tiles: Record<string, Tile>) => void, tileIds: string[], vertical?: boolean | undefined): Promise<Record<string, Tile>>;
268
+ /**
269
+ * @typedef {{ zoomLevel: number, tilePos: number[], dense?: ArrayLike<number> }} Dividable
270
+ * @param {[Record<string, Dividable>, Record<string, Dividable>]} returnedTiles
271
+ * @param {string[]} tileIds
272
+ * @returns {Record<string, DividedTile>}
273
+ */
274
+ makeDivided(returnedTiles: [Record<string, {
275
+ zoomLevel: number;
276
+ tilePos: number[];
277
+ dense?: ArrayLike<number>;
278
+ }>, Record<string, {
279
+ zoomLevel: number;
280
+ tilePos: number[];
281
+ dense?: ArrayLike<number>;
282
+ }>], tileIds: string[]): Record<string, DividedTile>;
283
+ }
284
+ /**
285
+ * @template {ArrayLike<number>} [T=ArrayLike<number>]
286
+ */
287
+ export class DenseDataExtrema1D<T extends ArrayLike<number> = ArrayLike<number>> {
288
+ /**
289
+ * This module efficiently computes extrema of arbitrary subsets of a given data array.
290
+ * The array is subdivided into 'numSubsets' subsets where extrema are precomputed.
291
+ * These values are used to compute extrema given arbitrary start and end indices via
292
+ * the getMinNonZeroInSubset and getMaxNonZeroInSubset methods.
293
+ * @param {T} data
294
+ */
295
+ constructor(data: T);
296
+ /** @type {number} */
297
+ epsilon: number;
298
+ /** @type {T} */
299
+ data: T;
300
+ /** @type {number} */
301
+ tileSize: number;
302
+ /** @type {number} */
303
+ paddedTileSize: number;
304
+ /** @type {number} */
305
+ numSubsets: number;
306
+ /** @type {number} */
307
+ subsetSize: number;
308
+ subsetMinimums: number[];
309
+ subsetMaximums: number[];
310
+ minNonZeroInTile: number;
311
+ maxNonZeroInTile: number;
312
+ /**
313
+ * Computes the non-zero minimum in a subset using precomputed values,
314
+ * if possible. data[end] is not considered.
315
+ *
316
+ * @param {[start: number, end: number]} indexBounds
317
+ * @return {number} non-zero minium of the subset
318
+ */
319
+ getMinNonZeroInSubset(indexBounds: [start: number, end: number]): number;
320
+ /**
321
+ * Computes the non-zero maximum in a subset using precomputed values, if possible
322
+ *
323
+ * @param {[start: number, end: number]} indexBounds
324
+ * @return {number} non-zero maxium of the subset
325
+ */
326
+ getMaxNonZeroInSubset(indexBounds: [start: number, end: number]): number;
327
+ /**
328
+ * Precomputes non-zero minimums of subsets of the given data vector
329
+ *
330
+ * @returns {Array<number>} - Minimums of the regularly subdivided data vector
331
+ */
332
+ computeSubsetNonZeroMinimums(): Array<number>;
333
+ /**
334
+ * Precomputes non-zero maximums of subsets of the given data vector
335
+ * @return {Array<number>} Maximums of the regularly subdivided data vector
336
+ */
337
+ computeSubsetNonZeroMaximums(): Array<number>;
338
+ /**
339
+ * Computes the non-zero minimum in the entire data array using precomputed values
340
+ *
341
+ * @return {number} Non-zeros maximum of the data
342
+ */
343
+ getMinNonZeroInTile(): number;
344
+ /**
345
+ * Computes the non-zero maximum in the entire data array using precomputed values
346
+ *
347
+ * @return {number} Non-zeros maximum of the data
348
+ */
349
+ getMaxNonZeroInTile(): number;
350
+ /**
351
+ * Calculate the minimum non-zero value in the data from start
352
+ * to end. No precomputations are used to compute the min.
353
+ *
354
+ * @param {ArrayLike<number>} data
355
+ * @param {number} start
356
+ * @param {number} end
357
+ * @return {number} non-zero min in subset
358
+ */
359
+ minNonZero(data: ArrayLike<number>, start: number, end: number): number;
360
+ /**
361
+ * Calculate the maximum non-zero value in the data from start
362
+ * to end. No precomputations are used to compute the max.
363
+ *
364
+ * @param {ArrayLike<number>} data
365
+ * @param {number} start
366
+ * @param {number} end
367
+ * @return {number} non-zero max in subset
368
+ */
369
+ maxNonZero(data: ArrayLike<number>, start: number, end: number): number;
370
+ }
371
+ export class HeatmapTiledPixiTrack extends TiledPixiTrack {
372
+ constructor(context: any, options: any);
373
+ is2d: boolean;
374
+ uid: string;
375
+ scaleBrush: import("d3-brush").BrushBehavior<any>;
376
+ onTrackOptionsChanged: any;
377
+ isShowGlobalMousePosition: any;
378
+ isValueScaleLocked: any;
379
+ pColorbarArea: PIXI.Graphics;
380
+ pColorbar: PIXI.Graphics;
381
+ axis: AxisPixi;
382
+ colorScale: number[][];
383
+ gBase: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
384
+ gMain: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
385
+ gColorscaleBrush: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
386
+ brushing: boolean;
387
+ prevIndUpperLeftTile: string;
388
+ onMouseMoveZoom: any;
389
+ dataLens: Float32Array<ArrayBuffer>;
390
+ mouseMoveHandlerBound: (e: Object) => void;
391
+ hideMousePosition: Function | undefined;
392
+ /**
393
+ * Mouse move handler
394
+ *
395
+ * @param {Object} e Event object.
396
+ */
397
+ mouseMoveHandler(e: Object): void;
398
+ mouseX: any;
399
+ mouseY: any;
400
+ /**
401
+ * Mouse move and zoom handler. Is triggered on both events.
402
+ *
403
+ * @param {Number} absX Absolute X coordinate.
404
+ * @param {Number} absY Absolute Y coordinate
405
+ */
406
+ mouseMoveZoomHandler(absX?: number, absY?: number): void;
407
+ scheduleRerender(): void;
408
+ handleRerender(): void;
409
+ /**
410
+ * Get absolute (i.e., display) tile dimension and position.
411
+ *
412
+ * @param {Number} zoomLevel Current zoom level.
413
+ * @param {Array} tilePos Tile position.
414
+ * @return {Object} Object holding the absolute x, y, width, and height.
415
+ */
416
+ getAbsTileDim(zoomLevel: number, tilePos: any[], mirrored: any): Object;
417
+ updateValueScale(): any[];
418
+ valueScale: any;
419
+ limitedValueScale: any;
420
+ rerender(options: any, force: any): void;
421
+ tileDataToCanvas(pixData: any): HTMLCanvasElement;
422
+ exportData(): void;
423
+ /**
424
+ * Position sprite (the rendered tile)
425
+ *
426
+ * @param {Object} sprite PIXI sprite object.
427
+ * @param {Number} zoomLevel Current zoom level.
428
+ * @param {Array} tilePos X,Y position of tile.
429
+ * @param {Boolean} mirrored If `true` tile is mirrored.
430
+ */
431
+ setSpriteProperties(sprite: Object, zoomLevel: number, tilePos: any[], mirrored: boolean): void;
432
+ refXScale(_: any): void;
433
+ refYScale(_: any): void;
434
+ newBrushOptions(selection: any): any;
435
+ brushStart(): void;
436
+ brushMoved(event: any): void;
437
+ brushEnd(): void;
438
+ removeColorbar(): void;
439
+ drawColorbar(): void;
440
+ colorbarHeight: number | undefined;
441
+ northHandle: import("d3-selection").Selection<SVGRectElement, {
442
+ type: string;
443
+ }, SVGGElement, any> | undefined;
444
+ exportColorBarSVG(): HTMLElement;
445
+ /**
446
+ * Set data lens size
447
+ *
448
+ * @param {Integer} newDataLensSize New data lens size. Needs to be an odd
449
+ * integer.
450
+ */
451
+ setDataLensSize(newDataLensSize: Integer): void;
452
+ dataLensPadding: number | undefined;
453
+ dataLensSize: number | undefined;
454
+ binsPerTile(): any;
455
+ /**
456
+ * Get the data in the visible rectangle
457
+ *
458
+ * The parameter coordinates are in pixel coordinates
459
+ *
460
+ * @param {int} x: The upper left corner of the rectangle in pixel coordinates
461
+ * @param {int} y: The upper left corner of the rectangle in pixel coordinates
462
+ * @param {int} width: The width of the rectangle (pixels)
463
+ * @param {int} height: The height of the rectangle (pixels)
464
+ *
465
+ * @returns {Array} A numjs array containing the data in the visible region
466
+ *
467
+ */
468
+ getVisibleRectangleData(x: int, y: int, width: int, height: int): any[];
469
+ /**
470
+ * Convert the raw tile data to a rendered array of values which can be represented as a sprite.
471
+ *
472
+ * @param tile: The data structure containing all the tile information. Relevant to
473
+ * this function are tile.tileData = \{'dense': [...], ...\}
474
+ * and tile.graphics
475
+ */
476
+ initTile(tile: any): void;
477
+ updateTile(tile: any): void;
478
+ destroyTile(tile: any): void;
479
+ pixDataFunction(tile: any, pixData: any): void;
480
+ /**
481
+ * Render / draw a tile.
482
+ *
483
+ * @param {Object} tile Tile data to be rendered.
484
+ */
485
+ renderTile(tile: Object): void;
486
+ refScalesChanged(refXScale: any, refYScale: any): void;
487
+ /**
488
+ * Bypass this track's exportSVG function
489
+ */
490
+ superSVG(): [HTMLElement, HTMLElement];
491
+ exportSVG(): HTMLElement[];
492
+ getVisiblePartOfUppLeftTile(): any[] | null;
493
+ getIndicesOfVisibleDataInTile(tile: any): number[];
494
+ minVisibleValue(ignoreFixedScale?: boolean): number | null;
495
+ maxVisibleValue(ignoreFixedScale?: boolean): number | null;
496
+ zoomed(newXScale: any, newYScale: any, k: any, tx: any, ty: any): void;
497
+ /**
498
+ * Helper method for adding a tile ID in place. Used by `tilesToId()`.
499
+ *
500
+ * @param {Array} tiles Array tile ID should be added to.
501
+ * @param {Integer} zoomLevel Zoom level.
502
+ * @param {Integer} row Column ID, i.e., y.
503
+ * @param {Integer} column Column ID, i.e., x.
504
+ * @param {Objwect} dataTransform ??
505
+ * @param {Boolean} mirrored If `true` tile is mirrored.
506
+ */
507
+ addTileId(tiles: any[], zoomLevel: Integer, row: Integer, column: Integer, dataTransform: Objwect, mirrored?: boolean): void;
508
+ /**
509
+ * Convert tile positions to tile IDs
510
+ *
511
+ * @param {Array} xTiles X positions of tiles
512
+ * @param {Array} yTiles Y positions of tiles
513
+ * @param {Array} zoomLevel Current zoom level
514
+ * @return {Array} List of tile IDs
515
+ */
516
+ tilesToId(xTiles: any[], yTiles: any[], zoomLevel: any[]): any[];
517
+ calculateVisibleTiles(): void;
518
+ zoomLevel: number | undefined;
519
+ xTiles: number[] | undefined;
520
+ yTiles: number[] | undefined;
521
+ mirrorTiles(): boolean;
522
+ getMouseOverHtml(trackX: any, trackY: any): string;
523
+ /**
524
+ * Get the tile's position in its coordinate system.
525
+ *
526
+ * @description
527
+ * Normally the absolute coordinate system are the genome basepair positions
528
+ */
529
+ getTilePosAndDimensions(zoomLevel: any, tilePos: any, binsPerTileIn: any): {
530
+ tileX: any;
531
+ tileY: any;
532
+ tileWidth: number;
533
+ tileHeight: number;
534
+ };
535
+ /**
536
+ * The local tile identifier
537
+ *
538
+ * @param {array} tile Tile definition array to be converted to id. Tile
539
+ * array must contain `[zoomLevel, xPos, yPos]` and two props `mirrored` and
540
+ * `dataTransform`.
541
+ */
542
+ tileToLocalId(tile: array): string;
543
+ /**
544
+ * The tile identifier used on the server
545
+ */
546
+ tileToRemoteId(tile: any): string;
547
+ localToRemoteId(remoteId: any): any;
548
+ }
549
+ /**
550
+ * @typedef PixiTrackOptions
551
+ * @property {string} labelPosition - If the label is to be drawn, where should it be drawn?
552
+ * @property {string} labelText - What should be drawn in the label.
553
+ * If either labelPosition or labelText are false, no label will be drawn.
554
+ * @property {number=} trackBorderWidth
555
+ * @property {string=} trackBorderColor
556
+ * @property {string=} backgroundColor
557
+ * @property {string=} labelColor
558
+ * @property {string=} lineStrokeColor
559
+ * @property {string=} barFillColor
560
+ * @property {string=} name
561
+ * @property {number=} labelTextOpacity
562
+ * @property {string=} labelBackgroundColor
563
+ * @property {number=} labelLeftMargin
564
+ * @property {number=} labelRightMargin
565
+ * @property {number=} labelTopMargin
566
+ * @property {number=} labelBottomMargin
567
+ * @property {number=} labelBackgroundOpacity
568
+ * @property {boolean=} labelShowAssembly
569
+ * @property {boolean=} labelShowResolution
570
+ * @property {string=} dataTransform
571
+ */
572
+ /** @extends {Track<PixiTrackOptions>} */
573
+ export class PixiTrack extends Track<PixiTrackOptions> {
574
+ /**
575
+ * @param {import('./Track').ExtendedTrackContext<{ scene: import('pixi.js').Container}>} context - Includes the PIXI.js scene to draw to.
576
+ * @param {PixiTrackOptions} options - The options for this track.
577
+ */
578
+ constructor(context: any, options: PixiTrackOptions);
579
+ /** @type {import('pixi.js').Container} */
580
+ scene: import("pixi.js").Container;
581
+ /** @type {boolean} */
582
+ delayDrawing: boolean;
583
+ /** @type {import('pixi.js').Graphics} */
584
+ pBase: import("pixi.js").Graphics;
585
+ /** @type {import('pixi.js').Graphics} */
586
+ pMasked: import("pixi.js").Graphics;
587
+ /** @type {import('pixi.js').Graphics} */
588
+ pMask: import("pixi.js").Graphics;
589
+ /** @type {import('pixi.js').Graphics} */
590
+ pMain: import("pixi.js").Graphics;
591
+ /** @type {import('pixi.js').Graphics} */
592
+ pBorder: import("pixi.js").Graphics;
593
+ /** @type {import('pixi.js').Graphics} */
594
+ pBackground: import("pixi.js").Graphics;
595
+ /** @type {import('pixi.js').Graphics} */
596
+ pForeground: import("pixi.js").Graphics;
597
+ /** @type {import('pixi.js').Graphics} */
598
+ pLabel: import("pixi.js").Graphics;
599
+ /** @type {import('pixi.js').Graphics} */
600
+ pMobile: import("pixi.js").Graphics;
601
+ /** @type {import('pixi.js').Graphics} */
602
+ pAxis: import("pixi.js").Graphics;
603
+ /** @type {import('pixi.js').Graphics} */
604
+ pMouseOver: import("pixi.js").Graphics;
605
+ /** @type {string} */
606
+ prevOptions: string;
607
+ /** @type {string} */
608
+ labelTextFontFamily: string;
609
+ /** @type {number} */
610
+ labelTextFontSize: number;
611
+ /**
612
+ * Used to avoid label/colormap clashes
613
+ * @type {number}
614
+ */
615
+ labelXOffset: number;
616
+ /** @type {import('pixi.js').Text} */
617
+ labelText: import("pixi.js").Text;
618
+ /** @type {import('pixi.js').Text} */
619
+ errorText: import("pixi.js").Text;
620
+ /** @type {string} */
621
+ errorTextText: string;
622
+ /** @type {boolean} */
623
+ flipText: boolean;
624
+ /** @type {import('./types').TilesetInfo | undefined} */
625
+ tilesetInfo: any | undefined;
626
+ setLabelText(): void;
627
+ /**
628
+ * @param {[number, number]} position
629
+ * @param {[number, number]} dimensions
630
+ */
631
+ setMask(position: [number, number], dimensions: [number, number]): void;
632
+ setForeground(): void;
633
+ /**
634
+ * Draw a border around each track.
635
+ */
636
+ drawBorder(): void;
637
+ drawError(): void;
638
+ drawBackground(): void;
639
+ /**
640
+ * Determine the label color based on the number of options.
641
+ *
642
+ * @return {string} The color to use for the label.
643
+ */
644
+ getLabelColor(): string;
645
+ getName(): any;
646
+ drawLabel(): void;
647
+ /** @param {PixiTrackOptions} options */
648
+ rerender(options: PixiTrackOptions): void;
649
+ /**
650
+ * Export an SVG representation of this track
651
+ *
652
+ * @returns {[HTMLElement, HTMLElement]} The two returned DOM nodes are both SVG
653
+ * elements [base, track]. Base is a parent which contains track as a
654
+ * child. Track is clipped with a clipping rectangle contained in base.
655
+ *
656
+ */
657
+ exportSVG(): [HTMLElement, HTMLElement];
658
+ /**
659
+ * @returns {number}
660
+ */
661
+ calculateZoomLevel(): number;
662
+ }
663
+ export class SVGTrack extends Track<any> {
664
+ constructor(context: any, options: any);
665
+ /**
666
+ * Create a new SVG track. It will contain a g element
667
+ * that maintains all of its element.
668
+ */
669
+ gMain: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
670
+ clipUid: string;
671
+ clipRect: import("d3-selection").Selection<SVGRectElement, any, null, undefined>;
672
+ setPosition(newPosition: any): void;
673
+ setDimensions(newDimensions: any): void;
674
+ draw(): this;
675
+ }
676
+ export class TiledPixiTrack extends PixiTrack {
677
+ /**
678
+ * A track that must pull remote tiles
679
+ *
680
+ * @param (PIXI.scene) scene A PIXI.js scene to draw everything to.
681
+ * @param (Object) dataConfig: A data source. Usually a
682
+ * ``{{server: 'x/api/v1/', tilesetUuid: 'y'}}`` Object.
683
+ * @param {Object} handleTilesetInfoReceived: A callback to do something once once the tileset
684
+ * info is received. Usually it registers some information about the tileset with its
685
+ * definition
686
+ * @param {Object} options The track's options
687
+ * @param {function} animate A function to redraw this track. Typically called when an
688
+ * asynchronous event occurs (i.e. tiles loaded)
689
+ * @param {function} onValueScaleChanged The range of values has changed so we need to inform
690
+ * the higher ups that the value scale has changed. Only occurs on tracks with ``dense`` data.
691
+ */
692
+ constructor(context: any, options: Object);
693
+ renderVersion: number;
694
+ visibleTiles: Set<any>;
695
+ visibleTileIds: Set<any>;
696
+ renderingTiles: Set<any>;
697
+ fetching: Set<any>;
698
+ scale: {};
699
+ fetchedTiles: {};
700
+ tileGraphics: {};
701
+ maxZoom: number;
702
+ medianVisibleValue: number | null | undefined;
703
+ backgroundTaskScheduler: BackgroundTaskScheduler;
704
+ continuousScaling: boolean;
705
+ valueScaleMin: number | null;
706
+ fixedValueScaleMin: number | null;
707
+ valueScaleMax: number | null;
708
+ fixedValueScaleMax: number | null;
709
+ listeners: {};
710
+ pubSub: any;
711
+ animate: any;
712
+ onValueScaleChanged: any;
713
+ prevValueScale: any;
714
+ dataFetcher: any;
715
+ uuid: string;
716
+ trackNotFoundText: PIXI.Text;
717
+ refreshTilesDebounced: (request: unknown) => void;
718
+ tilesetUid: any;
719
+ server: any;
720
+ chromInfo: ParsedChromsizes;
721
+ setError(error: any): void;
722
+ setFixedValueScaleMin(value: any): void;
723
+ setFixedValueScaleMax(value: any): void;
724
+ checkValueScaleLimits(): void;
725
+ /**
726
+ * Register an event listener for track events. Currently, the only supported
727
+ * event is ``dataChanged``.
728
+ *
729
+ * @param {string} event The event to listen for
730
+ * @param {function} callback The callback to call when the event occurs. The
731
+ * parameters for the event depend on the event called.
732
+ *
733
+ * @example
734
+ *
735
+ * trackObj.on('dataChanged', (newData) => {
736
+ * console.log('newData:', newData)
737
+ * });
738
+ */
739
+ on(event: string, callback: Function): void;
740
+ off(event: any, callback: any): void;
741
+ rerender(options: any): void;
742
+ /**
743
+ * Return the set of ids of all tiles which are both visible and fetched.
744
+ */
745
+ visibleAndFetchedIds(): string[];
746
+ visibleAndFetchedTiles(): any[];
747
+ /**
748
+ * Set which tiles are visible right now.
749
+ *
750
+ * @param tiles: A set of tiles which will be considered the currently visible
751
+ * tile positions.
752
+ */
753
+ setVisibleTiles(tilePositions: any): void;
754
+ removeOldTiles(): void;
755
+ refreshTiles(): void;
756
+ parentInFetched(tile: any): boolean;
757
+ parentTileId(tile: any): string;
758
+ /**
759
+ * Remove obsolete tiles
760
+ *
761
+ * @param toRemoveIds: An array of tile ids to remove from the list of fetched tiles.
762
+ */
763
+ removeTiles(toRemoveIds: any): void;
764
+ zoomed(newXScale: any, newYScale: any, k?: number, tx?: number): void;
765
+ setPosition(newPosition: any): void;
766
+ setDimensions(newDimensions: any): void;
767
+ /**
768
+ * Check to see if all the visible tiles are loaded.
769
+ *
770
+ * If they are, remove all other tiles.
771
+ */
772
+ areAllVisibleTilesLoaded(): boolean;
773
+ /**
774
+ * Function is called when all tiles that should be visible have
775
+ * been received.
776
+ */
777
+ allTilesLoaded(): void;
778
+ minValue(_: any): any;
779
+ maxValue(_: any): any;
780
+ minRawValue(): any;
781
+ maxRawValue(): any;
782
+ initTile(): void;
783
+ updateTile(): void;
784
+ destroyTile(): void;
785
+ addMissingGraphics(): void;
786
+ /**
787
+ * Change the graphics for existing tiles
788
+ */
789
+ updateExistingGraphics(): void;
790
+ synchronizeTilesAndGraphics(): void;
791
+ loadTileData(tile: any, dataLoader: any): any;
792
+ fetchNewTiles(toFetch: any): void;
793
+ /**
794
+ * We've gotten a bunch of tiles from the server in
795
+ * response to a request from fetchTiles.
796
+ */
797
+ receivedTiles(loadedTiles: any): void;
798
+ /**
799
+ * Draw a tile on some graphics
800
+ */
801
+ drawTile(): void;
802
+ calculateMedianVisibleValue(): number | undefined;
803
+ allVisibleValues(): never[];
804
+ minVisibleValue(ignoreFixedScale?: boolean): number;
805
+ minVisibleValueInTiles(ignoreFixedScale?: boolean): number;
806
+ maxVisibleValue(ignoreFixedScale?: boolean): number;
807
+ maxVisibleValueInTiles(ignoreFixedScale?: boolean): number;
808
+ makeValueScale(minValue: any, medianValue: any, maxValue: any, inMargin: any): (number | import("d3-scale").ScaleQuantile<number, never>)[] | (number | import("d3-scale").ScaleLinear<number, number, never>)[];
809
+ }
810
+ /**
811
+ * @typedef TrackContext
812
+ * @property {string} id - The track ID.
813
+ * @property {import('pub-sub-es').PubSub & { __fake__?: boolean }} [pubSub] - The pub-sub channel.
814
+ */
815
+ /**
816
+ * @template T
817
+ * @typedef {T & TrackContext} ExtendedTrackContext
818
+ */
819
+ /** @template Options */
820
+ export class Track<Options> {
821
+ /**
822
+ * @param {TrackContext} context
823
+ * @param {Options} options
824
+ */
825
+ constructor(context: TrackContext, options: Options);
826
+ context: TrackContext;
827
+ /** @type {import('pub-sub-es').PubSub} */
828
+ pubSub: import("pub-sub-es").PubSub;
829
+ /** @type {string} */
830
+ id: string;
831
+ /** @type {import('./types').Scale} */
832
+ _xScale: any;
833
+ /** @type {import('./types').Scale} */
834
+ _yScale: any;
835
+ /** @type {import('./types').Scale} */
836
+ _refXScale: any;
837
+ /** @type {import('./types').Scale} */
838
+ _refYScale: any;
839
+ /** @type {[number, number]} */
840
+ position: [number, number];
841
+ /** @type {[number, number]} */
842
+ dimensions: [number, number];
843
+ /** @type {Options} */
844
+ options: Options;
845
+ /** @type {Array<import('pub-sub-es').Subscription>} */
846
+ pubSubs: Array<import("pub-sub-es").Subscription>;
847
+ isLeftModified: boolean;
848
+ /**
849
+ * Check if a 2d location (x, y) is within the bounds of this track.
850
+ *
851
+ * @param {number} x - X position to be tested.
852
+ * @param {number} y - Y position to be tested.
853
+ * @return {boolean} If `true` location is within the track.
854
+ */
855
+ isWithin(x: number, y: number): boolean;
856
+ /**
857
+ * Get a property from the track.
858
+ * @template {keyof this} T
859
+ * @param {T} prop - The property to get.
860
+ * @return {() => this[T]}
861
+ */
862
+ getProp<T extends keyof this>(prop: T): () => this[T];
863
+ getData(): void;
864
+ /**
865
+ * Capture click events. x and y are relative to the track position
866
+ * @template T
867
+ * @param {number} x - X position of the click event.
868
+ * @param {number} y - Y position of the click event.
869
+ * @param {T} evt - The event.
870
+ * @return {{ type: 'generic', event: T, payload: null }}
871
+ */
872
+ click<T>(x: number, y: number, evt: T): {
873
+ type: "generic";
874
+ event: T;
875
+ payload: null;
876
+ };
877
+ /** There was a click event outside the track * */
878
+ clickOutside(): void;
879
+ /** @returns {[number, number]} */
880
+ getDimensions(): [number, number];
881
+ /** @param {[number, number]} newDimensions */
882
+ setDimensions(newDimensions: [number, number]): void;
883
+ /**
884
+ * @overload
885
+ * @return {import('./types').Scale}
886
+ */
887
+ refXScale(): any;
888
+ /**
889
+ * @overload
890
+ * @param {import('./types').Scale} scale
891
+ * @return {this}
892
+ */
893
+ refXScale(scale: any): this;
894
+ /**
895
+ * @overload
896
+ * @return {import('./types').Scale}
897
+ */
898
+ refYScale(): any;
899
+ /**
900
+ * @overload
901
+ * @param {import('./types').Scale} scale
902
+ * @return {this}
903
+ */
904
+ refYScale(scale: any): this;
905
+ /**
906
+ * @overload
907
+ * @return {import('./types').Scale}
908
+ */
909
+ xScale(): any;
910
+ /**
911
+ * @overload
912
+ * @param {import('./types').Scale} scale
913
+ * @return {this}
914
+ */
915
+ xScale(scale: any): this;
916
+ /**
917
+ * @overload
918
+ * @return {import('./types').Scale}
919
+ */
920
+ yScale(): any;
921
+ /**
922
+ * @overload
923
+ * @param {import('./types').Scale} scale
924
+ * @return {this}
925
+ */
926
+ yScale(scale: any): this;
927
+ /**
928
+ * @param {import('./types').Scale} newXScale
929
+ * @param {import('./types').Scale} newYScale
930
+ * @returns {void}
931
+ */
932
+ zoomed(newXScale: any, newYScale: any): void;
933
+ /**
934
+ * @param {import('./types').Scale} refXScale
935
+ * @param {import('./types').Scale} refYScale
936
+ * @returns {void}
937
+ */
938
+ refScalesChanged(refXScale: any, refYScale: any): void;
939
+ /** @returns {void} */
940
+ draw(): void;
941
+ /** @returns {[number, number]} */
942
+ getPosition(): [number, number];
943
+ /**
944
+ * @param {[number, number]} newPosition
945
+ * @returns {void}
946
+ */
947
+ setPosition(newPosition: [number, number]): void;
948
+ /**
949
+ * A blank handler for MouseMove / Zoom events. Should be overriden
950
+ * by individual tracks to provide
951
+ *
952
+ * @param {{}} evt
953
+ * @returns {void}
954
+ */
955
+ defaultMouseMoveHandler(): void;
956
+ /** @returns {void} */
957
+ remove(): void;
958
+ /**
959
+ * @param {Options} options
960
+ * @returns {void}
961
+ */
962
+ rerender(): void;
963
+ /**
964
+ * This function is for seeing whether this track should respond
965
+ * to events at this mouse position. The difference to `isWithin()` is that it
966
+ * can be overwritten if a track is inactive for example.
967
+ *
968
+ * @param {number} x - X position to be tested.
969
+ * @param {number} y - Y position to be tested.
970
+ * @returns {boolean}
971
+ */
972
+ respondsToPosition(x: number, y: number): boolean;
973
+ /**
974
+ * @param {number} trackY
975
+ * @param {number} kMultiplier
976
+ * @returns {void}
977
+ */
978
+ zoomedY(): void;
979
+ /**
980
+ * @param {number} dY
981
+ * @returns {void}
982
+ */
983
+ movedY(): void;
984
+ }
985
+ export class ViewportTrackerHorizontal extends SVGTrack {
986
+ uid: string;
987
+ hasFromView: boolean;
988
+ removeViewportChanged: any;
989
+ setDomainsCallback: any;
990
+ viewportXDomain: any;
991
+ viewportYDomain: number[] | null;
992
+ brush: import("d3-brush").BrushBehavior<any>;
993
+ gBrush: import("d3-selection").Selection<SVGGElement, any, null, undefined>;
994
+ brushed(event: any): void;
995
+ viewportChanged(viewportXScale: any, viewportYScale: any): void;
996
+ draw(): void;
997
+ zoomed(newXScale: any, newYScale: any): void;
998
+ }
999
+ /**
1000
+ * @typedef ClassContext
1001
+ * @property {import('pixi.js').Container=} pForeground
1002
+ * @property {import('pixi.js').Container=} pMasked
1003
+ * @property {import('pixi.js').Container=} pMain
1004
+ * @property {() => import('../types').Scale} xScale
1005
+ * @property {() => import('../types').Scale} yScale
1006
+ * @property {() => [number, number]} getPosition
1007
+ * @property {() => [number, number]} getDimensions
1008
+ * @property {import('pub-sub-es').PubSub} pubSub
1009
+ * @property {Array<import('pub-sub-es').Subscription>} pubSubs
1010
+ * @property {(prop: 'flipText') => () => boolean} getProp
1011
+ * @property {{}} options
1012
+ */
1013
+ /**
1014
+ * Public API for showing the mouse location.
1015
+ *
1016
+ * @description
1017
+ * This is just a convenience wrapper to avoid code duplication.
1018
+ * `showMousePosition` is the actual function and could be called from within
1019
+ * each class as well.
1020
+ *
1021
+ * @param {ClassContext} context - Class context, i.e., `this`.
1022
+ * @param {Boolean} is2d - If `true` both dimensions of the mouse location
1023
+ * should be shown. E.g., on a central track.
1024
+ * @param {Boolean} isGlobal - If `true` local and global events will trigger
1025
+ * the mouse position drawing.
1026
+ * @return {Function} - Method to remove graphics showing the mouse location.
1027
+ */
1028
+ declare function setupShowMousePosition(context: ClassContext, is2d?: boolean, isGlobal?: boolean): Function;
1029
+ declare namespace api {
1030
+ export { calculateResolution };
1031
+ export { calculateTileAndPosInTile };
1032
+ export { calculateTiles };
1033
+ export { calculateTilesFromResolution };
1034
+ export { calculateTileWidth };
1035
+ export { calculateZoomLevel };
1036
+ export { calculateZoomLevelFromResolutions };
1037
+ export { fetchTilesDebounced };
1038
+ export { json };
1039
+ export { text };
1040
+ export { tileDataToPixData };
1041
+ export { trackInfo };
1042
+ }
1043
+ /**
1044
+ * @typedef View2D
1045
+ * @property {(i: number, j: number) => number} get
1046
+ * @property {(i: number, j: number, v: number) => void} set
1047
+ */
1048
+ declare class DenseDataExtrema2D {
1049
+ /**
1050
+ * This module efficiently computes extrema of subsets of a given data matrix.
1051
+ * The matrix is subdivided into 'numSubsets' subsets where extrema are precomputed.
1052
+ * These values are used to efficiently approximate extrema given arbitrary subsets.
1053
+ * Larger values of 'numSubsets' lead to more accurate approximations (more expensive).
1054
+ *
1055
+ * @param {ArrayLike<number>} data array of quadratic length
1056
+ */
1057
+ constructor(data: ArrayLike<number>);
1058
+ /** @type {number} */
1059
+ epsilon: number;
1060
+ /** @type {number} */
1061
+ tileSize: number;
1062
+ /** @type {number} */
1063
+ numSubsets: number;
1064
+ /** @type {number} */
1065
+ subsetSize: number;
1066
+ /** @type {View2D} */
1067
+ subsetMinimums: View2D;
1068
+ /** @type {View2D} */
1069
+ subsetMaximums: View2D;
1070
+ /** @type {number} */
1071
+ minNonZeroInTile: number;
1072
+ /** @type {number} */
1073
+ maxNonZeroInTile: number;
1074
+ /**
1075
+ * Computes an approximation of the non-zero minimum in a subset
1076
+ *
1077
+ * @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds
1078
+ * @return {number} Non-zero minium of the subset
1079
+ */
1080
+ getMinNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number;
1081
+ /**
1082
+ * Computes an approximation of the non-zero maximum in a subset
1083
+ *
1084
+ * @param {[startX: number, startY: number, endX: number, endY: number]} indexBounds
1085
+ * @return {number} Non-zero maxium of the subset
1086
+ */
1087
+ getMaxNonZeroInSubset(indexBounds: [startX: number, startY: number, endX: number, endY: number]): number;
1088
+ /**
1089
+ * Precomputes non-zero minimums of subsets of a given matrix
1090
+ * @param {View2D} dataMatrix
1091
+ * @return {View2D} Matrix containing minimums of the dataMatrix after subdivision using a regular grid
1092
+ */
1093
+ computeSubsetNonZeroMinimums(dataMatrix: View2D): View2D;
1094
+ /**
1095
+ * Precomputes non-zero maximums of subsets of a given matrix
1096
+ *
1097
+ * @param {View2D} dataMatrix
1098
+ * @return {View2D} Matrix containing maximums of the dataMatrix after subdivision using a regular grid
1099
+ */
1100
+ computeSubsetNonZeroMaximums(dataMatrix: View2D): View2D;
1101
+ /**
1102
+ * Computes the non-zero minimum of a subset of a matrix (ndarray)
1103
+ * @param {View2D} arr
1104
+ * @param {number} rowOffset - Starting row of the subset
1105
+ * @param {number} colOffset - Starting column of the subset
1106
+ * @param {number} width - Width (num columns) of the subset
1107
+ * @param {number} height - Height (num rows) of the subset
1108
+ * @return {number} Non-zeros - minimum of the subset
1109
+ */
1110
+ getMinNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number;
1111
+ /**
1112
+ * Computes the non-zero maximum of a subset of a matrix (ndarray)
1113
+ * @param {View2D} arr
1114
+ * @param {number} rowOffset - Starting row of the subset
1115
+ * @param {number} colOffset - Starting column of the subset
1116
+ * @param {number} width - Width (num columns) of the subset
1117
+ * @param {number} height - Height (num rows) of the subset
1118
+ * @return {number} Non-zeros maximum of the subset
1119
+ */
1120
+ getMaxNonZeroInNdarraySubset(arr: View2D, rowOffset: number, colOffset: number, width: number, height: number): number;
1121
+ mirrorPrecomputedExtrema(): void;
1122
+ /**
1123
+ * Computes the non-zero minimum in the entire data array using precomputed values
1124
+ *
1125
+ * @return {number} Non-zeros minimum of the data
1126
+ */
1127
+ getMinNonZeroInTile(): number;
1128
+ /**
1129
+ * Computes the non-zero maximum in the entire data array using precomputed values
1130
+ *
1131
+ * @return {number} Non-zeros maximum of the data
1132
+ */
1133
+ getMaxNonZeroInTile(): number;
1134
+ }
1135
+ import * as PIXI from 'pixi.js';
1136
+ declare class AxisPixi {
1137
+ constructor(track: any);
1138
+ pAxis: PIXI.Graphics;
1139
+ track: any;
1140
+ axisTexts: any[];
1141
+ axisTextFontFamily: string;
1142
+ axisTextFontSize: number;
1143
+ startAxis(axisHeight: any): void;
1144
+ createAxisTexts(valueScale: any, axisHeight: any): void;
1145
+ tickValues: any;
1146
+ tickFormat: ((n: number | {
1147
+ valueOf(): number;
1148
+ }) => string) | ((x: any) => any) | undefined;
1149
+ calculateAxisTickValues(valueScale: any, axisHeight: any): any;
1150
+ drawAxisLeft(valueScale: any, axisHeight: any): void;
1151
+ drawAxisRight(valueScale: any, axisHeight: any): void;
1152
+ hideOverlappingAxisLabels(): void;
1153
+ exportVerticalAxis(axisHeight: any): HTMLElement;
1154
+ createAxisSVGLine(): HTMLElement;
1155
+ createAxisSVGText(text: any): HTMLElement;
1156
+ exportAxisLeftSVG(valueScale: any, axisHeight: any): HTMLElement;
1157
+ exportAxisRightSVG(valueScale: any, axisHeight: any): HTMLElement;
1158
+ clearAxis(): void;
1159
+ }
1160
+ /**
1161
+ */
1162
+ declare class BackgroundTaskScheduler {
1163
+ /** @type {Task[]} */
1164
+ taskList: Task[];
1165
+ taskHandle: number | null;
1166
+ requestIdleCallbackTimeout: number;
1167
+ /**
1168
+ * @template T
1169
+ * @overload
1170
+ * @param {(data: T) => void} taskHandler
1171
+ * @param {T} taskData
1172
+ * @param {string | null=} trackId
1173
+ * @return {void}
1174
+ */
1175
+ enqueueTask<T>(taskHandler: (data: T) => void, taskData: T, trackId?: (string | null) | undefined): void;
1176
+ /**
1177
+ * If `taskData` is `null` the `taskHandler` will eventaully be called without any arguments.
1178
+ *
1179
+ * @overload
1180
+ * @param {() => void} taskHandler
1181
+ * @param {null} taskData
1182
+ * @param {string | null=} trackId
1183
+ * @return {void}
1184
+ */
1185
+ enqueueTask(taskHandler: () => void, taskData: null, trackId?: (string | null) | undefined): void;
1186
+ /**
1187
+ * @param {{ timeRemaining(): number, didTimeout: boolean }} deadline
1188
+ */
1189
+ runTaskQueue(deadline: {
1190
+ timeRemaining(): number;
1191
+ didTimeout: boolean;
1192
+ }): void;
1193
+ }
1194
+ declare function calculateResolution(tilesetInfo: any, zoomLevel: any): any;
1195
+ /**
1196
+ * Calculate the element within this tile containing the given
1197
+ * position.
1198
+ *
1199
+ * Returns the tile position and position within the tile for
1200
+ * the given element.
1201
+ *
1202
+ * @param {object} tilesetInfo: The information about this tileset
1203
+ * @param {Number} maxDim: The maximum width of the dataset (only used for
1204
+ * tilesets without resolutions)
1205
+ * @param {Number} dataStartPos: The position where the data begins
1206
+ * @param {int} zoomLevel: The current zoomLevel
1207
+ * @param {Number} position: The position (in absolute coordinates) to caculate
1208
+ * the tile and position in tile for
1209
+ */
1210
+ declare function calculateTileAndPosInTile(tilesetInfo: object, maxDim: number, dataStartPos: number, zoomLevel: int, position: number): number[];
1211
+ /**
1212
+ * Calculate the tiles that should be visible get a data domain
1213
+ * and a tileset info
1214
+ *
1215
+ * All the parameters except the first should be present in the
1216
+ * tileset_info returned by the server.
1217
+ *
1218
+ * @param {number} zoomLevel - The zoom level at which to find the tiles (can be
1219
+ * calculated using this.calcaulteZoomLevel, but needs to synchronized across
1220
+ * both x and y scales so should be calculated externally)
1221
+ * @param {import('../type').Scale} scale - A d3 scale mapping data domain to visible values
1222
+ * @param {number} minX - The minimum possible value in the dataset
1223
+ * @param {number} maxX - The maximum possible value in the dataset
1224
+ * @param {number} maxZoom - The maximum zoom value in this dataset
1225
+ * @param {number} maxDim - The largest dimension of the tileset (e.g., width or height)
1226
+ * (roughlty equal to 2 ** maxZoom * tileSize * tileResolution)
1227
+ * @returns {number[]} The indices of the tiles that should be visible
1228
+ */
1229
+ declare function calculateTiles(zoomLevel: number, scale: any, minX: number, maxX: number, maxZoom: number, maxDim: number): number[];
1230
+ /**
1231
+ * Calculate the tiles that sould be visisble given the resolution and
1232
+ * the minX and maxX values for the region
1233
+ *
1234
+ * @param {number} resolution - The number of base pairs per bin
1235
+ * @param {import('../type').Scale} scale - The scale to use to calculate the currently visible tiles
1236
+ * @param {number} minX - The minimum x position of the tileset
1237
+ * @param {number} maxX - The maximum x position of the tileset
1238
+ * @param {number=} pixelsPerTile - The number of pixels per tile
1239
+ * @returns {number[]} The indices of the tiles that should be visible
1240
+ */
1241
+ declare function calculateTilesFromResolution(resolution: number, scale: any, minX: number, maxX: number, pixelsPerTile?: number | undefined): number[];
1242
+ declare function calculateTileWidth(tilesetInfo: any, zoomLevel: any, binsPerTile: any): number;
1243
+ /**
1244
+ * Calculate the current zoom level.
1245
+ */
1246
+ declare function calculateZoomLevel(scale: any, minX: any, maxX: any, binsPerTile: any): number;
1247
+ /**
1248
+ * Calculate the zoom level from a list of available resolutions
1249
+ */
1250
+ declare function calculateZoomLevelFromResolutions(resolutions: any, scale: any): any;
1251
+ declare function fetchTilesDebounced(request: any, ...args: any[]): void;
1252
+ /**
1253
+ * Send a JSON request and mark it so that we can tell how many are in flight
1254
+ *
1255
+ * @param url: URL to fetch
1256
+ * @param callback: Callback to execute with content from fetch
1257
+ */
1258
+ declare function json(url: any, callback: any, pubSub: any): Promise<any>;
1259
+ /**
1260
+ * Send a text request and mark it so that we can tell how many are in flight
1261
+ *
1262
+ * @param url: URL to fetch
1263
+ * @param callback: Callback to execute with content from fetch
1264
+ */
1265
+ declare function text(url: any, callback: any, pubSub: any): Promise<any>;
1266
+ /**
1267
+ * Render 2D tile data. Convert the raw values to an array of
1268
+ * color values
1269
+ *
1270
+ * @param finished: A callback to let the caller know that the worker thread
1271
+ * has converted tileData to pixData
1272
+ * @param minVisibleValue: The minimum visible value (used for setting the color
1273
+ * scale)
1274
+ * @param maxVisibleValue: The maximum visible value
1275
+ * @param valueScaleType: Either 'log' or 'linear'
1276
+ * @param valueScaleDomain: The domain of the scale (the range is always [254,0])
1277
+ * @param colorScale: a 255 x 4 rgba array used as a color scale
1278
+ * @param synchronous: Render this tile synchronously or pass it on to the threadpool (which doesn't exist yet).
1279
+ * @param ignoreUpperRight: If this is a tile along the diagonal and there will
1280
+ * be mirrored tiles present ignore the upper right values
1281
+ * @param ignoreLowerLeft: If this is a tile along the diagonal and there will be
1282
+ * mirrored tiles present ignore the lower left values
1283
+ * @param {array} zeroValueColor: The color to use for rendering zero data values, [r, g, b, a].
1284
+ * @param {object} selectedRowsOptions Rendering options when using a `selectRows` track option.
1285
+ */
1286
+ declare function tileDataToPixData(tile: any, valueScaleType: any, valueScaleDomain: any, pseudocount: any, colorScale: any, finished: any, ignoreUpperRight: any, ignoreLowerLeft: any, zeroValueColor: array, selectedRowsOptions: object): void;
1287
+ /**
1288
+ * Request a tilesetInfo for a track
1289
+ *
1290
+ * @param {string} server: The server where the data resides
1291
+ * @param {string} tilesetUid: The identifier for the dataset
1292
+ * @param {func} doneCb: A callback that gets called when the data is retrieved
1293
+ * @param {func} errorCb: A callback that gets called when there is an error
1294
+ */
1295
+ declare function trackInfo(server: string, tilesetUid: string, doneCb: func, errorCb: func, pubSub: any): void;
1296
+ export { setupShowMousePosition as showMousePosition, api as tileProxy };
1297
+ //# sourceMappingURL=higlass-vendored.d.ts.map