@genome-spy/core 0.72.0 → 0.74.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 (396) hide show
  1. package/LICENSE +1 -1
  2. package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
  3. package/dist/bundle/browser-BTgw5ieH.js +126 -0
  4. package/dist/bundle/chunk-DmhlhrBa.js +11 -0
  5. package/dist/bundle/esm-BDFRLEuD.js +1248 -0
  6. package/dist/bundle/esm-BygJiwh0.js +573 -0
  7. package/dist/bundle/esm-CGX-qz1d.js +155 -0
  8. package/dist/bundle/esm-CgfVIRJ-.js +121 -0
  9. package/dist/bundle/esm-CuMSzCHy.js +298 -0
  10. package/dist/bundle/esm-DMXpJXM4.js +369 -0
  11. package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
  12. package/dist/bundle/esm-DtE8VqAv.js +1015 -0
  13. package/dist/bundle/esm-sIoQYZ21.js +461 -0
  14. package/dist/bundle/index.es.js +21078 -24556
  15. package/dist/bundle/index.js +379 -383
  16. package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
  17. package/dist/schema.json +13349 -7082
  18. package/dist/src/config/axisConfig.d.ts +16 -0
  19. package/dist/src/config/axisConfig.d.ts.map +1 -0
  20. package/dist/src/config/axisConfig.js +84 -0
  21. package/dist/src/config/defaultConfig.d.ts +3 -0
  22. package/dist/src/config/defaultConfig.d.ts.map +1 -0
  23. package/dist/src/config/defaultConfig.js +38 -0
  24. package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
  25. package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
  26. package/dist/src/config/defaults/axisDefaults.js +72 -0
  27. package/dist/src/config/defaults/markDefaults.d.ts +15 -0
  28. package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
  29. package/dist/src/config/defaults/markDefaults.js +121 -0
  30. package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
  31. package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
  32. package/dist/src/config/defaults/scaleDefaults.js +18 -0
  33. package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
  34. package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
  35. package/dist/src/config/defaults/titleDefaults.js +47 -0
  36. package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
  37. package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
  38. package/dist/src/config/defaults/viewDefaults.js +2 -0
  39. package/dist/src/config/markConfig.d.ts +8 -0
  40. package/dist/src/config/markConfig.d.ts.map +1 -0
  41. package/dist/src/config/markConfig.js +27 -0
  42. package/dist/src/config/mergeConfig.d.ts +8 -0
  43. package/dist/src/config/mergeConfig.d.ts.map +1 -0
  44. package/dist/src/config/mergeConfig.js +81 -0
  45. package/dist/src/config/resolveConfig.d.ts +22 -0
  46. package/dist/src/config/resolveConfig.d.ts.map +1 -0
  47. package/dist/src/config/resolveConfig.js +32 -0
  48. package/dist/src/config/scaleConfig.d.ts +40 -0
  49. package/dist/src/config/scaleConfig.d.ts.map +1 -0
  50. package/dist/src/config/scaleConfig.js +220 -0
  51. package/dist/src/config/styleUtils.d.ts +6 -0
  52. package/dist/src/config/styleUtils.d.ts.map +1 -0
  53. package/dist/src/config/styleUtils.js +10 -0
  54. package/dist/src/config/themes.d.ts +15 -0
  55. package/dist/src/config/themes.d.ts.map +1 -0
  56. package/dist/src/config/themes.js +293 -0
  57. package/dist/src/config/titleConfig.d.ts +12 -0
  58. package/dist/src/config/titleConfig.d.ts.map +1 -0
  59. package/dist/src/config/titleConfig.js +42 -0
  60. package/dist/src/config/viewConfig.d.ts +7 -0
  61. package/dist/src/config/viewConfig.d.ts.map +1 -0
  62. package/dist/src/config/viewConfig.js +29 -0
  63. package/dist/src/data/flowNode.d.ts +22 -1
  64. package/dist/src/data/flowNode.d.ts.map +1 -1
  65. package/dist/src/data/flowNode.js +37 -1
  66. package/dist/src/data/formats/bed.d.ts +8 -0
  67. package/dist/src/data/formats/bed.d.ts.map +1 -0
  68. package/dist/src/data/formats/bed.js +58 -0
  69. package/dist/src/data/formats/bedpe.d.ts +8 -0
  70. package/dist/src/data/formats/bedpe.d.ts.map +1 -0
  71. package/dist/src/data/formats/bedpe.js +164 -0
  72. package/dist/src/data/formats/fasta.d.ts.map +1 -1
  73. package/dist/src/data/formats/fasta.js +4 -0
  74. package/dist/src/data/formats/parquet.d.ts.map +1 -1
  75. package/dist/src/data/formats/parquet.js +4 -0
  76. package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
  77. package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
  78. package/dist/src/data/sources/dataSourceFactory.js +5 -141
  79. package/dist/src/data/sources/dataUtils.d.ts +16 -0
  80. package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
  81. package/dist/src/data/sources/dataUtils.js +53 -3
  82. package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
  83. package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
  84. package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
  85. package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
  86. package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
  87. package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
  88. package/dist/src/data/sources/lazy/bamSource.js +11 -0
  89. package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
  90. package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
  91. package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
  92. package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
  93. package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
  94. package/dist/src/data/sources/lazy/gff3Source.js +12 -1
  95. package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
  96. package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
  97. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
  98. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
  99. package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
  100. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
  101. package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
  102. package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
  103. package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
  104. package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
  105. package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
  106. package/dist/src/data/sources/lazy/vcfSource.js +11 -0
  107. package/dist/src/data/sources/urlSource.d.ts +4 -0
  108. package/dist/src/data/sources/urlSource.d.ts.map +1 -1
  109. package/dist/src/data/sources/urlSource.js +138 -16
  110. package/dist/src/data/transforms/aggregate.d.ts +1 -0
  111. package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
  112. package/dist/src/data/transforms/aggregate.js +30 -8
  113. package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
  114. package/dist/src/data/transforms/aggregateOps.js +12 -1
  115. package/dist/src/data/transforms/coverage.js +2 -2
  116. package/dist/src/data/transforms/filter.js +1 -1
  117. package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
  118. package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
  119. package/dist/src/data/transforms/filterScoredLabels.js +9 -0
  120. package/dist/src/data/transforms/measureText.d.ts +1 -0
  121. package/dist/src/data/transforms/measureText.d.ts.map +1 -1
  122. package/dist/src/data/transforms/measureText.js +14 -5
  123. package/dist/src/data/transforms/pileup.d.ts.map +1 -1
  124. package/dist/src/data/transforms/pileup.js +1 -2
  125. package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
  126. package/dist/src/data/transforms/regexFold.js +0 -1
  127. package/dist/src/embedFactory.d.ts +13 -0
  128. package/dist/src/embedFactory.d.ts.map +1 -0
  129. package/dist/src/embedFactory.js +127 -0
  130. package/dist/src/encoder/accessor.d.ts +3 -12
  131. package/dist/src/encoder/accessor.d.ts.map +1 -1
  132. package/dist/src/encoder/accessor.js +10 -65
  133. package/dist/src/encoder/encoder.d.ts +51 -8
  134. package/dist/src/encoder/encoder.d.ts.map +1 -1
  135. package/dist/src/encoder/encoder.js +179 -55
  136. package/dist/src/fonts/bmFontManager.js +1 -1
  137. package/dist/src/full.d.ts +2 -0
  138. package/dist/src/full.d.ts.map +1 -0
  139. package/dist/src/full.js +2 -0
  140. package/dist/src/genome/assemblyPreflight.d.ts +31 -0
  141. package/dist/src/genome/assemblyPreflight.d.ts.map +1 -0
  142. package/dist/src/genome/assemblyPreflight.js +99 -0
  143. package/dist/src/genome/genome.d.ts +10 -2
  144. package/dist/src/genome/genome.d.ts.map +1 -1
  145. package/dist/src/genome/genome.js +20 -2
  146. package/dist/src/genome/genomeStore.d.ts +34 -3
  147. package/dist/src/genome/genomeStore.d.ts.map +1 -1
  148. package/dist/src/genome/genomeStore.js +409 -18
  149. package/dist/src/genome/rootGenomeConfig.d.ts +26 -0
  150. package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -0
  151. package/dist/src/genome/rootGenomeConfig.js +98 -0
  152. package/dist/src/genome/scaleLocus.d.ts.map +1 -1
  153. package/dist/src/genome/scaleLocus.js +26 -7
  154. package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
  155. package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
  156. package/dist/src/genomeSpy/cursorManager.js +131 -0
  157. package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
  158. package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
  159. package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
  160. package/dist/src/genomeSpy/interactionController.d.ts +10 -1
  161. package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
  162. package/dist/src/genomeSpy/interactionController.js +448 -40
  163. package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
  164. package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
  165. package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
  166. package/dist/src/genomeSpy/renderCoordinator.js +1 -1
  167. package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
  168. package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
  169. package/dist/src/genomeSpy/viewContextFactory.js +12 -4
  170. package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
  171. package/dist/src/genomeSpy/viewDataInit.js +7 -3
  172. package/dist/src/genomeSpy.d.ts +1 -114
  173. package/dist/src/genomeSpy.d.ts.map +1 -1
  174. package/dist/src/genomeSpy.js +7 -614
  175. package/dist/src/genomeSpyBase.d.ts +133 -0
  176. package/dist/src/genomeSpyBase.d.ts.map +1 -0
  177. package/dist/src/genomeSpyBase.js +719 -0
  178. package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
  179. package/dist/src/gl/arrayBuilder.js +0 -3
  180. package/dist/src/gl/canvasSizeHelper.d.ts +74 -0
  181. package/dist/src/gl/canvasSizeHelper.d.ts.map +1 -0
  182. package/dist/src/gl/canvasSizeHelper.js +203 -0
  183. package/dist/src/gl/colorUtils.d.ts.map +1 -1
  184. package/dist/src/gl/colorUtils.js +3 -0
  185. package/dist/src/gl/dataToVertices.d.ts.map +1 -1
  186. package/dist/src/gl/dataToVertices.js +13 -8
  187. package/dist/src/gl/glslScaleGenerator.d.ts +2 -2
  188. package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
  189. package/dist/src/gl/glslScaleGenerator.js +5 -7
  190. package/dist/src/gl/webGLHelper.d.ts +25 -11
  191. package/dist/src/gl/webGLHelper.d.ts.map +1 -1
  192. package/dist/src/gl/webGLHelper.js +59 -33
  193. package/dist/src/index.d.ts +3 -9
  194. package/dist/src/index.d.ts.map +1 -1
  195. package/dist/src/index.js +5 -111
  196. package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
  197. package/dist/src/marks/link.d.ts.map +1 -1
  198. package/dist/src/marks/link.js +5 -26
  199. package/dist/src/marks/mark.d.ts +8 -1
  200. package/dist/src/marks/mark.d.ts.map +1 -1
  201. package/dist/src/marks/mark.js +67 -21
  202. package/dist/src/marks/markUtils.d.ts +18 -1
  203. package/dist/src/marks/markUtils.d.ts.map +1 -1
  204. package/dist/src/marks/markUtils.js +52 -4
  205. package/dist/src/marks/point.d.ts.map +1 -1
  206. package/dist/src/marks/point.js +6 -26
  207. package/dist/src/marks/rect.d.ts.map +1 -1
  208. package/dist/src/marks/rect.js +13 -21
  209. package/dist/src/marks/rule.d.ts +7 -2
  210. package/dist/src/marks/rule.d.ts.map +1 -1
  211. package/dist/src/marks/rule.js +125 -16
  212. package/dist/src/marks/text.d.ts.map +1 -1
  213. package/dist/src/marks/text.js +5 -47
  214. package/dist/src/minimal.d.ts +8 -0
  215. package/dist/src/minimal.d.ts.map +1 -0
  216. package/dist/src/minimal.js +21 -0
  217. package/dist/src/paramRuntime/viewParamRuntime.d.ts +19 -0
  218. package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
  219. package/dist/src/paramRuntime/viewParamRuntime.js +35 -0
  220. package/dist/src/scale/scale.d.ts.map +1 -1
  221. package/dist/src/scale/scale.js +13 -7
  222. package/dist/src/scales/axisResolution.d.ts.map +1 -1
  223. package/dist/src/scales/axisResolution.js +9 -5
  224. package/dist/src/scales/domainPlanner.d.ts +58 -7
  225. package/dist/src/scales/domainPlanner.d.ts.map +1 -1
  226. package/dist/src/scales/domainPlanner.js +395 -40
  227. package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
  228. package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
  229. package/dist/src/scales/indexLikeDomainUtils.js +67 -0
  230. package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
  231. package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
  232. package/dist/src/scales/resolutionMemberOrder.js +22 -0
  233. package/dist/src/scales/scaleInstanceManager.d.ts +2 -1
  234. package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
  235. package/dist/src/scales/scaleInstanceManager.js +10 -11
  236. package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
  237. package/dist/src/scales/scaleInteractionController.js +59 -18
  238. package/dist/src/scales/scalePropsResolver.d.ts +3 -1
  239. package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
  240. package/dist/src/scales/scalePropsResolver.js +83 -6
  241. package/dist/src/scales/scaleResolution.d.ts +39 -0
  242. package/dist/src/scales/scaleResolution.d.ts.map +1 -1
  243. package/dist/src/scales/scaleResolution.js +504 -82
  244. package/dist/src/scales/scaleResolutionTestUtils.d.ts +21 -0
  245. package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -0
  246. package/dist/src/scales/scaleResolutionTestUtils.js +37 -0
  247. package/dist/src/scales/scaleRules.d.ts.map +1 -1
  248. package/dist/src/scales/scaleRules.js +16 -2
  249. package/dist/src/scales/selectionDomainUtils.d.ts +52 -0
  250. package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -0
  251. package/dist/src/scales/selectionDomainUtils.js +194 -0
  252. package/dist/src/scales/zoomDomainUtils.d.ts +18 -0
  253. package/dist/src/scales/zoomDomainUtils.d.ts.map +1 -0
  254. package/dist/src/scales/zoomDomainUtils.js +69 -0
  255. package/dist/src/screenshotHarness.d.ts +16 -0
  256. package/dist/src/screenshotHarness.d.ts.map +1 -0
  257. package/dist/src/screenshotHarness.js +241 -0
  258. package/dist/src/singlePageApp.js +1 -1
  259. package/dist/src/spec/axis.d.ts +41 -30
  260. package/dist/src/spec/channel.d.ts +15 -9
  261. package/dist/src/spec/config.d.ts +264 -0
  262. package/dist/src/spec/data.d.ts +30 -3
  263. package/dist/src/spec/decoration.d.ts +51 -0
  264. package/dist/src/spec/exampleFiles.d.ts +12 -0
  265. package/dist/src/spec/exampleFiles.d.ts.map +1 -0
  266. package/dist/src/spec/exampleFiles.js +52 -0
  267. package/dist/src/spec/font.d.ts +1 -1
  268. package/dist/src/spec/genome.d.ts +22 -2
  269. package/dist/src/spec/mark.d.ts +97 -13
  270. package/dist/src/spec/parameter.d.ts +62 -5
  271. package/dist/src/spec/root.d.ts +34 -1
  272. package/dist/src/spec/scale.d.ts +46 -5
  273. package/dist/src/spec/title.d.ts +13 -2
  274. package/dist/src/spec/tooltip.d.ts +1 -1
  275. package/dist/src/spec/transform.d.ts +39 -4
  276. package/dist/src/spec/view.d.ts +67 -19
  277. package/dist/src/styles/genome-spy.css +63 -55
  278. package/dist/src/styles/genome-spy.css.d.ts +1 -1
  279. package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
  280. package/dist/src/styles/genome-spy.css.js +31 -22
  281. package/dist/src/testSetup.d.ts +2 -0
  282. package/dist/src/testSetup.d.ts.map +1 -0
  283. package/dist/src/testSetup.js +5 -0
  284. package/dist/src/tooltip/dataTooltipHandler.js +66 -11
  285. package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
  286. package/dist/src/tooltip/tooltipContext.js +3 -2
  287. package/dist/src/types/embedApi.d.ts +26 -0
  288. package/dist/src/types/encoder.d.ts +17 -15
  289. package/dist/src/types/scaleResolutionApi.d.ts +20 -0
  290. package/dist/src/types/viewContext.d.ts +23 -1
  291. package/dist/src/utils/expression.d.ts +2 -2
  292. package/dist/src/utils/expression.d.ts.map +1 -1
  293. package/dist/src/utils/expression.js +63 -8
  294. package/dist/src/utils/field.d.ts.map +1 -1
  295. package/dist/src/utils/field.js +0 -1
  296. package/dist/src/utils/inertia.d.ts.map +1 -1
  297. package/dist/src/utils/inertia.js +0 -1
  298. package/dist/src/utils/inferSpecBaseUrl.d.ts +14 -0
  299. package/dist/src/utils/inferSpecBaseUrl.d.ts.map +1 -0
  300. package/dist/src/utils/inferSpecBaseUrl.js +73 -0
  301. package/dist/src/utils/inputBinding.d.ts +1 -1
  302. package/dist/src/utils/interaction.d.ts +109 -0
  303. package/dist/src/utils/interaction.d.ts.map +1 -0
  304. package/dist/src/utils/interaction.js +200 -0
  305. package/dist/src/utils/interactionEvent.d.ts +62 -33
  306. package/dist/src/utils/interactionEvent.d.ts.map +1 -1
  307. package/dist/src/utils/interactionEvent.js +86 -48
  308. package/dist/src/utils/kWayMerge.js +1 -1
  309. package/dist/src/utils/mergeObjects.d.ts.map +1 -1
  310. package/dist/src/utils/mergeObjects.js +0 -2
  311. package/dist/src/utils/radixSort.d.ts.map +1 -1
  312. package/dist/src/utils/radixSort.js +0 -2
  313. package/dist/src/utils/throttle.d.ts.map +1 -1
  314. package/dist/src/utils/throttle.js +0 -2
  315. package/dist/src/utils/ui/tooltip.d.ts +1 -0
  316. package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
  317. package/dist/src/utils/ui/tooltip.js +1 -0
  318. package/dist/src/utils/url.js +1 -1
  319. package/dist/src/view/axisGridView.d.ts +1 -1
  320. package/dist/src/view/axisGridView.d.ts.map +1 -1
  321. package/dist/src/view/axisGridView.js +2 -47
  322. package/dist/src/view/axisView.d.ts +2 -3
  323. package/dist/src/view/axisView.d.ts.map +1 -1
  324. package/dist/src/view/axisView.js +251 -106
  325. package/dist/src/view/concatView.d.ts +2 -1
  326. package/dist/src/view/concatView.d.ts.map +1 -1
  327. package/dist/src/view/concatView.js +4 -2
  328. package/dist/src/view/containerMutationHelper.d.ts +3 -0
  329. package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
  330. package/dist/src/view/containerMutationHelper.js +12 -1
  331. package/dist/src/view/dataReadiness.d.ts +2 -2
  332. package/dist/src/view/dataReadiness.d.ts.map +1 -1
  333. package/dist/src/view/dataReadiness.js +63 -58
  334. package/dist/src/view/facetView.d.ts +1 -1
  335. package/dist/src/view/facetView.js +4 -4
  336. package/dist/src/view/flowBuilder.js +2 -2
  337. package/dist/src/view/gridView/gridChild.d.ts +13 -0
  338. package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
  339. package/dist/src/view/gridView/gridChild.js +247 -49
  340. package/dist/src/view/gridView/gridView.d.ts.map +1 -1
  341. package/dist/src/view/gridView/gridView.js +296 -99
  342. package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
  343. package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
  344. package/dist/src/view/gridView/keyboardZoomController.js +1 -1
  345. package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
  346. package/dist/src/view/gridView/scrollbar.js +4 -2
  347. package/dist/src/view/gridView/selectionRect.d.ts +4 -0
  348. package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
  349. package/dist/src/view/gridView/selectionRect.js +20 -1
  350. package/dist/src/view/gridView/separatorView.d.ts +1 -0
  351. package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
  352. package/dist/src/view/gridView/separatorView.js +9 -0
  353. package/dist/src/view/interactionRouting.d.ts +20 -0
  354. package/dist/src/view/interactionRouting.d.ts.map +1 -0
  355. package/dist/src/view/interactionRouting.js +53 -0
  356. package/dist/src/view/layerView.d.ts.map +1 -1
  357. package/dist/src/view/layerView.js +12 -9
  358. package/dist/src/view/layout/grid.js +1 -1
  359. package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
  360. package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
  361. package/dist/src/view/testUtils.d.ts +17 -3
  362. package/dist/src/view/testUtils.d.ts.map +1 -1
  363. package/dist/src/view/testUtils.js +62 -69
  364. package/dist/src/view/title.d.ts +8 -1
  365. package/dist/src/view/title.d.ts.map +1 -1
  366. package/dist/src/view/title.js +66 -76
  367. package/dist/src/view/unitView.d.ts +1 -1
  368. package/dist/src/view/unitView.d.ts.map +1 -1
  369. package/dist/src/view/unitView.js +67 -17
  370. package/dist/src/view/view.d.ts +76 -30
  371. package/dist/src/view/view.d.ts.map +1 -1
  372. package/dist/src/view/view.js +136 -47
  373. package/dist/src/view/viewFactory.d.ts +11 -3
  374. package/dist/src/view/viewFactory.d.ts.map +1 -1
  375. package/dist/src/view/viewFactory.js +37 -11
  376. package/dist/src/view/viewUtils.d.ts.map +1 -1
  377. package/dist/src/view/viewUtils.js +41 -5
  378. package/dist/src/view/zoom.d.ts +15 -3
  379. package/dist/src/view/zoom.d.ts.map +1 -1
  380. package/dist/src/view/zoom.js +375 -80
  381. package/package.json +20 -10
  382. package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
  383. package/dist/bundle/browser-0iNU5Wit.js +0 -138
  384. package/dist/bundle/index-BYsZN7b0.js +0 -1597
  385. package/dist/bundle/index-C3kClAEN.js +0 -1771
  386. package/dist/bundle/index-C7wOh6y1.js +0 -657
  387. package/dist/bundle/index-CRaQAuki.js +0 -326
  388. package/dist/bundle/index-D9v1PCj9.js +0 -507
  389. package/dist/bundle/index-GDOuv_D5.js +0 -266
  390. package/dist/bundle/index-Gt44EOIH.js +0 -628
  391. package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
  392. package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
  393. package/dist/bundle/unzip-Bac01w6X.js +0 -1492
  394. package/dist/src/config/scaleDefaults.d.ts +0 -8
  395. package/dist/src/config/scaleDefaults.d.ts.map +0 -1
  396. package/dist/src/config/scaleDefaults.js +0 -45
@@ -1,4 +1,3 @@
1
- /* eslint-disable max-depth */
2
1
  import { primaryPositionalChannels } from "../../encoder/encoder.js";
3
2
  import {
4
3
  FlexDimensions,
@@ -12,6 +11,10 @@ import Padding from "../layout/padding.js";
12
11
  import Rectangle from "../layout/rectangle.js";
13
12
  import AxisView, { CHANNEL_ORIENTS, ORIENT_CHANNELS } from "../axisView.js";
14
13
  import ContainerView from "../containerView.js";
14
+ import {
15
+ propagateInteraction,
16
+ propagateInteractionSurface,
17
+ } from "../interactionRouting.js";
15
18
  import LayerView from "../layerView.js";
16
19
  import UnitView from "../unitView.js";
17
20
  import { interactionToZoom } from "../zoom.js";
@@ -20,6 +23,26 @@ import KeyboardZoomController from "./keyboardZoomController.js";
20
23
  import SeparatorView, { resolveSeparatorProps } from "./separatorView.js";
21
24
  import { getZoomableResolutions } from "./zoomNavigationUtils.js";
22
25
 
26
+ // Secondary ordering within a z-index bucket for GridView-owned decorations.
27
+ // These are not z-indices themselves: actual layering is decided first by the
28
+ // decoration's zindex (underlay vs overlay relative to content), and these
29
+ // values are only used as tie-break phases among decorations in the same batch.
30
+ const DECORATION_ORDER = Object.freeze({
31
+ background: 0,
32
+ separator: 10,
33
+ grid: 20,
34
+ backgroundStroke: 30,
35
+ axis: 40,
36
+ selectionRect: 80,
37
+ scrollbar: 90,
38
+ title: 100,
39
+ });
40
+
41
+ // Default z-index for axes and view strokes when the content is clipped or
42
+ // scrollable. This keeps guides above content-edge artifacts while still
43
+ // letting an explicit user zindex override the default.
44
+ const CLIPPED_DECORATION_ZINDEX = 10;
45
+
23
46
  /**
24
47
  * Modeled after: https://vega.github.io/vega/docs/layout/
25
48
  *
@@ -543,7 +566,6 @@ export default class GridView extends ContainerView {
543
566
  * @param {import("../layout/rectangle.js").default} coords
544
567
  * @param {import("../../types/rendering.js").RenderingOptions} [options]
545
568
  */
546
- // eslint-disable-next-line complexity
547
569
  render(context, coords, options = {}) {
548
570
  super.render(context, coords, options);
549
571
 
@@ -585,8 +607,8 @@ export default class GridView extends ContainerView {
585
607
  const round = (x) =>
586
608
  Math.round(x * devicePixelRatio) / devicePixelRatio;
587
609
 
588
- // Two-phase render: compute layout once, then render backgrounds/separators
589
- // before gridlines/axes/marks without recomputing per-child coords.
610
+ // Compute layout once and then dispatch decorations around the content
611
+ // render pass without recomputing per-child coordinates.
590
612
  const renderItems = [];
591
613
 
592
614
  for (const [i, gridChild] of this.#visibleChildren.entries()) {
@@ -685,14 +707,62 @@ export default class GridView extends ContainerView {
685
707
  });
686
708
  }
687
709
 
688
- for (const item of renderItems) {
689
- item.background?.render(context, item.clippedChildCoords, {
690
- ...options,
691
- clipRect: undefined,
710
+ const gridOverhang = this.#getGridOverhang();
711
+
712
+ /** @type {{ zindex: number, order: number, sequence: number, render: () => void }[]} */
713
+ const underlays = [];
714
+ /** @type {{ zindex: number, order: number, sequence: number, render: () => void }[]} */
715
+ const overlays = [];
716
+ /** @type {(() => void)[]} */
717
+ const contents = [];
718
+ let sequence = 0;
719
+
720
+ const queueDecoration = (
721
+ /** @type {number} */ zindex,
722
+ /** @type {number} */ order,
723
+ /** @type {() => void} */ render
724
+ ) => {
725
+ const target = zindex > 0 ? overlays : underlays;
726
+ target.push({
727
+ zindex,
728
+ order,
729
+ sequence: sequence++,
730
+ render,
692
731
  });
693
- }
732
+ };
694
733
 
695
- const gridOverhang = this.#getGridOverhang();
734
+ const renderDecorations = (
735
+ /** @type {{ zindex: number, order: number, sequence: number, render: () => void }[]} */ items
736
+ ) => {
737
+ items.sort(
738
+ (a, b) =>
739
+ a.zindex - b.zindex ||
740
+ a.order - b.order ||
741
+ a.sequence - b.sequence
742
+ );
743
+
744
+ for (const item of items) {
745
+ item.render();
746
+ }
747
+ };
748
+
749
+ for (const item of renderItems) {
750
+ if (item.background) {
751
+ queueDecoration(
752
+ item.gridChild.backgroundZindex,
753
+ DECORATION_ORDER.background,
754
+ () =>
755
+ item.background?.render(
756
+ context,
757
+ item.clippedChildCoords,
758
+ {
759
+ ...options,
760
+ clipRect: undefined,
761
+ }
762
+ )
763
+ );
764
+ }
765
+ }
696
766
 
697
767
  const verticalSeparator = this.#separatorViews.vertical;
698
768
  if (verticalSeparator) {
@@ -704,7 +774,11 @@ export default class GridView extends ContainerView {
704
774
  this.wrappingFacet,
705
775
  gridOverhang
706
776
  );
707
- verticalSeparator.render(context, coords, options);
777
+ queueDecoration(
778
+ verticalSeparator.getZindex(),
779
+ DECORATION_ORDER.separator,
780
+ () => verticalSeparator.render(context, coords, options)
781
+ );
708
782
  }
709
783
 
710
784
  const horizontalSeparator = this.#separatorViews.horizontal;
@@ -717,7 +791,11 @@ export default class GridView extends ContainerView {
717
791
  this.wrappingFacet,
718
792
  gridOverhang
719
793
  );
720
- horizontalSeparator.render(context, coords, options);
794
+ queueDecoration(
795
+ horizontalSeparator.getZindex(),
796
+ DECORATION_ORDER.separator,
797
+ () => horizontalSeparator.render(context, coords, options)
798
+ );
721
799
  }
722
800
 
723
801
  for (const item of renderItems) {
@@ -739,24 +817,44 @@ export default class GridView extends ContainerView {
739
817
  row,
740
818
  } = item;
741
819
 
820
+ const clipped = isClippedChildren(view) || scrollable;
821
+
742
822
  for (const gridLineView of Object.values(gridLines)) {
743
- gridLineView.render(context, viewportCoords, options);
823
+ queueDecoration(
824
+ gridLineView.axisProps.zindex ?? 0,
825
+ DECORATION_ORDER.grid,
826
+ () => gridLineView.render(context, viewportCoords, options)
827
+ );
744
828
  }
745
829
 
746
- const clipped = isClippedChildren(view) || scrollable;
830
+ const renderContent = () =>
831
+ view.render(
832
+ context,
833
+ viewCoords,
834
+ clipped
835
+ ? {
836
+ ...options,
837
+ clipRect: clippedChildCoords,
838
+ }
839
+ : options
840
+ );
747
841
 
748
- // If clipped, the axes should be drawn on top of the marks (because clipping may not be pixel-perfect)
749
- if (clipped) {
750
- view.render(context, viewCoords, {
751
- ...options,
752
- clipRect: clippedChildCoords,
753
- });
754
- }
842
+ contents.push(renderContent);
755
843
 
756
- backgroundStroke?.render(context, clippedChildCoords, {
757
- ...options,
758
- clipRect: undefined,
759
- });
844
+ if (backgroundStroke) {
845
+ queueDecoration(
846
+ defaultBackgroundStrokeZindex(
847
+ gridChild.backgroundStrokeZindex,
848
+ clipped
849
+ ),
850
+ DECORATION_ORDER.backgroundStroke,
851
+ () =>
852
+ backgroundStroke?.render(context, clippedChildCoords, {
853
+ ...options,
854
+ clipRect: undefined,
855
+ })
856
+ );
857
+ }
760
858
 
761
859
  // Independent axes
762
860
  for (const [orient, axisView] of Object.entries(axes)) {
@@ -811,10 +909,15 @@ export default class GridView extends ContainerView {
811
909
  );
812
910
  }
813
911
 
814
- axisView.render(context, translatedCoords, {
815
- ...options,
816
- clipRect,
817
- });
912
+ queueDecoration(
913
+ defaultAxisZindex(axisView.axisProps.zindex, clipped),
914
+ DECORATION_ORDER.axis,
915
+ () =>
916
+ axisView.render(context, translatedCoords, {
917
+ ...options,
918
+ clipRect,
919
+ })
920
+ );
818
921
  }
819
922
 
820
923
  // Axes shared between children
@@ -829,93 +932,136 @@ export default class GridView extends ContainerView {
829
932
  (orient == "top" && row == 0) ||
830
933
  (orient == "bottom" && row == grid.nRows - 1)
831
934
  ) {
832
- axisView.render(
833
- context,
834
- translateAxisCoords(
835
- viewportCoords.shrink(gridChild.view.getOverhang()),
836
- orient,
837
- axisView
838
- ),
839
- options
935
+ queueDecoration(
936
+ defaultAxisZindex(axisView.axisProps.zindex, clipped),
937
+ DECORATION_ORDER.axis,
938
+ () =>
939
+ axisView.render(
940
+ context,
941
+ translateAxisCoords(
942
+ viewportCoords.shrink(
943
+ gridChild.view.getOverhang()
944
+ ),
945
+ orient,
946
+ axisView
947
+ ),
948
+ options
949
+ )
840
950
  );
841
951
  }
842
952
  }
843
953
 
844
- if (!clipped) {
845
- view.render(context, viewCoords, options);
954
+ if (selectionRect) {
955
+ queueDecoration(
956
+ selectionRect.getZindex(),
957
+ DECORATION_ORDER.selectionRect,
958
+ () => selectionRect?.render(context, viewCoords, options)
959
+ );
846
960
  }
847
961
 
848
- selectionRect?.render(context, viewCoords, options);
849
-
850
962
  for (const scrollbar of Object.values(gridChild.scrollbars)) {
851
- scrollbar.updateScrollbar(viewportCoords, viewCoords);
852
- scrollbar.render(context, coords, options);
963
+ queueDecoration(1, DECORATION_ORDER.scrollbar, () => {
964
+ scrollbar.updateScrollbar(viewportCoords, viewCoords);
965
+ scrollbar.render(context, coords, options);
966
+ });
967
+ }
968
+
969
+ if (title) {
970
+ queueDecoration(
971
+ gridChild.titleZindex,
972
+ DECORATION_ORDER.title,
973
+ () => title?.render(context, viewportCoords, options)
974
+ );
853
975
  }
976
+ }
977
+
978
+ renderDecorations(underlays);
854
979
 
855
- title?.render(context, viewportCoords, options);
980
+ for (const renderContent of contents) {
981
+ renderContent();
856
982
  }
857
983
 
984
+ renderDecorations(overlays);
985
+
858
986
  context.popView(this);
859
987
  }
860
988
 
861
989
  /**
862
- * @param {import("../../utils/interactionEvent.js").default} event
990
+ * @param {import("../../utils/interaction.js").default} event
863
991
  */
864
- propagateInteractionEvent(event) {
865
- this.handleInteractionEvent(undefined, event, true);
866
-
867
- if (event.stopped) {
868
- return;
869
- }
870
-
871
- const pointedChild = this.#visibleChildren.find((gridChild) =>
872
- gridChild.coords.containsPoint(event.point.x, event.point.y)
873
- );
874
- this.#keyboardZoomController?.handlePointerEvent(pointedChild, event);
992
+ propagateInteraction(event) {
993
+ propagateInteraction(this, event, () => {
994
+ const pointedChild = this.#visibleChildren.find((gridChild) =>
995
+ gridChild.coords.containsPoint(event.point.x, event.point.y)
996
+ );
997
+ const pointedView = pointedChild?.view;
875
998
 
876
- for (const scrollbar of Object.values(pointedChild?.scrollbars ?? {})) {
877
- if (scrollbar.coords.containsPoint(event.point.x, event.point.y)) {
878
- scrollbar.propagateInteractionEvent(event);
879
- if (event.stopped) {
999
+ if (event.type === "wheelclaimprobe") {
1000
+ // Probe path: claim wheel ownership without executing regular wheel
1001
+ // behavior. InteractionController uses this to decide whether native
1002
+ // wheel should be preventDefault()'ed before inertia kicks in.
1003
+ if (!pointedView) {
880
1004
  return;
881
1005
  }
882
- }
883
- }
884
-
885
- const pointedView = pointedChild?.view;
886
- if (pointedView) {
887
- pointedView.propagateInteractionEvent(event);
888
1006
 
889
- if (event.stopped) {
1007
+ if (isZoomInteractionView(pointedView)) {
1008
+ if (hasZoomableResolutions(pointedView)) {
1009
+ event.claimWheel();
1010
+ }
1011
+ } else {
1012
+ pointedView.propagateInteraction(event);
1013
+ }
890
1014
  return;
891
1015
  }
892
1016
 
893
- // Hmm, maybe this should be registered when needed and not include
894
- // as a hardcoded interaction?
895
- if (
896
- pointedView instanceof UnitView ||
897
- pointedView instanceof LayerView
898
- ) {
899
- interactionToZoom(
1017
+ this.#keyboardZoomController?.handlePointerEvent(
1018
+ pointedChild,
1019
+ event
1020
+ );
1021
+
1022
+ for (const scrollbar of Object.values(
1023
+ pointedChild?.scrollbars ?? {}
1024
+ )) {
1025
+ propagateInteractionSurface(
900
1026
  event,
901
- pointedChild.coords,
902
- (zoomEvent) =>
903
- this.#handleZoom(
904
- pointedChild.coords,
905
- pointedChild.view,
906
- zoomEvent
1027
+ () =>
1028
+ scrollbar.coords.containsPoint(
1029
+ event.point.x,
1030
+ event.point.y
907
1031
  ),
908
- this.context.getCurrentHover(),
909
- this.context.animator
1032
+ () => scrollbar.propagateInteraction(event)
910
1033
  );
1034
+
1035
+ if (event.stopped) {
1036
+ return;
1037
+ }
911
1038
  }
912
- }
913
1039
 
914
- if (event.stopped) {
915
- return;
916
- }
1040
+ if (!pointedView) {
1041
+ return;
1042
+ }
917
1043
 
918
- this.handleInteractionEvent(undefined, event, false);
1044
+ propagateInteractionSurface(
1045
+ event,
1046
+ () => true,
1047
+ () => pointedView.propagateInteraction(event),
1048
+ isZoomInteractionView(pointedView)
1049
+ ? () =>
1050
+ interactionToZoom(
1051
+ event,
1052
+ pointedChild.coords,
1053
+ (zoomEvent) =>
1054
+ this.#handleZoom(
1055
+ pointedChild.coords,
1056
+ pointedChild.view,
1057
+ zoomEvent
1058
+ ),
1059
+ this.context.getCurrentHover(),
1060
+ this.context.animator
1061
+ )
1062
+ : undefined
1063
+ );
1064
+ });
919
1065
  }
920
1066
 
921
1067
  /**
@@ -923,8 +1069,22 @@ export default class GridView extends ContainerView {
923
1069
  * @param {import("../layout/rectangle.js").default} coords Coordinates
924
1070
  * @param {View} view
925
1071
  * @param {import("../zoom.js").ZoomEvent} zoomEvent
1072
+ * @returns {boolean} `true` when there was at least one zoomable resolution
926
1073
  */
927
1074
  #handleZoom(coords, view, zoomEvent) {
1075
+ let zoomable = false;
1076
+ let changed = false;
1077
+
1078
+ const p = coords.normalizePoint(zoomEvent.x, zoomEvent.y);
1079
+ const tp = coords.normalizePoint(
1080
+ zoomEvent.x + zoomEvent.xDelta,
1081
+ zoomEvent.y + zoomEvent.yDelta
1082
+ );
1083
+ const delta = {
1084
+ x: tp.x - p.x,
1085
+ y: tp.y - p.y,
1086
+ };
1087
+
928
1088
  for (const [channel, resolutionSet] of Object.entries(
929
1089
  getZoomableResolutions(view)
930
1090
  )) {
@@ -932,27 +1092,23 @@ export default class GridView extends ContainerView {
932
1092
  continue;
933
1093
  }
934
1094
 
935
- const p = coords.normalizePoint(zoomEvent.x, zoomEvent.y);
936
- const tp = coords.normalizePoint(
937
- zoomEvent.x + zoomEvent.xDelta,
938
- zoomEvent.y + zoomEvent.yDelta
939
- );
940
-
941
- const delta = {
942
- x: tp.x - p.x,
943
- y: tp.y - p.y,
944
- };
1095
+ zoomable = true;
945
1096
 
946
1097
  for (const resolution of resolutionSet) {
947
- resolution.zoom(
1098
+ const resolutionChanged = resolution.zoom(
948
1099
  2 ** zoomEvent.zDelta,
949
1100
  channel == "y" ? 1 - p[channel] : p[channel],
950
1101
  channel == "x" ? delta.x : -delta.y
951
1102
  );
1103
+ changed = resolutionChanged || changed;
952
1104
  }
953
1105
  }
954
1106
 
955
- this.context.animator.requestRender();
1107
+ if (changed) {
1108
+ this.context.animator.requestRender();
1109
+ }
1110
+
1111
+ return zoomable;
956
1112
  }
957
1113
 
958
1114
  /**
@@ -980,6 +1136,23 @@ export function isClippedChildren(view) {
980
1136
  return clipped;
981
1137
  }
982
1138
 
1139
+ /**
1140
+ * @param {View} view
1141
+ * @returns {boolean}
1142
+ */
1143
+ function hasZoomableResolutions(view) {
1144
+ const zoomableResolutions = getZoomableResolutions(view);
1145
+ return zoomableResolutions.x.size > 0 || zoomableResolutions.y.size > 0;
1146
+ }
1147
+
1148
+ /**
1149
+ * @param {View} view
1150
+ * @returns {view is UnitView | LayerView}
1151
+ */
1152
+ function isZoomInteractionView(view) {
1153
+ return view instanceof UnitView || view instanceof LayerView;
1154
+ }
1155
+
983
1156
  /**
984
1157
  * @param {import("../../spec/view.js").AnyConcatSpec} spec
985
1158
  * @returns {("horizontal" | "vertical")[]}
@@ -997,6 +1170,30 @@ function getSeparatorDirections(spec) {
997
1170
  return ["horizontal", "vertical"];
998
1171
  }
999
1172
 
1173
+ /**
1174
+ * Default z-index for axes. Clipped or scrollable content gets a higher
1175
+ * default to keep guides above visible edge artifacts.
1176
+ *
1177
+ * @param {number | undefined} zindex
1178
+ * @param {boolean} clipped
1179
+ * @returns {number}
1180
+ */
1181
+ function defaultAxisZindex(zindex, clipped) {
1182
+ return zindex ?? (clipped ? CLIPPED_DECORATION_ZINDEX : 0);
1183
+ }
1184
+
1185
+ /**
1186
+ * Default z-index for view strokes. Clipped or scrollable content gets a
1187
+ * higher default to keep the stroke above visible edge artifacts.
1188
+ *
1189
+ * @param {number | undefined} zindex
1190
+ * @param {boolean} clipped
1191
+ * @returns {number}
1192
+ */
1193
+ function defaultBackgroundStrokeZindex(zindex, clipped) {
1194
+ return zindex ?? (clipped ? CLIPPED_DECORATION_ZINDEX : 0);
1195
+ }
1196
+
1000
1197
  /**
1001
1198
  *
1002
1199
  * @param {import("../layout/rectangle.js").default} coords
@@ -13,9 +13,9 @@ export default class KeyboardZoomController {
13
13
  });
14
14
  /**
15
15
  * @param {import("./gridChild.js").default | undefined} pointedChild
16
- * @param {import("../../utils/interactionEvent.js").default} event
16
+ * @param {import("../../utils/interaction.js").default} event
17
17
  */
18
- handlePointerEvent(pointedChild: import("./gridChild.js").default | undefined, event: import("../../utils/interactionEvent.js").default): void;
18
+ handlePointerEvent(pointedChild: import("./gridChild.js").default | undefined, event: import("../../utils/interaction.js").default): void;
19
19
  #private;
20
20
  }
21
21
  //# sourceMappingURL=keyboardZoomController.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"keyboardZoomController.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/keyboardZoomController.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAuDI;;;;OAIG;IACH,mCAHG;QAA6D,OAAO,EAA5D,OAAO,4BAA4B,EAAE,OAAO;QACP,QAAQ,EAA7C,OAAO,YAAY,EAAE,OAAO;KACtC,EAKA;IAED;;;OAGG;IACH,iCAHW,OAAO,gBAAgB,EAAE,OAAO,GAAG,SAAS,SAC5C,OAAO,iCAAiC,EAAE,OAAO,QA0B3D;;CA4DJ"}
1
+ {"version":3,"file":"keyboardZoomController.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/keyboardZoomController.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IAuDI;;;;OAIG;IACH,mCAHG;QAA6D,OAAO,EAA5D,OAAO,4BAA4B,EAAE,OAAO;QACP,QAAQ,EAA7C,OAAO,YAAY,EAAE,OAAO;KACtC,EAKA;IAED;;;OAGG;IACH,iCAHW,OAAO,gBAAgB,EAAE,OAAO,GAAG,SAAS,SAC5C,OAAO,4BAA4B,EAAE,OAAO,QA0BtD;;CA4DJ"}
@@ -73,7 +73,7 @@ export default class KeyboardZoomController {
73
73
 
74
74
  /**
75
75
  * @param {import("./gridChild.js").default | undefined} pointedChild
76
- * @param {import("../../utils/interactionEvent.js").default} event
76
+ * @param {import("../../utils/interaction.js").default} event
77
77
  */
78
78
  handlePointerEvent(pointedChild, event) {
79
79
  if (!pointedChild) {
@@ -1 +1 @@
1
- {"version":3,"file":"scrollbar.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/scrollbar.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH;IAwBI;;;;OAIG;IACH,uBAJW,OAAO,gBAAgB,EAAE,OAAO,mBAChC,eAAe,YACf;QAAE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,EAyH/D;IAxID;;;;;;OAMG;IACH,uBAAmB;IAkDf;;;;MAAoB;IAiFxB,2BAEC;IAED;;;OAGG;IACH,yBAHW,MAAM,6BACN;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,QAYtD;IAqFD;;;;;;;;;OASG;IACH,gCAHW,SAAS,iBACT,SAAS,QASnB;IAMG;;;;MAWC;;CAER;;;;;8BAnSY,YAAY,GAAG,UAAU;qBAPjB,gBAAgB;sBADf,wBAAwB"}
1
+ {"version":3,"file":"scrollbar.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/scrollbar.js"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH;IAwBI;;;;OAIG;IACH,uBAJW,OAAO,gBAAgB,EAAE,OAAO,mBAChC,eAAe,YACf;QAAE,sBAAsB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,EA2H/D;IA1ID;;;;;;OAMG;IACH,uBAAmB;IAkDf;;;;MAAoB;IAmFxB,2BAEC;IAED;;;OAGG;IACH,yBAHW,MAAM,6BACN;QAAE,MAAM,CAAC,EAAE,OAAO,CAAC;QAAC,YAAY,CAAC,EAAE,OAAO,CAAA;KAAE,QAYtD;IAqFD;;;;;;;;;OASG;IACH,gCAHW,SAAS,iBACT,SAAS,QASnB;IAMG;;;;MAWC;;CAER;;;;;8BArSY,YAAY,GAAG,UAAU;qBAPjB,gBAAgB;sBADf,wBAAwB"}
@@ -112,7 +112,7 @@ export default class Scrollbar extends UnitView {
112
112
  // Smooth viewport offset updates
113
113
  this.#initViewportOffsetSmoother(this.viewportOffset);
114
114
 
115
- this.addInteractionEventListener("mousedown", (coords, event) => {
115
+ this.addInteractionListener("mousedown", (event) => {
116
116
  event.stopPropagation();
117
117
 
118
118
  if (this.#getMaxScrollOffset() <= 0) {
@@ -125,6 +125,7 @@ export default class Scrollbar extends UnitView {
125
125
  : mouseEvent.clientX;
126
126
 
127
127
  event.mouseEvent.preventDefault();
128
+ this.context.suspendHoverTracking();
128
129
 
129
130
  const initialScrollOffset = this.scrollOffset;
130
131
  const initialOffset = getMouseOffset(event.mouseEvent);
@@ -150,9 +151,10 @@ export default class Scrollbar extends UnitView {
150
151
  });
151
152
  };
152
153
 
153
- const onMouseup = () => {
154
+ const onMouseup = (/** @type {MouseEvent} */ upEvent) => {
154
155
  document.removeEventListener("mousemove", onMousemove);
155
156
  document.removeEventListener("mouseup", onMouseup);
157
+ this.context.resumeHoverTracking(upEvent);
156
158
  };
157
159
 
158
160
  document.addEventListener("mouseup", onMouseup, false);
@@ -1,3 +1,4 @@
1
+ export const INTERVAL_DRAG_ACTIVE_PARAM: "intervalDragActive";
1
2
  export default class SelectionRect extends LayerView<import("../../spec/view.js").LayerSpec> {
2
3
  /**
3
4
  * @typedef {import("../../spec/channel.js").PrimaryPositionalChannel} PrimaryPositionalChannel
@@ -9,6 +10,9 @@ export default class SelectionRect extends LayerView<import("../../spec/view.js"
9
10
  * @param {import("../../spec/parameter.js").BrushConfig} [brushConfig]
10
11
  */
11
12
  constructor(gridChild: import("./gridChild.js").default, selectionExpr: import("../../paramRuntime/types.js").ExprRefFunction, brushConfig?: import("../../spec/parameter.js").BrushConfig);
13
+ /** @type {number} */
14
+ _zindex: number;
15
+ getZindex(): number;
12
16
  }
13
17
  import LayerView from "../layerView.js";
14
18
  //# sourceMappingURL=selectionRect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"selectionRect.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/selectionRect.js"],"names":[],"mappings":"AAIA;IACI;;;OAGG;IAEH;;;;OAIG;IACH,uBAJW,OAAO,gBAAgB,EAAE,OAAO,iBAChC,OAAO,6BAA6B,EAAE,eAAe,gBACrD,OAAO,yBAAyB,EAAE,WAAW,EA+JvD;CACJ;sBA5KqB,iBAAiB"}
1
+ {"version":3,"file":"selectionRect.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/selectionRect.js"],"names":[],"mappings":"AAIA,yCAA0C,oBAAoB,CAAC;AAE/D;IACI;;;OAGG;IAEH;;;;OAIG;IACH,uBAJW,OAAO,gBAAgB,EAAE,OAAO,iBAChC,OAAO,6BAA6B,EAAE,eAAe,gBACrD,OAAO,yBAAyB,EAAE,WAAW,EA4KvD;IA1BG,qBAAqB;IACrB,SADW,MAAM,CACI;IA2BzB,oBAEC;CACJ;sBA/LqB,iBAAiB"}