@genome-spy/core 0.37.4 → 0.39.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/__vite-browser-external-ENoMJThg.js +8 -0
- package/dist/bundle/_commonjsHelpers-QtkX90xp.js +30 -0
- package/dist/bundle/index-1QVesMzU.js +1074 -0
- package/dist/bundle/index-Cbz74kpR.js +638 -0
- package/dist/bundle/index-LD6yPc3X.js +515 -0
- package/dist/bundle/index-Pv3tKJ1W.js +2190 -0
- package/dist/bundle/index-UyrC0vvF.js +72 -0
- package/dist/bundle/index-Y-LdHNIz.js +501 -0
- package/dist/bundle/index-gn8bhQ8w.js +4050 -0
- package/dist/bundle/index-lmJu1tfP.js +1372 -0
- package/dist/bundle/index-z4Cs62EO.js +279 -0
- package/dist/bundle/index.es.js +6467 -20590
- package/dist/bundle/index.js +92 -123
- package/dist/bundle/long-Veu0zKh9.js +2382 -0
- package/dist/bundle/remoteFile-Ur-gRKsH.js +96 -0
- package/dist/schema.json +524 -122
- package/dist/src/data/collector.d.ts +11 -11
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +8 -8
- package/dist/src/data/dataFlow.d.ts +18 -18
- package/dist/src/data/dataFlow.d.ts.map +1 -1
- package/dist/src/data/dataFlow.js +7 -7
- package/dist/src/data/flowNode.d.ts +9 -9
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +5 -5
- package/dist/src/data/flowOptimizer.d.ts +11 -11
- package/dist/src/data/flowOptimizer.d.ts.map +1 -1
- package/dist/src/data/flowOptimizer.js +7 -7
- package/dist/src/data/flowTestUtils.d.ts +2 -2
- package/dist/src/data/flowTestUtils.d.ts.map +1 -1
- package/dist/src/data/flowTestUtils.js +1 -1
- package/dist/src/data/sources/dataSource.js +1 -1
- package/dist/src/data/sources/dataSourceFactory.d.ts +3 -3
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
- package/dist/src/data/sources/dataSourceFactory.js +20 -20
- package/dist/src/data/sources/dataUtils.d.ts +20 -20
- package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
- package/dist/src/data/sources/dataUtils.js +11 -11
- package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts +3 -3
- package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/axisGenomeSource.js +2 -2
- package/dist/src/data/sources/dynamic/axisTickSource.d.ts +6 -6
- package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/axisTickSource.js +4 -4
- package/dist/src/data/sources/dynamic/bamSource.d.ts +7 -13
- package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/bamSource.js +35 -27
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts +9 -9
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/bigBedSource.js +31 -18
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts +7 -7
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/bigWigSource.js +33 -26
- package/dist/src/data/sources/dynamic/gff3Source.d.ts +9 -0
- package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/gff3Source.js +17 -2
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +6 -9
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/indexedFastaSource.js +28 -18
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +10 -10
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/singleAxisLazySource.js +6 -6
- package/dist/src/data/sources/dynamic/tabixSource.d.ts +11 -8
- package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -1
- package/dist/src/data/sources/dynamic/tabixSource.js +31 -17
- package/dist/src/data/sources/inlineSource.d.ts +7 -7
- package/dist/src/data/sources/inlineSource.d.ts.map +1 -1
- package/dist/src/data/sources/inlineSource.js +5 -5
- package/dist/src/data/sources/namedSource.d.ts +9 -9
- package/dist/src/data/sources/namedSource.d.ts.map +1 -1
- package/dist/src/data/sources/namedSource.js +6 -6
- package/dist/src/data/sources/sequenceSource.d.ts +7 -7
- package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
- package/dist/src/data/sources/sequenceSource.js +4 -4
- package/dist/src/data/sources/urlSource.d.ts +7 -7
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +4 -4
- package/dist/src/data/transforms/aggregate.d.ts +3 -3
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregate.js +2 -2
- package/dist/src/data/transforms/clone.d.ts +2 -2
- package/dist/src/data/transforms/clone.d.ts.map +1 -1
- package/dist/src/data/transforms/clone.js +1 -1
- package/dist/src/data/transforms/coverage.d.ts +3 -3
- package/dist/src/data/transforms/coverage.d.ts.map +1 -1
- package/dist/src/data/transforms/coverage.js +1 -1
- package/dist/src/data/transforms/coverage.test.js +1 -1
- package/dist/src/data/transforms/filter.d.ts +3 -3
- package/dist/src/data/transforms/filter.d.ts.map +1 -1
- package/dist/src/data/transforms/filter.js +2 -2
- package/dist/src/data/transforms/filter.test.js +1 -1
- package/dist/src/data/transforms/filterScoredLabels.d.ts +4 -4
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +3 -3
- package/dist/src/data/transforms/flatten.d.ts +2 -2
- package/dist/src/data/transforms/flatten.d.ts.map +1 -1
- package/dist/src/data/transforms/flatten.js +3 -3
- package/dist/src/data/transforms/flatten.test.js +6 -6
- package/dist/src/data/transforms/flattenCompressedExons.d.ts +2 -2
- package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -1
- package/dist/src/data/transforms/flattenCompressedExons.js +1 -1
- package/dist/src/data/transforms/flattenDelimited.d.ts +2 -2
- package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -1
- package/dist/src/data/transforms/flattenDelimited.js +2 -2
- package/dist/src/data/transforms/flattenDelimited.test.js +5 -5
- package/dist/src/data/transforms/flattenSequence.d.ts +2 -2
- package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -1
- package/dist/src/data/transforms/flattenSequence.js +1 -1
- package/dist/src/data/transforms/flattenSequence.test.js +1 -1
- package/dist/src/data/transforms/formula.d.ts +3 -3
- package/dist/src/data/transforms/formula.d.ts.map +1 -1
- package/dist/src/data/transforms/formula.js +2 -2
- package/dist/src/data/transforms/identifier.d.ts +3 -3
- package/dist/src/data/transforms/identifier.d.ts.map +1 -1
- package/dist/src/data/transforms/identifier.js +2 -2
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +3 -3
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
- package/dist/src/data/transforms/linearizeGenomicCoordinate.js +2 -2
- package/dist/src/data/transforms/measureText.d.ts +2 -2
- package/dist/src/data/transforms/measureText.d.ts.map +1 -1
- package/dist/src/data/transforms/measureText.js +1 -1
- package/dist/src/data/transforms/pileup.d.ts +3 -3
- package/dist/src/data/transforms/pileup.d.ts.map +1 -1
- package/dist/src/data/transforms/pileup.js +1 -1
- package/dist/src/data/transforms/pileup.test.js +1 -1
- package/dist/src/data/transforms/project.d.ts +2 -2
- package/dist/src/data/transforms/project.d.ts.map +1 -1
- package/dist/src/data/transforms/project.js +1 -1
- package/dist/src/data/transforms/project.test.js +1 -1
- package/dist/src/data/transforms/regexExtract.d.ts +2 -2
- package/dist/src/data/transforms/regexExtract.d.ts.map +1 -1
- package/dist/src/data/transforms/regexExtract.js +1 -1
- package/dist/src/data/transforms/regexExtract.test.js +3 -3
- package/dist/src/data/transforms/regexFold.d.ts +2 -2
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +2 -2
- package/dist/src/data/transforms/regexFold.test.js +3 -3
- package/dist/src/data/transforms/sample.d.ts +2 -2
- package/dist/src/data/transforms/sample.d.ts.map +1 -1
- package/dist/src/data/transforms/sample.js +2 -2
- package/dist/src/data/transforms/stack.d.ts +3 -3
- package/dist/src/data/transforms/stack.d.ts.map +1 -1
- package/dist/src/data/transforms/stack.js +2 -2
- package/dist/src/data/transforms/stack.test.js +2 -2
- package/dist/src/data/transforms/transformFactory.d.ts +5 -5
- package/dist/src/data/transforms/transformFactory.d.ts.map +1 -1
- package/dist/src/data/transforms/transformFactory.js +3 -3
- package/dist/src/encoder/accessor.d.ts +6 -6
- package/dist/src/encoder/accessor.d.ts.map +1 -1
- package/dist/src/encoder/accessor.js +4 -4
- package/dist/src/encoder/encoder.d.ts +59 -59
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +47 -42
- package/dist/src/encoder/encoder.test.js +4 -4
- package/dist/src/fonts/bmFontManager.d.ts +7 -7
- package/dist/src/fonts/bmFontManager.d.ts.map +1 -1
- package/dist/src/fonts/bmFontManager.js +3 -3
- package/dist/src/fonts/bmFontMetrics.d.ts +6 -6
- package/dist/src/fonts/bmFontMetrics.d.ts.map +1 -1
- package/dist/src/fonts/bmFontMetrics.js +4 -4
- package/dist/src/genome/genome.d.ts +7 -7
- package/dist/src/genome/genome.d.ts.map +1 -1
- package/dist/src/genome/genome.js +2 -2
- package/dist/src/genome/genomeStore.d.ts +2 -2
- package/dist/src/genome/genomeStore.d.ts.map +1 -1
- package/dist/src/genome/genomeStore.js +1 -1
- package/dist/src/genome/locusFormat.d.ts +7 -7
- package/dist/src/genome/locusFormat.d.ts.map +1 -1
- package/dist/src/genome/locusFormat.js +4 -4
- package/dist/src/genome/scaleIndex.d.ts +1 -1
- package/dist/src/genome/scaleIndex.d.ts.map +1 -1
- package/dist/src/genome/scaleIndex.js +1 -1
- package/dist/src/genome/scaleLocus.d.ts +2 -2
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +3 -3
- package/dist/src/genomeSpy.d.ts +12 -12
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +51 -34
- package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.d.ts +19 -19
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +11 -11
- package/dist/src/gl/link.vertex.glsl.js +1 -1
- package/dist/src/gl/point.fragment.glsl.js +1 -1
- package/dist/src/gl/point.vertex.glsl.js +1 -1
- package/dist/src/gl/webGLHelper.d.ts +4 -4
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +2 -2
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +35 -14
- package/dist/src/marks/mark.d.ts +35 -32
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +26 -23
- package/dist/src/marks/markUtils.d.ts +10 -10
- package/dist/src/marks/markUtils.d.ts.map +1 -1
- package/dist/src/marks/markUtils.js +5 -5
- package/dist/src/marks/pointMark.d.ts +1 -1
- package/dist/src/marks/pointMark.d.ts.map +1 -1
- package/dist/src/marks/pointMark.js +7 -7
- package/dist/src/marks/rectMark.d.ts +2 -2
- package/dist/src/marks/rectMark.d.ts.map +1 -1
- package/dist/src/marks/rectMark.js +7 -7
- package/dist/src/marks/rule.js +6 -6
- package/dist/src/marks/text.d.ts +1 -1
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +6 -6
- package/dist/src/scale/colorUtils.d.ts +4 -4
- package/dist/src/scale/colorUtils.d.ts.map +1 -1
- package/dist/src/scale/colorUtils.js +2 -2
- package/dist/src/scale/glslScaleGenerator.d.ts +3 -3
- package/dist/src/scale/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/scale/glslScaleGenerator.js +2 -2
- package/dist/src/scale/scale.d.ts +3 -3
- package/dist/src/scale/scale.d.ts.map +1 -1
- package/dist/src/scale/scale.js +2 -2
- package/dist/src/scale/ticks.d.ts +4 -4
- package/dist/src/scale/ticks.js +4 -4
- package/dist/src/spec/axis.d.ts +1 -1
- package/dist/src/spec/channel.d.ts +2 -2
- package/dist/src/spec/data.d.ts +2 -2
- package/dist/src/spec/mark.d.ts +36 -14
- package/dist/src/spec/root.d.ts +2 -2
- package/dist/src/spec/sampleView.d.ts +5 -5
- package/dist/src/spec/scale.d.ts +1 -1
- package/dist/src/spec/title.d.ts +1 -1
- package/dist/src/spec/view.d.ts +36 -9
- package/dist/src/tooltip/dataTooltipHandler.js +1 -1
- package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts.map +1 -1
- package/dist/src/tooltip/refseqGeneTooltipHandler.js +1 -1
- package/dist/src/tooltip/tooltipHandler.d.ts +1 -1
- package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -1
- package/dist/src/tooltip/tooltipHandler.ts +1 -1
- package/dist/src/types/embedApi.d.ts +3 -3
- package/dist/src/types/encoder.d.ts +4 -4
- package/dist/src/types/flowBatch.d.ts +1 -1
- package/dist/src/types/rendering.d.ts +3 -3
- package/dist/src/types/scaleResolutionApi.d.ts +2 -2
- package/dist/src/types/viewContext.d.ts +41 -12
- package/dist/src/utils/animator.d.ts +2 -2
- package/dist/src/utils/animator.d.ts.map +1 -1
- package/dist/src/utils/animator.js +1 -1
- package/dist/src/utils/inertia.d.ts +3 -3
- package/dist/src/utils/inertia.d.ts.map +1 -1
- package/dist/src/utils/inertia.js +1 -1
- package/dist/src/utils/interactionEvent.d.ts +5 -5
- package/dist/src/utils/interactionEvent.d.ts.map +1 -1
- package/dist/src/utils/interactionEvent.js +2 -2
- package/dist/src/utils/trees.js +1 -1
- package/dist/src/view/axisGridView.d.ts +17 -16
- package/dist/src/view/axisGridView.d.ts.map +1 -1
- package/dist/src/view/axisGridView.js +24 -20
- package/dist/src/view/axisResolution.d.ts +10 -10
- package/dist/src/view/axisResolution.d.ts.map +1 -1
- package/dist/src/view/axisResolution.js +6 -6
- package/dist/src/view/axisResolution.test.js +1 -1
- package/dist/src/view/axisView.d.ts +18 -17
- package/dist/src/view/axisView.d.ts.map +1 -1
- package/dist/src/view/axisView.js +39 -35
- package/dist/src/view/concatView.d.ts +5 -5
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +23 -23
- package/dist/src/view/containerView.d.ts +10 -8
- package/dist/src/view/containerView.d.ts.map +1 -1
- package/dist/src/view/containerView.js +18 -13
- package/dist/src/view/facetView.d.ts +12 -12
- package/dist/src/view/facetView.d.ts.map +1 -1
- package/dist/src/view/facetView.js +19 -19
- package/dist/src/view/flowBuilder.d.ts +4 -4
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +13 -13
- package/dist/src/view/flowBuilder.test.js +7 -7
- package/dist/src/view/gridView.d.ts +63 -35
- package/dist/src/view/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView.js +400 -113
- package/dist/src/view/layerView.d.ts +12 -14
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +55 -26
- package/dist/src/{utils → view}/layout/flexLayout.d.ts +6 -6
- package/dist/src/view/layout/flexLayout.d.ts.map +1 -0
- package/dist/src/{utils → view}/layout/flexLayout.js +4 -4
- package/dist/src/view/layout/grid.d.ts.map +1 -0
- package/dist/src/{utils → view}/layout/padding.d.ts +4 -4
- package/dist/src/view/layout/padding.d.ts.map +1 -0
- package/dist/src/{utils → view}/layout/padding.js +2 -2
- package/dist/src/view/layout/point.d.ts.map +1 -0
- package/dist/src/{utils → view}/layout/rectangle.d.ts +8 -2
- package/dist/src/view/layout/rectangle.d.ts.map +1 -0
- package/dist/src/{utils → view}/layout/rectangle.js +22 -2
- package/dist/src/{utils → view}/layout/rectangle.test.js +8 -0
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts +10 -10
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +10 -10
- package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts +2 -2
- package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/compositeViewRenderingContext.js +4 -4
- package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts +4 -4
- package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/debuggingViewRenderingContext.js +3 -3
- package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts +8 -8
- package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.js +4 -4
- package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts +6 -6
- package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/simpleViewRenderingContext.js +7 -7
- package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts +4 -4
- package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/svgViewRenderingContext.js +6 -6
- package/dist/src/view/renderingContext/viewRenderingContext.d.ts +10 -10
- package/dist/src/view/renderingContext/viewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/viewRenderingContext.js +5 -5
- package/dist/src/view/scaleResolution.d.ts +21 -17
- package/dist/src/view/scaleResolution.d.ts.map +1 -1
- package/dist/src/view/scaleResolution.js +33 -26
- package/dist/src/view/scaleResolution.test.js +57 -72
- package/dist/src/view/testUtils.d.ts +6 -15
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +40 -44
- package/dist/src/view/title.d.ts +3 -3
- package/dist/src/view/title.d.ts.map +1 -1
- package/dist/src/view/title.js +12 -12
- package/dist/src/view/unitView.d.ts +31 -30
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +30 -22
- package/dist/src/view/view.d.ts +86 -57
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +148 -103
- package/dist/src/view/view.test.js +9 -8
- package/dist/src/view/viewError.d.ts +9 -0
- package/dist/src/view/viewError.d.ts.map +1 -0
- package/dist/src/view/viewError.js +11 -0
- package/dist/src/view/viewFactory.d.ts +53 -20
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +148 -33
- package/dist/src/view/viewFactory.test.js +8 -0
- package/dist/src/view/viewUtils.d.ts +14 -12
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +10 -63
- package/dist/src/view/zoom.d.ts +4 -4
- package/dist/src/view/zoom.d.ts.map +1 -1
- package/dist/src/view/zoom.js +3 -3
- package/package.json +7 -5
- package/dist/src/utils/layout/flexLayout.d.ts.map +0 -1
- package/dist/src/utils/layout/grid.d.ts.map +0 -1
- package/dist/src/utils/layout/padding.d.ts.map +0 -1
- package/dist/src/utils/layout/point.d.ts.map +0 -1
- package/dist/src/utils/layout/rectangle.d.ts.map +0 -1
- package/dist/src/view/implicitRootView.d.ts +0 -9
- package/dist/src/view/implicitRootView.d.ts.map +0 -1
- package/dist/src/view/implicitRootView.js +0 -23
- package/dist/src/view/importView.d.ts +0 -17
- package/dist/src/view/importView.d.ts.map +0 -1
- package/dist/src/view/importView.js +0 -22
- /package/dist/src/{utils → view}/layout/flexLayout.test.js +0 -0
- /package/dist/src/{utils → view}/layout/grid.d.ts +0 -0
- /package/dist/src/{utils → view}/layout/grid.js +0 -0
- /package/dist/src/{utils → view}/layout/grid.test.js +0 -0
- /package/dist/src/{utils → view}/layout/point.d.ts +0 -0
- /package/dist/src/{utils → view}/layout/point.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scaleLocus.d.ts","sourceRoot":"","sources":["../../../src/genome/scaleLocus.js"],"names":[],"mappings":"AAIA,
|
|
1
|
+
{"version":3,"file":"scaleLocus.d.ts","sourceRoot":"","sources":["../../../src/genome/scaleLocus.js"],"names":[],"mappings":"AAIA,2EAyFC;AAlFU,wFAEM"}
|
|
@@ -3,10 +3,10 @@ import { format as d3format } from "d3-format";
|
|
|
3
3
|
import scaleIndex from "./scaleIndex.js";
|
|
4
4
|
|
|
5
5
|
export default function scaleLocus() {
|
|
6
|
-
/** @type {import("./scaleLocus").ScaleLocus} */
|
|
6
|
+
/** @type {import("./scaleLocus.js").ScaleLocus} */
|
|
7
7
|
const scale = /** @type {any} */ (scaleIndex().numberingOffset(1));
|
|
8
8
|
|
|
9
|
-
/** @type {import("./genome").default} */
|
|
9
|
+
/** @type {import("./genome.js").default} */
|
|
10
10
|
let genome;
|
|
11
11
|
|
|
12
12
|
// @ts-expect-error
|
|
@@ -94,7 +94,7 @@ export default function scaleLocus() {
|
|
|
94
94
|
}
|
|
95
95
|
|
|
96
96
|
/**
|
|
97
|
-
* @type {import("./scaleLocus").isScaleLocus}
|
|
97
|
+
* @type {import("./scaleLocus.js").isScaleLocus}
|
|
98
98
|
*/
|
|
99
99
|
export function isScaleLocus(scale) {
|
|
100
100
|
return scale.type == "locus";
|
package/dist/src/genomeSpy.d.ts
CHANGED
|
@@ -1,20 +1,20 @@
|
|
|
1
1
|
export default class GenomeSpy {
|
|
2
2
|
/**
|
|
3
|
-
* @typedef {import("./view/view").default} View
|
|
4
|
-
* @typedef {import("./spec/view").ViewSpec} ViewSpec
|
|
5
|
-
* @typedef {import("./spec/root").RootSpec} RootSpec
|
|
6
|
-
* @typedef {import("./spec/root").RootConfig} RootConfig
|
|
3
|
+
* @typedef {import("./view/view.js").default} View
|
|
4
|
+
* @typedef {import("./spec/view.js").ViewSpec} ViewSpec
|
|
5
|
+
* @typedef {import("./spec/root.js").RootSpec} RootSpec
|
|
6
|
+
* @typedef {import("./spec/root.js").RootConfig} RootConfig
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
9
|
*
|
|
10
10
|
* @param {HTMLElement} container
|
|
11
11
|
* @param {RootSpec} spec
|
|
12
|
-
* @param {import("./types/embedApi").EmbedOptions} [options]
|
|
12
|
+
* @param {import("./types/embedApi.js").EmbedOptions} [options]
|
|
13
13
|
*/
|
|
14
|
-
constructor(container: HTMLElement, spec: import("./spec/root").RootSpec, options?: import("./types/embedApi").EmbedOptions);
|
|
14
|
+
constructor(container: HTMLElement, spec: import("./spec/root.js").RootSpec, options?: import("./types/embedApi.js").EmbedOptions);
|
|
15
15
|
container: HTMLElement;
|
|
16
16
|
/** Root level configuration object */
|
|
17
|
-
spec: import("./spec/root").RootSpec;
|
|
17
|
+
spec: import("./spec/root.js").RootSpec;
|
|
18
18
|
accessorFactory: AccessorFactory;
|
|
19
19
|
viewFactory: ViewFactory;
|
|
20
20
|
/** @type {(function(string):object[])[]} */
|
|
@@ -37,11 +37,11 @@ export default class GenomeSpy {
|
|
|
37
37
|
_dirtyPickingBuffer: boolean;
|
|
38
38
|
/**
|
|
39
39
|
* Currently hovered mark and datum
|
|
40
|
-
* @type {{ mark: import("./marks/mark").default, datum: import("./data/flowNode").Datum, uniqueId: number }}
|
|
40
|
+
* @type {{ mark: import("./marks/mark.js").default, datum: import("./data/flowNode.js").Datum, uniqueId: number }}
|
|
41
41
|
*/
|
|
42
42
|
_currentHover: {
|
|
43
|
-
mark: import("./marks/mark").default;
|
|
44
|
-
datum: import("./data/flowNode").Datum;
|
|
43
|
+
mark: import("./marks/mark.js").default;
|
|
44
|
+
datum: import("./data/flowNode.js").Datum;
|
|
45
45
|
uniqueId: number;
|
|
46
46
|
};
|
|
47
47
|
_wheelInertia: Inertia;
|
|
@@ -63,8 +63,8 @@ export default class GenomeSpy {
|
|
|
63
63
|
* @type {Map<string, Set<(event: any) => void>>}
|
|
64
64
|
*/
|
|
65
65
|
_extraBroadcastListeners: Map<string, Set<(event: any) => void>>;
|
|
66
|
-
/** @type {Record<string, import("./tooltip/tooltipHandler").TooltipHandler>}> */
|
|
67
|
-
tooltipHandlers: Record<string, import("./tooltip/tooltipHandler").TooltipHandler>;
|
|
66
|
+
/** @type {Record<string, import("./tooltip/tooltipHandler.js").TooltipHandler>}> */
|
|
67
|
+
tooltipHandlers: Record<string, import("./tooltip/tooltipHandler.js").TooltipHandler>;
|
|
68
68
|
/** @type {View} */
|
|
69
69
|
viewRoot: import("./view/view.js").default;
|
|
70
70
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genomeSpy.d.ts","sourceRoot":"","sources":["../../src/genomeSpy.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"genomeSpy.d.ts","sourceRoot":"","sources":["../../src/genomeSpy.js"],"names":[],"mappings":"AAyCA;IACI;;;;;OAKG;IAEH;;;;;OAKG;IACH,uBAJW,WAAW,qDAEX,OAAO,qBAAqB,EAAE,YAAY,EA6EpD;IA1EG,uBAA0B;IAM1B,sCAAsC;IACtC,wCAAgB;IAEhB,iCAA4C;IAC5C,yBAAoC;IAEpC,4CAA4C;IAC5C,oBADW,QAAU,MAAM,KAAE,MAAM,EAAE,CAAC,EAAE,CACZ;IAE5B,mBAAoD;IAEpD,0BAA0B;IAC1B,aADW,WAAW,CACM;IAE5B;;;;;OAKG;IACH,qEAF0B,OAAO,CAE8B;IAE/D,2CAA2C;IAC3C,mBADW,4BAA4B,CACL;IAClC,2CAA2C;IAC3C,iBADW,4BAA4B,CACP;IAEhC,oDAAoD;IACpD,6BAAgC;IAEhC;;;OAGG;IACH,eAFU;QAAE,IAAI,EAAE,OAAO,iBAAiB,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,oBAAoB,EAAE,KAAK,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAEpF;IAE9B,uBAA+C;IAE/C;;;OAGG;IACH,oBAFU,IAAI,MAAM,EAAE,QAAU,aAAa,KAAE,IAAI,CAAC,EAAE,CAAC,CAEpB;IAEnC;;;;;;OAMG;IACH,yCAFkC,GAAG,KAAK,IAAI,GAEd;IAEhC;;;OAGG;IACH,kDAFkC,GAAG,KAAK,IAAI,GAEL;IAEzC,oFAAoF;IACpF,iBADW,OAAO,MAAM,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC,CAK9E;IAED,mBAAmB;IACnB,2CAAyB;IAG7B;;;OAGG;IACH,2CAFkB,MAAM,KAAK,GAAG,EAAE,QAIjC;IAED;;OAEG;IACH,+BAFW,MAAM,YAShB;IAED;;;;OAIG;IACH,sBAHW,MAAM,QACN,GAAG,EAAE,QAaf;IAED;;;;;OAKG;IACH,gBAHW,kBAAkB,YAClB,GAAG,QAQb;IAED,0BA2BC;IAvBG,uBAOC;IAED,sCAA0D;IAK1D,iBAA0C;IAW9C;;OAEG;IACH,gBAiBC;IAED,sCAuMC;IAED;;;OAGG;IACH,UAFa,QAAQ,OAAO,CAAC,CAqC5B;IAED,4BA6IC;IAjIe,iCAAoC;IAmIpD;;;OAGG;IACH,kBAHW,MAAM,KACN,MAAM,QAiEhB;IAED;;;;;;;OAOG;IACH,oDAHuB,QAAQ,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAYlF;IAED,sBAyCC;IAED,kBAIC;IAED,iCAOC;IAED,iCASC;IAED,qFAWC;CACJ;;;;iCAjvBY,eAAe,GAAG,YAAY,GAAG,QAAQ,GAAG,gBAAgB;4BA/B7C,uBAAuB;4BA0BP,uBAAuB;qBAZ9C,qBAAqB;wBAIlB,yBAAyB;yCARR,yDAAyD;oBAYvD,oBAAoB;wBAdvC,qBAAqB;oBAVzB,uBAAuB;qBAQtB,oBAAoB"}
|
package/dist/src/genomeSpy.js
CHANGED
|
@@ -5,19 +5,18 @@ import Tooltip from "./utils/ui/tooltip.js";
|
|
|
5
5
|
|
|
6
6
|
import AccessorFactory from "./encoder/accessor.js";
|
|
7
7
|
import {
|
|
8
|
-
|
|
9
|
-
processImports,
|
|
8
|
+
checkForDuplicateScaleNames,
|
|
10
9
|
setImplicitScaleNames,
|
|
11
10
|
calculateCanvasSize,
|
|
12
11
|
} from "./view/viewUtils.js";
|
|
13
12
|
import UnitView from "./view/unitView.js";
|
|
14
13
|
|
|
15
14
|
import WebGLHelper from "./gl/webGLHelper.js";
|
|
16
|
-
import Rectangle from "./
|
|
15
|
+
import Rectangle from "./view/layout/rectangle.js";
|
|
17
16
|
import BufferedViewRenderingContext from "./view/renderingContext/bufferedViewRenderingContext.js";
|
|
18
17
|
import CompositeViewRenderingContext from "./view/renderingContext/compositeViewRenderingContext.js";
|
|
19
18
|
import InteractionEvent from "./utils/interactionEvent.js";
|
|
20
|
-
import Point from "./
|
|
19
|
+
import Point from "./view/layout/point.js";
|
|
21
20
|
import Animator from "./utils/animator.js";
|
|
22
21
|
import DataFlow from "./data/dataFlow.js";
|
|
23
22
|
import { buildDataFlow } from "./view/flowBuilder.js";
|
|
@@ -30,8 +29,7 @@ import Inertia, { makeEventTemplate } from "./utils/inertia.js";
|
|
|
30
29
|
import refseqGeneTooltipHandler from "./tooltip/refseqGeneTooltipHandler.js";
|
|
31
30
|
import dataTooltipHandler from "./tooltip/dataTooltipHandler.js";
|
|
32
31
|
import { invalidatePrefix } from "./utils/propertyCacher.js";
|
|
33
|
-
import { ViewFactory } from "./view/viewFactory.js";
|
|
34
|
-
import ImplicitRootView from "./view/implicitRootView.js";
|
|
32
|
+
import { VIEW_ROOT_NAME, ViewFactory } from "./view/viewFactory.js";
|
|
35
33
|
import { reconfigureScales } from "./view/scaleResolution.js";
|
|
36
34
|
|
|
37
35
|
/**
|
|
@@ -43,17 +41,17 @@ vegaFormats("fasta", fasta);
|
|
|
43
41
|
|
|
44
42
|
export default class GenomeSpy {
|
|
45
43
|
/**
|
|
46
|
-
* @typedef {import("./view/view").default} View
|
|
47
|
-
* @typedef {import("./spec/view").ViewSpec} ViewSpec
|
|
48
|
-
* @typedef {import("./spec/root").RootSpec} RootSpec
|
|
49
|
-
* @typedef {import("./spec/root").RootConfig} RootConfig
|
|
44
|
+
* @typedef {import("./view/view.js").default} View
|
|
45
|
+
* @typedef {import("./spec/view.js").ViewSpec} ViewSpec
|
|
46
|
+
* @typedef {import("./spec/root.js").RootSpec} RootSpec
|
|
47
|
+
* @typedef {import("./spec/root.js").RootConfig} RootConfig
|
|
50
48
|
*/
|
|
51
49
|
|
|
52
50
|
/**
|
|
53
51
|
*
|
|
54
52
|
* @param {HTMLElement} container
|
|
55
53
|
* @param {RootSpec} spec
|
|
56
|
-
* @param {import("./types/embedApi").EmbedOptions} [options]
|
|
54
|
+
* @param {import("./types/embedApi.js").EmbedOptions} [options]
|
|
57
55
|
*/
|
|
58
56
|
constructor(container, spec, options = {}) {
|
|
59
57
|
this.container = container;
|
|
@@ -94,7 +92,7 @@ export default class GenomeSpy {
|
|
|
94
92
|
|
|
95
93
|
/**
|
|
96
94
|
* Currently hovered mark and datum
|
|
97
|
-
* @type {{ mark: import("./marks/mark").default, datum: import("./data/flowNode").Datum, uniqueId: number }}
|
|
95
|
+
* @type {{ mark: import("./marks/mark.js").default, datum: import("./data/flowNode.js").Datum, uniqueId: number }}
|
|
98
96
|
*/
|
|
99
97
|
this._currentHover = undefined;
|
|
100
98
|
|
|
@@ -121,7 +119,7 @@ export default class GenomeSpy {
|
|
|
121
119
|
*/
|
|
122
120
|
this._extraBroadcastListeners = new Map();
|
|
123
121
|
|
|
124
|
-
/** @type {Record<string, import("./tooltip/tooltipHandler").TooltipHandler>}> */
|
|
122
|
+
/** @type {Record<string, import("./tooltip/tooltipHandler.js").TooltipHandler>}> */
|
|
125
123
|
this.tooltipHandlers = {
|
|
126
124
|
default: dataTooltipHandler,
|
|
127
125
|
refseqgene: refseqGeneTooltipHandler,
|
|
@@ -244,7 +242,7 @@ export default class GenomeSpy {
|
|
|
244
242
|
// eslint-disable-next-line consistent-this
|
|
245
243
|
const self = this;
|
|
246
244
|
|
|
247
|
-
/** @type {import("./types/viewContext").default} */
|
|
245
|
+
/** @type {import("./types/viewContext.js").default} */
|
|
248
246
|
const context = {
|
|
249
247
|
dataFlow: new DataFlow(),
|
|
250
248
|
accessorFactory: this.accessorFactory,
|
|
@@ -299,6 +297,9 @@ export default class GenomeSpy {
|
|
|
299
297
|
|
|
300
298
|
isViewSpec: (spec) => self.viewFactory.isViewSpec(spec),
|
|
301
299
|
|
|
300
|
+
/**
|
|
301
|
+
* @deprecated: TODO: Kill this
|
|
302
|
+
*/
|
|
302
303
|
createView: function (spec, layoutParent, dataParent, defaultName) {
|
|
303
304
|
return self.viewFactory.createView(
|
|
304
305
|
spec,
|
|
@@ -308,6 +309,23 @@ export default class GenomeSpy {
|
|
|
308
309
|
defaultName
|
|
309
310
|
);
|
|
310
311
|
},
|
|
312
|
+
|
|
313
|
+
createOrImportView: async function (
|
|
314
|
+
spec,
|
|
315
|
+
layoutParent,
|
|
316
|
+
dataParent,
|
|
317
|
+
defaultName,
|
|
318
|
+
validator
|
|
319
|
+
) {
|
|
320
|
+
return self.viewFactory.createOrImportView(
|
|
321
|
+
spec,
|
|
322
|
+
context,
|
|
323
|
+
layoutParent,
|
|
324
|
+
dataParent,
|
|
325
|
+
defaultName,
|
|
326
|
+
validator
|
|
327
|
+
);
|
|
328
|
+
},
|
|
311
329
|
};
|
|
312
330
|
|
|
313
331
|
/** @type {ViewSpec & RootConfig} */
|
|
@@ -317,35 +335,34 @@ export default class GenomeSpy {
|
|
|
317
335
|
this.registerNamedDataProvider((name) => rootSpec.datasets[name]);
|
|
318
336
|
}
|
|
319
337
|
|
|
320
|
-
// Create the view hierarchy
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
338
|
+
// Create the view hierarchy.
|
|
339
|
+
// This also resolves scales and axes.
|
|
340
|
+
this.viewRoot = await context.createOrImportView(
|
|
341
|
+
rootSpec,
|
|
342
|
+
null,
|
|
343
|
+
null,
|
|
344
|
+
VIEW_ROOT_NAME
|
|
345
|
+
);
|
|
325
346
|
|
|
326
|
-
|
|
327
|
-
this.viewRoot = new ImplicitRootView(context, this.viewRoot);
|
|
328
|
-
}
|
|
347
|
+
checkForDuplicateScaleNames(this.viewRoot);
|
|
329
348
|
|
|
330
|
-
// Resolve scales, i.e., if possible, pull them towards the root
|
|
331
|
-
resolveScalesAndAxes(this.viewRoot);
|
|
332
349
|
setImplicitScaleNames(this.viewRoot);
|
|
333
350
|
|
|
334
|
-
|
|
335
|
-
|
|
351
|
+
const views = this.viewRoot.getDescendants();
|
|
352
|
+
|
|
353
|
+
// View opacity should be configured after all scales have been resolved.
|
|
354
|
+
// Currently this doesn't work if new views are added dynamically.
|
|
355
|
+
// TODO: Figure out how to handle dynamic view addition/removal nicely.
|
|
356
|
+
views.forEach((view) => view.configureViewOpacity());
|
|
336
357
|
|
|
337
358
|
// We should now have a complete view hierarchy. Let's update the canvas size
|
|
338
359
|
// and ensure that the loading message is visible.
|
|
339
360
|
this._glHelper.invalidateSize();
|
|
340
361
|
|
|
341
362
|
// Collect all unit views to a list because they need plenty of initialization
|
|
342
|
-
/** @type {UnitView[]} */
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
if (view instanceof UnitView) {
|
|
346
|
-
unitViews.push(view);
|
|
347
|
-
}
|
|
348
|
-
});
|
|
363
|
+
const unitViews = /** @type {UnitView[]} */ (
|
|
364
|
+
views.filter((view) => view instanceof UnitView)
|
|
365
|
+
);
|
|
349
366
|
|
|
350
367
|
// Build the data flow based on the view hierarchy
|
|
351
368
|
const flow = buildDataFlow(this.viewRoot, context.dataFlow);
|
|
@@ -759,7 +776,7 @@ export default class GenomeSpy {
|
|
|
759
776
|
}
|
|
760
777
|
|
|
761
778
|
getNamedScaleResolutions() {
|
|
762
|
-
/** @type {Map<string, import("./view/scaleResolution").default>} */
|
|
779
|
+
/** @type {Map<string, import("./view/scaleResolution.js").default>} */
|
|
763
780
|
const resolutions = new Map();
|
|
764
781
|
this.viewRoot.visit((view) => {
|
|
765
782
|
for (const resolution of Object.values(view.resolutions.scale)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrayBuilder.d.ts","sourceRoot":"","sources":["../../../src/gl/arrayBuilder.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH;IAGI;;;OAGG;IACH,kBAFW,MAAM,EAehB;IAZG,aAAgB;IAEhB,wGAAwG;IACxG;YADmB,MAAM,GAAE;YAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC;MACnF;IAEhB,kCAAkC;IAClC,
|
|
1
|
+
{"version":3,"file":"arrayBuilder.d.ts","sourceRoot":"","sources":["../../../src/gl/arrayBuilder.js"],"names":[],"mappings":"AAGA;;;;;;;GAOG;AACH;IAGI;;;OAGG;IACH,kBAFW,MAAM,EAehB;IAZG,aAAgB;IAEhB,wGAAwG;IACxG;YADmB,MAAM,GAAE;YAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC;MACnF;IAEhB,kCAAkC;IAClC,SADW,OAAY,IAAI,CAAC,EAAE,CACb;IAEjB,qCAAqC;IACrC,cADW,QAAU,GAAG,KAAE,IAAI,CAAC,EAAE,CACX;IAEtB,oBAAoB;IAGxB;;;;OAIG;IACH,wBAHW,MAAM,YACN,iBAAiB,QAc3B;IAED;;;;;;OAMG;IACH,6BALW,MAAM,iBACN,MAAM,mBACN,MAAM,EAAE,UACE,MAAM,GAAC,MAAM,EAAE,SA8EnC;IAED,uBAsBC;IAED,gBAiBC;IAED;;;OAGG;IACH,uBAFW,MAAM,QAMhB;IAED;;;OAGG;IACH,qBAFW,MAAM,QAKhB;CACJ;;;;;;;;;cA/LkB,MAAM,KAAE,GAAG;;;;qBACpB,MAAM,EAAE;oBACR,MAAM"}
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
* @typedef {object} RangeEntry Represents a location of a vertex subset
|
|
3
3
|
* @prop {number} offset in vertices
|
|
4
4
|
* @prop {number} count in vertices
|
|
5
|
-
* @prop {import("../utils/binnedIndex").Lookup} xIndex
|
|
5
|
+
* @prop {import("../utils/binnedIndex.js").Lookup} xIndex
|
|
6
6
|
*/
|
|
7
7
|
export class GeometryBuilder {
|
|
8
8
|
/**
|
|
9
|
-
* @typedef {import("./arrayBuilder").ConverterMetadata} Converter
|
|
10
|
-
* @typedef {import("../types/encoder").Encoder} Encoder
|
|
9
|
+
* @typedef {import("./arrayBuilder.js").ConverterMetadata} Converter
|
|
10
|
+
* @typedef {import("../types/encoder.js").Encoder} Encoder
|
|
11
11
|
*/
|
|
12
12
|
/**
|
|
13
13
|
* @param {object} object
|
|
@@ -17,13 +17,13 @@ export class GeometryBuilder {
|
|
|
17
17
|
* preallocated TypedArray is used
|
|
18
18
|
*/
|
|
19
19
|
constructor({ encoders, numVertices, attributes }: {
|
|
20
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
20
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
21
21
|
attributes?: string[];
|
|
22
22
|
numVertices?: number;
|
|
23
23
|
});
|
|
24
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
24
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
25
25
|
variableEncoders: {
|
|
26
|
-
[k: string]: import("../types/encoder").Encoder;
|
|
26
|
+
[k: string]: import("../types/encoder.js").Encoder;
|
|
27
27
|
};
|
|
28
28
|
allocatedVertices: number;
|
|
29
29
|
variableBuilder: ArrayBuilder;
|
|
@@ -46,18 +46,18 @@ export class GeometryBuilder {
|
|
|
46
46
|
*/
|
|
47
47
|
addBatch(key: any, data: object[], lo?: number, hi?: number): void;
|
|
48
48
|
/**
|
|
49
|
-
* @param {import("../data/flowNode").Data} data Domain, but specified using datums
|
|
49
|
+
* @param {import("../data/flowNode.js").Data} data Domain, but specified using datums
|
|
50
50
|
* @param {number} [lo]
|
|
51
51
|
* @param {number} [hi]
|
|
52
52
|
*/
|
|
53
|
-
prepareXIndexer(data: import("../data/flowNode").Data, lo?: number, hi?: number): void;
|
|
53
|
+
prepareXIndexer(data: import("../data/flowNode.js").Data, lo?: number, hi?: number): void;
|
|
54
54
|
/**
|
|
55
55
|
* Add the datum to an index, which allows for efficient rendering of ranges
|
|
56
56
|
* on the x axis. Must be called after a datum has been pushed to the ArrayBuilder.
|
|
57
57
|
*
|
|
58
|
-
* @param {import("../data/flowNode").Datum} datum
|
|
58
|
+
* @param {import("../data/flowNode.js").Datum} datum
|
|
59
59
|
*/
|
|
60
|
-
addToXIndex(datum: import("../data/flowNode").Datum): void;
|
|
60
|
+
addToXIndex(datum: import("../data/flowNode.js").Datum): void;
|
|
61
61
|
xIndexer: {
|
|
62
62
|
(datum: any, startVertexIndex: number, endVertexIndex: number): void;
|
|
63
63
|
getIndex: () => import("../utils/binnedIndex.js").Lookup;
|
|
@@ -88,7 +88,7 @@ export class RectVertexBuilder extends GeometryBuilder {
|
|
|
88
88
|
* @param {number} [object.numItems] Number of data items
|
|
89
89
|
*/
|
|
90
90
|
constructor({ encoders, attributes, tessellationThreshold, visibleRange, numItems, }: {
|
|
91
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
91
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
92
92
|
attributes: string[];
|
|
93
93
|
tessellationThreshold?: number;
|
|
94
94
|
visibleRange?: number[];
|
|
@@ -110,7 +110,7 @@ export class RuleVertexBuilder extends GeometryBuilder {
|
|
|
110
110
|
* @param {number} [object.numItems] Number of data items
|
|
111
111
|
*/
|
|
112
112
|
constructor({ encoders, attributes, tessellationThreshold, visibleRange, numItems, }: {
|
|
113
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
113
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
114
114
|
attributes: string[];
|
|
115
115
|
tessellationThreshold?: number;
|
|
116
116
|
visibleRange?: number[];
|
|
@@ -130,12 +130,12 @@ export class PointVertexBuilder extends GeometryBuilder {
|
|
|
130
130
|
* @param {number} [object.numItems] Number of points if known, uses TypedArray
|
|
131
131
|
*/
|
|
132
132
|
constructor({ encoders, attributes, numItems }: {
|
|
133
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
133
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
134
134
|
attributes: string[];
|
|
135
135
|
numItems?: number;
|
|
136
136
|
});
|
|
137
137
|
}
|
|
138
|
-
export class
|
|
138
|
+
export class LinkVertexBuilder extends GeometryBuilder {
|
|
139
139
|
/**
|
|
140
140
|
* @param {object} object
|
|
141
141
|
* @param {Record<string, Encoder>} object.encoders
|
|
@@ -143,7 +143,7 @@ export class ConnectionVertexBuilder extends GeometryBuilder {
|
|
|
143
143
|
* @param {number} [object.numItems ] Number of points if known, uses TypedArray
|
|
144
144
|
*/
|
|
145
145
|
constructor({ encoders, attributes, numItems }: {
|
|
146
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
146
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
147
147
|
attributes: string[];
|
|
148
148
|
numItems?: number;
|
|
149
149
|
});
|
|
@@ -154,15 +154,15 @@ export class TextVertexBuilder extends GeometryBuilder {
|
|
|
154
154
|
* @param {object} object
|
|
155
155
|
* @param {Record<string, Encoder>} object.encoders
|
|
156
156
|
* @param {string[]} object.attributes
|
|
157
|
-
* @param {import("../fonts/bmFontMetrics").BMFontMetrics} object.fontMetrics
|
|
157
|
+
* @param {import("../fonts/bmFontMetrics.js").BMFontMetrics} object.fontMetrics
|
|
158
158
|
* @param {Record<string, any>} object.properties
|
|
159
159
|
* @param {number} [object.numCharacters] number of characters
|
|
160
160
|
* @param {boolean} [object.logoLetters]
|
|
161
161
|
*/
|
|
162
162
|
constructor({ encoders, attributes, fontMetrics, properties, numCharacters, }: {
|
|
163
|
-
encoders: Record<string, import("../types/encoder").Encoder>;
|
|
163
|
+
encoders: Record<string, import("../types/encoder.js").Encoder>;
|
|
164
164
|
attributes: string[];
|
|
165
|
-
fontMetrics: import("../fonts/bmFontMetrics").BMFontMetrics;
|
|
165
|
+
fontMetrics: import("../fonts/bmFontMetrics.js").BMFontMetrics;
|
|
166
166
|
properties: Record<string, any>;
|
|
167
167
|
numCharacters?: number;
|
|
168
168
|
logoLetters?: boolean;
|
|
@@ -188,7 +188,7 @@ export type RangeEntry = {
|
|
|
188
188
|
* in vertices
|
|
189
189
|
*/
|
|
190
190
|
count: number;
|
|
191
|
-
xIndex: import("../utils/binnedIndex").Lookup;
|
|
191
|
+
xIndex: import("../utils/binnedIndex.js").Lookup;
|
|
192
192
|
};
|
|
193
193
|
import ArrayBuilder from "./arrayBuilder.js";
|
|
194
194
|
//# sourceMappingURL=dataToVertices.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataToVertices.d.ts","sourceRoot":"","sources":["../../../src/gl/dataToVertices.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH;IACI;;;OAGG;IAEH;;;;;;OAMG;IACH;;qBAJW,MAAM,EAAE;sBACR,MAAM;OAqDhB;IAjDG,
|
|
1
|
+
{"version":3,"file":"dataToVertices.d.ts","sourceRoot":"","sources":["../../../src/gl/dataToVertices.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH;IACI;;;OAGG;IAEH;;;;;;OAMG;IACH;;qBAJW,MAAM,EAAE;sBACR,MAAM;OAqDhB;IAjDG,gEAAwB;IAGxB;;MAKC;IAED,0BAAoC;IAEpC,8BAAoD;IAiCpD,mBAAmB;IAEnB,yFAAyF;IACzF,UADW,IAAI,GAAG,EAAE,UAAU,CAAC,CACkB;IAGrD;;;;OAIG;IACH,mBAFW,GAAG,QAcb;IAED;;OAEG;IACH,oBAFW,IAAI,GAAG,EAAE,MAAM,EAAE,CAAC,QAM5B;IAED;;;OAGG;IACH,cAHW,GAAG,QACH,MAAM,EAAE,kCAYlB;IAED;;;;OAIG;IACH,sBAJW,OAAO,qBAAqB,EAAE,IAAI,OAClC,MAAM,OACN,MAAM,QAyDhB;IAED;;;;;OAKG;IACH,mBAFW,OAAO,qBAAqB,EAAE,KAAK,QAI7C;IAzDO;;;MAAyB;IA2DjC;QAEQ,uGAAuG;gBAA5F,OAAO,MAAM,EAAE;YAAC,IAAI,EAAE,MAAM,EAAE,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAEnG,8BAA8B;;QAE9B,8CAA8C;;;MAIrD;CACJ;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;gCACR,MAAM;uBAEN,MAAM,EAAE;mBACR,MAAM;OAqBhB;IALG,uBAAgC;IAEhC,8BAA8D;IAE9D,6CAA+D;CAiFtE;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;gCACR,MAAM;uBAEN,MAAM,EAAE;mBACR,MAAM;OAsBhB;IANG,uBAAgC;IAEhC,8BAA8D;IAE9D,6CAA+D;IAC/D,4CAA6D;CA2CpE;AAED;IACI;;;;;;OAMG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OAQhB;CACJ;AAED;IACI;;;;;OAKG;IACH;;oBAHW,MAAM,EAAE;mBACR,MAAM;OAQhB;CAYJ;AAED;IACI;;;;;;;;;OASG;IACH;;oBANW,MAAM,EAAE;qBACR,OAAO,2BAA2B,EAAE,aAAa;oBACjD,OAAO,MAAM,EAAE,GAAG,CAAC;wBACnB,MAAM;sBACN,OAAO;OA4CjB;IA7BG,4DAA2B;IAC3B,2DAA0B;IAE1B,gCAA4B;IAQ5B,qCAAqC;IACrC,sBADmB,GAAG,KAAK,MAAM,CAMf;IAElB,oDAGC;IACD,qDAGC;IAED,8CAAiE;CA8IxE;;;;;;;;YA/mBS,MAAM;;;;WACN,MAAM;YACN,OAAO,yBAAyB,EAAE,MAAM;;yBAdzB,mBAAmB"}
|
|
@@ -15,12 +15,12 @@ import { isContinuous } from "vega-scale";
|
|
|
15
15
|
* @typedef {object} RangeEntry Represents a location of a vertex subset
|
|
16
16
|
* @prop {number} offset in vertices
|
|
17
17
|
* @prop {number} count in vertices
|
|
18
|
-
* @prop {import("../utils/binnedIndex").Lookup} xIndex
|
|
18
|
+
* @prop {import("../utils/binnedIndex.js").Lookup} xIndex
|
|
19
19
|
*/
|
|
20
20
|
export class GeometryBuilder {
|
|
21
21
|
/**
|
|
22
|
-
* @typedef {import("./arrayBuilder").ConverterMetadata} Converter
|
|
23
|
-
* @typedef {import("../types/encoder").Encoder} Encoder
|
|
22
|
+
* @typedef {import("./arrayBuilder.js").ConverterMetadata} Converter
|
|
23
|
+
* @typedef {import("../types/encoder.js").Encoder} Encoder
|
|
24
24
|
*/
|
|
25
25
|
|
|
26
26
|
/**
|
|
@@ -127,14 +127,14 @@ export class GeometryBuilder {
|
|
|
127
127
|
}
|
|
128
128
|
|
|
129
129
|
/**
|
|
130
|
-
* @param {import("../data/flowNode").Data} data Domain, but specified using datums
|
|
130
|
+
* @param {import("../data/flowNode.js").Data} data Domain, but specified using datums
|
|
131
131
|
* @param {number} [lo]
|
|
132
132
|
* @param {number} [hi]
|
|
133
133
|
*/
|
|
134
134
|
prepareXIndexer(data, lo = 0, hi = lo + data.length) {
|
|
135
135
|
const disable = () => {
|
|
136
136
|
/**
|
|
137
|
-
* @param {import("../data/flowNode").Datum} datum
|
|
137
|
+
* @param {import("../data/flowNode.js").Datum} datum
|
|
138
138
|
*/
|
|
139
139
|
this.addToXIndex = (datum) => {
|
|
140
140
|
// nop
|
|
@@ -192,7 +192,7 @@ export class GeometryBuilder {
|
|
|
192
192
|
* Add the datum to an index, which allows for efficient rendering of ranges
|
|
193
193
|
* on the x axis. Must be called after a datum has been pushed to the ArrayBuilder.
|
|
194
194
|
*
|
|
195
|
-
* @param {import("../data/flowNode").Datum} datum
|
|
195
|
+
* @param {import("../data/flowNode.js").Datum} datum
|
|
196
196
|
*/
|
|
197
197
|
addToXIndex(datum) {
|
|
198
198
|
//
|
|
@@ -254,13 +254,13 @@ export class RectVertexBuilder extends GeometryBuilder {
|
|
|
254
254
|
}
|
|
255
255
|
|
|
256
256
|
const e =
|
|
257
|
-
/** @type {Object.<string, import("../types/encoder").NumberEncoder>} */ (
|
|
257
|
+
/** @type {Object.<string, import("../types/encoder.js").NumberEncoder>} */ (
|
|
258
258
|
this.encoders
|
|
259
259
|
);
|
|
260
260
|
const [lower, upper] = this.visibleRange;
|
|
261
261
|
|
|
262
262
|
/**
|
|
263
|
-
* @param {import("../types/encoder").Encoder} encoder
|
|
263
|
+
* @param {import("../types/encoder.js").Encoder} encoder
|
|
264
264
|
*/
|
|
265
265
|
const a = (encoder) => encoder.accessor || ((x) => 0);
|
|
266
266
|
|
|
@@ -415,7 +415,7 @@ export class PointVertexBuilder extends GeometryBuilder {
|
|
|
415
415
|
}
|
|
416
416
|
}
|
|
417
417
|
|
|
418
|
-
export class
|
|
418
|
+
export class LinkVertexBuilder extends GeometryBuilder {
|
|
419
419
|
/**
|
|
420
420
|
* @param {object} object
|
|
421
421
|
* @param {Record<string, Encoder>} object.encoders
|
|
@@ -448,7 +448,7 @@ export class TextVertexBuilder extends GeometryBuilder {
|
|
|
448
448
|
* @param {object} object
|
|
449
449
|
* @param {Record<string, Encoder>} object.encoders
|
|
450
450
|
* @param {string[]} object.attributes
|
|
451
|
-
* @param {import("../fonts/bmFontMetrics").BMFontMetrics} object.fontMetrics
|
|
451
|
+
* @param {import("../fonts/bmFontMetrics.js").BMFontMetrics} object.fontMetrics
|
|
452
452
|
* @param {Record<string, any>} object.properties
|
|
453
453
|
* @param {number} [object.numCharacters] number of characters
|
|
454
454
|
* @param {boolean} [object.logoLetters]
|
|
@@ -474,7 +474,7 @@ export class TextVertexBuilder extends GeometryBuilder {
|
|
|
474
474
|
const e = encoders;
|
|
475
475
|
|
|
476
476
|
const channelDef =
|
|
477
|
-
/** @type {import("../spec/channel").TextDef<string>} */ (
|
|
477
|
+
/** @type {import("../spec/channel.js").TextDef<string>} */ (
|
|
478
478
|
e.text.channelDef
|
|
479
479
|
);
|
|
480
480
|
/** @type {(value: any) => string} */
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const shader = "uniform float
|
|
1
|
+
const shader = "uniform float uArcHeightFactor;uniform float uMinArcHeight;uniform float uMinPickingSize;uniform int uShape;uniform int uOrient;uniform bool uClampApex;in vec2 strip;out vec4 vColor;out float vSize;out float vNormalLengthInPixels;const int SHAPE_ARC=0;const int SHAPE_DOME=1;const int SHAPE_DIAGONAL=2;const int SHAPE_LINE=3;const int ORIENT_VERTICAL=0;const int ORIENT_HORIZONTAL=1;void main(void){float pixelSize=1.0/uDevicePixelRatio;float opacity=getScaled_opacity()*uViewOpacity;vec2 p1,p2,p3,p4;vec2 a=applySampleFacet(vec2(getScaled_x(),getScaled_y()))*uViewportSize;vec2 b=applySampleFacet(vec2(getScaled_x2(),getScaled_y2()))*uViewportSize;if(uShape<=SHAPE_DOME){if(uShape==SHAPE_DOME){vec2 height=vec2(0.0);if(uOrient==ORIENT_VERTICAL){p1=vec2(min(a.x,b.x),b.y);p4=vec2(max(a.x,b.x),b.y);height=vec2(0.0,a.y-b.y);if(uClampApex){if(p4.x>0.0){p1.x=max(p1.x,-p4.x);}if(p1.x<uViewportSize.x){p4.x=min(p4.x,2.0*uViewportSize.x-p1.x);}}}else{p1=vec2(b.x,min(a.y,b.y));p4=vec2(b.x,max(a.y,b.y));height=vec2(a.x-b.x,0.0);if(uClampApex){if(p4.y>0.0){p1.y=max(p1.y,-p4.y);}if(p1.y<uViewportSize.y){p4.y=min(p4.y,2.0*uViewportSize.y-p1.y);}}}vec2 controlOffset=height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}if(uShape==SHAPE_ARC){p1=a;p4=b;vec2 chordVector=p4-p1;vec2 unitChordVector=normalize(chordVector);vec2 chordNormal=vec2(-unitChordVector.y,unitChordVector.x);float height=max(length(chordVector)/2.0*uArcHeightFactor,uMinArcHeight);vec2 controlOffset=chordNormal*height/0.75;p2=p1+controlOffset;p3=p4+controlOffset;}}else if(uShape==SHAPE_DIAGONAL){if(uOrient==ORIENT_VERTICAL){p1=a;p2=vec2(a.x,(a.y+b.y)/2.0);p3=vec2(b.x,(a.y+b.y)/2.0);p4=b;}else{p1=a;p2=vec2((a.x+b.x)/2.0,a.y);p3=vec2((a.x+b.x)/2.0,b.y);p4=b;}}else if(uShape==SHAPE_LINE){p1=a;p2=(a+b)/2.0;p3=p2;p4=b;}float t=smoothstep(0.0,1.0,strip.x);vec2 C1=p4-3.0*p3+3.0*p2-p1;vec2 C2=3.0*p3-6.0*p2+3.0*p1;vec2 C3=3.0*p2-3.0*p1;vec2 C4=p1;vec2 p;if(t==0.0){p=p1;}else if(t==1.0){p=p4;}else{p=C1*t*t*t+C2*t*t+C3*t+C4;}vec2 tangent=normalize(3.0*C1*t*t+2.0*C2*t+C3);vec2 normal=vec2(-tangent.y,tangent.x);float size=getScaled_size();if(size<pixelSize){opacity*=size/pixelSize;size=pixelSize;}float paddedSize=uPickingEnabled? max(size,uMinPickingSize): size+pixelSize;vNormalLengthInPixels=strip.y*paddedSize;p+=normal*vNormalLengthInPixels;gl_Position=pixelsToNdc(p);vec3 color=getScaled_color();vColor=vec4(color*opacity,opacity);vSize=paddedSize;setupPicking();}";
|
|
2
2
|
export default shader;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const shader = "const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);uniform bool uInwardStroke;uniform float uGradientStrength;in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float
|
|
1
|
+
const shader = "const lowp vec4 white=vec4(1.0);const lowp vec4 black=vec4(0.0,0.0,0.0,1.0);uniform bool uInwardStroke;uniform float uGradientStrength;in float vRadius;in float vRadiusWithPadding;in lowp vec4 vFillColor;in lowp vec4 vStrokeColor;in lowp float vShape;in lowp float vHalfStrokeWidth;in mat2 vRotationMatrix;out lowp vec4 fragColor;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TICK_UP=8.0;float circle(vec2 p,float r){return length(p)-r;}float square(vec2 p,float r){p=abs(p);return max(p.x,p.y)-r;}float tickUp(vec2 p,float r){float halfR=r*0.5;p.y+=halfR;p=abs(p);return max(p.x-r*0.15,p.y-halfR);}float equilateralTriangle(vec2 p,float r){p.y=-p.y;float k=sqrt(3.0);float kr=k*r;p.y-=kr/2.0;return max((abs(p.x)*k+p.y)/2.0,-p.y-kr);}float crossShape(vec2 p,float r){p=abs(p);vec2 b=vec2(0.4,1.0)*r;vec2 v=abs(p)-b.xy;vec2 h=abs(p)-b.yx;return min(max(v.x,v.y),max(h.x,h.y));}float diamond(vec2 p,float r){p=abs(p);return(max(abs(p.x-p.y),abs(p.x+p.y))-r)/sqrt(2.0);}void main(){float d;vec2 p=vRotationMatrix*(2.0*gl_PointCoord-1.0)*vRadiusWithPadding;float r=vRadius;if(vShape==CIRCLE){d=circle(p,r);}else if(vShape==SQUARE){d=square(p,r);}else if(vShape==CROSS){d=crossShape(p,r);}else if(vShape==DIAMOND){d=diamond(p,r);}else if(vShape==TRIANGLE_UP){d=equilateralTriangle(p,r);}else if(vShape==TICK_UP){d=tickUp(p,r);}else{d=0.0;}if(!uPickingEnabled){lowp vec4 fillColor=mix(vFillColor,white,-d*uGradientStrength/vRadius);fragColor=distanceToColor(d+(uInwardStroke ? vHalfStrokeWidth : 0.0),fillColor,vStrokeColor,vHalfStrokeWidth);}else if(d-vHalfStrokeWidth<=0.0){fragColor=vPickingColor;}else{discard;}}";
|
|
2
2
|
export default shader;
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
const shader = "/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform float uScaleFactor;uniform float uMaxPointSize;uniform float uZoomLevel;uniform float uSemanticThreshold;out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){\n#if defined(dx_DEFINED) || defined(dy_DEFINED)\nreturn vec2(getScaled_dx(),getScaled_dy())/uViewportSize;\n#else\nreturn vec2(0.0,0.0);\n#endif\n}void main(void){float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;float angleInDegrees=getScaled_angle();float angle=-angleInDegrees*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}";
|
|
1
|
+
const shader = "/***The stroke should only grow inwards,e.g,the diameter/outline is not affected by the stroke width.*Thus,a point that has a zero size has no visible stroke. This allows strokes to be used with*geometric zoom,etc.*/uniform bool uInwardStroke;uniform lowp float uMaxRelativePointDiameter;uniform float uScaleFactor;uniform float uMaxPointSize;uniform float uZoomLevel;uniform float uSemanticThreshold;out float vRadius;out float vRadiusWithPadding;out lowp vec4 vFillColor;out lowp vec4 vStrokeColor;out lowp float vShape;out lowp float vHalfStrokeWidth;out mat2 vRotationMatrix;const float CIRCLE=0.0;const float SQUARE=1.0;const float CROSS=2.0;const float DIAMOND=3.0;const float TRIANGLE_UP=4.0;const float TRIANGLE_RIGHT=5.0;const float TRIANGLE_DOWN=6.0;const float TRIANGLE_LEFT=7.0;const float TICK_UP=8.0;const float TICK_RIGHT=9.0;const float TICK_DOWN=10.0;const float TICK_LEFT=11.0;float computeSemanticThresholdFactor(){return getScaled_semanticScore()>=uSemanticThreshold ? 1.0 : 0.0;}/***Computes a scaling factor for the points in a sample-faceted view.*/float getDownscaleFactor(vec2 pos){if(!isFacetedSamples()){return 1.0;}float sampleFacetHeight=getSampleFacetHeight(pos);float maxPointDiameter=sqrt(uMaxPointSize);float factor=sampleFacetHeight*uViewportSize.y*uMaxRelativePointDiameter;return clamp(0.0,maxPointDiameter,factor)/maxPointDiameter;}vec2 getDxDy(){\n#if defined(dx_DEFINED) || defined(dy_DEFINED)\nreturn vec2(getScaled_dx(),getScaled_dy())/uViewportSize;\n#else\nreturn vec2(0.0,0.0);\n#endif\n}void main(void){float shapeAngle=0.0;float semanticThresholdFactor=computeSemanticThresholdFactor();if(semanticThresholdFactor<=0.0){gl_PointSize=0.0;gl_Position=vec4(100.0,0.0,0.0,0.0);return;}float size=getScaled_size();vec2 pos=vec2(getScaled_x(),getScaled_y())+getDxDy();gl_Position=unitToNdc(applySampleFacet(pos));float strokeWidth=getScaled_strokeWidth();float diameter=sqrt(size)*uScaleFactor*semanticThresholdFactor*getDownscaleFactor(pos);float opacity=uViewOpacity;if(strokeWidth<=0.0||uInwardStroke){float minDiameter=1.0/uDevicePixelRatio;if(diameter<minDiameter){opacity*=pow(diameter/minDiameter,2.5);diameter=minDiameter;}}float fillOpa=getScaled_fillOpacity()*opacity;float strokeOpa=getScaled_strokeOpacity()*opacity;vShape=getScaled_shape();bool circle=vShape==0.0;if(vShape>TICK_UP&&vShape<=TICK_LEFT){shapeAngle=(vShape-TICK_UP)*90.0;vShape=TICK_UP;}else if(vShape>TRIANGLE_UP&&vShape<=TRIANGLE_LEFT){shapeAngle=(vShape-TRIANGLE_UP)*90.0;vShape=TRIANGLE_UP;}float angleInDegrees=getScaled_angle();float angle=-(shapeAngle+angleInDegrees)*PI/180.0;float sinTheta=sin(angle);float cosTheta=cos(angle);vRotationMatrix=mat2(cosTheta,sinTheta,-sinTheta,cosTheta);float roomForRotation=circle ? 1.0 : sin(mod(angle,PI/2.0)+PI/4.0)/sin(PI/4.0);float aaPadding=1.0/uDevicePixelRatio;float rotationPadding=(diameter*roomForRotation)-diameter;float strokePadding=uInwardStroke ? 0.0 : strokeWidth*(circle ? 1.0 : sqrt(3.0));float padding=rotationPadding+strokePadding+aaPadding;gl_PointSize=(diameter+padding)*uDevicePixelRatio;vRadius=diameter/2.0;vRadiusWithPadding=vRadius+padding/2.0;vHalfStrokeWidth=strokeWidth/2.0;vFillColor=vec4(getScaled_fill()*fillOpa,fillOpa);vStrokeColor=vec4(getScaled_stroke()*strokeOpa,strokeOpa);setupPicking();}";
|
|
2
2
|
export default shader;
|
|
@@ -42,8 +42,8 @@ export default class WebGLHelper {
|
|
|
42
42
|
type: string;
|
|
43
43
|
listener: Function;
|
|
44
44
|
}[];
|
|
45
|
-
/** @type {WeakMap<import("../view/scaleResolution").default, WebGLTexture>} */
|
|
46
|
-
rangeTextures: WeakMap<import("../view/scaleResolution").default, WebGLTexture>;
|
|
45
|
+
/** @type {WeakMap<import("../view/scaleResolution.js").default, WebGLTexture>} */
|
|
46
|
+
rangeTextures: WeakMap<import("../view/scaleResolution.js").default, WebGLTexture>;
|
|
47
47
|
canvas: HTMLCanvasElement;
|
|
48
48
|
gl: WebGL2RenderingContext;
|
|
49
49
|
/** @type {import("twgl.js").AttachmentOptions[]} */
|
|
@@ -110,9 +110,9 @@ export default class WebGLHelper {
|
|
|
110
110
|
*
|
|
111
111
|
* TODO: This may be too specific to be included in WebGLHelper. Find a better place.
|
|
112
112
|
*
|
|
113
|
-
* @param {import("../view/scaleResolution").default} resolution
|
|
113
|
+
* @param {import("../view/scaleResolution.js").default} resolution
|
|
114
114
|
* @param {boolean} update Update the texture if it exists already.
|
|
115
115
|
*/
|
|
116
|
-
createRangeTexture(resolution: import("../view/scaleResolution").default, update?: boolean): void;
|
|
116
|
+
createRangeTexture(resolution: import("../view/scaleResolution.js").default, update?: boolean): void;
|
|
117
117
|
}
|
|
118
118
|
//# sourceMappingURL=webGLHelper.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webGLHelper.d.ts","sourceRoot":"","sources":["../../../src/gl/webGLHelper.js"],"names":[],"mappings":"AA6bA;;;;GAIG;AACH,kCAJW,sBAAsB,gBACtB,WAAW,kBACX,WAAW;;;;;;EA8CrB;AAED;;;;;GAKG;AACH,0CALW,qBAAqB,WACrB,KAAK,OAAO,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,OAC7C,MAAM,EAAE,GAAG,eAAe,YAC1B,YAAY,gBAYtB;AAleD;IACI;;;;;;;OAOG;IACH,uBANW,WAAW,eACX,MAAM;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,eAGrC,MAAM,EA2FhB;IAxFG,wBAA2B;IAC3B,mBAPa;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAOf;IAE7B,uCAAuC;IACvC,cADW,IAAI,MAAM,EAAE,WAAW,CAAC,CACN;IAE7B,oDAAoD;IACpD;
|
|
1
|
+
{"version":3,"file":"webGLHelper.d.ts","sourceRoot":"","sources":["../../../src/gl/webGLHelper.js"],"names":[],"mappings":"AA6bA;;;;GAIG;AACH,kCAJW,sBAAsB,gBACtB,WAAW,kBACX,WAAW;;;;;;EA8CrB;AAED;;;;;GAKG;AACH,0CALW,qBAAqB,WACrB,KAAK,OAAO,SAAS,EAAE,cAAc,EAAE,KAAK,CAAC,OAC7C,MAAM,EAAE,GAAG,eAAe,YAC1B,YAAY,gBAYtB;AAleD;IACI;;;;;;;OAOG;IACH,uBANW,WAAW,eACX,MAAM;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,eAGrC,MAAM,EA2FhB;IAxFG,wBAA2B;IAC3B,mBAPa;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAC,CAOf;IAE7B,uCAAuC;IACvC,cADW,IAAI,MAAM,EAAE,WAAW,CAAC,CACN;IAE7B,oDAAoD;IACpD,YADW;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,QAAQ,WAAU;KAAC,EAAE,CAC5B;IAEpB,kFAAkF;IAClF,eADW,QAAQ,OAAO,4BAA4B,EAAE,OAAO,EAAE,YAAY,CAAC,CAC5C;IAuClC,0BAAoB;IACpB,2BAAY;IAGZ,oDAAoD;IACpD,2BADW,OAAO,SAAS,EAAE,iBAAiB,EAAE,CAQ/C;IACD,sDAGC;IAMD,gCAGE;IAQF,+CAA+C;IAC/C,aADW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CACZ;IAOnC,uBAIC;IAHG;;;MAAmC;IAKvC,mBAEC;IADG,YAAkC;IAGtC;;;;;OAKG;IACH,oBAHW,MAAM,QACN,MAAM,GAAG,MAAM,EAAE,eA2B3B;IAED,iBAcC;IAED,iBAGC;IAED;;;;OAIG;IACH,oCAFW;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE;;;MAQ3C;IAED;;OAEG;IACH;;;MA0BC;IAED;;;OAGG;IACH,4BAHW,QAAQ,GAAC,QAAQ,4BAK3B;IAED;;OAEG;IACH,iBAFW,MAAM,QAQhB;IAED;;;;OAIG;IACH,oBAHW,MAAM,KACN,MAAM,cAwBhB;IAED,iBAOC;IAED;;;;;;;;;OASG;IACH,+BAHW,OAAO,4BAA4B,EAAE,OAAO,WAC5C,OAAO,QA4GjB;CACJ"}
|
|
@@ -47,7 +47,7 @@ export default class WebGLHelper {
|
|
|
47
47
|
/** @type {{ type: string, listener: function}[]} */
|
|
48
48
|
this._listeners = [];
|
|
49
49
|
|
|
50
|
-
/** @type {WeakMap<import("../view/scaleResolution").default, WebGLTexture>} */
|
|
50
|
+
/** @type {WeakMap<import("../view/scaleResolution.js").default, WebGLTexture>} */
|
|
51
51
|
this.rangeTextures = new WeakMap();
|
|
52
52
|
|
|
53
53
|
// --------------------------------------------------------
|
|
@@ -300,7 +300,7 @@ export default class WebGLHelper {
|
|
|
300
300
|
*
|
|
301
301
|
* TODO: This may be too specific to be included in WebGLHelper. Find a better place.
|
|
302
302
|
*
|
|
303
|
-
* @param {import("../view/scaleResolution").default} resolution
|
|
303
|
+
* @param {import("../view/scaleResolution.js").default} resolution
|
|
304
304
|
* @param {boolean} update Update the texture if it exists already.
|
|
305
305
|
*/
|
|
306
306
|
createRangeTexture(resolution, update = false) {
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.js"],"names":[],"mappings":";AAamB,mMAGnB;AAyFA;;;;;GAKG;AACH,8BAFW,MAAM,gBAmBhB;sBA5HqB,gBAAgB;qBAFjB,UAAU;iBAGd,kBAAkB;oBACf,6BAA6B"}
|
package/dist/src/index.js
CHANGED
|
@@ -94,7 +94,7 @@ export async function embed(el, spec, options = {}) {
|
|
|
94
94
|
|
|
95
95
|
/**
|
|
96
96
|
*
|
|
97
|
-
* @param {import("./genomeSpy").default} genomeSpy
|
|
97
|
+
* @param {import("./genomeSpy.js").default} genomeSpy
|
|
98
98
|
* @param {import("./types/embedApi.js").EmbedOptions} options options
|
|
99
99
|
*/
|
|
100
100
|
function applyOptions(genomeSpy, options) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/marks/link.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/marks/link.js"],"names":[],"mappings":"AAWA;IAsHQ;;;;;;MAKC;CAkDR;iBAnLgB,WAAW"}
|