@genome-spy/core 0.73.0 → 0.75.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/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 +21266 -25938
- package/dist/bundle/index.js +367 -383
- package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
- package/dist/schema.json +13421 -7210
- 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.map +1 -1
- package/dist/src/data/formats/bed.js +6 -1
- package/dist/src/data/formats/bedpe.d.ts.map +1 -1
- package/dist/src/data/formats/bedpe.js +4 -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 +25 -0
- package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
- package/dist/src/data/sources/dataUtils.js +23 -0
- package/dist/src/data/sources/inlineSource.js +2 -2
- 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.map +1 -1
- package/dist/src/data/sources/urlSource.js +13 -5
- 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/genome.d.ts +8 -0
- package/dist/src/genome/genome.d.ts.map +1 -1
- package/dist/src/genome/genome.js +16 -2
- package/dist/src/genome/genomeStore.js +1 -1
- package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -1
- package/dist/src/genome/rootGenomeConfig.js +6 -2
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +31 -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 +5 -0
- package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
- package/dist/src/genomeSpy/interactionController.js +292 -59
- 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/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 -124
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +7 -688
- 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/colorUtils.d.ts.map +1 -1
- package/dist/src/gl/colorUtils.js +3 -0
- package/dist/src/gl/dataToVertices.d.ts +12 -14
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +121 -95
- package/dist/src/gl/glslScaleGenerator.d.ts +5 -2
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +15 -15
- package/dist/src/gl/vertexRangeIndex.d.ts +23 -0
- package/dist/src/gl/vertexRangeIndex.d.ts.map +1 -0
- package/dist/src/gl/vertexRangeIndex.js +150 -0
- package/dist/src/index.d.ts +3 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -114
- 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 +0 -23
- 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 +61 -20
- 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/expressionCompiler.d.ts +2 -1
- package/dist/src/paramRuntime/expressionCompiler.d.ts.map +1 -1
- package/dist/src/paramRuntime/expressionCompiler.js +3 -2
- package/dist/src/paramRuntime/expressionRef.d.ts +4 -1
- package/dist/src/paramRuntime/expressionRef.d.ts.map +1 -1
- package/dist/src/paramRuntime/expressionRef.js +10 -3
- package/dist/src/paramRuntime/graphRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/graphRuntime.js +15 -6
- package/dist/src/paramRuntime/paramRuntime.d.ts +8 -2
- package/dist/src/paramRuntime/paramRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/paramRuntime.js +10 -5
- package/dist/src/paramRuntime/types.d.ts +1 -0
- package/dist/src/paramRuntime/types.d.ts.map +1 -1
- package/dist/src/paramRuntime/types.js +1 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts +24 -4
- package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/viewParamRuntime.js +52 -6
- package/dist/src/scale/scale.d.ts.map +1 -1
- package/dist/src/scale/scale.js +14 -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 +82 -16
- package/dist/src/scales/domainPlanner.d.ts.map +1 -1
- package/dist/src/scales/domainPlanner.js +364 -131
- 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.map +1 -1
- package/dist/src/scales/scaleInstanceManager.js +7 -2
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
- package/dist/src/scales/scaleInteractionController.js +43 -4
- package/dist/src/scales/scalePropsResolver.d.ts +5 -3
- package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
- package/dist/src/scales/scalePropsResolver.js +108 -8
- package/dist/src/scales/scaleResolution.d.ts +35 -1
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +381 -66
- package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -1
- package/dist/src/scales/scaleResolutionTestUtils.js +6 -2
- 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 +30 -0
- package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -1
- package/dist/src/scales/selectionDomainUtils.js +116 -1
- package/dist/src/screenshotExport.d.ts +23 -0
- package/dist/src/screenshotExport.d.ts.map +1 -0
- package/dist/src/screenshotExport.js +44 -0
- package/dist/src/screenshotHarness.d.ts.map +1 -1
- package/dist/src/screenshotHarness.js +26 -25
- package/dist/src/spec/axis.d.ts +43 -32
- package/dist/src/spec/channel.d.ts +19 -13
- package/dist/src/spec/config.d.ts +264 -0
- package/dist/src/spec/data.d.ts +19 -0
- 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/mark.d.ts +97 -13
- package/dist/src/spec/parameter.d.ts +30 -10
- package/dist/src/spec/root.d.ts +14 -0
- package/dist/src/spec/scale.d.ts +31 -14
- 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 +55 -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 +23 -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 +8 -2
- 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 +7 -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 +18 -10
- package/dist/src/utils/expression.d.ts.map +1 -1
- package/dist/src/utils/expression.js +354 -19
- 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/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 +21 -42
- package/dist/src/utils/interactionEvent.d.ts.map +1 -1
- package/dist/src/utils/interactionEvent.js +43 -66
- 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 +4 -1
- package/dist/src/view/facetView.d.ts +1 -1
- package/dist/src/view/facetView.js +3 -3
- package/dist/src/view/flowBuilder.d.ts +1 -1
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +13 -9
- package/dist/src/view/gridView/gridChild.d.ts +6 -0
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +72 -43
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +255 -101
- 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/resolutionPlanner.d.ts +9 -0
- package/dist/src/view/resolutionPlanner.d.ts.map +1 -0
- package/dist/src/view/resolutionPlanner.js +302 -0
- 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 +72 -169
- 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 +138 -48
- 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 +2 -2
- package/dist/src/view/zoom.d.ts.map +1 -1
- package/dist/src/view/zoom.js +21 -23
- package/package.json +18 -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,200 @@
|
|
|
1
|
+
import {
|
|
2
|
+
createPrimitiveEventProxy,
|
|
3
|
+
isWheelEvent,
|
|
4
|
+
overrideWheelEventDeltas,
|
|
5
|
+
} from "./interactionEvent.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Internal event object used by GenomeSpy's canvas interaction pipeline.
|
|
9
|
+
*
|
|
10
|
+
* Interaction is deliberately smaller than DOM Event. It models the pieces
|
|
11
|
+
* that GenomeSpy needs for hierarchical pointer handling:
|
|
12
|
+
* - `point` is always in canvas coordinates
|
|
13
|
+
* - `uiEvent` is the original native or synthesized low-level event
|
|
14
|
+
* - `target` is the resolved deepest view target after propagation
|
|
15
|
+
* - `currentTarget` and `relatedTarget` are used by synthesized
|
|
16
|
+
* `mouseenter` / `mouseleave` delivery
|
|
17
|
+
*
|
|
18
|
+
* Runtime flow:
|
|
19
|
+
* 1. `InteractionController` converts native canvas events into Interaction
|
|
20
|
+
* instances and asks `InteractionDispatcher` to route them.
|
|
21
|
+
* 2. Container views route the interaction through the view hierarchy and may
|
|
22
|
+
* add policy on top, such as wheel claiming, zoom handling, or scrollbar
|
|
23
|
+
* dispatch.
|
|
24
|
+
* 3. `InteractionDispatcher` compares successive hover paths and synthesizes
|
|
25
|
+
* subtree-level `mouseenter` / `mouseleave` transitions.
|
|
26
|
+
*
|
|
27
|
+
* Differences from the DOM model:
|
|
28
|
+
* - propagation is view-driven rather than browser-driven
|
|
29
|
+
* - only the event types used by GenomeSpy are represented
|
|
30
|
+
* - there is only `stopPropagation()`, not stop-immediate semantics
|
|
31
|
+
* - mark picking is not encoded into `target`; mark hover lives separately in
|
|
32
|
+
* `InteractionController`
|
|
33
|
+
*
|
|
34
|
+
* Mouse and wheel helpers:
|
|
35
|
+
* - `mouseEvent` exposes the underlying MouseEvent for imperative handlers
|
|
36
|
+
* - `proxiedMouseEvent` exposes only primitive properties for places that
|
|
37
|
+
* must not retain live DOM objects
|
|
38
|
+
* - `wheelEvent` exposes the underlying wheel-like event, optionally with
|
|
39
|
+
* temporary delta overrides applied by `setWheelDeltas()`
|
|
40
|
+
*
|
|
41
|
+
* Special event types:
|
|
42
|
+
* - `wheelclaimprobe` asks pointed views whether they would consume wheel,
|
|
43
|
+
* without running the actual wheel side effects yet
|
|
44
|
+
* - `touchgesture` is a synthesized high-level gesture event derived from
|
|
45
|
+
* touch input
|
|
46
|
+
*/
|
|
47
|
+
export default class Interaction {
|
|
48
|
+
/** @type {MouseEvent} */
|
|
49
|
+
#primitiveMouseEventProxy;
|
|
50
|
+
|
|
51
|
+
/** @type {import("./interactionEvent.js").WheelLikeEvent | undefined} */
|
|
52
|
+
#wheelEventProxy;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* @param {import("../view/layout/point.js").default} point
|
|
56
|
+
* @param {import("./interactionEvent.js").InteractionUiEvent} uiEvent
|
|
57
|
+
* @param {string} [type]
|
|
58
|
+
*/
|
|
59
|
+
constructor(point, uiEvent, type) {
|
|
60
|
+
this.point = point;
|
|
61
|
+
this.#uiEvent = uiEvent;
|
|
62
|
+
this.stopped = false;
|
|
63
|
+
this.wheelClaimed = false;
|
|
64
|
+
this.#typeOverride = type;
|
|
65
|
+
|
|
66
|
+
/**
|
|
67
|
+
* The target is known only after the interaction has been resolved
|
|
68
|
+
* against the view hierarchy.
|
|
69
|
+
*
|
|
70
|
+
* @type {import("../view/view.js").default | undefined}
|
|
71
|
+
*/
|
|
72
|
+
this.target = undefined;
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Reserved for the new interaction dispatcher.
|
|
76
|
+
*
|
|
77
|
+
* @type {import("../view/view.js").default | undefined}
|
|
78
|
+
*/
|
|
79
|
+
this.currentTarget = undefined;
|
|
80
|
+
|
|
81
|
+
/**
|
|
82
|
+
* Reserved for enter/leave-style transition events.
|
|
83
|
+
*
|
|
84
|
+
* @type {import("../view/view.js").default | undefined}
|
|
85
|
+
*/
|
|
86
|
+
this.relatedTarget = undefined;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
/** @type {import("./interactionEvent.js").InteractionUiEvent} */
|
|
90
|
+
#uiEvent;
|
|
91
|
+
/** @type {string | undefined} */
|
|
92
|
+
#typeOverride;
|
|
93
|
+
/** @type {{ deltaX: number, deltaY: number } | undefined} */
|
|
94
|
+
#wheelDeltaOverride;
|
|
95
|
+
|
|
96
|
+
get uiEvent() {
|
|
97
|
+
return this.#uiEvent;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
set uiEvent(value) {
|
|
101
|
+
this.#uiEvent = value;
|
|
102
|
+
this.#primitiveMouseEventProxy = undefined;
|
|
103
|
+
this.#wheelEventProxy = undefined;
|
|
104
|
+
this.#wheelDeltaOverride = undefined;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
stopPropagation() {
|
|
108
|
+
this.stopped = true;
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Marks the current wheel interaction as claimed by the pointed view
|
|
113
|
+
* hierarchy.
|
|
114
|
+
*
|
|
115
|
+
* This is used both for real wheel events and for the synthetic
|
|
116
|
+
* `wheelclaimprobe` preflight. Controllers use the claimed state to decide
|
|
117
|
+
* whether the native wheel event should call `preventDefault()`.
|
|
118
|
+
*/
|
|
119
|
+
claimWheel() {
|
|
120
|
+
if (this.type !== "wheel" && this.type !== "wheelclaimprobe") {
|
|
121
|
+
throw new Error("Can claim wheel only for wheel events!");
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
this.wheelClaimed = true;
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
/**
|
|
128
|
+
* @param {number} deltaX
|
|
129
|
+
* @param {number} deltaY
|
|
130
|
+
*/
|
|
131
|
+
setWheelDeltas(deltaX, deltaY) {
|
|
132
|
+
if (!isWheelEvent(this.uiEvent)) {
|
|
133
|
+
throw new Error("Not a WheelEvent!");
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
this.#wheelDeltaOverride = { deltaX, deltaY };
|
|
137
|
+
this.#wheelEventProxy = undefined;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
get type() {
|
|
141
|
+
return this.#typeOverride ?? this.uiEvent.type;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
set type(value) {
|
|
145
|
+
this.#typeOverride = value;
|
|
146
|
+
}
|
|
147
|
+
|
|
148
|
+
/**
|
|
149
|
+
* Returns a primitive-only proxy of the underlying MouseEvent.
|
|
150
|
+
*
|
|
151
|
+
* This is intended for places such as expression evaluation, where the
|
|
152
|
+
* caller needs scalar event fields but should not receive a live DOM event
|
|
153
|
+
* object with methods, nested objects, or browser-specific prototypes.
|
|
154
|
+
*/
|
|
155
|
+
get proxiedMouseEvent() {
|
|
156
|
+
if (!this.#primitiveMouseEventProxy) {
|
|
157
|
+
this.#primitiveMouseEventProxy = createPrimitiveEventProxy(
|
|
158
|
+
this.mouseEvent
|
|
159
|
+
);
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
return this.#primitiveMouseEventProxy;
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
get mouseEvent() {
|
|
166
|
+
if (this.uiEvent instanceof MouseEvent) {
|
|
167
|
+
return this.uiEvent;
|
|
168
|
+
} else {
|
|
169
|
+
throw new Error("Not a MouseEvent!");
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Returns a wheel-like event with any temporary delta overrides applied.
|
|
175
|
+
*
|
|
176
|
+
* The wrapped event keeps the original event identity for all properties
|
|
177
|
+
* except `deltaX` and `deltaY`, which allows intermediate handlers to
|
|
178
|
+
* consume part of the wheel interaction while keeping downstream wheel
|
|
179
|
+
* handling on the same event instance.
|
|
180
|
+
*/
|
|
181
|
+
get wheelEvent() {
|
|
182
|
+
if (!isWheelEvent(this.uiEvent)) {
|
|
183
|
+
throw new Error("Not a WheelEvent!");
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
if (!this.#wheelDeltaOverride) {
|
|
187
|
+
return this.uiEvent;
|
|
188
|
+
}
|
|
189
|
+
|
|
190
|
+
if (!this.#wheelEventProxy) {
|
|
191
|
+
this.#wheelEventProxy = overrideWheelEventDeltas(
|
|
192
|
+
this.uiEvent,
|
|
193
|
+
this.#wheelDeltaOverride.deltaX,
|
|
194
|
+
this.#wheelDeltaOverride.deltaY
|
|
195
|
+
);
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
return this.#wheelEventProxy;
|
|
199
|
+
}
|
|
200
|
+
}
|
|
@@ -17,13 +17,31 @@
|
|
|
17
17
|
* @prop {"wheelclaimprobe"} type
|
|
18
18
|
*/
|
|
19
19
|
/**
|
|
20
|
-
* @typedef {
|
|
20
|
+
* @typedef {Pick<
|
|
21
|
+
* WheelEvent,
|
|
22
|
+
* "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey"
|
|
23
|
+
* >} WheelLikeEvent
|
|
24
|
+
*/
|
|
25
|
+
/**
|
|
26
|
+
* @typedef {UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
|
|
21
27
|
*/
|
|
22
28
|
/**
|
|
23
29
|
* @param {unknown} eventLike
|
|
24
30
|
* @returns {eventLike is TouchGestureEvent}
|
|
25
31
|
*/
|
|
26
32
|
export function isTouchGestureEvent(eventLike: unknown): eventLike is TouchGestureEvent;
|
|
33
|
+
/**
|
|
34
|
+
* @param {unknown} eventLike
|
|
35
|
+
* @returns {eventLike is WheelLikeEvent}
|
|
36
|
+
*/
|
|
37
|
+
export function isWheelEvent(eventLike: unknown): eventLike is WheelLikeEvent;
|
|
38
|
+
/**
|
|
39
|
+
* @param {WheelLikeEvent} wheelEvent
|
|
40
|
+
* @param {number} deltaX
|
|
41
|
+
* @param {number} deltaY
|
|
42
|
+
* @returns {WheelLikeEvent}
|
|
43
|
+
*/
|
|
44
|
+
export function overrideWheelEventDeltas(wheelEvent: WheelLikeEvent, deltaX: number, deltaY: number): WheelLikeEvent;
|
|
27
45
|
/**
|
|
28
46
|
* Create a safe proxy for an event-like object that exposes only primitive
|
|
29
47
|
* (string, number, boolean, bigint, symbol, undefined) properties and null.
|
|
@@ -33,46 +51,6 @@ export function isTouchGestureEvent(eventLike: unknown): eventLike is TouchGestu
|
|
|
33
51
|
* @template T
|
|
34
52
|
*/
|
|
35
53
|
export function createPrimitiveEventProxy<T>(target: T): T;
|
|
36
|
-
/**
|
|
37
|
-
* This class wraps a MouseEvent (or similar) and allows for
|
|
38
|
-
* its propagation through the view hierarchy in a similar manner
|
|
39
|
-
* as in the DOM.
|
|
40
|
-
*/
|
|
41
|
-
export default class InteractionEvent {
|
|
42
|
-
/**
|
|
43
|
-
* @param {import("../view/layout/point.js").default} point Event coordinates
|
|
44
|
-
* inside the visualization canvas.
|
|
45
|
-
* @param {InteractionUiEvent} uiEvent The event to be wrapped
|
|
46
|
-
*/
|
|
47
|
-
constructor(point: import("../view/layout/point.js").default, uiEvent: InteractionUiEvent);
|
|
48
|
-
point: import("../view/layout/point.js").default;
|
|
49
|
-
uiEvent: InteractionUiEvent;
|
|
50
|
-
stopped: boolean;
|
|
51
|
-
wheelClaimed: boolean;
|
|
52
|
-
/**
|
|
53
|
-
* The target is known only in the bubbling phase
|
|
54
|
-
*
|
|
55
|
-
* @type {import("../view/view.js").default}
|
|
56
|
-
*/
|
|
57
|
-
target: import("../view/view.js").default;
|
|
58
|
-
stopPropagation(): void;
|
|
59
|
-
/**
|
|
60
|
-
* Marks the event as wheel-owned by the current interaction path.
|
|
61
|
-
* This is used by native wheel probes to decide preventDefault timing.
|
|
62
|
-
*/
|
|
63
|
-
claimWheel(): void;
|
|
64
|
-
/**
|
|
65
|
-
* The event type string of the underlying UI event (e.g. "click", "keydown").
|
|
66
|
-
*
|
|
67
|
-
* This getter proxies and returns the `type` property from the internal `UIEvent` instance (`this.uiEvent`).
|
|
68
|
-
*
|
|
69
|
-
* @returns {string} The UI event type.
|
|
70
|
-
*/
|
|
71
|
-
get type(): string;
|
|
72
|
-
get proxiedMouseEvent(): MouseEvent;
|
|
73
|
-
get mouseEvent(): MouseEvent;
|
|
74
|
-
#private;
|
|
75
|
-
}
|
|
76
54
|
export type TouchGestureEvent = {
|
|
77
55
|
type: "touchgesture";
|
|
78
56
|
phase: "move" | "end";
|
|
@@ -90,5 +68,6 @@ export type TouchGestureEvent = {
|
|
|
90
68
|
export type WheelClaimProbeEvent = {
|
|
91
69
|
type: "wheelclaimprobe";
|
|
92
70
|
};
|
|
93
|
-
export type
|
|
71
|
+
export type WheelLikeEvent = Pick<WheelEvent, "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey">;
|
|
72
|
+
export type InteractionUiEvent = UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent;
|
|
94
73
|
//# sourceMappingURL=interactionEvent.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactionEvent.d.ts","sourceRoot":"","sources":["../../../src/utils/interactionEvent.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AAEH;;GAEG;AAEH;;;GAGG;AACH,+CAHW,OAAO,GACL,SAAS,IAAI,iBAAiB,CAoB1C;
|
|
1
|
+
{"version":3,"file":"interactionEvent.d.ts","sourceRoot":"","sources":["../../../src/utils/interactionEvent.js"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH;;;;;;;GAOG;AAEH;;;;;GAKG;AAEH;;GAEG;AAEH;;;GAGG;AACH,+CAHW,OAAO,GACL,SAAS,IAAI,iBAAiB,CAoB1C;AAED;;;GAGG;AACH,wCAHW,OAAO,GACL,SAAS,IAAI,cAAc,CAmBvC;AAED;;;;;GAKG;AACH,qDALW,cAAc,UACd,MAAM,UACN,MAAM,GACJ,cAAc,CAe1B;AAED;;;;;;;GAOG;AACH,0CAFa,CAAC,UAFH,CAAC,GACC,CAAC,CA0Eb;;UAhLS,cAAc;WACd,MAAM,GAAG,KAAK;kBACd,CAAC,GAAG,CAAC;YACL,MAAM;YACN,MAAM;YACN,MAAM;qBACN,MAAM,IAAI;;;;;;;;UASV,iBAAiB;;6BAId,IAAI,CACT,UAAU,EACjB,MAAa,GAAG,QAAQ,GAAG,QAAQ,GAAG,WAAW,GAAG,gBAAgB,GAAG,SAAS,CAC7E;iCAIS,OAAO,GAAG,cAAc,GAAG,iBAAiB,GAAG,oBAAoB"}
|
|
@@ -19,7 +19,14 @@
|
|
|
19
19
|
*/
|
|
20
20
|
|
|
21
21
|
/**
|
|
22
|
-
* @typedef {
|
|
22
|
+
* @typedef {Pick<
|
|
23
|
+
* WheelEvent,
|
|
24
|
+
* "type" | "deltaX" | "deltaY" | "deltaMode" | "preventDefault" | "ctrlKey"
|
|
25
|
+
* >} WheelLikeEvent
|
|
26
|
+
*/
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* @typedef {UIEvent | WheelLikeEvent | TouchGestureEvent | WheelClaimProbeEvent} InteractionUiEvent
|
|
23
30
|
*/
|
|
24
31
|
|
|
25
32
|
/**
|
|
@@ -47,77 +54,47 @@ export function isTouchGestureEvent(eventLike) {
|
|
|
47
54
|
}
|
|
48
55
|
|
|
49
56
|
/**
|
|
50
|
-
*
|
|
51
|
-
*
|
|
52
|
-
* as in the DOM.
|
|
57
|
+
* @param {unknown} eventLike
|
|
58
|
+
* @returns {eventLike is WheelLikeEvent}
|
|
53
59
|
*/
|
|
54
|
-
export
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
/**
|
|
59
|
-
* @param {import("../view/layout/point.js").default} point Event coordinates
|
|
60
|
-
* inside the visualization canvas.
|
|
61
|
-
* @param {InteractionUiEvent} uiEvent The event to be wrapped
|
|
62
|
-
*/
|
|
63
|
-
constructor(point, uiEvent) {
|
|
64
|
-
this.point = point;
|
|
65
|
-
this.uiEvent = uiEvent;
|
|
66
|
-
this.stopped = false;
|
|
67
|
-
this.wheelClaimed = false;
|
|
68
|
-
|
|
69
|
-
/**
|
|
70
|
-
* The target is known only in the bubbling phase
|
|
71
|
-
*
|
|
72
|
-
* @type {import("../view/view.js").default}
|
|
73
|
-
*/
|
|
74
|
-
this.target = undefined;
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
stopPropagation() {
|
|
78
|
-
this.stopped = true;
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
/**
|
|
82
|
-
* Marks the event as wheel-owned by the current interaction path.
|
|
83
|
-
* This is used by native wheel probes to decide preventDefault timing.
|
|
84
|
-
*/
|
|
85
|
-
claimWheel() {
|
|
86
|
-
if (this.type !== "wheel" && this.type !== "wheelclaimprobe") {
|
|
87
|
-
throw new Error("Can claim wheel only for wheel events!");
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
this.wheelClaimed = true;
|
|
60
|
+
export function isWheelEvent(eventLike) {
|
|
61
|
+
if (!eventLike || typeof eventLike !== "object") {
|
|
62
|
+
return false;
|
|
91
63
|
}
|
|
92
64
|
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
*
|
|
98
|
-
* @returns {string} The UI event type.
|
|
99
|
-
*/
|
|
100
|
-
get type() {
|
|
101
|
-
return this.uiEvent.type;
|
|
102
|
-
}
|
|
65
|
+
const candidate =
|
|
66
|
+
/** @type {{type?: unknown, deltaX?: unknown, deltaY?: unknown, deltaMode?: unknown, preventDefault?: unknown}} */ (
|
|
67
|
+
eventLike
|
|
68
|
+
);
|
|
103
69
|
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
70
|
+
return (
|
|
71
|
+
candidate.type === "wheel" &&
|
|
72
|
+
Number.isFinite(candidate.deltaX) &&
|
|
73
|
+
Number.isFinite(candidate.deltaY) &&
|
|
74
|
+
Number.isFinite(candidate.deltaMode) &&
|
|
75
|
+
typeof candidate.preventDefault === "function"
|
|
76
|
+
);
|
|
77
|
+
}
|
|
110
78
|
|
|
111
|
-
|
|
112
|
-
|
|
79
|
+
/**
|
|
80
|
+
* @param {WheelLikeEvent} wheelEvent
|
|
81
|
+
* @param {number} deltaX
|
|
82
|
+
* @param {number} deltaY
|
|
83
|
+
* @returns {WheelLikeEvent}
|
|
84
|
+
*/
|
|
85
|
+
export function overrideWheelEventDeltas(wheelEvent, deltaX, deltaY) {
|
|
86
|
+
return new Proxy(wheelEvent, {
|
|
87
|
+
get(target, prop) {
|
|
88
|
+
if (prop === "deltaX") {
|
|
89
|
+
return deltaX;
|
|
90
|
+
} else if (prop === "deltaY") {
|
|
91
|
+
return deltaY;
|
|
92
|
+
}
|
|
113
93
|
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
throw new Error("Not a MouseEvent!");
|
|
119
|
-
}
|
|
120
|
-
}
|
|
94
|
+
const value = Reflect.get(target, prop, target);
|
|
95
|
+
return typeof value === "function" ? value.bind(target) : value;
|
|
96
|
+
},
|
|
97
|
+
});
|
|
121
98
|
}
|
|
122
99
|
|
|
123
100
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mergeObjects.d.ts","sourceRoot":"","sources":["../../../src/utils/mergeObjects.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mergeObjects.d.ts","sourceRoot":"","sources":["../../../src/utils/mergeObjects.js"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AACH,qCAFa,CAAC,WAJF,CAAC,EAAE,cACJ,MAAM,SACN,MAAM,EAAE,GACN,CAAC,CAgFb"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
/* eslint-disable max-depth */
|
|
2
1
|
import { isObject } from "vega-util";
|
|
3
2
|
|
|
4
3
|
/**
|
|
@@ -40,7 +39,6 @@ export default function mergeObjects(objects, propertyOf, skip) {
|
|
|
40
39
|
|
|
41
40
|
/** @param {any} obj */
|
|
42
41
|
const merger = (obj) => {
|
|
43
|
-
// eslint-disable-next-line guard-for-in
|
|
44
42
|
for (let prop in obj) {
|
|
45
43
|
const sourceValue = obj[prop];
|
|
46
44
|
if (!skip.includes(prop) && sourceValue !== undefined) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"radixSort.d.ts","sourceRoot":"","sources":["../../../src/utils/radixSort.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH,uCAFW,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"radixSort.d.ts","sourceRoot":"","sources":["../../../src/utils/radixSort.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH,uCAFW,MAAM,EAAE,YA6DlB;AAeD;;GAEG;AACH,8CAFW,MAAM,EAAE,YAyDlB"}
|
|
@@ -39,7 +39,6 @@ export default function radixSort(arr) {
|
|
|
39
39
|
/**
|
|
40
40
|
* @param {*} i number
|
|
41
41
|
*/
|
|
42
|
-
// eslint-disable-next-line no-loop-func
|
|
43
42
|
const getDigit = (/** @type {number} */ i) => {
|
|
44
43
|
const value = arr[i];
|
|
45
44
|
|
|
@@ -117,7 +116,6 @@ export function radixSortIntoLookupArray(arr) {
|
|
|
117
116
|
/**
|
|
118
117
|
* @param {*} i number
|
|
119
118
|
*/
|
|
120
|
-
// eslint-disable-next-line no-loop-func
|
|
121
119
|
const getDigit = (i) => {
|
|
122
120
|
const value = arr[indexes[i]]; // Use index to access array value
|
|
123
121
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/utils/throttle.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wDAHW,MAAM,GACJ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"throttle.d.ts","sourceRoot":"","sources":["../../../src/utils/throttle.js"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,wDAHW,MAAM,GACJ,CAAC,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC,GAAG;IAAE,MAAM,EAAE,MAAM,IAAI,CAAA;CAAE,CA4D/D"}
|
|
@@ -19,9 +19,7 @@ export default function throttle(func, limit) {
|
|
|
19
19
|
let lastContext = null;
|
|
20
20
|
|
|
21
21
|
const throttled = function () {
|
|
22
|
-
// eslint-disable-next-line no-invalid-this
|
|
23
22
|
lastContext = this;
|
|
24
|
-
// eslint-disable-next-line prefer-rest-params
|
|
25
23
|
lastArgs = arguments;
|
|
26
24
|
|
|
27
25
|
const now = Date.now();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/tooltip.js"],"names":[],"mappings":"AAIA,0CAA2C,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../../src/utils/ui/tooltip.js"],"names":[],"mappings":"AAIA,0CAA2C,qBAAqB,CAAC;AACjE,4CAA6C,uBAAuB,CAAC;AAErE;IAsBI;;OAEG;IACH,uBAFW,WAAW,EAUrB;IAED;;OAEG;IACH,mBAFW,OAAO,EAQjB;IAED,cAVW,OAAO,CAYjB;IAED;;OAEG;IACH,qBAFW,OAAO,EAOjB;IAED,eATW,OAAO,CAWjB;IAED,uBAEC;IAED;;OAEG;IACH,0BAFW,OAAO,QAOjB;IAED,wBAEC;IAED;;OAEG;IACH,4BAFW,UAAU,QAsCpB;IA/BG,8BAA2D;IAiC/D,wBAiBC;IAED;;OAEG;IACH,oBAFW,MAAM,GAAG,OAAO,KAAK,EAAE,cAAc,GAAG,WAAW,QAqB7D;IAED,cAGC;IAED;;;;;;;OAOG;IACH,gBAFa,CAAC,SAFH,CAAC,cACD,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAyBlF;IAED,sBAEC;;CACJ"}
|
|
@@ -3,6 +3,7 @@ import { html, render } from "lit";
|
|
|
3
3
|
import { peek } from "../arrayUtils.js";
|
|
4
4
|
|
|
5
5
|
export const SUPPRESS_TOOLTIP_CLASS_NAME = "gs-suppress-tooltip";
|
|
6
|
+
export const FREEZE_INTERACTION_CLASS_NAME = "gs-freeze-interaction";
|
|
6
7
|
|
|
7
8
|
export default class Tooltip {
|
|
8
9
|
#sticky = false;
|
package/dist/src/utils/url.js
CHANGED
|
@@ -19,7 +19,7 @@ export default class AxisGridView extends LayerView<import("../spec/view.js").La
|
|
|
19
19
|
* @param {import("./view.js").ViewOptions} [options]
|
|
20
20
|
*/
|
|
21
21
|
constructor(axisProps: Axis, type: string, context: import("../types/viewContext.js").default, layoutParent: import("./containerView.js").default, dataParent: import("./view.js").default, options?: import("./view.js").ViewOptions);
|
|
22
|
-
axisProps: import("../spec/axis.js").
|
|
22
|
+
axisProps: import("../spec/axis.js").Axis;
|
|
23
23
|
getOrient(): import("../spec/axis.js").AxisOrient;
|
|
24
24
|
}
|
|
25
25
|
export type PositionalChannel = import("../spec/channel.js").PrimaryPositionalChannel;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axisGridView.d.ts","sourceRoot":"","sources":["../../../src/view/axisGridView.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;GAMG;AACH;IACI;;;;;;;OAOG;IACH,uBAPW,IAAI,QAEJ,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"axisGridView.d.ts","sourceRoot":"","sources":["../../../src/view/axisGridView.js"],"names":[],"mappings":"AAIA;;;GAGG;AAEH;;;;;;GAMG;AACH;IACI;;;;;;;OAOG;IACH,uBAPW,IAAI,QAEJ,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,EAkBzC;IAHG,0CAA0B;IAK9B,kDAEC;CAKJ;gCA7CY,OAAO,oBAAoB,EAAE,wBAAwB;iCACrD,OAAO,iBAAiB,EAAE,kBAAkB;;;;mBAM5C,OAAO,WAAW,EAAE,OAAO;;;;mBAC3B,OAAO,iBAAiB,EAAE,IAAI;;;;yBAC9B,OAAO,iBAAiB,EAAE,UAAU;sBAd3B,gBAAgB"}
|
|
@@ -24,19 +24,8 @@ export default class AxisGridView extends LayerView {
|
|
|
24
24
|
* @param {import("./view.js").ViewOptions} [options]
|
|
25
25
|
*/
|
|
26
26
|
constructor(axisProps, type, context, layoutParent, dataParent, options) {
|
|
27
|
-
// Now the presence of genomeAxis is based on field type, not scale type.
|
|
28
|
-
// TODO: Use scale instead. However, it would make the initialization much more
|
|
29
|
-
// complex because scales are not available before scale resolution.
|
|
30
|
-
const genomeAxis = type == "locus";
|
|
31
|
-
|
|
32
|
-
/** @type {Axis | GenomeAxis} */
|
|
33
|
-
const fullAxisProps = {
|
|
34
|
-
...(genomeAxis ? defaultGenomeAxisProps : defaultAxisProps),
|
|
35
|
-
...axisProps,
|
|
36
|
-
};
|
|
37
|
-
|
|
38
27
|
super(
|
|
39
|
-
createAxisGrid(
|
|
28
|
+
createAxisGrid(axisProps, type),
|
|
40
29
|
context,
|
|
41
30
|
layoutParent,
|
|
42
31
|
dataParent,
|
|
@@ -47,7 +36,7 @@ export default class AxisGridView extends LayerView {
|
|
|
47
36
|
}
|
|
48
37
|
);
|
|
49
38
|
|
|
50
|
-
this.axisProps =
|
|
39
|
+
this.axisProps = axisProps;
|
|
51
40
|
|
|
52
41
|
markViewAsNonAddressable(this, { skipSubtree: true });
|
|
53
42
|
}
|
|
@@ -61,40 +50,6 @@ export default class AxisGridView extends LayerView {
|
|
|
61
50
|
}
|
|
62
51
|
}
|
|
63
52
|
|
|
64
|
-
/**
|
|
65
|
-
* Based on: https://vega.github.io/vega-lite/docs/axis.html
|
|
66
|
-
* TODO: The defaults should be taken from config (theme)
|
|
67
|
-
*
|
|
68
|
-
* @type {Axis}
|
|
69
|
-
*/
|
|
70
|
-
const defaultAxisProps = {
|
|
71
|
-
values: null,
|
|
72
|
-
|
|
73
|
-
grid: false,
|
|
74
|
-
gridCap: "butt",
|
|
75
|
-
gridColor: "lightgray",
|
|
76
|
-
gridDash: null,
|
|
77
|
-
gridOpacity: 1,
|
|
78
|
-
gridWidth: 1,
|
|
79
|
-
|
|
80
|
-
tickCount: null,
|
|
81
|
-
tickMinStep: null,
|
|
82
|
-
};
|
|
83
|
-
|
|
84
|
-
/**
|
|
85
|
-
* @type {import("../spec/axis.js").GenomeAxis}
|
|
86
|
-
*/
|
|
87
|
-
const defaultGenomeAxisProps = {
|
|
88
|
-
...defaultAxisProps,
|
|
89
|
-
|
|
90
|
-
chromGrid: false,
|
|
91
|
-
chromGridCap: "butt",
|
|
92
|
-
chromGridColor: "gray",
|
|
93
|
-
chromGridDash: [1, 5],
|
|
94
|
-
chromGridOpacity: 1,
|
|
95
|
-
chromGridWidth: 1,
|
|
96
|
-
};
|
|
97
|
-
|
|
98
53
|
/**
|
|
99
54
|
* @param {Axis} axisProps
|
|
100
55
|
* @param {string} type
|
|
@@ -31,8 +31,6 @@ export default class AxisView extends LayerView<import("../spec/view.js").LayerS
|
|
|
31
31
|
* @typedef {import("../spec/axis.js").GenomeAxis} GenomeAxis
|
|
32
32
|
* @typedef {import("../spec/axis.js").AxisOrient} AxisOrient
|
|
33
33
|
* @typedef {import("./layout/flexLayout.js").SizeDef} SizeDef
|
|
34
|
-
*
|
|
35
|
-
* @typedef {Axis & { extent: number }} AugmentedAxis
|
|
36
34
|
*/
|
|
37
35
|
/**
|
|
38
36
|
* @param {Axis} axisProps
|
|
@@ -43,8 +41,9 @@ export default class AxisView extends LayerView<import("../spec/view.js").LayerS
|
|
|
43
41
|
* @param {import("./view.js").ViewOptions} [options]
|
|
44
42
|
*/
|
|
45
43
|
constructor(axisProps: import("../spec/axis.js").Axis, type: string, context: import("../types/viewContext.js").default, layoutParent: import("./containerView.js").default, dataParent: import("./view.js").default, options?: import("./view.js").ViewOptions);
|
|
46
|
-
axisProps: import("../spec/axis.js").
|
|
44
|
+
axisProps: import("../spec/axis.js").Axis | import("../spec/axis.js").GenomeAxis;
|
|
47
45
|
getPerpendicularSize(): number;
|
|
46
|
+
#private;
|
|
48
47
|
}
|
|
49
48
|
import LayerView from "./layerView.js";
|
|
50
49
|
//# sourceMappingURL=axisView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axisView.d.ts","sourceRoot":"","sources":["../../../src/view/axisView.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axisView.d.ts","sourceRoot":"","sources":["../../../src/view/axisView.js"],"names":[],"mappings":"AAuCA;;GAEG;AACH,kIAEC;AAqhBD;;;;GAIG;AACH,wFAHW,MAAM,uCAqNhB;AAlwBD;;GAEG;AACH,8BAFU,MAAM,CAAC,OAAO,oBAAoB,EAAE,wBAAwB,EAAE,sCAAY,CAAC,CAKnF;AAEF;;GAEG;AACH,8BAFU,MAAM,uCAAa,OAAO,oBAAoB,EAAE,wBAAwB,CAAC,CAMjF;AASF;;;;;GAKG;AACH;IAeI;;;;;;;;OAQG;IAEH;;;;;;;OAOG;IACH,6DALW,MAAM,WADN,OAAO,yBAAyB,EAAE,OAAO,gBAEzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,YAC3B,OAAO,WAAW,EAAE,WAAW,EAsDzC;IARG,iFAA8B;IA8ClC,+BAEC;;CAuEJ;sBAxPqB,gBAAgB"}
|