@genome-spy/core 0.36.1 → 0.37.1
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 → bundle/index.es.js} +2253 -2115
- package/dist/{index.js → bundle/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 +17 -12
- package/dist/style.css +0 -1
|
@@ -0,0 +1,324 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
/*!
|
|
3
|
+
* Adapted from vega-encode:
|
|
4
|
+
* https://github.com/vega/vega/blob/master/packages/vega-encode/test/scale-test.js
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2015-2018, University of Washington Interactive Data Lab
|
|
7
|
+
* All rights reserved.
|
|
8
|
+
*
|
|
9
|
+
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
import * as util from "vega-util";
|
|
15
|
+
import * as vs from "vega-scale";
|
|
16
|
+
import createScale from "./scale";
|
|
17
|
+
|
|
18
|
+
// Suppress warnings by default
|
|
19
|
+
const scale = (params, logger) =>
|
|
20
|
+
createScale(params, logger || { warn: () => {} });
|
|
21
|
+
|
|
22
|
+
test("Scale respects domain configuration", function () {
|
|
23
|
+
var s,
|
|
24
|
+
params = {
|
|
25
|
+
type: "linear",
|
|
26
|
+
domain: [1, 9.5],
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
// test zero inclusion
|
|
30
|
+
s = scale(params);
|
|
31
|
+
expect(s.domain()).toEqual([0, 9.5]);
|
|
32
|
+
s = scale(util.extend({ zero: true }, params));
|
|
33
|
+
expect(s.domain()).toEqual([0, 9.5]);
|
|
34
|
+
s = scale(util.extend({ zero: false }, params));
|
|
35
|
+
expect(s.domain()).toEqual([1, 9.5]);
|
|
36
|
+
|
|
37
|
+
// test nice domain
|
|
38
|
+
s = scale(util.extend({ nice: true }, params));
|
|
39
|
+
expect(s.domain()).toEqual([0, 10]);
|
|
40
|
+
|
|
41
|
+
// test domain min/max
|
|
42
|
+
s = scale(util.extend({ domainMin: -1, domainMax: 10 }, params));
|
|
43
|
+
expect(s.domain()).toEqual([-1, 10]);
|
|
44
|
+
|
|
45
|
+
// domain min overrides zero
|
|
46
|
+
s = scale(
|
|
47
|
+
util.extend({ zero: true, domainMin: 0.5, domainMax: 10 }, params)
|
|
48
|
+
);
|
|
49
|
+
expect(s.domain()).toEqual([0.5, 10]);
|
|
50
|
+
|
|
51
|
+
// test domain mid
|
|
52
|
+
s = scale(util.extend({ domainMid: 5 }, params));
|
|
53
|
+
expect(s.domain()).toEqual([0, 5, 9.5]);
|
|
54
|
+
|
|
55
|
+
// test domain raw
|
|
56
|
+
s = scale(util.extend({ domainRaw: [2, 11] }, params));
|
|
57
|
+
expect(s.domain()).toEqual([2, 11]);
|
|
58
|
+
});
|
|
59
|
+
|
|
60
|
+
test("Scale respects domain padding", function () {
|
|
61
|
+
var d;
|
|
62
|
+
|
|
63
|
+
// test linear scale padding
|
|
64
|
+
d = scale({
|
|
65
|
+
type: "linear",
|
|
66
|
+
domain: [5, 95],
|
|
67
|
+
range: [0, 100],
|
|
68
|
+
padding: 5,
|
|
69
|
+
zero: false,
|
|
70
|
+
}).domain();
|
|
71
|
+
expect(d).toEqual([0, 100]);
|
|
72
|
+
|
|
73
|
+
// test log scale padding
|
|
74
|
+
d = scale({
|
|
75
|
+
type: "log",
|
|
76
|
+
domain: [1, 10],
|
|
77
|
+
range: [0, 60],
|
|
78
|
+
padding: 20,
|
|
79
|
+
zero: false,
|
|
80
|
+
}).domain();
|
|
81
|
+
expect(Math.abs(d[0] - 0.1) < 1e-8).toBeTruthy();
|
|
82
|
+
expect(Math.abs(d[1] - 100) < 1e-8).toBeTruthy();
|
|
83
|
+
|
|
84
|
+
// test sqrt scale padding
|
|
85
|
+
d = scale({
|
|
86
|
+
type: "sqrt",
|
|
87
|
+
domain: [2 * 2, 3 * 3],
|
|
88
|
+
range: [0, 60],
|
|
89
|
+
padding: 20,
|
|
90
|
+
zero: false,
|
|
91
|
+
}).domain();
|
|
92
|
+
expect(Math.abs(d[0] - 1 * 1) < 1e-8).toBeTruthy();
|
|
93
|
+
expect(Math.abs(d[1] - 4 * 4) < 1e-8).toBeTruthy();
|
|
94
|
+
|
|
95
|
+
// test power scale padding
|
|
96
|
+
d = scale({
|
|
97
|
+
type: "pow",
|
|
98
|
+
exponent: 1 / 3,
|
|
99
|
+
domain: [2 * 2 * 2, 3 * 3 * 3],
|
|
100
|
+
range: [0, 60],
|
|
101
|
+
padding: 20,
|
|
102
|
+
zero: false,
|
|
103
|
+
}).domain();
|
|
104
|
+
expect(Math.abs(d[0] - 1 * 1 * 1) < 1e-8).toBeTruthy();
|
|
105
|
+
expect(Math.abs(d[1] - 4 * 4 * 4) < 1e-8).toBeTruthy();
|
|
106
|
+
});
|
|
107
|
+
|
|
108
|
+
test("Ordinal scale respects domainImplicit", function () {
|
|
109
|
+
var s,
|
|
110
|
+
params = {
|
|
111
|
+
type: "ordinal",
|
|
112
|
+
domain: [],
|
|
113
|
+
range: ["a", "b", "c"],
|
|
114
|
+
};
|
|
115
|
+
|
|
116
|
+
s = scale(params);
|
|
117
|
+
expect(s("foo")).toBe(undefined);
|
|
118
|
+
expect(s("bar")).toBe(undefined);
|
|
119
|
+
expect(s("foo")).toBe(undefined);
|
|
120
|
+
|
|
121
|
+
s = scale(util.extend({ domainImplicit: false }, params));
|
|
122
|
+
expect(s("foo")).toBe(undefined);
|
|
123
|
+
expect(s("bar")).toBe(undefined);
|
|
124
|
+
expect(s("foo")).toBe(undefined);
|
|
125
|
+
|
|
126
|
+
s = scale(util.extend({ domainImplicit: true }, params));
|
|
127
|
+
expect(s("foo")).toBe("a");
|
|
128
|
+
expect(s("bar")).toBe("b");
|
|
129
|
+
expect(s("foo")).toBe("a");
|
|
130
|
+
});
|
|
131
|
+
|
|
132
|
+
test("Scale respects range configuration", function () {
|
|
133
|
+
var s,
|
|
134
|
+
params = {
|
|
135
|
+
type: "linear",
|
|
136
|
+
domain: [0, 10],
|
|
137
|
+
range: [0, 10],
|
|
138
|
+
};
|
|
139
|
+
|
|
140
|
+
// round
|
|
141
|
+
s = scale(params);
|
|
142
|
+
expect(s(0.5)).toBe(0.5);
|
|
143
|
+
s = scale(util.extend({ round: true }, params));
|
|
144
|
+
expect(s(0.5)).toBe(1);
|
|
145
|
+
|
|
146
|
+
// reverse
|
|
147
|
+
s = scale(util.extend({ reverse: true }, params));
|
|
148
|
+
expect(s.range()).toEqual([10, 0]);
|
|
149
|
+
|
|
150
|
+
// rangeStep
|
|
151
|
+
params = {
|
|
152
|
+
type: "band",
|
|
153
|
+
domain: ["a", "b", "c"],
|
|
154
|
+
rangeStep: 20,
|
|
155
|
+
padding: 0,
|
|
156
|
+
};
|
|
157
|
+
s = scale(params);
|
|
158
|
+
expect(s.range()).toEqual([0, 60]);
|
|
159
|
+
expect(s.bandwidth()).toBe(20);
|
|
160
|
+
|
|
161
|
+
s = expect(function () {
|
|
162
|
+
scale(util.extend({}, params, { type: "linear" }));
|
|
163
|
+
}).toThrow();
|
|
164
|
+
});
|
|
165
|
+
|
|
166
|
+
test("Scale respects range color schemes", function () {
|
|
167
|
+
var s, u, v;
|
|
168
|
+
|
|
169
|
+
// performs scheme lookup
|
|
170
|
+
s = scale({ type: "ordinal", scheme: "category10" });
|
|
171
|
+
expect(s.range().length).toBe(10);
|
|
172
|
+
|
|
173
|
+
// throws on invalid scheme
|
|
174
|
+
expect(function () {
|
|
175
|
+
scale({ type: "ordinal", scheme: "foobarbaz" });
|
|
176
|
+
}).toThrow();
|
|
177
|
+
expect(function () {
|
|
178
|
+
scale({ type: "sequential", scheme: "foobarbaz" });
|
|
179
|
+
}).toThrow();
|
|
180
|
+
|
|
181
|
+
// handles interpolating schemes and extents
|
|
182
|
+
s = scale({ type: "sequential", scheme: "viridis" });
|
|
183
|
+
u = s.interpolator();
|
|
184
|
+
expect(typeof u).toBe("function");
|
|
185
|
+
|
|
186
|
+
s = scale({
|
|
187
|
+
type: "sequential",
|
|
188
|
+
scheme: "viridis",
|
|
189
|
+
schemeExtent: [0.2, 0.9],
|
|
190
|
+
});
|
|
191
|
+
v = s.interpolator();
|
|
192
|
+
expect(typeof v).toBe("function");
|
|
193
|
+
expect(v(0)).toBe(u(0.2));
|
|
194
|
+
expect(v(1)).toBe(u(0.9));
|
|
195
|
+
|
|
196
|
+
s = scale({
|
|
197
|
+
type: "sequential",
|
|
198
|
+
scheme: "viridis",
|
|
199
|
+
schemeExtent: [0.2, 0.9],
|
|
200
|
+
reverse: true,
|
|
201
|
+
});
|
|
202
|
+
v = s.interpolator();
|
|
203
|
+
expect(typeof v).toBe("function");
|
|
204
|
+
expect(v(0)).toBe(u(0.9));
|
|
205
|
+
expect(v(1)).toBe(u(0.2));
|
|
206
|
+
|
|
207
|
+
// generate interpolator as needed
|
|
208
|
+
s = scale({ type: "sequential", range: ["#000", "#f00"] });
|
|
209
|
+
v = s.interpolator();
|
|
210
|
+
expect(typeof v).toBe("function");
|
|
211
|
+
expect(v(0)).toBe("rgb(0, 0, 0)");
|
|
212
|
+
expect(v(1)).toBe("rgb(255, 0, 0)");
|
|
213
|
+
|
|
214
|
+
// quantize to provided scheme count
|
|
215
|
+
s = scale({ type: "quantize", scheme: "viridis", schemeCount: 3 });
|
|
216
|
+
v = s.range();
|
|
217
|
+
expect(v.length).toBe(3);
|
|
218
|
+
expect(v[0]).toBe(u(1 / 4));
|
|
219
|
+
expect(v[1]).toBe(u(2 / 4));
|
|
220
|
+
expect(v[2]).toBe(u(3 / 4));
|
|
221
|
+
});
|
|
222
|
+
|
|
223
|
+
test("Scale warns for zero in log domain", function () {
|
|
224
|
+
function logScale(domain) {
|
|
225
|
+
const logger = {
|
|
226
|
+
count: 0,
|
|
227
|
+
warn: function (msg) {
|
|
228
|
+
this.count++;
|
|
229
|
+
},
|
|
230
|
+
};
|
|
231
|
+
|
|
232
|
+
return function () {
|
|
233
|
+
scale({ type: "log", domain: domain }, logger);
|
|
234
|
+
if (logger.count) {
|
|
235
|
+
throw new Error();
|
|
236
|
+
}
|
|
237
|
+
};
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
expect(logScale([0, 1])).toThrow();
|
|
241
|
+
expect(logScale([-1, 0])).toThrow();
|
|
242
|
+
expect(logScale([-1, 1])).toThrow();
|
|
243
|
+
expect(logScale([1, 0, 2])).toThrow();
|
|
244
|
+
expect(logScale([1, 2])).not.toThrow();
|
|
245
|
+
expect(logScale([-2, -1])).not.toThrow();
|
|
246
|
+
});
|
|
247
|
+
|
|
248
|
+
test("Scale infers scale key from type, domain, and range", function () {
|
|
249
|
+
function key(params) {
|
|
250
|
+
return scale(params).type;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// numeric domain scales should adapt
|
|
254
|
+
[vs.Linear, vs.Log, vs.Pow, vs.Sqrt, vs.Symlog].forEach(function (st) {
|
|
255
|
+
expect(key({ type: st, domain: [0, 1], range: [0, 1] })).toBe(st);
|
|
256
|
+
expect(key({ type: st, domain: [0, 1], range: [true, false] })).toBe(
|
|
257
|
+
st
|
|
258
|
+
);
|
|
259
|
+
|
|
260
|
+
// direct color range specification
|
|
261
|
+
expect(key({ type: st, domain: [0, 1], range: ["blue", "red"] })).toBe(
|
|
262
|
+
`${vs.Sequential}-${st}`
|
|
263
|
+
);
|
|
264
|
+
expect(
|
|
265
|
+
key({ type: st, domain: [0, 1, 2], range: ["blue", "red"] })
|
|
266
|
+
).toBe(`${vs.Diverging}-${st}`);
|
|
267
|
+
expect(
|
|
268
|
+
key({ type: st, domain: [0, 1, 2, 3], range: ["blue", "red"] })
|
|
269
|
+
).toBe(st);
|
|
270
|
+
|
|
271
|
+
// color scheme range specification
|
|
272
|
+
expect(key({ type: st, domain: [0, 1], scheme: "blues" })).toBe(
|
|
273
|
+
`${vs.Sequential}-${st}`
|
|
274
|
+
);
|
|
275
|
+
expect(key({ type: st, domain: [0, 1, 2], scheme: "blues" })).toBe(
|
|
276
|
+
`${vs.Diverging}-${st}`
|
|
277
|
+
);
|
|
278
|
+
expect(key({ type: st, domain: [0, 1, 2, 3], scheme: "blues" })).toBe(
|
|
279
|
+
st
|
|
280
|
+
);
|
|
281
|
+
});
|
|
282
|
+
|
|
283
|
+
// temporal domain scales should not adapt
|
|
284
|
+
[vs.Time, vs.UTC].forEach(function (st) {
|
|
285
|
+
const t0 = new Date(2010, 0, 1),
|
|
286
|
+
t1 = new Date(2011, 0, 1),
|
|
287
|
+
t2 = new Date(2012, 0, 1),
|
|
288
|
+
t3 = new Date(2013, 0, 1);
|
|
289
|
+
|
|
290
|
+
expect(key({ type: st, domain: [t0, t1], range: [0, 1] })).toBe(st);
|
|
291
|
+
expect(key({ type: st, domain: [t0, t1], range: [true, false] })).toBe(
|
|
292
|
+
st
|
|
293
|
+
);
|
|
294
|
+
|
|
295
|
+
// direct color range specification
|
|
296
|
+
expect(
|
|
297
|
+
key({ type: st, domain: [t0, t1], range: ["blue", "red"] })
|
|
298
|
+
).toBe(st);
|
|
299
|
+
expect(
|
|
300
|
+
key({ type: st, domain: [t0, t1, t2], range: ["blue", "red"] })
|
|
301
|
+
).toBe(st);
|
|
302
|
+
expect(
|
|
303
|
+
key({ type: st, domain: [t0, t1, t2, t3], range: ["blue", "red"] })
|
|
304
|
+
).toBe(st);
|
|
305
|
+
|
|
306
|
+
// color scheme range specification
|
|
307
|
+
expect(key({ type: st, domain: [t0, t1], scheme: "blues" })).toBe(st);
|
|
308
|
+
expect(key({ type: st, domain: [t0, t1, t2], scheme: "blues" })).toBe(
|
|
309
|
+
st
|
|
310
|
+
);
|
|
311
|
+
expect(
|
|
312
|
+
key({ type: st, domain: [t0, t1, t2, t3], scheme: "blues" })
|
|
313
|
+
).toBe(st);
|
|
314
|
+
});
|
|
315
|
+
|
|
316
|
+
// sequential should work for backwards compatibility
|
|
317
|
+
const st = vs.Sequential;
|
|
318
|
+
expect(key({ type: st, domain: [0, 1], range: ["blue", "red"] })).toBe(
|
|
319
|
+
`${st}-${vs.Linear}`
|
|
320
|
+
);
|
|
321
|
+
expect(key({ type: st, domain: [0, 1], scheme: "blues" })).toBe(
|
|
322
|
+
`${st}-${vs.Linear}`
|
|
323
|
+
);
|
|
324
|
+
});
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Determine the tick count or interval function.
|
|
3
|
+
*
|
|
4
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate tick values.
|
|
5
|
+
* @param {number | {step: number, interval: number}} count - The desired tick count or interval specifier.
|
|
6
|
+
* @param {number} minStep - The desired minimum step between tick values.
|
|
7
|
+
* @return {*} - The tick count or interval function.
|
|
8
|
+
*/
|
|
9
|
+
export function tickCount(scale: any, count: number | {
|
|
10
|
+
step: number;
|
|
11
|
+
interval: number;
|
|
12
|
+
}, minStep: number): any;
|
|
13
|
+
/**
|
|
14
|
+
* Filter a set of candidate tick values, ensuring that only tick values
|
|
15
|
+
* that lie within the scale range are included.
|
|
16
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate tick values.
|
|
17
|
+
* @param {Array<*>} ticks - The candidate tick values.
|
|
18
|
+
* @param {*} count - The tick count or interval function.
|
|
19
|
+
* @return {Array<*>} - The filtered tick values.
|
|
20
|
+
*/
|
|
21
|
+
export function validTicks(scale: any, ticks: Array<any>, count: any): Array<any>;
|
|
22
|
+
/**
|
|
23
|
+
* Generate tick values for the given scale and approximate tick count or
|
|
24
|
+
* interval value. If the scale has a 'ticks' method, it will be used to
|
|
25
|
+
* generate the ticks, with the count argument passed as a parameter. If the
|
|
26
|
+
* scale lacks a 'ticks' method, the full scale domain will be returned.
|
|
27
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate tick values.
|
|
28
|
+
* @param {*} [count] - The approximate number of desired ticks.
|
|
29
|
+
* @return {any[]} - The generated tick values.
|
|
30
|
+
*/
|
|
31
|
+
export function tickValues(scale: any, count?: any): any[];
|
|
32
|
+
/**
|
|
33
|
+
* Generate a label format function for a scale. If the scale has a
|
|
34
|
+
* 'tickFormat' method, it will be used to generate the formatter, with the
|
|
35
|
+
* count and specifier arguments passed as parameters. If the scale lacks a
|
|
36
|
+
* 'tickFormat' method, the returned formatter performs simple string coercion.
|
|
37
|
+
* If the input scale is a logarithmic scale and the format specifier does not
|
|
38
|
+
* indicate a desired decimal precision, a special variable precision formatter
|
|
39
|
+
* that automatically trims trailing zeroes will be generated.
|
|
40
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate the label formatter.
|
|
41
|
+
* @param {*} [count] - The approximate number of desired ticks.
|
|
42
|
+
* @param {string} [specifier] - The format specifier. Must be a legal d3
|
|
43
|
+
* specifier string (see https://github.com/d3/d3-format#formatSpecifier).
|
|
44
|
+
* @return {function(*):string} - The generated label formatter.
|
|
45
|
+
*/
|
|
46
|
+
export function tickFormat(scale: any, count?: any, specifier?: string): (arg0: any) => string;
|
|
47
|
+
//# sourceMappingURL=ticks.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ticks.d.ts","sourceRoot":"","sources":["../../../src/scale/ticks.js"],"names":[],"mappings":"AAoBA;;;;;;;GAOG;AACH,6CAJW,MAAM,GAAG;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAC,WACzC,MAAM,OAgBhB;AAED;;;;;;;GAOG;AACH,8CAJW,UAAQ,eAEP,UAAQ,CA+BnB;AAED;;;;;;;;GAQG;AACH,qDAFY,GAAG,EAAE,CAQhB;AAmBD;;;;;;;;;;;;;GAaG;AACH,gEAJW,MAAM,kBAEO,MAAM,CAe7B"}
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* Adapted from vega-encode:
|
|
3
|
+
* https://github.com/vega/vega/blob/master/packages/vega-encode/src/ticks.js
|
|
4
|
+
*
|
|
5
|
+
* Copyright (c) 2015-2018, University of Washington Interactive Data Lab
|
|
6
|
+
* All rights reserved.
|
|
7
|
+
*
|
|
8
|
+
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
9
|
+
*/
|
|
10
|
+
|
|
11
|
+
/* eslint-disable */
|
|
12
|
+
// @ts-nocheck
|
|
13
|
+
|
|
14
|
+
// This file is a mess
|
|
15
|
+
// TODO: Fix types, etc.
|
|
16
|
+
|
|
17
|
+
import { isLogarithmic } from "vega-scale";
|
|
18
|
+
import { error, isNumber, isObject, isString, peek, span } from "vega-util";
|
|
19
|
+
import { format as numberFormat, formatSpecifier } from "d3-format";
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Determine the tick count or interval function.
|
|
23
|
+
*
|
|
24
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate tick values.
|
|
25
|
+
* @param {number | {step: number, interval: number}} count - The desired tick count or interval specifier.
|
|
26
|
+
* @param {number} minStep - The desired minimum step between tick values.
|
|
27
|
+
* @return {*} - The tick count or interval function.
|
|
28
|
+
*/
|
|
29
|
+
export function tickCount(scale, count, minStep) {
|
|
30
|
+
var step;
|
|
31
|
+
|
|
32
|
+
if (isNumber(count) && minStep != null) {
|
|
33
|
+
count = Math.min(count, ~~(span(scale.domain()) / minStep) || 1);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (isObject(count)) {
|
|
37
|
+
step = count.step;
|
|
38
|
+
count = count.interval;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return count;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Filter a set of candidate tick values, ensuring that only tick values
|
|
46
|
+
* that lie within the scale range are included.
|
|
47
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate tick values.
|
|
48
|
+
* @param {Array<*>} ticks - The candidate tick values.
|
|
49
|
+
* @param {*} count - The tick count or interval function.
|
|
50
|
+
* @return {Array<*>} - The filtered tick values.
|
|
51
|
+
*/
|
|
52
|
+
export function validTicks(scale, ticks, count) {
|
|
53
|
+
var range = scale.range(),
|
|
54
|
+
lo = Math.floor(range[0]),
|
|
55
|
+
hi = Math.ceil(peek(range));
|
|
56
|
+
|
|
57
|
+
if (lo > hi) {
|
|
58
|
+
range = hi;
|
|
59
|
+
hi = lo;
|
|
60
|
+
lo = range;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
ticks = ticks.filter(function (v) {
|
|
64
|
+
v = scale(v);
|
|
65
|
+
return lo <= v && v <= hi;
|
|
66
|
+
});
|
|
67
|
+
|
|
68
|
+
if (count > 0 && ticks.length > 1) {
|
|
69
|
+
var endpoints = [ticks[0], peek(ticks)];
|
|
70
|
+
while (ticks.length > count && ticks.length >= 3) {
|
|
71
|
+
ticks = ticks.filter(function (_, i) {
|
|
72
|
+
return !(i % 2);
|
|
73
|
+
});
|
|
74
|
+
}
|
|
75
|
+
if (ticks.length < 3) {
|
|
76
|
+
ticks = endpoints;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
return ticks;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Generate tick values for the given scale and approximate tick count or
|
|
85
|
+
* interval value. If the scale has a 'ticks' method, it will be used to
|
|
86
|
+
* generate the ticks, with the count argument passed as a parameter. If the
|
|
87
|
+
* scale lacks a 'ticks' method, the full scale domain will be returned.
|
|
88
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate tick values.
|
|
89
|
+
* @param {*} [count] - The approximate number of desired ticks.
|
|
90
|
+
* @return {any[]} - The generated tick values.
|
|
91
|
+
*/
|
|
92
|
+
export function tickValues(scale, count) {
|
|
93
|
+
return scale.bins
|
|
94
|
+
? validTicks(scale, binValues(scale.bins, count))
|
|
95
|
+
: scale.ticks
|
|
96
|
+
? scale.ticks(count)
|
|
97
|
+
: scale.domain();
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Generate tick values for an array of bin values.
|
|
102
|
+
* @param {Array<*>} bins - An array of bin boundaries.
|
|
103
|
+
* @param {Number} [count] - The approximate number of desired ticks.
|
|
104
|
+
* @return {Array<*>} - The generated tick values.
|
|
105
|
+
*/
|
|
106
|
+
function binValues(bins, count) {
|
|
107
|
+
var n = bins.length,
|
|
108
|
+
stride = ~~(n / (count || n));
|
|
109
|
+
|
|
110
|
+
return stride < 2
|
|
111
|
+
? bins.slice()
|
|
112
|
+
: bins.filter(function (x, i) {
|
|
113
|
+
return !(i % stride);
|
|
114
|
+
});
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* Generate a label format function for a scale. If the scale has a
|
|
119
|
+
* 'tickFormat' method, it will be used to generate the formatter, with the
|
|
120
|
+
* count and specifier arguments passed as parameters. If the scale lacks a
|
|
121
|
+
* 'tickFormat' method, the returned formatter performs simple string coercion.
|
|
122
|
+
* If the input scale is a logarithmic scale and the format specifier does not
|
|
123
|
+
* indicate a desired decimal precision, a special variable precision formatter
|
|
124
|
+
* that automatically trims trailing zeroes will be generated.
|
|
125
|
+
* @param {import("../encoder/encoder").VegaScale} scale - The scale for which to generate the label formatter.
|
|
126
|
+
* @param {*} [count] - The approximate number of desired ticks.
|
|
127
|
+
* @param {string} [specifier] - The format specifier. Must be a legal d3
|
|
128
|
+
* specifier string (see https://github.com/d3/d3-format#formatSpecifier).
|
|
129
|
+
* @return {function(*):string} - The generated label formatter.
|
|
130
|
+
*/
|
|
131
|
+
export function tickFormat(scale, count, specifier) {
|
|
132
|
+
var format = scale.tickFormat
|
|
133
|
+
? scale.tickFormat(count, specifier)
|
|
134
|
+
: specifier
|
|
135
|
+
? numberFormat(specifier)
|
|
136
|
+
: String;
|
|
137
|
+
|
|
138
|
+
if (isLogarithmic(scale.type)) {
|
|
139
|
+
var logfmt = variablePrecision(specifier);
|
|
140
|
+
format = scale.bins ? logfmt : filter(format, logfmt);
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
return format;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
function filter(sourceFormat, targetFormat) {
|
|
147
|
+
return function (_) {
|
|
148
|
+
return sourceFormat(_) ? targetFormat(_) : "";
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
function variablePrecision(specifier) {
|
|
153
|
+
var s = formatSpecifier(specifier || ",");
|
|
154
|
+
|
|
155
|
+
if (s.precision == null) {
|
|
156
|
+
s.precision = 12;
|
|
157
|
+
switch (s.type) {
|
|
158
|
+
case "%":
|
|
159
|
+
s.precision -= 2;
|
|
160
|
+
break;
|
|
161
|
+
case "e":
|
|
162
|
+
s.precision -= 1;
|
|
163
|
+
break;
|
|
164
|
+
}
|
|
165
|
+
return trimZeroes(
|
|
166
|
+
numberFormat(s), // number format
|
|
167
|
+
numberFormat(".1f")(1)[1] // decimal point character
|
|
168
|
+
);
|
|
169
|
+
} else {
|
|
170
|
+
return numberFormat(s);
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
function trimZeroes(format, decimalChar) {
|
|
175
|
+
return function (x) {
|
|
176
|
+
var str = format(x),
|
|
177
|
+
dec = str.indexOf(decimalChar),
|
|
178
|
+
idx,
|
|
179
|
+
end;
|
|
180
|
+
|
|
181
|
+
if (dec < 0) return str;
|
|
182
|
+
|
|
183
|
+
idx = rightmostDigit(str, dec);
|
|
184
|
+
end = idx < str.length ? str.slice(idx) : "";
|
|
185
|
+
while (--idx > dec)
|
|
186
|
+
if (str[idx] !== "0") {
|
|
187
|
+
++idx;
|
|
188
|
+
break;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
return str.slice(0, idx) + end;
|
|
192
|
+
};
|
|
193
|
+
}
|
|
194
|
+
|
|
195
|
+
function rightmostDigit(str, dec) {
|
|
196
|
+
var i = str.lastIndexOf("e"),
|
|
197
|
+
c;
|
|
198
|
+
if (i > 0) return i;
|
|
199
|
+
for (i = str.length; --i > dec; ) {
|
|
200
|
+
c = str.charCodeAt(i);
|
|
201
|
+
if (c >= 48 && c <= 57) return i + 1; // is digit
|
|
202
|
+
}
|
|
203
|
+
}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { expect, test } from "vitest";
|
|
2
|
+
/*!
|
|
3
|
+
* Adapted from vega-encode:
|
|
4
|
+
* https://github.com/vega/vega/blob/master/packages/vega-encode/test/scale-test.js
|
|
5
|
+
*
|
|
6
|
+
* Copyright (c) 2015-2018, University of Washington Interactive Data Lab
|
|
7
|
+
* All rights reserved.
|
|
8
|
+
*
|
|
9
|
+
* BSD-3-Clause License: https://github.com/vega/vega-lite/blob/master/LICENSE
|
|
10
|
+
*/
|
|
11
|
+
|
|
12
|
+
/* eslint-disable */
|
|
13
|
+
|
|
14
|
+
import { validTicks } from "./ticks";
|
|
15
|
+
|
|
16
|
+
test("validTicks uses count correctly", function () {
|
|
17
|
+
var data = [0, 1, 2, 3, 4, 5, 6, 7];
|
|
18
|
+
|
|
19
|
+
var identity = function (x) {
|
|
20
|
+
return x;
|
|
21
|
+
};
|
|
22
|
+
identity.range = function () {
|
|
23
|
+
return [0, 10];
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
var t1 = validTicks(identity, data, 5);
|
|
27
|
+
expect(t1).toEqual([0, 2, 4, 6]);
|
|
28
|
+
|
|
29
|
+
// don't change ticks if count is large
|
|
30
|
+
var t2 = validTicks(identity, data, 100);
|
|
31
|
+
expect(t2).toEqual(data);
|
|
32
|
+
|
|
33
|
+
// special case for low number of ticks
|
|
34
|
+
var t3 = validTicks(identity, data, 3);
|
|
35
|
+
expect(t3).toEqual([0, 7]);
|
|
36
|
+
|
|
37
|
+
// single tick should pass through
|
|
38
|
+
var t5 = validTicks(identity, [1], 5);
|
|
39
|
+
expect(t5).toEqual([1]);
|
|
40
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singlePageApp.d.ts","sourceRoot":"","sources":["../../src/singlePageApp.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { embed } from "./index";
|
|
2
|
+
|
|
3
|
+
// This is for development purposes. Use "npm start" to launch.
|
|
4
|
+
|
|
5
|
+
const specUrl = new URLSearchParams(window.location.search).get("spec");
|
|
6
|
+
if (specUrl) {
|
|
7
|
+
embed(document.body, specUrl);
|
|
8
|
+
} else {
|
|
9
|
+
document.body.innerHTML = `
|
|
10
|
+
<p style="color: firebrick">No 'spec' url parameter defined!</p>
|
|
11
|
+
<p>Try this one from the "static" folder, for example:
|
|
12
|
+
<a href="?spec=examples/first.json">examples/first.json</a></p>`;
|
|
13
|
+
}
|