@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.
- package/LICENSE +1 -1
- package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
- package/dist/bundle/browser-BTgw5ieH.js +126 -0
- package/dist/bundle/chunk-DmhlhrBa.js +11 -0
- package/dist/bundle/esm-BDFRLEuD.js +1248 -0
- package/dist/bundle/esm-BygJiwh0.js +573 -0
- package/dist/bundle/esm-CGX-qz1d.js +155 -0
- package/dist/bundle/esm-CgfVIRJ-.js +121 -0
- package/dist/bundle/esm-CuMSzCHy.js +298 -0
- package/dist/bundle/esm-DMXpJXM4.js +369 -0
- package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
- package/dist/bundle/esm-DtE8VqAv.js +1015 -0
- package/dist/bundle/esm-sIoQYZ21.js +461 -0
- package/dist/bundle/index.es.js +21078 -24556
- package/dist/bundle/index.js +379 -383
- package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
- package/dist/schema.json +13349 -7082
- package/dist/src/config/axisConfig.d.ts +16 -0
- package/dist/src/config/axisConfig.d.ts.map +1 -0
- package/dist/src/config/axisConfig.js +84 -0
- package/dist/src/config/defaultConfig.d.ts +3 -0
- package/dist/src/config/defaultConfig.d.ts.map +1 -0
- package/dist/src/config/defaultConfig.js +38 -0
- package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
- package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/axisDefaults.js +72 -0
- package/dist/src/config/defaults/markDefaults.d.ts +15 -0
- package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/markDefaults.js +121 -0
- package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
- package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/scaleDefaults.js +18 -0
- package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
- package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/titleDefaults.js +47 -0
- package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
- package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/viewDefaults.js +2 -0
- package/dist/src/config/markConfig.d.ts +8 -0
- package/dist/src/config/markConfig.d.ts.map +1 -0
- package/dist/src/config/markConfig.js +27 -0
- package/dist/src/config/mergeConfig.d.ts +8 -0
- package/dist/src/config/mergeConfig.d.ts.map +1 -0
- package/dist/src/config/mergeConfig.js +81 -0
- package/dist/src/config/resolveConfig.d.ts +22 -0
- package/dist/src/config/resolveConfig.d.ts.map +1 -0
- package/dist/src/config/resolveConfig.js +32 -0
- package/dist/src/config/scaleConfig.d.ts +40 -0
- package/dist/src/config/scaleConfig.d.ts.map +1 -0
- package/dist/src/config/scaleConfig.js +220 -0
- package/dist/src/config/styleUtils.d.ts +6 -0
- package/dist/src/config/styleUtils.d.ts.map +1 -0
- package/dist/src/config/styleUtils.js +10 -0
- package/dist/src/config/themes.d.ts +15 -0
- package/dist/src/config/themes.d.ts.map +1 -0
- package/dist/src/config/themes.js +293 -0
- package/dist/src/config/titleConfig.d.ts +12 -0
- package/dist/src/config/titleConfig.d.ts.map +1 -0
- package/dist/src/config/titleConfig.js +42 -0
- package/dist/src/config/viewConfig.d.ts +7 -0
- package/dist/src/config/viewConfig.d.ts.map +1 -0
- package/dist/src/config/viewConfig.js +29 -0
- package/dist/src/data/flowNode.d.ts +22 -1
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +37 -1
- package/dist/src/data/formats/bed.d.ts +8 -0
- package/dist/src/data/formats/bed.d.ts.map +1 -0
- package/dist/src/data/formats/bed.js +58 -0
- package/dist/src/data/formats/bedpe.d.ts +8 -0
- package/dist/src/data/formats/bedpe.d.ts.map +1 -0
- package/dist/src/data/formats/bedpe.js +164 -0
- package/dist/src/data/formats/fasta.d.ts.map +1 -1
- package/dist/src/data/formats/fasta.js +4 -0
- package/dist/src/data/formats/parquet.d.ts.map +1 -1
- package/dist/src/data/formats/parquet.js +4 -0
- package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
- package/dist/src/data/sources/dataSourceFactory.js +5 -141
- package/dist/src/data/sources/dataUtils.d.ts +16 -0
- package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
- package/dist/src/data/sources/dataUtils.js +53 -3
- package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
- package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
- package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bamSource.js +11 -0
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +12 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
- package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/vcfSource.js +11 -0
- package/dist/src/data/sources/urlSource.d.ts +4 -0
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +138 -16
- package/dist/src/data/transforms/aggregate.d.ts +1 -0
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregate.js +30 -8
- package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregateOps.js +12 -1
- package/dist/src/data/transforms/coverage.js +2 -2
- package/dist/src/data/transforms/filter.js +1 -1
- package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +9 -0
- package/dist/src/data/transforms/measureText.d.ts +1 -0
- package/dist/src/data/transforms/measureText.d.ts.map +1 -1
- package/dist/src/data/transforms/measureText.js +14 -5
- package/dist/src/data/transforms/pileup.d.ts.map +1 -1
- package/dist/src/data/transforms/pileup.js +1 -2
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +0 -1
- package/dist/src/embedFactory.d.ts +13 -0
- package/dist/src/embedFactory.d.ts.map +1 -0
- package/dist/src/embedFactory.js +127 -0
- package/dist/src/encoder/accessor.d.ts +3 -12
- package/dist/src/encoder/accessor.d.ts.map +1 -1
- package/dist/src/encoder/accessor.js +10 -65
- package/dist/src/encoder/encoder.d.ts +51 -8
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +179 -55
- package/dist/src/fonts/bmFontManager.js +1 -1
- package/dist/src/full.d.ts +2 -0
- package/dist/src/full.d.ts.map +1 -0
- package/dist/src/full.js +2 -0
- package/dist/src/genome/assemblyPreflight.d.ts +31 -0
- package/dist/src/genome/assemblyPreflight.d.ts.map +1 -0
- package/dist/src/genome/assemblyPreflight.js +99 -0
- package/dist/src/genome/genome.d.ts +10 -2
- package/dist/src/genome/genome.d.ts.map +1 -1
- package/dist/src/genome/genome.js +20 -2
- package/dist/src/genome/genomeStore.d.ts +34 -3
- package/dist/src/genome/genomeStore.d.ts.map +1 -1
- package/dist/src/genome/genomeStore.js +409 -18
- package/dist/src/genome/rootGenomeConfig.d.ts +26 -0
- package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -0
- package/dist/src/genome/rootGenomeConfig.js +98 -0
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +26 -7
- package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
- package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
- package/dist/src/genomeSpy/cursorManager.js +131 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
- package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
- package/dist/src/genomeSpy/interactionController.d.ts +10 -1
- package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
- package/dist/src/genomeSpy/interactionController.js +448 -40
- package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
- package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
- package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
- package/dist/src/genomeSpy/renderCoordinator.js +1 -1
- package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
- package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewContextFactory.js +12 -4
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewDataInit.js +7 -3
- package/dist/src/genomeSpy.d.ts +1 -114
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +7 -614
- package/dist/src/genomeSpyBase.d.ts +133 -0
- package/dist/src/genomeSpyBase.d.ts.map +1 -0
- package/dist/src/genomeSpyBase.js +719 -0
- package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
- package/dist/src/gl/arrayBuilder.js +0 -3
- package/dist/src/gl/canvasSizeHelper.d.ts +74 -0
- package/dist/src/gl/canvasSizeHelper.d.ts.map +1 -0
- package/dist/src/gl/canvasSizeHelper.js +203 -0
- package/dist/src/gl/colorUtils.d.ts.map +1 -1
- package/dist/src/gl/colorUtils.js +3 -0
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +13 -8
- package/dist/src/gl/glslScaleGenerator.d.ts +2 -2
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +5 -7
- package/dist/src/gl/webGLHelper.d.ts +25 -11
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +59 -33
- package/dist/src/index.d.ts +3 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -111
- package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +5 -26
- package/dist/src/marks/mark.d.ts +8 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +67 -21
- package/dist/src/marks/markUtils.d.ts +18 -1
- package/dist/src/marks/markUtils.d.ts.map +1 -1
- package/dist/src/marks/markUtils.js +52 -4
- package/dist/src/marks/point.d.ts.map +1 -1
- package/dist/src/marks/point.js +6 -26
- package/dist/src/marks/rect.d.ts.map +1 -1
- package/dist/src/marks/rect.js +13 -21
- package/dist/src/marks/rule.d.ts +7 -2
- package/dist/src/marks/rule.d.ts.map +1 -1
- package/dist/src/marks/rule.js +125 -16
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +5 -47
- package/dist/src/minimal.d.ts +8 -0
- package/dist/src/minimal.d.ts.map +1 -0
- package/dist/src/minimal.js +21 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts +19 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/viewParamRuntime.js +35 -0
- package/dist/src/scale/scale.d.ts.map +1 -1
- package/dist/src/scale/scale.js +13 -7
- package/dist/src/scales/axisResolution.d.ts.map +1 -1
- package/dist/src/scales/axisResolution.js +9 -5
- package/dist/src/scales/domainPlanner.d.ts +58 -7
- package/dist/src/scales/domainPlanner.d.ts.map +1 -1
- package/dist/src/scales/domainPlanner.js +395 -40
- package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
- package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
- package/dist/src/scales/indexLikeDomainUtils.js +67 -0
- package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
- package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
- package/dist/src/scales/resolutionMemberOrder.js +22 -0
- package/dist/src/scales/scaleInstanceManager.d.ts +2 -1
- package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
- package/dist/src/scales/scaleInstanceManager.js +10 -11
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
- package/dist/src/scales/scaleInteractionController.js +59 -18
- package/dist/src/scales/scalePropsResolver.d.ts +3 -1
- package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
- package/dist/src/scales/scalePropsResolver.js +83 -6
- package/dist/src/scales/scaleResolution.d.ts +39 -0
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +504 -82
- package/dist/src/scales/scaleResolutionTestUtils.d.ts +21 -0
- package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -0
- package/dist/src/scales/scaleResolutionTestUtils.js +37 -0
- package/dist/src/scales/scaleRules.d.ts.map +1 -1
- package/dist/src/scales/scaleRules.js +16 -2
- package/dist/src/scales/selectionDomainUtils.d.ts +52 -0
- package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -0
- package/dist/src/scales/selectionDomainUtils.js +194 -0
- package/dist/src/scales/zoomDomainUtils.d.ts +18 -0
- package/dist/src/scales/zoomDomainUtils.d.ts.map +1 -0
- package/dist/src/scales/zoomDomainUtils.js +69 -0
- package/dist/src/screenshotHarness.d.ts +16 -0
- package/dist/src/screenshotHarness.d.ts.map +1 -0
- package/dist/src/screenshotHarness.js +241 -0
- package/dist/src/singlePageApp.js +1 -1
- package/dist/src/spec/axis.d.ts +41 -30
- package/dist/src/spec/channel.d.ts +15 -9
- package/dist/src/spec/config.d.ts +264 -0
- package/dist/src/spec/data.d.ts +30 -3
- package/dist/src/spec/decoration.d.ts +51 -0
- package/dist/src/spec/exampleFiles.d.ts +12 -0
- package/dist/src/spec/exampleFiles.d.ts.map +1 -0
- package/dist/src/spec/exampleFiles.js +52 -0
- package/dist/src/spec/font.d.ts +1 -1
- package/dist/src/spec/genome.d.ts +22 -2
- package/dist/src/spec/mark.d.ts +97 -13
- package/dist/src/spec/parameter.d.ts +62 -5
- package/dist/src/spec/root.d.ts +34 -1
- package/dist/src/spec/scale.d.ts +46 -5
- package/dist/src/spec/title.d.ts +13 -2
- package/dist/src/spec/tooltip.d.ts +1 -1
- package/dist/src/spec/transform.d.ts +39 -4
- package/dist/src/spec/view.d.ts +67 -19
- package/dist/src/styles/genome-spy.css +63 -55
- package/dist/src/styles/genome-spy.css.d.ts +1 -1
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
- package/dist/src/styles/genome-spy.css.js +31 -22
- package/dist/src/testSetup.d.ts +2 -0
- package/dist/src/testSetup.d.ts.map +1 -0
- package/dist/src/testSetup.js +5 -0
- package/dist/src/tooltip/dataTooltipHandler.js +66 -11
- package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
- package/dist/src/tooltip/tooltipContext.js +3 -2
- package/dist/src/types/embedApi.d.ts +26 -0
- package/dist/src/types/encoder.d.ts +17 -15
- package/dist/src/types/scaleResolutionApi.d.ts +20 -0
- package/dist/src/types/viewContext.d.ts +23 -1
- package/dist/src/utils/expression.d.ts +2 -2
- package/dist/src/utils/expression.d.ts.map +1 -1
- package/dist/src/utils/expression.js +63 -8
- package/dist/src/utils/field.d.ts.map +1 -1
- package/dist/src/utils/field.js +0 -1
- package/dist/src/utils/inertia.d.ts.map +1 -1
- package/dist/src/utils/inertia.js +0 -1
- package/dist/src/utils/inferSpecBaseUrl.d.ts +14 -0
- package/dist/src/utils/inferSpecBaseUrl.d.ts.map +1 -0
- package/dist/src/utils/inferSpecBaseUrl.js +73 -0
- package/dist/src/utils/inputBinding.d.ts +1 -1
- package/dist/src/utils/interaction.d.ts +109 -0
- package/dist/src/utils/interaction.d.ts.map +1 -0
- package/dist/src/utils/interaction.js +200 -0
- package/dist/src/utils/interactionEvent.d.ts +62 -33
- package/dist/src/utils/interactionEvent.d.ts.map +1 -1
- package/dist/src/utils/interactionEvent.js +86 -48
- package/dist/src/utils/kWayMerge.js +1 -1
- package/dist/src/utils/mergeObjects.d.ts.map +1 -1
- package/dist/src/utils/mergeObjects.js +0 -2
- package/dist/src/utils/radixSort.d.ts.map +1 -1
- package/dist/src/utils/radixSort.js +0 -2
- package/dist/src/utils/throttle.d.ts.map +1 -1
- package/dist/src/utils/throttle.js +0 -2
- package/dist/src/utils/ui/tooltip.d.ts +1 -0
- package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
- package/dist/src/utils/ui/tooltip.js +1 -0
- package/dist/src/utils/url.js +1 -1
- package/dist/src/view/axisGridView.d.ts +1 -1
- package/dist/src/view/axisGridView.d.ts.map +1 -1
- package/dist/src/view/axisGridView.js +2 -47
- package/dist/src/view/axisView.d.ts +2 -3
- package/dist/src/view/axisView.d.ts.map +1 -1
- package/dist/src/view/axisView.js +251 -106
- package/dist/src/view/concatView.d.ts +2 -1
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +4 -2
- package/dist/src/view/containerMutationHelper.d.ts +3 -0
- package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
- package/dist/src/view/containerMutationHelper.js +12 -1
- package/dist/src/view/dataReadiness.d.ts +2 -2
- package/dist/src/view/dataReadiness.d.ts.map +1 -1
- package/dist/src/view/dataReadiness.js +63 -58
- package/dist/src/view/facetView.d.ts +1 -1
- package/dist/src/view/facetView.js +4 -4
- package/dist/src/view/flowBuilder.js +2 -2
- package/dist/src/view/gridView/gridChild.d.ts +13 -0
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +247 -49
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +296 -99
- package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
- package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
- package/dist/src/view/gridView/keyboardZoomController.js +1 -1
- package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
- package/dist/src/view/gridView/scrollbar.js +4 -2
- package/dist/src/view/gridView/selectionRect.d.ts +4 -0
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +20 -1
- package/dist/src/view/gridView/separatorView.d.ts +1 -0
- package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
- package/dist/src/view/gridView/separatorView.js +9 -0
- package/dist/src/view/interactionRouting.d.ts +20 -0
- package/dist/src/view/interactionRouting.d.ts.map +1 -0
- package/dist/src/view/interactionRouting.js +53 -0
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +12 -9
- package/dist/src/view/layout/grid.js +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
- package/dist/src/view/testUtils.d.ts +17 -3
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +62 -69
- package/dist/src/view/title.d.ts +8 -1
- package/dist/src/view/title.d.ts.map +1 -1
- package/dist/src/view/title.js +66 -76
- package/dist/src/view/unitView.d.ts +1 -1
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +67 -17
- package/dist/src/view/view.d.ts +76 -30
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +136 -47
- package/dist/src/view/viewFactory.d.ts +11 -3
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +37 -11
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +41 -5
- package/dist/src/view/zoom.d.ts +15 -3
- package/dist/src/view/zoom.d.ts.map +1 -1
- package/dist/src/view/zoom.js +375 -80
- package/package.json +20 -10
- package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
- package/dist/bundle/browser-0iNU5Wit.js +0 -138
- package/dist/bundle/index-BYsZN7b0.js +0 -1597
- package/dist/bundle/index-C3kClAEN.js +0 -1771
- package/dist/bundle/index-C7wOh6y1.js +0 -657
- package/dist/bundle/index-CRaQAuki.js +0 -326
- package/dist/bundle/index-D9v1PCj9.js +0 -507
- package/dist/bundle/index-GDOuv_D5.js +0 -266
- package/dist/bundle/index-Gt44EOIH.js +0 -628
- package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
- package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
- package/dist/bundle/unzip-Bac01w6X.js +0 -1492
- package/dist/src/config/scaleDefaults.d.ts +0 -8
- package/dist/src/config/scaleDefaults.d.ts.map +0 -1
- package/dist/src/config/scaleDefaults.js +0 -45
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {import("../spec/view.js").ViewSpec} spec
|
|
3
|
+
* @param {{ new(...args: any[]): import("../view/view.js").default }} [viewType]
|
|
4
|
+
* @returns {Promise<import("../view/view.js").default>}
|
|
5
|
+
*/
|
|
6
|
+
export function initView(spec: import("../spec/view.js").ViewSpec, viewType?: {
|
|
7
|
+
new (...args: any[]): import("../view/view.js").default;
|
|
8
|
+
}): Promise<import("../view/view.js").default>;
|
|
9
|
+
/**
|
|
10
|
+
* @param {import("../view/view.js").default} view
|
|
11
|
+
* @param {import("../spec/channel.js").ChannelWithScale} channel
|
|
12
|
+
* @returns {import("./scaleResolution.js").default}
|
|
13
|
+
*/
|
|
14
|
+
export function getRequiredScaleResolution(view: import("../view/view.js").default, channel: import("../spec/channel.js").ChannelWithScale): import("./scaleResolution.js").default;
|
|
15
|
+
/**
|
|
16
|
+
* @param {import("../view/view.js").default} view
|
|
17
|
+
* @param {import("../spec/channel.js").ChannelWithScale} channel
|
|
18
|
+
* @returns {any[]}
|
|
19
|
+
*/
|
|
20
|
+
export function getScaleDomain(view: import("../view/view.js").default, channel: import("../spec/channel.js").ChannelWithScale): any[];
|
|
21
|
+
//# sourceMappingURL=scaleResolutionTestUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaleResolutionTestUtils.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleResolutionTestUtils.js"],"names":[],"mappings":"AAGA;;;;GAIG;AACH,+BAJW,OAAO,iBAAiB,EAAE,QAAQ,aAClC;IAAE,KAAI,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,OAAO,iBAAiB,EAAE,OAAO,CAAA;CAAE,GACxD,OAAO,CAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC,CAQtD;AAED;;;;GAIG;AACH,iDAJW,OAAO,iBAAiB,EAAE,OAAO,WACjC,OAAO,oBAAoB,EAAE,gBAAgB,GAC3C,OAAO,sBAAsB,EAAE,OAAO,CAQlD;AAED;;;;GAIG;AACH,qCAJW,OAAO,iBAAiB,EAAE,OAAO,WACjC,OAAO,oBAAoB,EAAE,gBAAgB,GAC3C,GAAG,EAAE,CAIjB"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import { createHeadlessEngine } from "../genomeSpy/headlessBootstrap.js";
|
|
2
|
+
import UnitView from "../view/unitView.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @param {import("../spec/view.js").ViewSpec} spec
|
|
6
|
+
* @param {{ new(...args: any[]): import("../view/view.js").default }} [viewType]
|
|
7
|
+
* @returns {Promise<import("../view/view.js").default>}
|
|
8
|
+
*/
|
|
9
|
+
export async function initView(spec, viewType = UnitView) {
|
|
10
|
+
const { view } = await createHeadlessEngine(spec);
|
|
11
|
+
if (!(view instanceof viewType)) {
|
|
12
|
+
throw new Error("ViewClass and the spec do not match!");
|
|
13
|
+
}
|
|
14
|
+
return view;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* @param {import("../view/view.js").default} view
|
|
19
|
+
* @param {import("../spec/channel.js").ChannelWithScale} channel
|
|
20
|
+
* @returns {import("./scaleResolution.js").default}
|
|
21
|
+
*/
|
|
22
|
+
export function getRequiredScaleResolution(view, channel) {
|
|
23
|
+
const resolution = view.getScaleResolution(channel);
|
|
24
|
+
if (!resolution) {
|
|
25
|
+
throw new Error(`Expected ${channel} scale resolution.`);
|
|
26
|
+
}
|
|
27
|
+
return resolution;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {import("../view/view.js").default} view
|
|
32
|
+
* @param {import("../spec/channel.js").ChannelWithScale} channel
|
|
33
|
+
* @returns {any[]}
|
|
34
|
+
*/
|
|
35
|
+
export function getScaleDomain(view, channel) {
|
|
36
|
+
return getRequiredScaleResolution(view, channel).scale.domain();
|
|
37
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaleRules.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleRules.js"],"names":[],"mappings":"AAcA;;GAEG;AAEH;;;;GAIG;AACH,6CAJW,OAAO,YACP,OAAO,oBAAoB,EAAE,IAAI,GAC/B,OAAO,kBAAkB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"scaleRules.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleRules.js"],"names":[],"mappings":"AAcA;;GAEG;AAEH;;;;GAIG;AACH,6CAJW,OAAO,YACP,OAAO,oBAAoB,EAAE,IAAI,GAC/B,OAAO,kBAAkB,EAAE,SAAS,CA2EhD;AAED;;;GAGG;AACH,6CAHW,OAAO,kBAAkB,EAAE,KAAK,WAChC,OAAO,QAgBjB;sBArGY,OAAO,oBAAoB,EAAE,OAAO"}
|
|
@@ -22,6 +22,15 @@ import {
|
|
|
22
22
|
* @returns {import("../spec/scale.js").ScaleType}
|
|
23
23
|
*/
|
|
24
24
|
export function getDefaultScaleType(channel, dataType) {
|
|
25
|
+
// TODO: Follow up with Vega-Lite-like discrete positional scale inference.
|
|
26
|
+
// For nominal/ordinal x/y channels, the default should not always be "band".
|
|
27
|
+
// The choice should depend on resolved mark usage and related signals:
|
|
28
|
+
// - rect/bar/rule/tick-like coverage -> "band"
|
|
29
|
+
// - point/text/link-like centered positions -> "point"
|
|
30
|
+
// - explicit relative band sizing / axis tickBand / nested offsets -> "band"
|
|
31
|
+
// This requires passing richer context than just channel + dataType.
|
|
32
|
+
//
|
|
33
|
+
// Keep the current behavior in this branch to avoid changing existing specs.
|
|
25
34
|
// TODO: Band scale, Bin-Quantitative
|
|
26
35
|
|
|
27
36
|
if (dataType == INDEX || dataType == LOCUS) {
|
|
@@ -93,11 +102,16 @@ export function getDefaultScaleType(channel, dataType) {
|
|
|
93
102
|
*/
|
|
94
103
|
export function applyLockedProperties(props, channel) {
|
|
95
104
|
if (isPositionalChannel(channel) && props.type !== "ordinal") {
|
|
96
|
-
//
|
|
105
|
+
// Positional scales currently operate in unit coordinates.
|
|
106
|
+
// Keep this invariant until pixel ranges are adopted.
|
|
97
107
|
props.range = [0, 1];
|
|
98
108
|
}
|
|
99
109
|
|
|
100
|
-
if (
|
|
110
|
+
if (
|
|
111
|
+
channel == "opacity" &&
|
|
112
|
+
isContinuous(props.type) &&
|
|
113
|
+
props.clamp === undefined
|
|
114
|
+
) {
|
|
101
115
|
props.clamp = true;
|
|
102
116
|
}
|
|
103
117
|
}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{ findRuntimeForParam: (name: string) => any }} paramRuntime
|
|
3
|
+
* @param {string} paramName
|
|
4
|
+
*/
|
|
5
|
+
export function requireParamRuntime(paramRuntime: {
|
|
6
|
+
findRuntimeForParam: (name: string) => any;
|
|
7
|
+
}, paramName: string): any;
|
|
8
|
+
/**
|
|
9
|
+
* @param {any} selection
|
|
10
|
+
* @param {string} paramName
|
|
11
|
+
*/
|
|
12
|
+
export function requireIntervalSelection(selection: any, paramName: string): import("../types/selectionTypes.js").IntervalSelection;
|
|
13
|
+
/**
|
|
14
|
+
* Resolves the runtime-backed interval selection binding used by a linked
|
|
15
|
+
* domain. Matching is based on the actual resolved runtime slot instead of
|
|
16
|
+
* parameter name alone, so scoped params with the same name remain distinct.
|
|
17
|
+
*
|
|
18
|
+
* @param {import("../view/view.js").default} view
|
|
19
|
+
* @param {string} paramName
|
|
20
|
+
* @param {"x" | "y"} encoding
|
|
21
|
+
*/
|
|
22
|
+
export function resolveIntervalSelectionBinding(view: import("../view/view.js").default, paramName: string, encoding: "x" | "y"): {
|
|
23
|
+
runtime: any;
|
|
24
|
+
selection: import("../types/selectionTypes.js").IntervalSelection;
|
|
25
|
+
};
|
|
26
|
+
/**
|
|
27
|
+
* @param {import("../view/view.js").default} root
|
|
28
|
+
* @param {any} runtime
|
|
29
|
+
* @param {string} paramName
|
|
30
|
+
* @param {"x" | "y"} encoding
|
|
31
|
+
*/
|
|
32
|
+
export function findIntervalSelectionBindingOwners(root: import("../view/view.js").default, runtime: any, paramName: string, encoding: "x" | "y"): {
|
|
33
|
+
view: import("../view/view.js").default;
|
|
34
|
+
param: import("../spec/parameter.js").SelectionParameter;
|
|
35
|
+
}[];
|
|
36
|
+
/**
|
|
37
|
+
* @param {import("../view/view.js").default} view
|
|
38
|
+
* @param {any} runtime
|
|
39
|
+
* @param {string} paramName
|
|
40
|
+
* @param {"x" | "y"} encoding
|
|
41
|
+
*/
|
|
42
|
+
export function hasIntervalSelectionBindingInScope(view: import("../view/view.js").default, runtime: any, paramName: string, encoding: "x" | "y"): boolean;
|
|
43
|
+
/**
|
|
44
|
+
* @param {number[]} interval
|
|
45
|
+
* @param {number[]} zoomExtent
|
|
46
|
+
* @param {{ roundToIntegers?: boolean }} [options]
|
|
47
|
+
* @returns {[number, number] | undefined}
|
|
48
|
+
*/
|
|
49
|
+
export function normalizeIntervalForSelection(interval: number[], zoomExtent: number[], options?: {
|
|
50
|
+
roundToIntegers?: boolean;
|
|
51
|
+
}): [number, number] | undefined;
|
|
52
|
+
//# sourceMappingURL=selectionDomainUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"selectionDomainUtils.d.ts","sourceRoot":"","sources":["../../../src/scales/selectionDomainUtils.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,kDAHW;IAAE,mBAAmB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAA;CAAE,aAC9C,MAAM,OAUhB;AAED;;;GAGG;AACH,oDAHW,GAAG,aACH,MAAM,0DAgBhB;AAED;;;;;;;;GAQG;AACH,sDAJW,OAAO,iBAAiB,EAAE,OAAO,aACjC,MAAM,YACN,GAAG,GAAG,GAAG;;;EAiBnB;AAED;;;;;GAKG;AACH,yDALW,OAAO,iBAAiB,EAAE,OAAO,WACjC,GAAG,aACH,MAAM,YACN,GAAG,GAAG,GAAG;UAGG,OAAO,iBAAiB,EAAE,OAAO;WAAS,OAAO,sBAAsB,EAAE,kBAAkB;IAuBjH;AAED;;;;;GAKG;AACH,yDALW,OAAO,iBAAiB,EAAE,OAAO,WACjC,GAAG,aACH,MAAM,YACN,GAAG,GAAG,GAAG,WA8CnB;AAED;;;;;GAKG;AACH,wDALW,MAAM,EAAE,cACR,MAAM,EAAE,YACR;IAAE,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,GAC3B,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,SAAS,CAsCxC"}
|
|
@@ -0,0 +1,194 @@
|
|
|
1
|
+
import { isSelectionParameter } from "../paramRuntime/paramUtils.js";
|
|
2
|
+
import {
|
|
3
|
+
asSelectionConfig,
|
|
4
|
+
isIntervalSelection,
|
|
5
|
+
isIntervalSelectionConfig,
|
|
6
|
+
} from "../selection/selection.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @param {{ findRuntimeForParam: (name: string) => any }} paramRuntime
|
|
10
|
+
* @param {string} paramName
|
|
11
|
+
*/
|
|
12
|
+
export function requireParamRuntime(paramRuntime, paramName) {
|
|
13
|
+
const runtime = paramRuntime.findRuntimeForParam(paramName);
|
|
14
|
+
if (!runtime) {
|
|
15
|
+
throw new Error(
|
|
16
|
+
`Selection domain parameter "${paramName}" was not found.`
|
|
17
|
+
);
|
|
18
|
+
}
|
|
19
|
+
return runtime;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* @param {any} selection
|
|
24
|
+
* @param {string} paramName
|
|
25
|
+
*/
|
|
26
|
+
export function requireIntervalSelection(selection, paramName) {
|
|
27
|
+
if (!selection) {
|
|
28
|
+
throw new Error(
|
|
29
|
+
`Selection domain parameter "${paramName}" was not found.`
|
|
30
|
+
);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (!isIntervalSelection(selection)) {
|
|
34
|
+
throw new Error(
|
|
35
|
+
`Selection domain parameter "${paramName}" must be an interval selection.`
|
|
36
|
+
);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
return selection;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Resolves the runtime-backed interval selection binding used by a linked
|
|
44
|
+
* domain. Matching is based on the actual resolved runtime slot instead of
|
|
45
|
+
* parameter name alone, so scoped params with the same name remain distinct.
|
|
46
|
+
*
|
|
47
|
+
* @param {import("../view/view.js").default} view
|
|
48
|
+
* @param {string} paramName
|
|
49
|
+
* @param {"x" | "y"} encoding
|
|
50
|
+
*/
|
|
51
|
+
export function resolveIntervalSelectionBinding(view, paramName, encoding) {
|
|
52
|
+
const runtime = view.paramRuntime.findRuntimeForParam
|
|
53
|
+
? requireParamRuntime(view.paramRuntime, paramName)
|
|
54
|
+
: view.paramRuntime;
|
|
55
|
+
const selection = requireIntervalSelection(
|
|
56
|
+
runtime.getValue
|
|
57
|
+
? runtime.getValue(paramName)
|
|
58
|
+
: view.paramRuntime.findValue(paramName),
|
|
59
|
+
paramName
|
|
60
|
+
);
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
runtime,
|
|
64
|
+
selection,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
/**
|
|
69
|
+
* @param {import("../view/view.js").default} root
|
|
70
|
+
* @param {any} runtime
|
|
71
|
+
* @param {string} paramName
|
|
72
|
+
* @param {"x" | "y"} encoding
|
|
73
|
+
*/
|
|
74
|
+
export function findIntervalSelectionBindingOwners(root, runtime, paramName, encoding) {
|
|
75
|
+
/** @type {{ view: import("../view/view.js").default, param: import("../spec/parameter.js").SelectionParameter }[]} */
|
|
76
|
+
const owners = [];
|
|
77
|
+
|
|
78
|
+
root.visit((view) => {
|
|
79
|
+
const param = view.paramRuntime?.paramConfigs?.get(paramName);
|
|
80
|
+
if (!param || !isSelectionParameter(param)) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
const select = asSelectionConfig(param.select);
|
|
85
|
+
if (
|
|
86
|
+
!isIntervalSelectionConfig(select) ||
|
|
87
|
+
!select.encodings?.includes(encoding)
|
|
88
|
+
) {
|
|
89
|
+
return;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
if (view.paramRuntime.findRuntimeForParam(paramName) === runtime) {
|
|
93
|
+
owners.push({ view, param });
|
|
94
|
+
}
|
|
95
|
+
});
|
|
96
|
+
|
|
97
|
+
return owners;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* @param {import("../view/view.js").default} view
|
|
102
|
+
* @param {any} runtime
|
|
103
|
+
* @param {string} paramName
|
|
104
|
+
* @param {"x" | "y"} encoding
|
|
105
|
+
*/
|
|
106
|
+
export function hasIntervalSelectionBindingInScope(
|
|
107
|
+
view,
|
|
108
|
+
runtime,
|
|
109
|
+
paramName,
|
|
110
|
+
encoding
|
|
111
|
+
) {
|
|
112
|
+
const seen = new Set();
|
|
113
|
+
const ancestorGroups = [
|
|
114
|
+
view.getLayoutAncestors?.(),
|
|
115
|
+
view.getDataAncestors?.(),
|
|
116
|
+
[view],
|
|
117
|
+
];
|
|
118
|
+
|
|
119
|
+
for (const views of ancestorGroups) {
|
|
120
|
+
for (const candidateView of views ?? []) {
|
|
121
|
+
if (!candidateView || seen.has(candidateView)) {
|
|
122
|
+
continue;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
seen.add(candidateView);
|
|
126
|
+
|
|
127
|
+
const param = candidateView.paramRuntime?.paramConfigs?.get(paramName);
|
|
128
|
+
if (!param || !isSelectionParameter(param)) {
|
|
129
|
+
continue;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
const select = asSelectionConfig(param.select);
|
|
133
|
+
if (
|
|
134
|
+
!isIntervalSelectionConfig(select) ||
|
|
135
|
+
!select.encodings?.includes(encoding)
|
|
136
|
+
) {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (
|
|
141
|
+
candidateView.paramRuntime.findRuntimeForParam?.(paramName) ===
|
|
142
|
+
runtime
|
|
143
|
+
) {
|
|
144
|
+
return true;
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
return false;
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
/**
|
|
153
|
+
* @param {number[]} interval
|
|
154
|
+
* @param {number[]} zoomExtent
|
|
155
|
+
* @param {{ roundToIntegers?: boolean }} [options]
|
|
156
|
+
* @returns {[number, number] | undefined}
|
|
157
|
+
*/
|
|
158
|
+
export function normalizeIntervalForSelection(
|
|
159
|
+
interval,
|
|
160
|
+
zoomExtent,
|
|
161
|
+
options = {}
|
|
162
|
+
) {
|
|
163
|
+
if (!interval || interval.length !== 2) {
|
|
164
|
+
return;
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const a = Number(interval[0]);
|
|
168
|
+
const b = Number(interval[1]);
|
|
169
|
+
if (!Number.isFinite(a) || !Number.isFinite(b)) {
|
|
170
|
+
return;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
let min = Math.min(a, b);
|
|
174
|
+
let max = Math.max(a, b);
|
|
175
|
+
|
|
176
|
+
min = Math.max(zoomExtent[0], min);
|
|
177
|
+
max = Math.min(zoomExtent[1], max);
|
|
178
|
+
|
|
179
|
+
if (min > max) {
|
|
180
|
+
return;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
if (options.roundToIntegers) {
|
|
184
|
+
min = Math.ceil(min);
|
|
185
|
+
max = Math.ceil(max);
|
|
186
|
+
min = Math.max(zoomExtent[0], min);
|
|
187
|
+
max = Math.min(zoomExtent[1], max);
|
|
188
|
+
if (min > max) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
}
|
|
192
|
+
|
|
193
|
+
return [min, max];
|
|
194
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../types/encoder.js").VegaScale} VegaScale
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Zooms a numeric two-point domain according to scale type.
|
|
6
|
+
*
|
|
7
|
+
* @param {VegaScale} scale
|
|
8
|
+
* @param {[number, number]} domain
|
|
9
|
+
* @param {number} anchor
|
|
10
|
+
* @param {number} scaleFactor
|
|
11
|
+
* @param {{ onUnsupported?: "throw" | "identity" }} [options]
|
|
12
|
+
* @returns {[number, number]}
|
|
13
|
+
*/
|
|
14
|
+
export function zoomDomainByScaleType(scale: VegaScale, domain: [number, number], anchor: number, scaleFactor: number, options?: {
|
|
15
|
+
onUnsupported?: "throw" | "identity";
|
|
16
|
+
}): [number, number];
|
|
17
|
+
export type VegaScale = import("../types/encoder.js").VegaScale;
|
|
18
|
+
//# sourceMappingURL=zoomDomainUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"zoomDomainUtils.d.ts","sourceRoot":"","sources":["../../../src/scales/zoomDomainUtils.js"],"names":[],"mappings":"AAEA;;GAEG;AAEH;;;;;;;;;GASG;AACH,6CAPW,SAAS,UACT,CAAC,MAAM,EAAE,MAAM,CAAC,UAChB,MAAM,eACN,MAAM,YACN;IAAE,aAAa,CAAC,EAAE,OAAO,GAAG,UAAU,CAAA;CAAE,GACtC,CAAC,MAAM,EAAE,MAAM,CAAC,CAsD5B;wBAjEY,OAAO,qBAAqB,EAAE,SAAS"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { zoomLinear, zoomLog, zoomPow, zoomSymlog } from "vega-util";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @typedef {import("../types/encoder.js").VegaScale} VegaScale
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Zooms a numeric two-point domain according to scale type.
|
|
9
|
+
*
|
|
10
|
+
* @param {VegaScale} scale
|
|
11
|
+
* @param {[number, number]} domain
|
|
12
|
+
* @param {number} anchor
|
|
13
|
+
* @param {number} scaleFactor
|
|
14
|
+
* @param {{ onUnsupported?: "throw" | "identity" }} [options]
|
|
15
|
+
* @returns {[number, number]}
|
|
16
|
+
*/
|
|
17
|
+
export function zoomDomainByScaleType(
|
|
18
|
+
scale,
|
|
19
|
+
domain,
|
|
20
|
+
anchor,
|
|
21
|
+
scaleFactor,
|
|
22
|
+
options = {}
|
|
23
|
+
) {
|
|
24
|
+
const onUnsupported = options.onUnsupported ?? "throw";
|
|
25
|
+
|
|
26
|
+
switch (scale.type) {
|
|
27
|
+
case "linear":
|
|
28
|
+
case "index":
|
|
29
|
+
case "locus":
|
|
30
|
+
return /** @type {[number, number]} */ (
|
|
31
|
+
zoomLinear(domain, anchor, scaleFactor)
|
|
32
|
+
);
|
|
33
|
+
|
|
34
|
+
case "log":
|
|
35
|
+
return /** @type {[number, number]} */ (
|
|
36
|
+
zoomLog(domain, anchor, scaleFactor)
|
|
37
|
+
);
|
|
38
|
+
|
|
39
|
+
case "pow":
|
|
40
|
+
case "sqrt": {
|
|
41
|
+
const powScale =
|
|
42
|
+
/** @type {import("d3-scale").ScalePower<number, number>} */ (
|
|
43
|
+
/** @type {any} */ (scale)
|
|
44
|
+
);
|
|
45
|
+
return /** @type {[number, number]} */ (
|
|
46
|
+
zoomPow(domain, anchor, scaleFactor, powScale.exponent())
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
case "symlog": {
|
|
51
|
+
const symlogScale =
|
|
52
|
+
/** @type {import("d3-scale").ScaleSymLog<number, number>} */ (
|
|
53
|
+
/** @type {any} */ (scale)
|
|
54
|
+
);
|
|
55
|
+
return /** @type {[number, number]} */ (
|
|
56
|
+
zoomSymlog(domain, anchor, scaleFactor, symlogScale.constant())
|
|
57
|
+
);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
default:
|
|
61
|
+
if (onUnsupported === "identity") {
|
|
62
|
+
return domain;
|
|
63
|
+
} else {
|
|
64
|
+
throw new Error(
|
|
65
|
+
"Zooming is not implemented for: " + scale.type
|
|
66
|
+
);
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
export type ScreenshotState = {
|
|
2
|
+
status: string;
|
|
3
|
+
detail: string;
|
|
4
|
+
error: string;
|
|
5
|
+
capture: () => Promise<{
|
|
6
|
+
logicalSize: {
|
|
7
|
+
width: number;
|
|
8
|
+
height: number;
|
|
9
|
+
};
|
|
10
|
+
dataUrl: string;
|
|
11
|
+
}>;
|
|
12
|
+
};
|
|
13
|
+
export type ScreenshotWindow = Window & typeof globalThis & {
|
|
14
|
+
__genomeSpyScreenshot: ScreenshotState;
|
|
15
|
+
};
|
|
16
|
+
//# sourceMappingURL=screenshotHarness.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"screenshotHarness.d.ts","sourceRoot":"","sources":["../../src/screenshotHarness.js"],"names":[],"mappings":"8BAQa;IACR,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,OAAO,CAAC;QAAE,WAAW,EAAE;YAAE,KAAK,EAAE,MAAM,CAAC;YAAC,MAAM,EAAE,MAAM,CAAA;SAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;CAC5F;+BAIS,MAAM,GAAG,OAAO,UAAU,GAAG;IAAE,qBAAqB,EAAE,eAAe,CAAA;CAAE"}
|