@genome-spy/core 0.36.1 → 0.37.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/README.md +1 -0
- package/dist/{index.es.js → bundled/index.es.js} +2253 -2115
- package/dist/{index.js → bundled/index.js} +180 -44
- package/dist/src/data/collector.d.ts +36 -0
- package/dist/src/data/collector.d.ts.map +1 -0
- package/dist/src/data/collector.js +184 -0
- package/dist/src/data/collector.test.js +84 -0
- package/dist/src/data/dataFlow.d.ts +65 -0
- package/dist/src/data/dataFlow.d.ts.map +1 -0
- package/dist/src/data/dataFlow.js +142 -0
- package/dist/src/data/dataFlow.test.js +5 -0
- package/dist/src/data/facetNode.d.ts +17 -0
- package/dist/src/data/facetNode.d.ts.map +1 -0
- package/dist/src/data/facetNode.js +17 -0
- package/dist/src/data/flow.test.js +72 -0
- package/dist/src/data/flowNode.d.ts +136 -0
- package/dist/src/data/flowNode.d.ts.map +1 -0
- package/dist/src/data/flowNode.js +286 -0
- package/dist/src/data/flowNode.test.js +50 -0
- package/dist/src/data/flowOptimizer.d.ts +27 -0
- package/dist/src/data/flowOptimizer.d.ts.map +1 -0
- package/dist/src/data/flowOptimizer.js +133 -0
- package/dist/src/data/flowOptimizer.test.js +193 -0
- package/dist/src/data/flowTestUtils.d.ts +30 -0
- package/dist/src/data/flowTestUtils.d.ts.map +1 -0
- package/dist/src/data/flowTestUtils.js +63 -0
- package/dist/src/data/formats/fasta.d.ts +20 -0
- package/dist/src/data/formats/fasta.d.ts.map +1 -0
- package/dist/src/data/formats/fasta.js +32 -0
- package/dist/src/data/formats/fasta.test.js +27 -0
- package/dist/src/data/sources/dataSource.d.ts +12 -0
- package/dist/src/data/sources/dataSource.d.ts.map +1 -0
- package/dist/src/data/sources/dataSource.js +25 -0
- package/dist/src/data/sources/dataSourceFactory.d.ts +16 -0
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -0
- package/dist/src/data/sources/dataSourceFactory.js +127 -0
- package/dist/src/data/sources/dataUtils.d.ts +50 -0
- package/dist/src/data/sources/dataUtils.d.ts.map +1 -0
- package/dist/src/data/sources/dataUtils.js +83 -0
- package/dist/src/data/sources/dynamic/README.md +3 -0
- package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts +13 -0
- package/dist/src/data/sources/dynamic/axisGenomeSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/axisGenomeSource.js +19 -0
- package/dist/src/data/sources/dynamic/axisTickSource.d.ts +18 -0
- package/dist/src/data/sources/dynamic/axisTickSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/axisTickSource.js +73 -0
- package/dist/src/data/sources/dynamic/bamSource.d.ts +46 -0
- package/dist/src/data/sources/dynamic/bamSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/bamSource.js +115 -0
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts +51 -0
- package/dist/src/data/sources/dynamic/bigBedSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/bigBedSource.js +128 -0
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts +58 -0
- package/dist/src/data/sources/dynamic/bigWigSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/bigWigSource.js +166 -0
- package/dist/src/data/sources/dynamic/gff3Source.d.ts +8 -0
- package/dist/src/data/sources/dynamic/gff3Source.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/gff3Source.js +19 -0
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts +30 -0
- package/dist/src/data/sources/dynamic/indexedFastaSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/indexedFastaSource.js +86 -0
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts +42 -0
- package/dist/src/data/sources/dynamic/singleAxisLazySource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/singleAxisLazySource.js +129 -0
- package/dist/src/data/sources/dynamic/tabixSource.d.ts +54 -0
- package/dist/src/data/sources/dynamic/tabixSource.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/tabixSource.js +140 -0
- package/dist/src/data/sources/dynamic/windowedMixin.d.ts +32 -0
- package/dist/src/data/sources/dynamic/windowedMixin.d.ts.map +1 -0
- package/dist/src/data/sources/dynamic/windowedMixin.js +53 -0
- package/dist/src/data/sources/inlineSource.d.ts +16 -0
- package/dist/src/data/sources/inlineSource.d.ts.map +1 -0
- package/dist/src/data/sources/inlineSource.js +68 -0
- package/dist/src/data/sources/inlineSource.test.js +56 -0
- package/dist/src/data/sources/namedSource.d.ts +25 -0
- package/dist/src/data/sources/namedSource.d.ts.map +1 -0
- package/dist/src/data/sources/namedSource.js +80 -0
- package/dist/src/data/sources/sequenceSource.d.ts +17 -0
- package/dist/src/data/sources/sequenceSource.d.ts.map +1 -0
- package/dist/src/data/sources/sequenceSource.js +47 -0
- package/dist/src/data/sources/sequenceSource.test.js +46 -0
- package/dist/src/data/sources/urlSource.d.ts +16 -0
- package/dist/src/data/sources/urlSource.d.ts.map +1 -0
- package/dist/src/data/sources/urlSource.js +74 -0
- package/dist/src/data/transforms/aggregate.d.ts +18 -0
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -0
- package/dist/src/data/transforms/aggregate.js +67 -0
- package/dist/src/data/transforms/clone.d.ts +15 -0
- package/dist/src/data/transforms/clone.d.ts.map +1 -0
- package/dist/src/data/transforms/clone.js +40 -0
- package/dist/src/data/transforms/clone.test.js +11 -0
- package/dist/src/data/transforms/coverage.d.ts +30 -0
- package/dist/src/data/transforms/coverage.d.ts.map +1 -0
- package/dist/src/data/transforms/coverage.js +183 -0
- package/dist/src/data/transforms/coverage.test.js +123 -0
- package/dist/src/data/transforms/filter.d.ts +12 -0
- package/dist/src/data/transforms/filter.d.ts.map +1 -0
- package/dist/src/data/transforms/filter.js +33 -0
- package/dist/src/data/transforms/filter.test.js +18 -0
- package/dist/src/data/transforms/filterScoredLabels.d.ts +29 -0
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -0
- package/dist/src/data/transforms/filterScoredLabels.js +134 -0
- package/dist/src/data/transforms/flatten.d.ts +10 -0
- package/dist/src/data/transforms/flatten.d.ts.map +1 -0
- package/dist/src/data/transforms/flatten.js +68 -0
- package/dist/src/data/transforms/flatten.test.js +93 -0
- package/dist/src/data/transforms/flattenCompressedExons.d.ts +19 -0
- package/dist/src/data/transforms/flattenCompressedExons.d.ts.map +1 -0
- package/dist/src/data/transforms/flattenCompressedExons.js +53 -0
- package/dist/src/data/transforms/flattenDelimited.d.ts +10 -0
- package/dist/src/data/transforms/flattenDelimited.d.ts.map +1 -0
- package/dist/src/data/transforms/flattenDelimited.js +66 -0
- package/dist/src/data/transforms/flattenDelimited.test.js +87 -0
- package/dist/src/data/transforms/flattenSequence.d.ts +11 -0
- package/dist/src/data/transforms/flattenSequence.d.ts.map +1 -0
- package/dist/src/data/transforms/flattenSequence.js +35 -0
- package/dist/src/data/transforms/flattenSequence.test.js +34 -0
- package/dist/src/data/transforms/formula.d.ts +13 -0
- package/dist/src/data/transforms/formula.d.ts.map +1 -0
- package/dist/src/data/transforms/formula.js +35 -0
- package/dist/src/data/transforms/formula.test.js +19 -0
- package/dist/src/data/transforms/identifier.d.ts +40 -0
- package/dist/src/data/transforms/identifier.d.ts.map +1 -0
- package/dist/src/data/transforms/identifier.js +106 -0
- package/dist/src/data/transforms/identifier.test.js +83 -0
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts +10 -0
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -0
- package/dist/src/data/transforms/linearizeGenomicCoordinate.js +97 -0
- package/dist/src/data/transforms/measureText.d.ts +18 -0
- package/dist/src/data/transforms/measureText.d.ts.map +1 -0
- package/dist/src/data/transforms/measureText.js +42 -0
- package/dist/src/data/transforms/pileup.d.ts +10 -0
- package/dist/src/data/transforms/pileup.d.ts.map +1 -0
- package/dist/src/data/transforms/pileup.js +126 -0
- package/dist/src/data/transforms/pileup.test.js +70 -0
- package/dist/src/data/transforms/project.d.ts +13 -0
- package/dist/src/data/transforms/project.d.ts.map +1 -0
- package/dist/src/data/transforms/project.js +38 -0
- package/dist/src/data/transforms/project.test.js +32 -0
- package/dist/src/data/transforms/regexExtract.d.ts +13 -0
- package/dist/src/data/transforms/regexExtract.d.ts.map +1 -0
- package/dist/src/data/transforms/regexExtract.js +57 -0
- package/dist/src/data/transforms/regexExtract.test.js +67 -0
- package/dist/src/data/transforms/regexFold.d.ts +14 -0
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -0
- package/dist/src/data/transforms/regexFold.js +139 -0
- package/dist/src/data/transforms/regexFold.test.js +160 -0
- package/dist/src/data/transforms/sample.d.ts +42 -0
- package/dist/src/data/transforms/sample.d.ts.map +1 -0
- package/dist/src/data/transforms/sample.js +99 -0
- package/dist/src/data/transforms/sample.test.js +38 -0
- package/dist/src/data/transforms/stack.d.ts +11 -0
- package/dist/src/data/transforms/stack.d.ts.map +1 -0
- package/dist/src/data/transforms/stack.js +134 -0
- package/dist/src/data/transforms/stack.test.js +91 -0
- package/dist/src/data/transforms/transformFactory.d.ts +12 -0
- package/dist/src/data/transforms/transformFactory.d.ts.map +1 -0
- package/dist/src/data/transforms/transformFactory.js +59 -0
- package/dist/src/encoder/accessor.d.ts +15 -0
- package/dist/src/encoder/accessor.d.ts.map +1 -0
- package/dist/src/encoder/accessor.js +76 -0
- package/dist/src/encoder/accessor.test.js +47 -0
- package/dist/src/encoder/encoder.d.ts +144 -0
- package/dist/src/encoder/encoder.d.ts.map +1 -0
- package/dist/src/encoder/encoder.js +400 -0
- package/dist/src/encoder/encoder.test.js +98 -0
- package/dist/src/fonts/Lato-Regular.json +1267 -0
- package/dist/src/fonts/Lato-Regular.png +0 -0
- package/dist/src/fonts/OFL.txt +93 -0
- package/dist/src/fonts/README.md +3 -0
- package/dist/src/fonts/bmFontManager.d.ts +182 -0
- package/dist/src/fonts/bmFontManager.d.ts.map +1 -0
- package/dist/src/fonts/bmFontManager.js +359 -0
- package/dist/src/fonts/bmFontMetrics.d.ts +45 -0
- package/dist/src/fonts/bmFontMetrics.d.ts.map +1 -0
- package/dist/src/fonts/bmFontMetrics.js +108 -0
- package/dist/src/genome/genome.d.ts +172 -0
- package/dist/src/genome/genome.d.ts.map +1 -0
- package/dist/src/genome/genome.js +379 -0
- package/dist/src/genome/genome.test.js +226 -0
- package/dist/src/genome/genomeStore.d.ts +20 -0
- package/dist/src/genome/genomeStore.d.ts.map +1 -0
- package/dist/src/genome/genomeStore.js +54 -0
- package/dist/src/genome/locusFormat.d.ts +14 -0
- package/dist/src/genome/locusFormat.d.ts.map +1 -0
- package/dist/src/genome/locusFormat.js +37 -0
- package/dist/src/genome/scaleIndex.d.ts +6 -0
- package/dist/src/genome/scaleIndex.d.ts.map +1 -0
- package/dist/src/genome/scaleIndex.js +165 -0
- package/dist/src/genome/scaleIndex.test.js +78 -0
- package/dist/src/genome/scaleLocus.d.ts +3 -0
- package/dist/src/genome/scaleLocus.d.ts.map +1 -0
- package/dist/src/genome/scaleLocus.js +101 -0
- package/dist/src/genome/scaleLocus.test.js +4 -0
- package/dist/src/genomeSpy.d.ts +141 -0
- package/dist/src/genomeSpy.d.ts.map +1 -0
- package/dist/src/genomeSpy.js +788 -0
- package/dist/src/gl/arrayBuilder.d.ts +71 -0
- package/dist/src/gl/arrayBuilder.d.ts.map +1 -0
- package/dist/src/gl/arrayBuilder.js +199 -0
- package/dist/src/gl/dataToVertices.d.ts +194 -0
- package/dist/src/gl/dataToVertices.d.ts.map +1 -0
- package/dist/src/gl/dataToVertices.js +639 -0
- package/dist/src/gl/includes/common.glsl.js +2 -0
- package/dist/src/gl/includes/picking.fragment.glsl.js +2 -0
- package/dist/src/gl/includes/picking.vertex.glsl.js +2 -0
- package/dist/src/gl/includes/sampleFacet.glsl.js +2 -0
- package/dist/src/gl/includes/scales.glsl.js +2 -0
- package/dist/src/gl/link.fragment.glsl.js +2 -0
- package/dist/src/gl/link.vertex.glsl.js +2 -0
- package/dist/src/gl/point.fragment.glsl.js +2 -0
- package/dist/src/gl/point.vertex.glsl.js +2 -0
- package/dist/src/gl/rect.fragment.glsl.js +2 -0
- package/dist/src/gl/rect.vertex.glsl.js +2 -0
- package/dist/src/gl/rule.fragment.glsl.js +2 -0
- package/dist/src/gl/rule.vertex.glsl.js +2 -0
- package/dist/src/gl/text.fragment.glsl.js +2 -0
- package/dist/src/gl/text.vertex.glsl.js +2 -0
- package/dist/src/gl/webGLHelper.d.ts +118 -0
- package/dist/src/gl/webGLHelper.d.ts.map +1 -0
- package/dist/src/gl/webGLHelper.js +513 -0
- package/dist/src/img/bowtie.svg +1 -0
- package/dist/src/img/genomespy-favicon.svg +34 -0
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.html +11 -0
- package/dist/src/index.js +129 -0
- package/dist/src/marks/link.d.ts +11 -0
- package/dist/src/marks/link.d.ts.map +1 -0
- package/dist/src/marks/link.js +175 -0
- package/dist/src/marks/mark.d.ts +226 -0
- package/dist/src/marks/mark.d.ts.map +1 -0
- package/dist/src/marks/mark.js +1004 -0
- package/dist/src/marks/markUtils.d.ts +23 -0
- package/dist/src/marks/markUtils.d.ts.map +1 -0
- package/dist/src/marks/markUtils.js +125 -0
- package/dist/src/marks/pointMark.d.ts +11 -0
- package/dist/src/marks/pointMark.d.ts.map +1 -0
- package/dist/src/marks/pointMark.js +251 -0
- package/dist/src/marks/rectMark.d.ts +18 -0
- package/dist/src/marks/rectMark.d.ts.map +1 -0
- package/dist/src/marks/rectMark.js +255 -0
- package/dist/src/marks/rule.d.ts +6 -0
- package/dist/src/marks/rule.d.ts.map +1 -0
- package/dist/src/marks/rule.js +250 -0
- package/dist/src/marks/text.d.ts +13 -0
- package/dist/src/marks/text.d.ts.map +1 -0
- package/dist/src/marks/text.js +279 -0
- package/dist/src/scale/colorUtils.d.ts +34 -0
- package/dist/src/scale/colorUtils.d.ts.map +1 -0
- package/dist/src/scale/colorUtils.js +184 -0
- package/dist/src/scale/glslScaleGenerator.d.ts +45 -0
- package/dist/src/scale/glslScaleGenerator.d.ts.map +1 -0
- package/dist/src/scale/glslScaleGenerator.js +506 -0
- package/dist/src/scale/scale.d.ts +10 -0
- package/dist/src/scale/scale.d.ts.map +1 -0
- package/dist/src/scale/scale.js +456 -0
- package/dist/src/scale/scale.test.js +324 -0
- package/dist/src/scale/ticks.d.ts +47 -0
- package/dist/src/scale/ticks.d.ts.map +1 -0
- package/dist/src/scale/ticks.js +203 -0
- package/dist/src/scale/ticks.test.js +40 -0
- package/dist/src/singlePageApp.d.ts +2 -0
- package/dist/src/singlePageApp.d.ts.map +1 -0
- package/dist/src/singlePageApp.js +13 -0
- package/dist/src/spec/axis.d.ts +402 -0
- package/dist/src/spec/channel.d.ts +440 -0
- package/dist/src/spec/data.d.ts +370 -0
- package/dist/src/spec/font.d.ts +15 -0
- package/dist/src/spec/genome.d.ts +35 -0
- package/dist/src/spec/mark.d.ts +435 -0
- package/dist/src/spec/root.d.ts +22 -0
- package/dist/src/spec/sampleView.d.ts +185 -0
- package/dist/src/spec/scale.d.ts +273 -0
- package/dist/src/spec/title.d.ts +102 -0
- package/dist/src/spec/tooltip.d.ts +9 -0
- package/dist/src/spec/transform.d.ts +504 -0
- package/dist/src/spec/view.d.ts +214 -0
- package/dist/src/styles/genome-spy.css.d.ts +3 -0
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -0
- package/dist/src/styles/genome-spy.css.js +114 -0
- package/dist/src/styles/genome-spy.scss +153 -0
- package/dist/src/tooltip/dataTooltipHandler.d.ts +2 -0
- package/dist/src/tooltip/dataTooltipHandler.d.ts.map +1 -0
- package/dist/src/tooltip/dataTooltipHandler.js +64 -0
- package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts +2 -0
- package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts.map +1 -0
- package/dist/src/tooltip/refseqGeneTooltipHandler.js +78 -0
- package/dist/src/tooltip/tooltipHandler.d.ts +9 -0
- package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -0
- package/dist/src/tooltip/tooltipHandler.ts +12 -0
- package/dist/src/types/bmFont.d.ts +58 -0
- package/dist/src/types/embedApi.d.ts +67 -0
- package/dist/src/types/encoder.d.ts +84 -0
- package/dist/src/types/flowBatch.d.ts +40 -0
- package/dist/src/types/rendering.d.ts +65 -0
- package/dist/src/types/scaleResolutionApi.d.ts +40 -0
- package/dist/src/types/viewContext.d.ts +85 -0
- package/dist/src/utils/addBaseUrl.d.ts +6 -0
- package/dist/src/utils/addBaseUrl.d.ts.map +1 -0
- package/dist/src/utils/addBaseUrl.js +19 -0
- package/dist/src/utils/addBaseUrl.test.js +22 -0
- package/dist/src/utils/animator.d.ts +41 -0
- package/dist/src/utils/animator.d.ts.map +1 -0
- package/dist/src/utils/animator.js +83 -0
- package/dist/src/utils/arrayUtils.d.ts +34 -0
- package/dist/src/utils/arrayUtils.d.ts.map +1 -0
- package/dist/src/utils/arrayUtils.js +61 -0
- package/dist/src/utils/binnedIndex.d.ts +23 -0
- package/dist/src/utils/binnedIndex.d.ts.map +1 -0
- package/dist/src/utils/binnedIndex.js +167 -0
- package/dist/src/utils/binnedIndex.test.js +155 -0
- package/dist/src/utils/clamp.d.ts +7 -0
- package/dist/src/utils/clamp.d.ts.map +1 -0
- package/dist/src/utils/clamp.js +8 -0
- package/dist/src/utils/cloner.d.ts +16 -0
- package/dist/src/utils/cloner.d.ts.map +1 -0
- package/dist/src/utils/cloner.js +34 -0
- package/dist/src/utils/cloner.test.js +24 -0
- package/dist/src/utils/coalesce.d.ts +6 -0
- package/dist/src/utils/coalesce.d.ts.map +1 -0
- package/dist/src/utils/coalesce.js +11 -0
- package/dist/src/utils/coalesce.test.js +16 -0
- package/dist/src/utils/concatIterables.d.ts +8 -0
- package/dist/src/utils/concatIterables.d.ts.map +1 -0
- package/dist/src/utils/concatIterables.js +26 -0
- package/dist/src/utils/concatIterables.test.js +8 -0
- package/dist/src/utils/debounce.d.ts +8 -0
- package/dist/src/utils/debounce.d.ts.map +1 -0
- package/dist/src/utils/debounce.js +37 -0
- package/dist/src/utils/domainArray.d.ts +61 -0
- package/dist/src/utils/domainArray.d.ts.map +1 -0
- package/dist/src/utils/domainArray.js +216 -0
- package/dist/src/utils/domainArray.test.js +130 -0
- package/dist/src/utils/eerp.d.ts +12 -0
- package/dist/src/utils/eerp.d.ts.map +1 -0
- package/dist/src/utils/eerp.js +13 -0
- package/dist/src/utils/expression.d.ts +9 -0
- package/dist/src/utils/expression.d.ts.map +1 -0
- package/dist/src/utils/expression.js +32 -0
- package/dist/src/utils/field.d.ts +17 -0
- package/dist/src/utils/field.d.ts.map +1 -0
- package/dist/src/utils/field.js +28 -0
- package/dist/src/utils/formatObject.d.ts +7 -0
- package/dist/src/utils/formatObject.d.ts.map +1 -0
- package/dist/src/utils/formatObject.js +37 -0
- package/dist/src/utils/indexer.d.ts +16 -0
- package/dist/src/utils/indexer.d.ts.map +1 -0
- package/dist/src/utils/indexer.js +43 -0
- package/dist/src/utils/indexer.test.js +47 -0
- package/dist/src/utils/inertia.d.ts +42 -0
- package/dist/src/utils/inertia.d.ts.map +1 -0
- package/dist/src/utils/inertia.js +124 -0
- package/dist/src/utils/interactionEvent.d.ts +26 -0
- package/dist/src/utils/interactionEvent.d.ts.map +1 -0
- package/dist/src/utils/interactionEvent.js +33 -0
- package/dist/src/utils/iterateNestedMaps.d.ts +11 -0
- package/dist/src/utils/iterateNestedMaps.d.ts.map +1 -0
- package/dist/src/utils/iterateNestedMaps.js +21 -0
- package/dist/src/utils/iterateNestedMaps.test.js +33 -0
- package/dist/src/utils/kWayMerge.d.ts +9 -0
- package/dist/src/utils/kWayMerge.d.ts.map +1 -0
- package/dist/src/utils/kWayMerge.js +42 -0
- package/dist/src/utils/kWayMerge.test.js +26 -0
- package/dist/src/utils/layout/flexLayout.d.ts +182 -0
- package/dist/src/utils/layout/flexLayout.d.ts.map +1 -0
- package/dist/src/utils/layout/flexLayout.js +381 -0
- package/dist/src/utils/layout/flexLayout.test.js +323 -0
- package/dist/src/utils/layout/grid.d.ts +29 -0
- package/dist/src/utils/layout/grid.d.ts.map +1 -0
- package/dist/src/utils/layout/grid.js +95 -0
- package/dist/src/utils/layout/grid.test.js +71 -0
- package/dist/src/utils/layout/padding.d.ts +83 -0
- package/dist/src/utils/layout/padding.d.ts.map +1 -0
- package/dist/src/utils/layout/padding.js +155 -0
- package/dist/src/utils/layout/point.d.ts +16 -0
- package/dist/src/utils/layout/point.d.ts.map +1 -0
- package/dist/src/utils/layout/point.js +23 -0
- package/dist/src/utils/layout/rectangle.d.ts +142 -0
- package/dist/src/utils/layout/rectangle.d.ts.map +1 -0
- package/dist/src/utils/layout/rectangle.js +296 -0
- package/dist/src/utils/layout/rectangle.test.js +172 -0
- package/dist/src/utils/mergeObjects.d.ts +15 -0
- package/dist/src/utils/mergeObjects.d.ts.map +1 -0
- package/dist/src/utils/mergeObjects.js +99 -0
- package/dist/src/utils/mergeObjects.test.js +42 -0
- package/dist/src/utils/numberExtractor.d.ts +9 -0
- package/dist/src/utils/numberExtractor.d.ts.map +1 -0
- package/dist/src/utils/numberExtractor.js +24 -0
- package/dist/src/utils/numberExtractor.test.js +6 -0
- package/dist/src/utils/point.d.ts +9 -0
- package/dist/src/utils/point.d.ts.map +1 -0
- package/dist/src/utils/point.js +14 -0
- package/dist/src/utils/propertyCacher.d.ts +30 -0
- package/dist/src/utils/propertyCacher.d.ts.map +1 -0
- package/dist/src/utils/propertyCacher.js +70 -0
- package/dist/src/utils/propertyCacher.test.js +85 -0
- package/dist/src/utils/propertyCoalescer.d.ts +15 -0
- package/dist/src/utils/propertyCoalescer.d.ts.map +1 -0
- package/dist/src/utils/propertyCoalescer.js +42 -0
- package/dist/src/utils/propertyCoalescer.test.js +22 -0
- package/dist/src/utils/reservationMap.d.ts +42 -0
- package/dist/src/utils/reservationMap.d.ts.map +1 -0
- package/dist/src/utils/reservationMap.js +103 -0
- package/dist/src/utils/reservationMap.test.js +20 -0
- package/dist/src/utils/scaleNull.d.ts +13 -0
- package/dist/src/utils/scaleNull.d.ts.map +1 -0
- package/dist/src/utils/scaleNull.js +21 -0
- package/dist/src/utils/setOperations.d.ts +31 -0
- package/dist/src/utils/setOperations.d.ts.map +1 -0
- package/dist/src/utils/setOperations.js +75 -0
- package/dist/src/utils/smoothstep.d.ts +7 -0
- package/dist/src/utils/smoothstep.d.ts.map +1 -0
- package/dist/src/utils/smoothstep.js +10 -0
- package/dist/src/utils/throttle.d.ts +8 -0
- package/dist/src/utils/throttle.d.ts.map +1 -0
- package/dist/src/utils/throttle.js +34 -0
- package/dist/src/utils/topK.d.ts +22 -0
- package/dist/src/utils/topK.d.ts.map +1 -0
- package/dist/src/utils/topK.js +76 -0
- package/dist/src/utils/topK.test.js +64 -0
- package/dist/src/utils/transition.d.ts +44 -0
- package/dist/src/utils/transition.d.ts.map +1 -0
- package/dist/src/utils/transition.js +74 -0
- package/dist/src/utils/trees.d.ts +56 -0
- package/dist/src/utils/trees.d.ts.map +1 -0
- package/dist/src/utils/trees.js +92 -0
- package/dist/src/utils/trees.test.js +130 -0
- package/dist/src/utils/ui/tooltip.d.ts +50 -0
- package/dist/src/utils/ui/tooltip.d.ts.map +1 -0
- package/dist/src/utils/ui/tooltip.js +189 -0
- package/dist/src/utils/url.d.ts +9 -0
- package/dist/src/utils/url.d.ts.map +1 -0
- package/dist/src/utils/url.js +22 -0
- package/dist/src/utils/variableTools.d.ts +14 -0
- package/dist/src/utils/variableTools.d.ts.map +1 -0
- package/dist/src/utils/variableTools.js +24 -0
- package/dist/src/utils/variableTools.test.js +13 -0
- package/dist/src/view/axisGridView.d.ts +39 -0
- package/dist/src/view/axisGridView.d.ts.map +1 -0
- package/dist/src/view/axisGridView.js +246 -0
- package/dist/src/view/axisResolution.d.ts +24 -0
- package/dist/src/view/axisResolution.d.ts.map +1 -0
- package/dist/src/view/axisResolution.js +141 -0
- package/dist/src/view/axisResolution.test.js +201 -0
- package/dist/src/view/axisView.d.ts +49 -0
- package/dist/src/view/axisView.d.ts.map +1 -0
- package/dist/src/view/axisView.js +629 -0
- package/dist/src/view/concatView.d.ts +16 -0
- package/dist/src/view/concatView.d.ts.map +1 -0
- package/dist/src/view/concatView.js +84 -0
- package/dist/src/view/containerView.d.ts +43 -0
- package/dist/src/view/containerView.d.ts.map +1 -0
- package/dist/src/view/containerView.js +137 -0
- package/dist/src/view/facetView.d.ts +71 -0
- package/dist/src/view/facetView.d.ts.map +1 -0
- package/dist/src/view/facetView.js +492 -0
- package/dist/src/view/flowBuilder.d.ts +37 -0
- package/dist/src/view/flowBuilder.d.ts.map +1 -0
- package/dist/src/view/flowBuilder.js +383 -0
- package/dist/src/view/flowBuilder.test.js +125 -0
- package/dist/src/view/gridView.d.ts +111 -0
- package/dist/src/view/gridView.d.ts.map +1 -0
- package/dist/src/view/gridView.js +1086 -0
- package/dist/src/view/implicitRootView.d.ts +9 -0
- package/dist/src/view/implicitRootView.d.ts.map +1 -0
- package/dist/src/view/implicitRootView.js +23 -0
- package/dist/src/view/importView.d.ts +17 -0
- package/dist/src/view/importView.d.ts.map +1 -0
- package/dist/src/view/importView.js +22 -0
- package/dist/src/view/layerView.d.ts +25 -0
- package/dist/src/view/layerView.d.ts.map +1 -0
- package/dist/src/view/layerView.js +77 -0
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts +30 -0
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +175 -0
- package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts +14 -0
- package/dist/src/view/renderingContext/compositeViewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/compositeViewRenderingContext.js +51 -0
- package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts +51 -0
- package/dist/src/view/renderingContext/debuggingViewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/debuggingViewRenderingContext.js +94 -0
- package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts +60 -0
- package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/layoutRecorderViewRenderingContext.js +128 -0
- package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts +19 -0
- package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/simpleViewRenderingContext.js +64 -0
- package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts +22 -0
- package/dist/src/view/renderingContext/svgViewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/svgViewRenderingContext.js +125 -0
- package/dist/src/view/renderingContext/viewRenderingContext.d.ts +33 -0
- package/dist/src/view/renderingContext/viewRenderingContext.d.ts.map +1 -0
- package/dist/src/view/renderingContext/viewRenderingContext.js +41 -0
- package/dist/src/view/scaleResolution.d.ts +170 -0
- package/dist/src/view/scaleResolution.d.ts.map +1 -0
- package/dist/src/view/scaleResolution.js +874 -0
- package/dist/src/view/scaleResolution.test.js +658 -0
- package/dist/src/view/testUtils.d.ts +30 -0
- package/dist/src/view/testUtils.d.ts.map +1 -0
- package/dist/src/view/testUtils.js +101 -0
- package/dist/src/view/title.d.ts +6 -0
- package/dist/src/view/title.d.ts.map +1 -0
- package/dist/src/view/title.js +165 -0
- package/dist/src/view/unitView.d.ts +93 -0
- package/dist/src/view/unitView.d.ts.map +1 -0
- package/dist/src/view/unitView.js +345 -0
- package/dist/src/view/view.d.ts +291 -0
- package/dist/src/view/view.d.ts.map +1 -0
- package/dist/src/view/view.js +691 -0
- package/dist/src/view/view.test.js +214 -0
- package/dist/src/view/viewFactory.d.ts +76 -0
- package/dist/src/view/viewFactory.d.ts.map +1 -0
- package/dist/src/view/viewFactory.js +178 -0
- package/dist/src/view/viewFactory.test.js +17 -0
- package/dist/src/view/viewUtils.d.ts +90 -0
- package/dist/src/view/viewUtils.d.ts.map +1 -0
- package/dist/src/view/viewUtils.js +326 -0
- package/dist/src/view/zoom.d.ts +23 -0
- package/dist/src/view/zoom.d.ts.map +1 -0
- package/dist/src/view/zoom.js +89 -0
- package/package.json +15 -12
- package/dist/style.css +0 -1
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { Field } from "../spec/transform";
|
|
2
|
+
|
|
3
|
+
export interface FlowBatchBase {
|
|
4
|
+
type: string;
|
|
5
|
+
}
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Indicates that the contents of a new file will be propagated. The fields of
|
|
9
|
+
* the file may or may not differ from the previous file. The data items within
|
|
10
|
+
* a single batch must have homogenous fields.
|
|
11
|
+
*
|
|
12
|
+
* FlowNodes can react to FileBatches and, for example, clear their internal
|
|
13
|
+
* states that expect specific fields in a specific layout.
|
|
14
|
+
*/
|
|
15
|
+
export interface FileBatch {
|
|
16
|
+
type: "file";
|
|
17
|
+
|
|
18
|
+
/**
|
|
19
|
+
* An absolute or relative url where the file was loaded from.
|
|
20
|
+
*/
|
|
21
|
+
url?: string;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
* Indicates that a new group/facet will be propagated. All data items that
|
|
26
|
+
* belong to a specific facet must be propagated within a single batch.
|
|
27
|
+
*/
|
|
28
|
+
export interface FacetBatch {
|
|
29
|
+
type: "facet";
|
|
30
|
+
|
|
31
|
+
facetId: any | any[];
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* The field or fields that were used for partitioning the data.
|
|
35
|
+
* May be missing if partitioning is not based on the fields.
|
|
36
|
+
*/
|
|
37
|
+
facetField?: Field | Field[];
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
export type FlowBatch = FileBatch | FacetBatch;
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import Mark from "../marks/mark";
|
|
2
|
+
import { LocSize } from "../utils/layout/flexLayout";
|
|
3
|
+
import Rectangle from "../utils/layout/rectangle";
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Describes the location of a sample facet. Left is the primary pos, right is for
|
|
7
|
+
* transitioning between two sets of samples.
|
|
8
|
+
*/
|
|
9
|
+
export interface SampleFacetRenderingOptions {
|
|
10
|
+
/**
|
|
11
|
+
* Location and height on unit scale, zero at top
|
|
12
|
+
*/
|
|
13
|
+
locSize: LocSize;
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* Target (during transition)
|
|
17
|
+
*/
|
|
18
|
+
targetLocSize?: LocSize;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export interface RenderingOptions {
|
|
22
|
+
/**
|
|
23
|
+
* Which facet to render (if faceting is being used)
|
|
24
|
+
*/
|
|
25
|
+
facetId?: any;
|
|
26
|
+
|
|
27
|
+
sampleFacetRenderingOptions?: SampleFacetRenderingOptions;
|
|
28
|
+
|
|
29
|
+
/**
|
|
30
|
+
* Clip rendering using the given rectangle.
|
|
31
|
+
* Mainly intended for clipping scrollable views.
|
|
32
|
+
*/
|
|
33
|
+
clipRect?: Rectangle;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
/**
|
|
37
|
+
* Options that affect the whole rendering pass.
|
|
38
|
+
*/
|
|
39
|
+
export interface GlobalRenderingOptions {
|
|
40
|
+
/**
|
|
41
|
+
* Replace colors with unique ids for picking.
|
|
42
|
+
* Views that haven't enabled picking can be skipped.
|
|
43
|
+
*/
|
|
44
|
+
picking?: boolean;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Allows for collecting marks for optimized rendering order.
|
|
49
|
+
*/
|
|
50
|
+
|
|
51
|
+
export interface BufferedRenderingRequest {
|
|
52
|
+
mark: Mark;
|
|
53
|
+
callback: () => void;
|
|
54
|
+
coords: Rectangle;
|
|
55
|
+
clipRect?: Rectangle;
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* Method signature for View.render(). Reduces the amount of JSDoc needed.
|
|
60
|
+
*/
|
|
61
|
+
export type RenderMethod = (
|
|
62
|
+
context: ViewRenderingContext,
|
|
63
|
+
coords: Rectangle,
|
|
64
|
+
options?: RenderingOptions
|
|
65
|
+
) => void;
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { ComplexDomain, NumericDomain } from "../spec/scale";
|
|
2
|
+
import ScaleResolution from "../view/scaleResolution";
|
|
3
|
+
|
|
4
|
+
export interface ScaleResolutionEvent {
|
|
5
|
+
type: "domain";
|
|
6
|
+
|
|
7
|
+
scaleResolution: ScaleResolution;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
export type ScaleResolutionListener = (event: ScaleResolutionEvent) => void;
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* A public API for ScaleResolution
|
|
14
|
+
*/
|
|
15
|
+
export interface ScaleResolutionApi {
|
|
16
|
+
addEventListener(type: "domain", listener: ScaleResolutionListener): void;
|
|
17
|
+
|
|
18
|
+
removeEventListener(
|
|
19
|
+
type: "domain",
|
|
20
|
+
listener: ScaleResolutionListener
|
|
21
|
+
): void;
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Returns the current, possible zoomed domain.
|
|
25
|
+
*/
|
|
26
|
+
getDomain(): any[];
|
|
27
|
+
|
|
28
|
+
/**
|
|
29
|
+
* Returns the current, possible zoomed domain converted into complex objects
|
|
30
|
+
* such as genomic coordinates.
|
|
31
|
+
*/
|
|
32
|
+
getComplexDomain(): NumericDomain | ComplexDomain;
|
|
33
|
+
|
|
34
|
+
isZoomable(): boolean;
|
|
35
|
+
|
|
36
|
+
zoomTo(
|
|
37
|
+
domain: number[] | ComplexDomain,
|
|
38
|
+
duration?: boolean | number
|
|
39
|
+
): Promise<void>;
|
|
40
|
+
}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { TemplateResult } from "lit-html";
|
|
2
|
+
import View, { BroadcastMessage } from "../view/view";
|
|
3
|
+
import DataFlow from "../data/dataFlow";
|
|
4
|
+
import AccessorFactory from "../encoder/accessor";
|
|
5
|
+
import WebGLHelper from "../gl/webGLHelper";
|
|
6
|
+
import Animator from "../utils/animator";
|
|
7
|
+
import GenomeStore from "../genome/genomeStore";
|
|
8
|
+
import BmFontManager from "../fonts/bmFontManager";
|
|
9
|
+
import Mark from "../marks/mark";
|
|
10
|
+
import { Datum } from "../data/flowNode";
|
|
11
|
+
import { ViewSpec } from "../spec/view";
|
|
12
|
+
import ContainerView from "./containerView";
|
|
13
|
+
import { BroadcastEventType } from "../genomeSpy";
|
|
14
|
+
|
|
15
|
+
export interface Hover {
|
|
16
|
+
mark: Mark;
|
|
17
|
+
datum: Datum;
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* ViewContext provides essential data and interfaces to View classes.
|
|
22
|
+
*/
|
|
23
|
+
export default interface ViewContext {
|
|
24
|
+
dataFlow: DataFlow<View>;
|
|
25
|
+
accessorFactory: AccessorFactory;
|
|
26
|
+
glHelper: WebGLHelper;
|
|
27
|
+
animator: Animator;
|
|
28
|
+
genomeStore?: GenomeStore;
|
|
29
|
+
fontManager: BmFontManager;
|
|
30
|
+
|
|
31
|
+
devicePixelRatio: number;
|
|
32
|
+
|
|
33
|
+
requestLayoutReflow: () => void;
|
|
34
|
+
|
|
35
|
+
updateTooltip: <T>(
|
|
36
|
+
datum: T,
|
|
37
|
+
converter?: (datum: T) => Promise<TemplateResult>
|
|
38
|
+
) => void;
|
|
39
|
+
|
|
40
|
+
getCurrentHover: () => Hover;
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* Adds a keyboard event listener to the document. Cleanup is performed automatically
|
|
44
|
+
* when GenomeSpy is finalized.
|
|
45
|
+
*
|
|
46
|
+
* TODO: Listeners should be called only when the mouse pointer is inside the
|
|
47
|
+
* container or the app covers the full document.
|
|
48
|
+
*/
|
|
49
|
+
addKeyboardListener: (
|
|
50
|
+
type: "keydown" | "keyup",
|
|
51
|
+
listener: (event: KeyboardEvent) => void
|
|
52
|
+
) => void;
|
|
53
|
+
|
|
54
|
+
/**
|
|
55
|
+
* Registers a listener for broadcast messages.
|
|
56
|
+
* Typically broadcast messages are automatically broadcasted to all views.
|
|
57
|
+
* However, in some cases non-view components may be interested in these messages.
|
|
58
|
+
*/
|
|
59
|
+
addBroadcastListener: (
|
|
60
|
+
type: BroadcastEventType,
|
|
61
|
+
listener: (message: BroadcastMessage) => void
|
|
62
|
+
) => void;
|
|
63
|
+
|
|
64
|
+
removeBroadcastListener: (
|
|
65
|
+
type: BroadcastEventType,
|
|
66
|
+
listener: (message: BroadcastMessage) => void
|
|
67
|
+
) => void;
|
|
68
|
+
|
|
69
|
+
getNamedDataFromProvider: (name: string) => any[];
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Returns true if the view is configured to be visible.
|
|
73
|
+
* N.B. This does NOT consider ancestors' visibility.
|
|
74
|
+
*/
|
|
75
|
+
isViewConfiguredVisible: (view: View) => boolean;
|
|
76
|
+
|
|
77
|
+
isViewSpec: (spec: any) => boolean;
|
|
78
|
+
|
|
79
|
+
createView: (
|
|
80
|
+
spec: ViewSpec,
|
|
81
|
+
layoutParent?: ContainerView,
|
|
82
|
+
dataParent?: View,
|
|
83
|
+
defaultName?: string
|
|
84
|
+
) => View;
|
|
85
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"addBaseUrl.d.ts","sourceRoot":"","sources":["../../../src/utils/addBaseUrl.js"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wCAHW,MAAM,WACN,MAAM,UAgBhB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {string} url
|
|
3
|
+
* @param {string} baseUrl
|
|
4
|
+
*/
|
|
5
|
+
export default function addBaseUrl(url, baseUrl) {
|
|
6
|
+
// Regex copied from vega-loader
|
|
7
|
+
if (!baseUrl || /^(data:|([A-Za-z]+:)?\/\/)/.test(url)) {
|
|
8
|
+
return url;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
if (!url.startsWith("/")) {
|
|
12
|
+
if (!baseUrl.endsWith("/")) {
|
|
13
|
+
baseUrl += "/";
|
|
14
|
+
}
|
|
15
|
+
return baseUrl + url;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return url;
|
|
19
|
+
}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
import addBaseUrl from "./addBaseUrl";
|
|
3
|
+
|
|
4
|
+
test("addBaseUrl adds baseUrl when needed", () => {
|
|
5
|
+
expect(addBaseUrl("foo.html", "https://site.com/")).toEqual(
|
|
6
|
+
"https://site.com/foo.html"
|
|
7
|
+
);
|
|
8
|
+
expect(addBaseUrl("foo.html", "https://site.com")).toEqual(
|
|
9
|
+
"https://site.com/foo.html"
|
|
10
|
+
);
|
|
11
|
+
expect(addBaseUrl("bar/foo.html", "https://site.com/")).toEqual(
|
|
12
|
+
"https://site.com/bar/foo.html"
|
|
13
|
+
);
|
|
14
|
+
expect(addBaseUrl("../foo.html", "https://site.com/bar/")).toEqual(
|
|
15
|
+
"https://site.com/bar/../foo.html"
|
|
16
|
+
);
|
|
17
|
+
});
|
|
18
|
+
|
|
19
|
+
test("addBaseUrl doesn't add baseUrl when not needed", () => {
|
|
20
|
+
expect(addBaseUrl("/foo.html", "https://site.com/")).toEqual("/foo.html");
|
|
21
|
+
expect(addBaseUrl("foo.html", undefined)).toEqual("foo.html");
|
|
22
|
+
});
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
export default class Animator {
|
|
2
|
+
/**
|
|
3
|
+
*
|
|
4
|
+
* @param {function(number):void} renderCallback
|
|
5
|
+
*/
|
|
6
|
+
constructor(renderCallback: (arg0: number) => void);
|
|
7
|
+
_renderCallback: (arg0: number) => void;
|
|
8
|
+
_renderRequested: boolean;
|
|
9
|
+
_warn: boolean;
|
|
10
|
+
/** @type {(function(number):void)[]} */
|
|
11
|
+
transitions: ((arg0: number) => void)[];
|
|
12
|
+
/**
|
|
13
|
+
* Schedules a "transition" to be called before the actual rendering
|
|
14
|
+
* is preformed. The transition could adjust the layout, for example.
|
|
15
|
+
* This method also requests rendering to be performed.
|
|
16
|
+
*
|
|
17
|
+
* If the callback has already been requested (compared by identity),
|
|
18
|
+
* it is removed from the queue and added to the end.
|
|
19
|
+
*
|
|
20
|
+
* @param {function(number):void} callback
|
|
21
|
+
*/
|
|
22
|
+
requestTransition(callback: (arg0: number) => void): void;
|
|
23
|
+
/**
|
|
24
|
+
* @param {function(number):void} callback
|
|
25
|
+
*/
|
|
26
|
+
cancelTransition(callback: (arg0: number) => void): void;
|
|
27
|
+
/**
|
|
28
|
+
* Requests the request transitions and rendering callback to be called
|
|
29
|
+
* during the next animation frame. Redundant calls to this method are safe,
|
|
30
|
+
* they have no effect.
|
|
31
|
+
*/
|
|
32
|
+
requestRender(): void;
|
|
33
|
+
/**
|
|
34
|
+
* Initiates a transition with a `requestAnimationFrame` that is synced
|
|
35
|
+
* with this Animator instance.
|
|
36
|
+
*
|
|
37
|
+
* @param {import("./transition").TransitionOptions} options
|
|
38
|
+
*/
|
|
39
|
+
transition(options: import("./transition").TransitionOptions): Promise<any>;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=animator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"animator.d.ts","sourceRoot":"","sources":["../../../src/utils/animator.js"],"names":[],"mappings":"AAEA;IACI;;;OAGG;IACH,mCAFoB,MAAM,KAAE,IAAI,EAS/B;IANG,wBAHgB,MAAM,KAAE,IAAI,CAGS;IACrC,0BAA6B;IAC7B,eAAkB;IAElB,wCAAwC;IACxC,qBADqB,MAAM,KAAE,IAAI,IACZ;IAGzB;;;;;;;;;OASG;IACH,mCAFoB,MAAM,KAAE,IAAI,QAM/B;IAED;;OAEG;IACH,kCAFoB,MAAM,KAAE,IAAI,QAO/B;IAED;;;;OAIG;IACH,sBAoBC;IAED;;;;;OAKG;IACH,oBAFW,OAAO,cAAc,EAAE,iBAAiB,gBAQlD;CACJ"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import doTransition from "./transition";
|
|
2
|
+
|
|
3
|
+
export default class Animator {
|
|
4
|
+
/**
|
|
5
|
+
*
|
|
6
|
+
* @param {function(number):void} renderCallback
|
|
7
|
+
*/
|
|
8
|
+
constructor(renderCallback) {
|
|
9
|
+
this._renderCallback = renderCallback;
|
|
10
|
+
this._renderRequested = false;
|
|
11
|
+
this._warn = false;
|
|
12
|
+
|
|
13
|
+
/** @type {(function(number):void)[]} */
|
|
14
|
+
this.transitions = [];
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Schedules a "transition" to be called before the actual rendering
|
|
19
|
+
* is preformed. The transition could adjust the layout, for example.
|
|
20
|
+
* This method also requests rendering to be performed.
|
|
21
|
+
*
|
|
22
|
+
* If the callback has already been requested (compared by identity),
|
|
23
|
+
* it is removed from the queue and added to the end.
|
|
24
|
+
*
|
|
25
|
+
* @param {function(number):void} callback
|
|
26
|
+
*/
|
|
27
|
+
requestTransition(callback) {
|
|
28
|
+
this.cancelTransition(callback);
|
|
29
|
+
this.transitions.push(callback);
|
|
30
|
+
this.requestRender();
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/**
|
|
34
|
+
* @param {function(number):void} callback
|
|
35
|
+
*/
|
|
36
|
+
cancelTransition(callback) {
|
|
37
|
+
const existingIndex = this.transitions.indexOf(callback);
|
|
38
|
+
if (existingIndex >= 0) {
|
|
39
|
+
this.transitions.splice(existingIndex, 1);
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
/**
|
|
44
|
+
* Requests the request transitions and rendering callback to be called
|
|
45
|
+
* during the next animation frame. Redundant calls to this method are safe,
|
|
46
|
+
* they have no effect.
|
|
47
|
+
*/
|
|
48
|
+
requestRender() {
|
|
49
|
+
if (!this._renderRequested) {
|
|
50
|
+
this._renderRequested = true;
|
|
51
|
+
window.requestAnimationFrame((timestamp) => {
|
|
52
|
+
this._renderRequested = false;
|
|
53
|
+
|
|
54
|
+
const transitions = this.transitions;
|
|
55
|
+
this.transitions = [];
|
|
56
|
+
|
|
57
|
+
/** @type {function} */
|
|
58
|
+
let transitionCallback;
|
|
59
|
+
while ((transitionCallback = transitions.shift())) {
|
|
60
|
+
transitionCallback(timestamp);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
this._renderCallback(timestamp);
|
|
64
|
+
});
|
|
65
|
+
} else if (this._warn) {
|
|
66
|
+
console.warn("Render already requested!");
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* Initiates a transition with a `requestAnimationFrame` that is synced
|
|
72
|
+
* with this Animator instance.
|
|
73
|
+
*
|
|
74
|
+
* @param {import("./transition").TransitionOptions} options
|
|
75
|
+
*/
|
|
76
|
+
transition(options) {
|
|
77
|
+
return doTransition({
|
|
78
|
+
requestAnimationFrame: (callback) =>
|
|
79
|
+
this.requestTransition(callback),
|
|
80
|
+
...options,
|
|
81
|
+
});
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {T[]} a
|
|
3
|
+
* @param {T[]} b
|
|
4
|
+
* @template T
|
|
5
|
+
*/
|
|
6
|
+
export function shallowArrayEquals<T>(a: T[], b: T[]): boolean;
|
|
7
|
+
/**
|
|
8
|
+
* @param {A[]} a
|
|
9
|
+
* @param {B[]} b
|
|
10
|
+
* @param {function(A):T} aAccessor
|
|
11
|
+
* @param {function(B):T} bAccessor
|
|
12
|
+
* @template A, B, T
|
|
13
|
+
*/
|
|
14
|
+
export function shallowArrayEqualsWithAccessors<A, B, T>(a: A[], b: B[], aAccessor: (arg0: A) => T, bAccessor: (arg0: B) => T): boolean;
|
|
15
|
+
/**
|
|
16
|
+
*
|
|
17
|
+
* @param {any[]} a
|
|
18
|
+
*/
|
|
19
|
+
export function isHomogeneous(a: any[]): boolean;
|
|
20
|
+
/**
|
|
21
|
+
* @param {T[] | T} obj
|
|
22
|
+
* @returns {T[]}
|
|
23
|
+
* @template T
|
|
24
|
+
*/
|
|
25
|
+
export function asArray<T>(obj: T | T[]): T[];
|
|
26
|
+
/**
|
|
27
|
+
* Returns the last element of an array.
|
|
28
|
+
* Like vega-util's peek but with stricter typings
|
|
29
|
+
*
|
|
30
|
+
* @param {T[]} arr
|
|
31
|
+
* @template T
|
|
32
|
+
*/
|
|
33
|
+
export function peek<T>(arr: T[]): T;
|
|
34
|
+
//# sourceMappingURL=arrayUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arrayUtils.d.ts","sourceRoot":"","sources":["../../../src/utils/arrayUtils.js"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,+DAEC;AAED;;;;;;GAMG;AACH,wIAKC;AAED;;;GAGG;AACH,iCAFW,GAAG,EAAE,WASf;AAED;;;;GAIG;AACH,8CAQC;AAED;;;;;;GAMG;AACH,qCAEC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {T[]} a
|
|
3
|
+
* @param {T[]} b
|
|
4
|
+
* @template T
|
|
5
|
+
*/
|
|
6
|
+
export function shallowArrayEquals(a, b) {
|
|
7
|
+
return a.length == b.length && a.every((s, i) => a[i] === b[i]);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
/**
|
|
11
|
+
* @param {A[]} a
|
|
12
|
+
* @param {B[]} b
|
|
13
|
+
* @param {function(A):T} aAccessor
|
|
14
|
+
* @param {function(B):T} bAccessor
|
|
15
|
+
* @template A, B, T
|
|
16
|
+
*/
|
|
17
|
+
export function shallowArrayEqualsWithAccessors(a, b, aAccessor, bAccessor) {
|
|
18
|
+
return (
|
|
19
|
+
a.length == b.length &&
|
|
20
|
+
a.every((s, i) => aAccessor(a[i]) === bAccessor(b[i]))
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
/**
|
|
25
|
+
*
|
|
26
|
+
* @param {any[]} a
|
|
27
|
+
*/
|
|
28
|
+
export function isHomogeneous(a) {
|
|
29
|
+
if (a.length <= 1) {
|
|
30
|
+
return true;
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
const first = a[0];
|
|
34
|
+
return a.every((x) => x === first);
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {T[] | T} obj
|
|
39
|
+
* @returns {T[]}
|
|
40
|
+
* @template T
|
|
41
|
+
*/
|
|
42
|
+
export function asArray(obj) {
|
|
43
|
+
if (Array.isArray(obj)) {
|
|
44
|
+
return obj;
|
|
45
|
+
} else if (typeof obj != "undefined") {
|
|
46
|
+
return [obj];
|
|
47
|
+
} else {
|
|
48
|
+
return [];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Returns the last element of an array.
|
|
54
|
+
* Like vega-util's peek but with stricter typings
|
|
55
|
+
*
|
|
56
|
+
* @param {T[]} arr
|
|
57
|
+
* @template T
|
|
58
|
+
*/
|
|
59
|
+
export function peek(arr) {
|
|
60
|
+
return arr[arr.length - 1];
|
|
61
|
+
}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @callback Lookup
|
|
3
|
+
* @param {number} start
|
|
4
|
+
* @param {number} end
|
|
5
|
+
* @param {[number, number]} [arr] Store the result into this array (and return it)
|
|
6
|
+
* @returns {[number, number]}
|
|
7
|
+
*/
|
|
8
|
+
/**
|
|
9
|
+
* A binned index for (overlapping) ranges that are sorted by their start position.
|
|
10
|
+
* Each indexed range is associated with respective vertex indices.
|
|
11
|
+
*
|
|
12
|
+
* @param {number} size Number of bins
|
|
13
|
+
* @param {[number, number]} domain Domain of positions
|
|
14
|
+
* @param {(datum: T) => number} accessor Accessor for range's start position
|
|
15
|
+
* @param {(datum: T) => number} [accessor2] Accessor for range's end position
|
|
16
|
+
* @template T
|
|
17
|
+
*/
|
|
18
|
+
export function createBinningRangeIndexer<T>(size: number, domain: [number, number], accessor: (datum: T) => number, accessor2?: (datum: T) => number): {
|
|
19
|
+
(datum: T, startVertexIndex: number, endVertexIndex: number): void;
|
|
20
|
+
getIndex: () => Lookup;
|
|
21
|
+
};
|
|
22
|
+
export type Lookup = (start: number, end: number, arr?: [number, number]) => [number, number];
|
|
23
|
+
//# sourceMappingURL=binnedIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"binnedIndex.d.ts","sourceRoot":"","sources":["../../../src/utils/binnedIndex.js"],"names":[],"mappings":"AAKA;;;;;;GAMG;AAEH;;;;;;;;;GASG;AACH,mDANW,MAAM,UACN,CAAC,MAAM,EAAE,MAAM,CAAC,0BACF,MAAM,4BACN,MAAM;iCAyChB,MAAM,kBACN,MAAM;;EAwGpB;6BA/JU,MAAM,OACN,MAAM,QACN,CAAC,MAAM,EAAE,MAAM,CAAC,KACd,CAAC,MAAM,EAAE,MAAM,CAAC"}
|