@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,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {{ view: { getPathString(): string }, channel?: string }} member
|
|
3
|
+
*/
|
|
4
|
+
function memberKey(member) {
|
|
5
|
+
const path = member.view.getPathString();
|
|
6
|
+
const channel = member.channel ?? "";
|
|
7
|
+
return path + "|" + channel;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* Stable ordering for resolution members so merge behavior does not depend on
|
|
12
|
+
* registration order.
|
|
13
|
+
*
|
|
14
|
+
* @template {{ view: { getPathString(): string }, channel?: string }} T
|
|
15
|
+
* @param {Set<T> | Iterable<T>} members
|
|
16
|
+
* @returns {T[]}
|
|
17
|
+
*/
|
|
18
|
+
export function orderResolutionMembers(members) {
|
|
19
|
+
return Array.from(members).sort((a, b) =>
|
|
20
|
+
memberKey(a).localeCompare(memberKey(b))
|
|
21
|
+
);
|
|
22
|
+
}
|
|
@@ -18,9 +18,10 @@ export default class ScaleInstanceManager {
|
|
|
18
18
|
props: import("../spec/scale.js").Scale;
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
|
+
* @param {import("../spec/scale.js").Scale["assembly"]} [assembly]
|
|
21
22
|
* @returns {import("../genome/genome.js").default}
|
|
22
23
|
*/
|
|
23
|
-
getLocusGenome(): import("../genome/genome.js").default;
|
|
24
|
+
getLocusGenome(assembly?: import("../spec/scale.js").Scale["assembly"]): import("../genome/genome.js").default;
|
|
24
25
|
/**
|
|
25
26
|
* @param {import("../spec/scale.js").Scale} props
|
|
26
27
|
* @returns {ScaleWithProps}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaleInstanceManager.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleInstanceManager.js"],"names":[],"mappings":"AAMA;IA0BI;;;;;;OAMG;IACH,iFALG;QAAkH,eAAe,EAAzH,MAAM;YAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,0BAA0B,EAAE,eAAe,CAAA;SAAE;QAC5E,aAAa,EAAjC,MAAM,IAAI;QACW,cAAc,GAAnC,MAAM,IAAI;QAC6D,cAAc,GAArF,MAAM,OAAO,0BAA0B,EAAE,OAAO,GAAG,SAAS;KAA0B,EAYhG;IAED;eA1CkC,OAAO,kBAAkB,EAAE,KAAK;MA4CjE;IAED
|
|
1
|
+
{"version":3,"file":"scaleInstanceManager.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleInstanceManager.js"],"names":[],"mappings":"AAMA;IA0BI;;;;;;OAMG;IACH,iFALG;QAAkH,eAAe,EAAzH,MAAM;YAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,0BAA0B,EAAE,eAAe,CAAA;SAAE;QAC5E,aAAa,EAAjC,MAAM,IAAI;QACW,cAAc,GAAnC,MAAM,IAAI;QAC6D,cAAc,GAArF,MAAM,OAAO,0BAA0B,EAAE,OAAO,GAAG,SAAS;KAA0B,EAYhG;IAED;eA1CkC,OAAO,kBAAkB,EAAE,KAAK;MA4CjE;IAED;;;OAGG;IACH,0BAHW,OAAO,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,GAC1C,OAAO,qBAAqB,EAAE,OAAO,CAajD;IAED;;;OAGG;IACH,mBAHW,OAAO,kBAAkB,EAAE,KAAK;eAhET,OAAO,kBAAkB,EAAE,KAAK;MAqFjE;IAcD;;OAEG;IACH,wBAFW,OAAO,kBAAkB,EAAE,KAAK,QAc1C;IAED;;;OAGG;IACH,4CAHW,MAAM,IAAI,GACR,IAAI,CAShB;IAmFD,gBAGC;;CACJ"}
|
|
@@ -54,15 +54,20 @@ export default class ScaleInstanceManager {
|
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
/**
|
|
57
|
+
* @param {import("../spec/scale.js").Scale["assembly"]} [assembly]
|
|
57
58
|
* @returns {import("../genome/genome.js").default}
|
|
58
59
|
*/
|
|
59
|
-
getLocusGenome() {
|
|
60
|
+
getLocusGenome(assembly) {
|
|
60
61
|
const genomeStore = this.#getGenomeStore?.();
|
|
61
|
-
|
|
62
|
-
if (!genome) {
|
|
62
|
+
if (!genomeStore) {
|
|
63
63
|
throw new Error("No genome has been defined!");
|
|
64
64
|
}
|
|
65
|
-
|
|
65
|
+
|
|
66
|
+
if (assembly) {
|
|
67
|
+
return genomeStore.getGenome(assembly);
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return genomeStore.getGenome();
|
|
66
71
|
}
|
|
67
72
|
|
|
68
73
|
/**
|
|
@@ -98,13 +103,7 @@ export default class ScaleInstanceManager {
|
|
|
98
103
|
return;
|
|
99
104
|
}
|
|
100
105
|
|
|
101
|
-
|
|
102
|
-
const genome = genomeStore?.getGenome(props.assembly);
|
|
103
|
-
if (!genome) {
|
|
104
|
-
throw new Error("No genome has been defined!");
|
|
105
|
-
}
|
|
106
|
-
|
|
107
|
-
scale.genome(genome);
|
|
106
|
+
scale.genome(this.getLocusGenome(props.assembly));
|
|
108
107
|
}
|
|
109
108
|
|
|
110
109
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaleInteractionController.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleInteractionController.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scaleInteractionController.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleInteractionController.js"],"names":[],"mappings":"AAuBA;;;;;;;GAOG;AAEH;IAsBI;;;;;;;;OAQG;IACH,wHAPG;QAAsC,QAAQ,EAAtC,MAAM,cAAc;QACkC,WAAW,EAAjE,MAAM,OAAO,sBAAsB,EAAE,OAAO;QACpB,wBAAwB,EAAhD,MAAM,MAAM,EAAE;QACU,cAAc,EAAtC,MAAM,MAAM,EAAE;QAC8C,mBAAmB,EAA/E,CAAC,MAAM,EAAE,YAAY,GAAG,aAAa,KAAK,MAAM,EAAE;QAC1B,eAAe,EAAvC,MAAM,MAAM,EAAE;KACxB,EAeA;IAED,0BAUC;IAED,sBAEC;IAED,8BAGC;IAED;;;;OAIG;IACH,sCAJW,MAAM,EAAE,aACR,MAAM,EAAE,GACN,SAAS,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,CAarD;IAED;;;;OAIG;IACH,oBAQC;IAED;;;;;;;OAOG;IACH,kBALW,MAAM,eACN,MAAM,OACN,MAAM,GACJ,OAAO,CA2BnB;IAED;;;;;;OAMG;IACH,eAJW,aAAa,GAAG,aAAa,aAC7B,OAAO,GAAG,MAAM,iBAkE1B;IASD;;;;OAIG;IACH,qBAcC;IAED;;OAEG;IACH,uBAOC;;CACJ;4BA/PY,OAAO,kBAAkB,EAAE,aAAa;2BACxC,OAAO,kBAAkB,EAAE,YAAY;4BACvC,OAAO,kBAAkB,EAAE,aAAa;yBACxC,OAAO,kBAAkB,EAAE,UAAU;wBACrC,OAAO,qBAAqB,EAAE,SAAS;6BACvC,SAAS,GAAG;IAAE,KAAK,EAAE,OAAO,kBAAkB,EAAE,KAAK,CAAA;CAAE"}
|
|
@@ -7,9 +7,6 @@ import {
|
|
|
7
7
|
panLog,
|
|
8
8
|
panPow,
|
|
9
9
|
span,
|
|
10
|
-
zoomLinear,
|
|
11
|
-
zoomLog,
|
|
12
|
-
zoomPow,
|
|
13
10
|
} from "vega-util";
|
|
14
11
|
import { isContinuous, isDiscrete } from "vega-scale";
|
|
15
12
|
import { easeCubicInOut } from "d3-ease";
|
|
@@ -17,6 +14,12 @@ import { easeCubicInOut } from "d3-ease";
|
|
|
17
14
|
import eerp from "../utils/eerp.js";
|
|
18
15
|
import { shallowArrayEquals } from "../utils/arrayUtils.js";
|
|
19
16
|
import { createCancelToken } from "../utils/transition.js";
|
|
17
|
+
import { zoomDomainByScaleType } from "./zoomDomainUtils.js";
|
|
18
|
+
import { toInternalIndexLikeInterval } from "./indexLikeDomainUtils.js";
|
|
19
|
+
import {
|
|
20
|
+
hasExplicitLocusUpperBound,
|
|
21
|
+
isChromosomalLocusInterval,
|
|
22
|
+
} from "../genome/genome.js";
|
|
20
23
|
|
|
21
24
|
/**
|
|
22
25
|
* @typedef {import("../spec/scale.js").NumericDomain} NumericDomain
|
|
@@ -121,7 +124,7 @@ export default class ScaleInteractionController {
|
|
|
121
124
|
isZoomed() {
|
|
122
125
|
return (
|
|
123
126
|
this.isZoomingSupported() &&
|
|
124
|
-
shallowArrayEquals(
|
|
127
|
+
!shallowArrayEquals(
|
|
125
128
|
this.#getResetDomain(),
|
|
126
129
|
this.#getScale().domain()
|
|
127
130
|
)
|
|
@@ -179,13 +182,16 @@ export default class ScaleInteractionController {
|
|
|
179
182
|
throw new Error("Not a zoomable scale!");
|
|
180
183
|
}
|
|
181
184
|
|
|
182
|
-
const
|
|
185
|
+
const scale = this.#getScale();
|
|
186
|
+
const to = normalizeInteractionInterval(
|
|
187
|
+
/** @type {import("../spec/scale.js").ScaleType} */ (scale.type),
|
|
188
|
+
domain,
|
|
189
|
+
this.#fromComplexInterval
|
|
190
|
+
);
|
|
183
191
|
|
|
184
192
|
// TODO: Intersect the domain with zoom extent
|
|
185
193
|
|
|
186
194
|
const animator = this.#getAnimator();
|
|
187
|
-
|
|
188
|
-
const scale = this.#getScale();
|
|
189
195
|
const from = /** @type {number[]} */ (scale.domain());
|
|
190
196
|
|
|
191
197
|
if (duration > 0 && from.length == 2) {
|
|
@@ -290,7 +296,11 @@ function resolveZoomExtent(
|
|
|
290
296
|
) {
|
|
291
297
|
if (isZoomParams(zoom)) {
|
|
292
298
|
if (isArray(zoom.extent)) {
|
|
293
|
-
return
|
|
299
|
+
return normalizeInteractionInterval(
|
|
300
|
+
scale.props.type,
|
|
301
|
+
zoom.extent,
|
|
302
|
+
fromComplexInterval
|
|
303
|
+
);
|
|
294
304
|
}
|
|
295
305
|
}
|
|
296
306
|
|
|
@@ -326,17 +336,14 @@ function applyZoomTransform(scale, domain, scaleFactor, scaleAnchor, pan) {
|
|
|
326
336
|
anchor += scale.align();
|
|
327
337
|
}
|
|
328
338
|
|
|
329
|
-
// TODO: symlog
|
|
330
339
|
switch (scale.type) {
|
|
331
340
|
case "linear":
|
|
332
341
|
case "index":
|
|
333
342
|
case "locus":
|
|
334
343
|
newDomain = panLinear(newDomain, pan || 0);
|
|
335
|
-
newDomain = zoomLinear(newDomain, anchor, scaleFactor);
|
|
336
344
|
break;
|
|
337
345
|
case "log":
|
|
338
346
|
newDomain = panLog(newDomain, pan || 0);
|
|
339
|
-
newDomain = zoomLog(newDomain, anchor, scaleFactor);
|
|
340
347
|
break;
|
|
341
348
|
case "pow":
|
|
342
349
|
case "sqrt": {
|
|
@@ -345,19 +352,53 @@ function applyZoomTransform(scale, domain, scaleFactor, scaleAnchor, pan) {
|
|
|
345
352
|
scale
|
|
346
353
|
);
|
|
347
354
|
newDomain = panPow(newDomain, pan || 0, powScale.exponent());
|
|
348
|
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
355
|
+
break;
|
|
356
|
+
}
|
|
357
|
+
case "symlog": {
|
|
358
|
+
if (pan !== 0) {
|
|
359
|
+
throw new Error(
|
|
360
|
+
"Panning is not implemented for: " + scale.type
|
|
361
|
+
);
|
|
362
|
+
}
|
|
354
363
|
break;
|
|
355
364
|
}
|
|
356
365
|
default:
|
|
357
366
|
throw new Error("Zooming is not implemented for: " + scale.type);
|
|
358
367
|
}
|
|
359
368
|
|
|
360
|
-
return
|
|
369
|
+
return zoomDomainByScaleType(
|
|
370
|
+
scale,
|
|
371
|
+
/** @type {[number, number]} */ (newDomain),
|
|
372
|
+
anchor,
|
|
373
|
+
scaleFactor
|
|
374
|
+
);
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
/**
|
|
378
|
+
* Converts a user-facing interaction interval into the internal numeric domain
|
|
379
|
+
* representation used by index-like scales.
|
|
380
|
+
*
|
|
381
|
+
* @param {import("../spec/scale.js").ScaleType} type
|
|
382
|
+
* @param {ScalarDomain | ComplexDomain} interval
|
|
383
|
+
* @param {(domain: ScalarDomain | ComplexDomain) => number[]} fromComplexInterval
|
|
384
|
+
* @returns {number[]}
|
|
385
|
+
*/
|
|
386
|
+
function normalizeInteractionInterval(type, interval, fromComplexInterval) {
|
|
387
|
+
const numericInterval =
|
|
388
|
+
type === "locus"
|
|
389
|
+
? fromComplexInterval(interval)
|
|
390
|
+
: /** @type {number[]} */ (interval);
|
|
391
|
+
|
|
392
|
+
// Whole-chromosome locus intervals already resolve to the intended extent.
|
|
393
|
+
if (
|
|
394
|
+
type === "locus" &&
|
|
395
|
+
isChromosomalLocusInterval(interval) &&
|
|
396
|
+
!hasExplicitLocusUpperBound(interval)
|
|
397
|
+
) {
|
|
398
|
+
return numericInterval;
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return toInternalIndexLikeInterval(type, numericInterval);
|
|
361
402
|
}
|
|
362
403
|
|
|
363
404
|
/**
|
|
@@ -9,13 +9,15 @@
|
|
|
9
9
|
* @param {import("../spec/channel.js").Type} options.dataType
|
|
10
10
|
* @param {Set<ScaleResolutionMember>} options.members
|
|
11
11
|
* @param {boolean} options.isExplicitDomain
|
|
12
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} options.configScopes
|
|
12
13
|
* @returns {Scale}
|
|
13
14
|
*/
|
|
14
|
-
export function resolveScalePropsBase({ channel, dataType, members, isExplicitDomain, }: {
|
|
15
|
+
export function resolveScalePropsBase({ channel, dataType, members, isExplicitDomain, configScopes, }: {
|
|
15
16
|
channel: Channel;
|
|
16
17
|
dataType: import("../spec/channel.js").Type;
|
|
17
18
|
members: Set<ScaleResolutionMember>;
|
|
18
19
|
isExplicitDomain: boolean;
|
|
20
|
+
configScopes: import("../spec/config.js").GenomeSpyConfig[];
|
|
19
21
|
}): Scale;
|
|
20
22
|
export type Channel = import("../spec/channel.js").Channel;
|
|
21
23
|
export type Scale = import("../spec/scale.js").Scale;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scalePropsResolver.d.ts","sourceRoot":"","sources":["../../../src/scales/scalePropsResolver.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scalePropsResolver.d.ts","sourceRoot":"","sources":["../../../src/scales/scalePropsResolver.js"],"names":[],"mappings":"AAcA;;;;GAIG;AAEH;;;;;;;;GAQG;AACH,uGAPG;IAAyB,OAAO,EAAxB,OAAO;IACoC,QAAQ,EAAnD,OAAO,oBAAoB,EAAE,IAAI;IACG,OAAO,EAA3C,GAAG,CAAC,qBAAqB,CAAC;IACT,gBAAgB,EAAjC,OAAO;IACgD,YAAY,EAAnE,OAAO,mBAAmB,EAAE,eAAe,EAAE;CACrD,GAAU,KAAK,CAsHjB;sBAlIY,OAAO,oBAAoB,EAAE,OAAO;oBACpC,OAAO,kBAAkB,EAAE,KAAK;oCAChC,OAAO,sBAAsB,EAAE,qBAAqB"}
|
|
@@ -1,9 +1,16 @@
|
|
|
1
1
|
import { isDiscrete } from "vega-scale";
|
|
2
|
+
import { isColorChannel } from "../encoder/encoder.js";
|
|
2
3
|
|
|
3
4
|
import mergeObjects from "../utils/mergeObjects.js";
|
|
4
|
-
import {
|
|
5
|
+
import {
|
|
6
|
+
getConfiguredScaleConfig,
|
|
7
|
+
getConfiguredScaleDefaults,
|
|
8
|
+
getConfiguredNamedRange,
|
|
9
|
+
isConfigRangeName,
|
|
10
|
+
} from "../config/scaleConfig.js";
|
|
5
11
|
import { applyLockedProperties, getDefaultScaleType } from "./scaleRules.js";
|
|
6
12
|
import { INDEX, LOCUS } from "./scaleResolutionConstants.js";
|
|
13
|
+
import { orderResolutionMembers } from "./resolutionMemberOrder.js";
|
|
7
14
|
|
|
8
15
|
/**
|
|
9
16
|
* @typedef {import("../spec/channel.js").Channel} Channel
|
|
@@ -17,6 +24,7 @@ import { INDEX, LOCUS } from "./scaleResolutionConstants.js";
|
|
|
17
24
|
* @param {import("../spec/channel.js").Type} options.dataType
|
|
18
25
|
* @param {Set<ScaleResolutionMember>} options.members
|
|
19
26
|
* @param {boolean} options.isExplicitDomain
|
|
27
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} options.configScopes
|
|
20
28
|
* @returns {Scale}
|
|
21
29
|
*/
|
|
22
30
|
export function resolveScalePropsBase({
|
|
@@ -24,8 +32,17 @@ export function resolveScalePropsBase({
|
|
|
24
32
|
dataType,
|
|
25
33
|
members,
|
|
26
34
|
isExplicitDomain,
|
|
35
|
+
configScopes,
|
|
27
36
|
}) {
|
|
28
|
-
const
|
|
37
|
+
const markTypes = [...members]
|
|
38
|
+
.map((member) =>
|
|
39
|
+
typeof member.view.getMarkType == "function"
|
|
40
|
+
? member.view.getMarkType()
|
|
41
|
+
: undefined
|
|
42
|
+
)
|
|
43
|
+
.filter((markType) => !!markType);
|
|
44
|
+
|
|
45
|
+
const propArray = orderResolutionMembers(members)
|
|
29
46
|
.map((member) => member.channelDef.scale)
|
|
30
47
|
.filter((props) => props !== undefined);
|
|
31
48
|
|
|
@@ -36,14 +53,68 @@ export function resolveScalePropsBase({
|
|
|
36
53
|
}
|
|
37
54
|
|
|
38
55
|
const props = {
|
|
39
|
-
...
|
|
56
|
+
...getConfiguredScaleDefaults(configScopes, {
|
|
57
|
+
channel,
|
|
58
|
+
dataType,
|
|
59
|
+
isExplicitDomain,
|
|
60
|
+
markTypes: /** @type {import("../spec/mark.js").MarkType[]} */ (
|
|
61
|
+
markTypes
|
|
62
|
+
),
|
|
63
|
+
hasDomainMid: mergedProps.domainMid !== undefined,
|
|
64
|
+
}),
|
|
40
65
|
...mergedProps,
|
|
41
66
|
};
|
|
42
67
|
|
|
43
68
|
if (!props.type) {
|
|
69
|
+
// TODO: When discrete positional scale inference is revisited, plumb
|
|
70
|
+
// mark-level context into getDefaultScaleType instead of deciding only
|
|
71
|
+
// from channel + data type. The `markTypes` collection above is the
|
|
72
|
+
// natural starting point for a Vega-Lite-like band-vs-point choice,
|
|
73
|
+
// including future rect-backed marks such as "bar".
|
|
44
74
|
props.type = getDefaultScaleType(channel, dataType);
|
|
45
75
|
}
|
|
46
76
|
|
|
77
|
+
if (typeof props.range == "string") {
|
|
78
|
+
if (!isConfigRangeName(props.range)) {
|
|
79
|
+
throw new Error(
|
|
80
|
+
'Unknown named scale range "' +
|
|
81
|
+
props.range +
|
|
82
|
+
'". Supported names: shape, size, angle, heatmap, ramp, diverging.'
|
|
83
|
+
);
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
const resolvedNamedRange = getConfiguredNamedRange(
|
|
87
|
+
configScopes,
|
|
88
|
+
props.range
|
|
89
|
+
);
|
|
90
|
+
if (resolvedNamedRange === undefined) {
|
|
91
|
+
throw new Error(
|
|
92
|
+
'Named scale range "' +
|
|
93
|
+
props.range +
|
|
94
|
+
'" is not configured in config.range.'
|
|
95
|
+
);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (
|
|
99
|
+
isColorChannel(channel) &&
|
|
100
|
+
(typeof resolvedNamedRange == "string" ||
|
|
101
|
+
(resolvedNamedRange != null &&
|
|
102
|
+
typeof resolvedNamedRange == "object" &&
|
|
103
|
+
!Array.isArray(resolvedNamedRange)))
|
|
104
|
+
) {
|
|
105
|
+
props.scheme =
|
|
106
|
+
/** @type {import("../spec/scale.js").Scale["scheme"]} */ (
|
|
107
|
+
resolvedNamedRange
|
|
108
|
+
);
|
|
109
|
+
delete props.range;
|
|
110
|
+
} else {
|
|
111
|
+
props.range =
|
|
112
|
+
/** @type {import("../spec/scale.js").Scale["range"]} */ (
|
|
113
|
+
resolvedNamedRange
|
|
114
|
+
);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
|
|
47
118
|
// Reverse discrete y axis
|
|
48
119
|
if (
|
|
49
120
|
channel == "y" &&
|
|
@@ -58,9 +129,15 @@ export function resolveScalePropsBase({
|
|
|
58
129
|
// TODO: Props should be set more intelligently
|
|
59
130
|
}
|
|
60
131
|
|
|
61
|
-
// By default, index and locus scales are zoomable, others are not
|
|
62
|
-
|
|
63
|
-
|
|
132
|
+
// By default, index and locus scales are zoomable, others are not.
|
|
133
|
+
// Config can override this baseline via scale.zoom.
|
|
134
|
+
if (!("zoom" in props)) {
|
|
135
|
+
const scaleConfig = getConfiguredScaleConfig(configScopes, dataType);
|
|
136
|
+
if (scaleConfig.zoom !== undefined) {
|
|
137
|
+
props.zoom = scaleConfig.zoom;
|
|
138
|
+
} else if ([INDEX, LOCUS].includes(props.type)) {
|
|
139
|
+
props.zoom = true;
|
|
140
|
+
}
|
|
64
141
|
}
|
|
65
142
|
|
|
66
143
|
applyLockedProperties(props, channel);
|
|
@@ -51,6 +51,7 @@ export default class ScaleResolution implements ScaleResolutionApi {
|
|
|
51
51
|
* @param {ScaleResolutionListener} listener function
|
|
52
52
|
*/
|
|
53
53
|
removeEventListener(type: import("../types/scaleResolutionApi.js").ScaleResolutionEventType, listener: import("../types/scaleResolutionApi.js").ScaleResolutionListener): void;
|
|
54
|
+
syncLinkedSelectionFromDomain(): void;
|
|
54
55
|
/**
|
|
55
56
|
* @param {ScaleResolutionMember} member
|
|
56
57
|
* @returns {() => boolean}
|
|
@@ -63,6 +64,36 @@ export default class ScaleResolution implements ScaleResolutionApi {
|
|
|
63
64
|
* @returns {() => void}
|
|
64
65
|
*/
|
|
65
66
|
registerCollectorSubscriptions(collector: import("../data/collector.js").default, accessors: Iterable<import("../types/encoder.js").ScaleAccessor>): () => void;
|
|
67
|
+
/**
|
|
68
|
+
* Returns true if the domain has been defined explicitly, i.e. not extracted from the data.
|
|
69
|
+
*/
|
|
70
|
+
isDomainDefinedExplicitly(): boolean;
|
|
71
|
+
isDomainInitialized(): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* Returns locus assembly requirements without initializing the scale.
|
|
74
|
+
*
|
|
75
|
+
* This is intentionally side-effect free: it only inspects merged scale
|
|
76
|
+
* properties from registered members and does not touch default domains or
|
|
77
|
+
* instantiate scale instances.
|
|
78
|
+
*
|
|
79
|
+
* @returns {{
|
|
80
|
+
* assembly: import("../spec/scale.js").Scale["assembly"] | undefined,
|
|
81
|
+
* needsDefaultAssembly: boolean
|
|
82
|
+
* }}
|
|
83
|
+
*/
|
|
84
|
+
getAssemblyRequirement(): {
|
|
85
|
+
assembly: import("../spec/scale.js").Scale["assembly"] | undefined;
|
|
86
|
+
needsDefaultAssembly: boolean;
|
|
87
|
+
};
|
|
88
|
+
/**
|
|
89
|
+
* Returns the resolved scale type without instantiating the scale.
|
|
90
|
+
*
|
|
91
|
+
* Useful during view construction, before assembly preflight has loaded
|
|
92
|
+
* URL-backed locus genomes.
|
|
93
|
+
*
|
|
94
|
+
* @returns {import("../spec/scale.js").Scale["type"] | undefined}
|
|
95
|
+
*/
|
|
96
|
+
getResolvedScaleType(): import("../spec/scale.js").Scale["type"] | undefined;
|
|
66
97
|
/**
|
|
67
98
|
* Reconfigures the scale: updates domain and other settings.
|
|
68
99
|
*
|
|
@@ -112,6 +143,14 @@ export default class ScaleResolution implements ScaleResolutionApi {
|
|
|
112
143
|
* @returns {NumericDomain | ComplexDomain}
|
|
113
144
|
*/
|
|
114
145
|
getComplexDomain(): import("../spec/scale.js").NumericDomain | import("../spec/scale.js").ComplexDomain;
|
|
146
|
+
/**
|
|
147
|
+
* Returns metadata about a selection-linked domain, if present.
|
|
148
|
+
*/
|
|
149
|
+
getLinkedSelectionDomainInfo(): {
|
|
150
|
+
param: string;
|
|
151
|
+
encoding: "x" | "y";
|
|
152
|
+
persist: boolean;
|
|
153
|
+
};
|
|
115
154
|
/**
|
|
116
155
|
* Return true if the scale is zoomable and the current domain differs from the initial domain.
|
|
117
156
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaleResolution.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleResolution.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"scaleResolution.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleResolution.js"],"names":[],"mappings":"AAkDA;;;;;;;;GAQG;AACH;;;;;;;;;;;;;;;;;;GAkBG;AACH;IAwDI;;OAEG;IACH,2DAkCC;IAjCG,8CAAsB;IACtB,0FAA0F;IAC1F,MADW,OAAO,oBAAoB,EAAE,IAAI,CAC5B;IAEhB,iEAAiE;IACjE,MADW,MAAM,CACI;IAoEzB,2BASC;IAwBD;;;;;;;OAOG;IACH,4KAEC;IAED;;;OAGG;IACH,+KAEC;IAiCD,sCA0CC;IA0JD;;;OAGG;IACH,uBAHW,qBAAqB,GACnB,MAAM,OAAO,CAazB;IAED,gBAKC;IAkDD;;;;OAIG;IACH,0CAJW,OAAO,sBAAsB,EAAE,OAAO,aACtC,QAAQ,CAAC,OAAO,qBAAqB,EAAE,aAAa,CAAC,GACnD,MAAM,IAAI,CAkCtB;IAED;;OAEG;IACH,qCAEC;IAED,+BAiBC;IAmDD;;;;;;;;;;;OAWG;IACH,0BALa;QACR,QAAQ,EAAE,OAAO,kBAAkB,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,SAAS,CAAC;QACnE,oBAAoB,EAAE,OAAO,CAAA;KAC9B,CAeH;IAED;;;;;;;OAOG;IACH,wBAFa,OAAO,kBAAkB,EAAE,KAAK,CAAC,MAAM,CAAC,GAAG,SAAS,CAShE;IAwFD;;;;;OAKG;IACH,oBAYC;IAED;;;;;OAKG;IACH,0BA2BC;IA+HD;;OAEG;IACH;eAj4BkC,OAAO,kBAAkB,EAAE,KAAK;MAw4BjE;IAED;;;;;;OAMG;IACH;eAj5BkC,OAAO,kBAAkB,EAAE,KAAK;MAm5BjE;IAED;;;;OAIG;IACH;eA15BkC,OAAO,kBAAkB,EAAE,KAAK;MAm6BjE;IAED,mBAEC;IAED;;;;OAIG;IACH,+DAEC;IAED;;OAEG;IACH,oBAFa,mFAA6B,CASzC;IAED;;OAEG;IACH;;;;MAqBC;IAED;;;;OAIG;IACH,oBAEC;IAED;;OAEG;IACH,sBASC;IAED;;;;;;;OAOG;IACH,kBALW,MAAM,eACN,MAAM,OACN,MAAM,GACJ,OAAO,CAInB;IAED;;;;;;OAMG;IACH,eAJW,mFAA6B,aAC7B,OAAO,GAAG,MAAM,iBAK1B;IAED;;;;OAIG;IACH,qBAEC;IAED;;;;;OAKG;IACH,uBAEC;IAED;;;;;;;OAOG;IACH,wBAoBC;IAED;;;;;OAKG;IACH,uBAFW,MAAM,yDAUhB;IAED;;OAEG;IACH,iBAFW,MAAM,yDAIhB;IAED;;;OAGG;IACH,qBAHW,MAAM,+CAAmB,GACvB,MAAM,CAIlB;IAED;;;OAGG;IACH,8BAHW,kFAA4B,GAC1B,MAAM,EAAE,CAOpB;;CACJ;kCA1oC+B,CAAC,SAApB,6CAAkB;;;;UAGrB,OAAO,qBAAqB,EAAE,OAAO;aACrC,CAAC;gBACD,OAAO,oBAAoB,EAAE,mBAAmB;yBAChD,OAAO;;sBAlCV,+BAA+B;sBAA/B,+BAA+B;wBAA/B,+BAA+B;wBAA/B,+BAA+B;6BAA/B,+BAA+B"}
|