@genome-spy/core 0.73.0 → 0.74.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
- package/dist/bundle/browser-BTgw5ieH.js +126 -0
- package/dist/bundle/chunk-DmhlhrBa.js +11 -0
- package/dist/bundle/esm-BDFRLEuD.js +1248 -0
- package/dist/bundle/esm-BygJiwh0.js +573 -0
- package/dist/bundle/esm-CGX-qz1d.js +155 -0
- package/dist/bundle/esm-CgfVIRJ-.js +121 -0
- package/dist/bundle/esm-CuMSzCHy.js +298 -0
- package/dist/bundle/esm-DMXpJXM4.js +369 -0
- package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
- package/dist/bundle/esm-DtE8VqAv.js +1015 -0
- package/dist/bundle/esm-sIoQYZ21.js +461 -0
- package/dist/bundle/index.es.js +21071 -25935
- package/dist/bundle/index.js +363 -379
- package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
- package/dist/schema.json +13098 -7095
- package/dist/src/config/axisConfig.d.ts +16 -0
- package/dist/src/config/axisConfig.d.ts.map +1 -0
- package/dist/src/config/axisConfig.js +84 -0
- package/dist/src/config/defaultConfig.d.ts +3 -0
- package/dist/src/config/defaultConfig.d.ts.map +1 -0
- package/dist/src/config/defaultConfig.js +38 -0
- package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
- package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/axisDefaults.js +72 -0
- package/dist/src/config/defaults/markDefaults.d.ts +15 -0
- package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/markDefaults.js +121 -0
- package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
- package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/scaleDefaults.js +18 -0
- package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
- package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/titleDefaults.js +47 -0
- package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
- package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/viewDefaults.js +2 -0
- package/dist/src/config/markConfig.d.ts +8 -0
- package/dist/src/config/markConfig.d.ts.map +1 -0
- package/dist/src/config/markConfig.js +27 -0
- package/dist/src/config/mergeConfig.d.ts +8 -0
- package/dist/src/config/mergeConfig.d.ts.map +1 -0
- package/dist/src/config/mergeConfig.js +81 -0
- package/dist/src/config/resolveConfig.d.ts +22 -0
- package/dist/src/config/resolveConfig.d.ts.map +1 -0
- package/dist/src/config/resolveConfig.js +32 -0
- package/dist/src/config/scaleConfig.d.ts +40 -0
- package/dist/src/config/scaleConfig.d.ts.map +1 -0
- package/dist/src/config/scaleConfig.js +220 -0
- package/dist/src/config/styleUtils.d.ts +6 -0
- package/dist/src/config/styleUtils.d.ts.map +1 -0
- package/dist/src/config/styleUtils.js +10 -0
- package/dist/src/config/themes.d.ts +15 -0
- package/dist/src/config/themes.d.ts.map +1 -0
- package/dist/src/config/themes.js +293 -0
- package/dist/src/config/titleConfig.d.ts +12 -0
- package/dist/src/config/titleConfig.d.ts.map +1 -0
- package/dist/src/config/titleConfig.js +42 -0
- package/dist/src/config/viewConfig.d.ts +7 -0
- package/dist/src/config/viewConfig.d.ts.map +1 -0
- package/dist/src/config/viewConfig.js +29 -0
- package/dist/src/data/flowNode.d.ts +22 -1
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +37 -1
- package/dist/src/data/formats/bed.d.ts.map +1 -1
- package/dist/src/data/formats/bed.js +6 -1
- package/dist/src/data/formats/bedpe.d.ts.map +1 -1
- package/dist/src/data/formats/bedpe.js +4 -0
- package/dist/src/data/formats/fasta.d.ts.map +1 -1
- package/dist/src/data/formats/fasta.js +4 -0
- package/dist/src/data/formats/parquet.d.ts.map +1 -1
- package/dist/src/data/formats/parquet.js +4 -0
- package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
- package/dist/src/data/sources/dataSourceFactory.js +5 -141
- package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
- package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
- package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bamSource.js +11 -0
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +12 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
- package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/vcfSource.js +11 -0
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +5 -2
- package/dist/src/data/transforms/aggregate.d.ts +1 -0
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregate.js +30 -8
- package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregateOps.js +12 -1
- package/dist/src/data/transforms/coverage.js +2 -2
- package/dist/src/data/transforms/filter.js +1 -1
- package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +9 -0
- package/dist/src/data/transforms/measureText.d.ts +1 -0
- package/dist/src/data/transforms/measureText.d.ts.map +1 -1
- package/dist/src/data/transforms/measureText.js +14 -5
- package/dist/src/data/transforms/pileup.d.ts.map +1 -1
- package/dist/src/data/transforms/pileup.js +1 -2
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +0 -1
- package/dist/src/embedFactory.d.ts +13 -0
- package/dist/src/embedFactory.d.ts.map +1 -0
- package/dist/src/embedFactory.js +127 -0
- package/dist/src/encoder/accessor.d.ts +3 -12
- package/dist/src/encoder/accessor.d.ts.map +1 -1
- package/dist/src/encoder/accessor.js +10 -65
- package/dist/src/encoder/encoder.d.ts +51 -8
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +179 -55
- package/dist/src/fonts/bmFontManager.js +1 -1
- package/dist/src/full.d.ts +2 -0
- package/dist/src/full.d.ts.map +1 -0
- package/dist/src/full.js +2 -0
- package/dist/src/genome/genome.d.ts +8 -0
- package/dist/src/genome/genome.d.ts.map +1 -1
- package/dist/src/genome/genome.js +16 -2
- package/dist/src/genome/genomeStore.js +1 -1
- package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -1
- package/dist/src/genome/rootGenomeConfig.js +6 -2
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +26 -7
- package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
- package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
- package/dist/src/genomeSpy/cursorManager.js +131 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
- package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
- package/dist/src/genomeSpy/interactionController.d.ts +5 -0
- package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
- package/dist/src/genomeSpy/interactionController.js +212 -19
- package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
- package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
- package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
- package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
- package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewContextFactory.js +12 -4
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewDataInit.js +7 -3
- package/dist/src/genomeSpy.d.ts +1 -124
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +7 -688
- package/dist/src/genomeSpyBase.d.ts +133 -0
- package/dist/src/genomeSpyBase.d.ts.map +1 -0
- package/dist/src/genomeSpyBase.js +719 -0
- package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
- package/dist/src/gl/arrayBuilder.js +0 -3
- package/dist/src/gl/colorUtils.d.ts.map +1 -1
- package/dist/src/gl/colorUtils.js +3 -0
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +13 -8
- package/dist/src/gl/glslScaleGenerator.d.ts +2 -2
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +5 -7
- package/dist/src/index.d.ts +3 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -114
- package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +0 -23
- package/dist/src/marks/mark.d.ts +8 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +61 -20
- package/dist/src/marks/markUtils.d.ts +18 -1
- package/dist/src/marks/markUtils.d.ts.map +1 -1
- package/dist/src/marks/markUtils.js +52 -4
- package/dist/src/marks/point.d.ts.map +1 -1
- package/dist/src/marks/point.js +6 -26
- package/dist/src/marks/rect.d.ts.map +1 -1
- package/dist/src/marks/rect.js +13 -21
- package/dist/src/marks/rule.d.ts +7 -2
- package/dist/src/marks/rule.d.ts.map +1 -1
- package/dist/src/marks/rule.js +125 -16
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +5 -47
- package/dist/src/minimal.d.ts +8 -0
- package/dist/src/minimal.d.ts.map +1 -0
- package/dist/src/minimal.js +21 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts +19 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/viewParamRuntime.js +35 -0
- package/dist/src/scale/scale.d.ts.map +1 -1
- package/dist/src/scale/scale.js +13 -7
- package/dist/src/scales/axisResolution.d.ts.map +1 -1
- package/dist/src/scales/axisResolution.js +9 -5
- package/dist/src/scales/domainPlanner.d.ts +28 -8
- package/dist/src/scales/domainPlanner.d.ts.map +1 -1
- package/dist/src/scales/domainPlanner.js +207 -73
- package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
- package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
- package/dist/src/scales/indexLikeDomainUtils.js +67 -0
- package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
- package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
- package/dist/src/scales/resolutionMemberOrder.js +22 -0
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
- package/dist/src/scales/scaleInteractionController.js +43 -4
- package/dist/src/scales/scalePropsResolver.d.ts +3 -1
- package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
- package/dist/src/scales/scalePropsResolver.js +83 -6
- package/dist/src/scales/scaleResolution.d.ts +23 -0
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +220 -58
- package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -1
- package/dist/src/scales/scaleResolutionTestUtils.js +6 -2
- package/dist/src/scales/scaleRules.d.ts.map +1 -1
- package/dist/src/scales/scaleRules.js +16 -2
- package/dist/src/scales/selectionDomainUtils.d.ts +30 -0
- package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -1
- package/dist/src/scales/selectionDomainUtils.js +116 -1
- package/dist/src/screenshotHarness.js +3 -4
- package/dist/src/spec/axis.d.ts +41 -30
- package/dist/src/spec/channel.d.ts +15 -9
- package/dist/src/spec/config.d.ts +264 -0
- package/dist/src/spec/data.d.ts +7 -0
- package/dist/src/spec/decoration.d.ts +51 -0
- package/dist/src/spec/exampleFiles.d.ts +12 -0
- package/dist/src/spec/exampleFiles.d.ts.map +1 -0
- package/dist/src/spec/exampleFiles.js +52 -0
- package/dist/src/spec/font.d.ts +1 -1
- package/dist/src/spec/mark.d.ts +97 -13
- package/dist/src/spec/parameter.d.ts +30 -10
- package/dist/src/spec/root.d.ts +14 -0
- package/dist/src/spec/scale.d.ts +18 -13
- package/dist/src/spec/title.d.ts +13 -2
- package/dist/src/spec/tooltip.d.ts +1 -1
- package/dist/src/spec/transform.d.ts +39 -4
- package/dist/src/spec/view.d.ts +67 -19
- package/dist/src/styles/genome-spy.css +55 -55
- package/dist/src/styles/genome-spy.css.d.ts +1 -1
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
- package/dist/src/styles/genome-spy.css.js +23 -22
- package/dist/src/testSetup.d.ts +2 -0
- package/dist/src/testSetup.d.ts.map +1 -0
- package/dist/src/testSetup.js +5 -0
- package/dist/src/tooltip/dataTooltipHandler.js +8 -2
- package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
- package/dist/src/tooltip/tooltipContext.js +3 -2
- package/dist/src/types/embedApi.d.ts +7 -0
- package/dist/src/types/encoder.d.ts +17 -15
- package/dist/src/types/scaleResolutionApi.d.ts +20 -0
- package/dist/src/types/viewContext.d.ts +23 -1
- package/dist/src/utils/expression.d.ts +2 -2
- package/dist/src/utils/expression.d.ts.map +1 -1
- package/dist/src/utils/expression.js +63 -8
- package/dist/src/utils/field.d.ts.map +1 -1
- package/dist/src/utils/field.js +0 -1
- package/dist/src/utils/inertia.d.ts.map +1 -1
- package/dist/src/utils/inertia.js +0 -1
- package/dist/src/utils/inputBinding.d.ts +1 -1
- package/dist/src/utils/interaction.d.ts +109 -0
- package/dist/src/utils/interaction.d.ts.map +1 -0
- package/dist/src/utils/interaction.js +200 -0
- package/dist/src/utils/interactionEvent.d.ts +21 -42
- package/dist/src/utils/interactionEvent.d.ts.map +1 -1
- package/dist/src/utils/interactionEvent.js +43 -66
- package/dist/src/utils/kWayMerge.js +1 -1
- package/dist/src/utils/mergeObjects.d.ts.map +1 -1
- package/dist/src/utils/mergeObjects.js +0 -2
- package/dist/src/utils/radixSort.d.ts.map +1 -1
- package/dist/src/utils/radixSort.js +0 -2
- package/dist/src/utils/throttle.d.ts.map +1 -1
- package/dist/src/utils/throttle.js +0 -2
- package/dist/src/utils/ui/tooltip.d.ts +1 -0
- package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
- package/dist/src/utils/ui/tooltip.js +1 -0
- package/dist/src/utils/url.js +1 -1
- package/dist/src/view/axisGridView.d.ts +1 -1
- package/dist/src/view/axisGridView.d.ts.map +1 -1
- package/dist/src/view/axisGridView.js +2 -47
- package/dist/src/view/axisView.d.ts +2 -3
- package/dist/src/view/axisView.d.ts.map +1 -1
- package/dist/src/view/axisView.js +251 -106
- package/dist/src/view/concatView.d.ts +2 -1
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +4 -2
- package/dist/src/view/containerMutationHelper.d.ts +3 -0
- package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
- package/dist/src/view/containerMutationHelper.js +4 -1
- package/dist/src/view/facetView.d.ts +1 -1
- package/dist/src/view/facetView.js +3 -3
- package/dist/src/view/flowBuilder.js +2 -2
- package/dist/src/view/gridView/gridChild.d.ts +6 -0
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +72 -43
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +255 -101
- package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
- package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
- package/dist/src/view/gridView/keyboardZoomController.js +1 -1
- package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
- package/dist/src/view/gridView/scrollbar.js +4 -2
- package/dist/src/view/gridView/selectionRect.d.ts +4 -0
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +20 -1
- package/dist/src/view/gridView/separatorView.d.ts +1 -0
- package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
- package/dist/src/view/gridView/separatorView.js +9 -0
- package/dist/src/view/interactionRouting.d.ts +20 -0
- package/dist/src/view/interactionRouting.d.ts.map +1 -0
- package/dist/src/view/interactionRouting.js +53 -0
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +12 -9
- package/dist/src/view/layout/grid.js +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
- package/dist/src/view/testUtils.d.ts +17 -3
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +62 -69
- package/dist/src/view/title.d.ts +8 -1
- package/dist/src/view/title.d.ts.map +1 -1
- package/dist/src/view/title.js +66 -76
- package/dist/src/view/unitView.d.ts +1 -1
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +67 -17
- package/dist/src/view/view.d.ts +76 -30
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +136 -47
- package/dist/src/view/viewFactory.d.ts +11 -3
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +37 -11
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +41 -5
- package/dist/src/view/zoom.d.ts +2 -2
- package/dist/src/view/zoom.d.ts.map +1 -1
- package/dist/src/view/zoom.js +21 -23
- package/package.json +18 -10
- package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
- package/dist/bundle/browser-0iNU5Wit.js +0 -138
- package/dist/bundle/index-BYsZN7b0.js +0 -1597
- package/dist/bundle/index-C3kClAEN.js +0 -1771
- package/dist/bundle/index-C7wOh6y1.js +0 -657
- package/dist/bundle/index-CRaQAuki.js +0 -326
- package/dist/bundle/index-D9v1PCj9.js +0 -507
- package/dist/bundle/index-GDOuv_D5.js +0 -266
- package/dist/bundle/index-Gt44EOIH.js +0 -628
- package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
- package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
- package/dist/bundle/unzip-Bac01w6X.js +0 -1492
- package/dist/src/config/scaleDefaults.d.ts +0 -8
- package/dist/src/config/scaleDefaults.d.ts.map +0 -1
- package/dist/src/config/scaleDefaults.js +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/marks/link.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IACI;;OAEG;IACH,sBAFW,OAAO,qBAAqB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../../../src/marks/link.js"],"names":[],"mappings":"AAYA;;GAEG;AACH;IACI;;OAEG;IACH,sBAFW,OAAO,qBAAqB,EAAE,OAAO,EAW/C;IAPG;;;;;OAKG;IACH,yBAAiC;IAkIjC;;kBAGiC,GAAG;;;;MAEnC;CA4FR;iBAxPgB,WAAW"}
|
package/dist/src/marks/link.js
CHANGED
|
@@ -19,29 +19,6 @@ export default class LinkMark extends Mark {
|
|
|
19
19
|
*/
|
|
20
20
|
constructor(unitView) {
|
|
21
21
|
super(unitView);
|
|
22
|
-
|
|
23
|
-
this.augmentDefaultProperties({
|
|
24
|
-
x: 0.0,
|
|
25
|
-
x2: undefined,
|
|
26
|
-
y: 0.0,
|
|
27
|
-
y2: undefined,
|
|
28
|
-
size: 1.0,
|
|
29
|
-
color: "black",
|
|
30
|
-
opacity: 1.0,
|
|
31
|
-
|
|
32
|
-
segments: 101, // Performance is affected more by the fill rate, i.e. number of pixels
|
|
33
|
-
arcHeightFactor: 1.0,
|
|
34
|
-
minArcHeight: 1.5,
|
|
35
|
-
minPickingSize: 3.0,
|
|
36
|
-
clampApex: false,
|
|
37
|
-
maxChordLength: 50000,
|
|
38
|
-
arcFadingDistance: false,
|
|
39
|
-
noFadingOnPointSelection: true,
|
|
40
|
-
|
|
41
|
-
linkShape: "arc",
|
|
42
|
-
orient: "vertical",
|
|
43
|
-
});
|
|
44
|
-
|
|
45
22
|
/**
|
|
46
23
|
* Only available if "WebGL Draft Extensions" is enabled in chrome://flags
|
|
47
24
|
* But seems to work.
|
package/dist/src/marks/mark.d.ts
CHANGED
|
@@ -94,6 +94,13 @@ export default class Mark<P extends import("../spec/mark.js").MarkProps = import
|
|
|
94
94
|
* @protected
|
|
95
95
|
*/
|
|
96
96
|
protected augmentDefaultProperties(props: Partial<P>): void;
|
|
97
|
+
getCursorSpec(): string | import("../spec/parameter.js").ExprRef;
|
|
98
|
+
getCursor(): any;
|
|
99
|
+
/**
|
|
100
|
+
* @param {() => void} listener
|
|
101
|
+
* @param {(disposer: () => void) => void} [registerDisposer]
|
|
102
|
+
*/
|
|
103
|
+
watchCursor(listener: () => void, registerDisposer?: (disposer: () => void) => void): void;
|
|
97
104
|
get opaque(): boolean;
|
|
98
105
|
/**
|
|
99
106
|
* Returns the default hit test mode for this mark.
|
|
@@ -137,7 +144,7 @@ export default class Mark<P extends import("../spec/mark.js").MarkProps = import
|
|
|
137
144
|
*/
|
|
138
145
|
get encoding(): import("../spec/channel.js").Encoding;
|
|
139
146
|
getContext(): import("../types/viewContext.js").default;
|
|
140
|
-
getType(): "
|
|
147
|
+
getType(): "point" | "link" | "text" | "rect" | "rule" | "tick";
|
|
141
148
|
initializeData(): void;
|
|
142
149
|
/**
|
|
143
150
|
* Initialize encoders that encode fields of the data (or constants) to
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"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"}
|
package/dist/src/marks/mark.js
CHANGED
|
@@ -58,6 +58,7 @@ import {
|
|
|
58
58
|
isMultiPointSelection,
|
|
59
59
|
isSinglePointSelection,
|
|
60
60
|
} from "../selection/selection.js";
|
|
61
|
+
import { getConfiguredMarkDefaults } from "../config/markConfig.js";
|
|
61
62
|
|
|
62
63
|
export const SAMPLE_FACET_UNIFORM = "SAMPLE_FACET_UNIFORM";
|
|
63
64
|
export const SAMPLE_FACET_TEXTURE = "SAMPLE_FACET_TEXTURE";
|
|
@@ -103,6 +104,7 @@ export default class Mark {
|
|
|
103
104
|
*/
|
|
104
105
|
constructor(unitView) {
|
|
105
106
|
this.unitView = unitView;
|
|
107
|
+
const mark = this;
|
|
106
108
|
|
|
107
109
|
/** @type {Partial<Record<Channel, import("../types/encoder.js").Encoder>>} */
|
|
108
110
|
this.encoders = undefined;
|
|
@@ -170,18 +172,32 @@ export default class Mark {
|
|
|
170
172
|
/** @type {RangeMap<any>} keep track of facet locations within the vertex array */
|
|
171
173
|
this.rangeMap = new RangeMap();
|
|
172
174
|
|
|
173
|
-
|
|
175
|
+
const configuredDefaults = getConfiguredMarkDefaults(
|
|
176
|
+
this.unitView.getConfigScopes(),
|
|
177
|
+
this.unitView.getMarkType(),
|
|
178
|
+
typeof this.unitView.spec.mark == "object"
|
|
179
|
+
? this.unitView.spec.mark.style
|
|
180
|
+
: undefined
|
|
181
|
+
);
|
|
182
|
+
|
|
174
183
|
this.defaultProperties = /** @type {P} */ ({
|
|
175
184
|
get clip() {
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
+
return getCachedOrCall(mark, "defaultClip", () => {
|
|
186
|
+
// TODO: Only check channels that are used
|
|
187
|
+
// TODO: provide more fine-grained xClip and yClip props
|
|
188
|
+
for (const channel of /** @type {import("../spec/channel.js").PositionalChannel[]} */ ([
|
|
189
|
+
"x",
|
|
190
|
+
"y",
|
|
191
|
+
])) {
|
|
192
|
+
if (
|
|
193
|
+
unitView.getScaleResolution(channel)?.isZoomable()
|
|
194
|
+
) {
|
|
195
|
+
return true;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
return false;
|
|
200
|
+
});
|
|
185
201
|
},
|
|
186
202
|
xOffset: 0,
|
|
187
203
|
yOffset: 0,
|
|
@@ -192,6 +208,7 @@ export default class Mark {
|
|
|
192
208
|
* This property is intended for internal usage.
|
|
193
209
|
*/
|
|
194
210
|
minBufferSize: 0,
|
|
211
|
+
...configuredDefaults,
|
|
195
212
|
});
|
|
196
213
|
|
|
197
214
|
/**
|
|
@@ -220,6 +237,33 @@ export default class Mark {
|
|
|
220
237
|
);
|
|
221
238
|
}
|
|
222
239
|
|
|
240
|
+
getCursorSpec() {
|
|
241
|
+
return this.properties.cursor;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
getCursor() {
|
|
245
|
+
const cursor = this.getCursorSpec();
|
|
246
|
+
return isExprRef(cursor)
|
|
247
|
+
? this.unitView.paramRuntime.evaluateAndGet(cursor.expr)
|
|
248
|
+
: cursor;
|
|
249
|
+
}
|
|
250
|
+
|
|
251
|
+
/**
|
|
252
|
+
* @param {() => void} listener
|
|
253
|
+
* @param {(disposer: () => void) => void} [registerDisposer]
|
|
254
|
+
*/
|
|
255
|
+
watchCursor(listener, registerDisposer) {
|
|
256
|
+
const cursor = this.getCursorSpec();
|
|
257
|
+
if (!isExprRef(cursor)) {
|
|
258
|
+
return;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
this.unitView.paramRuntime.watchExpression(cursor.expr, listener, {
|
|
262
|
+
scopeOwned: false,
|
|
263
|
+
registerDisposer,
|
|
264
|
+
});
|
|
265
|
+
}
|
|
266
|
+
|
|
223
267
|
get opaque() {
|
|
224
268
|
return false;
|
|
225
269
|
}
|
|
@@ -380,7 +424,7 @@ export default class Mark {
|
|
|
380
424
|
if (encoding.x) {
|
|
381
425
|
// Building the x index is rarely necessary, but it's safer to build
|
|
382
426
|
// it by default.
|
|
383
|
-
encoding.x.buildIndex ??= true;
|
|
427
|
+
encoding.x.buildIndex ??= this.properties.buildIndex ?? true;
|
|
384
428
|
}
|
|
385
429
|
|
|
386
430
|
return encoding;
|
|
@@ -445,7 +489,6 @@ export default class Mark {
|
|
|
445
489
|
* @param {string[]} [extraHeaders]
|
|
446
490
|
* @protected
|
|
447
491
|
*/
|
|
448
|
-
// eslint-disable-next-line complexity
|
|
449
492
|
createAndLinkShaders(vertexShader, fragmentShader, extraHeaders = []) {
|
|
450
493
|
const shaderChannels = this.getAttributes();
|
|
451
494
|
const encoders = this.encoders;
|
|
@@ -473,8 +516,8 @@ export default class Mark {
|
|
|
473
516
|
const dynamicMarkUniforms = [];
|
|
474
517
|
|
|
475
518
|
const paramPredicates = Object.values(encoders)
|
|
476
|
-
.flatMap((e) => e.
|
|
477
|
-
.map((
|
|
519
|
+
.flatMap((e) => e.branches ?? [])
|
|
520
|
+
.map((branch) => branch.predicate)
|
|
478
521
|
.filter((p) => p.param);
|
|
479
522
|
|
|
480
523
|
/**
|
|
@@ -787,12 +830,12 @@ export default class Mark {
|
|
|
787
830
|
continue;
|
|
788
831
|
}
|
|
789
832
|
|
|
790
|
-
const {
|
|
833
|
+
const { branches, channelDef, scale } = encoder;
|
|
791
834
|
|
|
792
835
|
// Generate accessors, one for each condition -------------
|
|
793
836
|
|
|
794
|
-
for (let i = 0; i <
|
|
795
|
-
addAccessor(channel,
|
|
837
|
+
for (let i = 0; i < branches.length; i++) {
|
|
838
|
+
addAccessor(channel, branches[i].accessor, i, scale);
|
|
796
839
|
}
|
|
797
840
|
|
|
798
841
|
// Generate scale if needed -------------------------------
|
|
@@ -863,7 +906,7 @@ export default class Mark {
|
|
|
863
906
|
|
|
864
907
|
// Generate conditional encoder -------------------------------
|
|
865
908
|
|
|
866
|
-
scaleCode.push(generateConditionalEncoderGlsl(channel,
|
|
909
|
+
scaleCode.push(generateConditionalEncoderGlsl(channel, branches));
|
|
867
910
|
}
|
|
868
911
|
|
|
869
912
|
// Generate a function that checks if the datum is subject to any point selection
|
|
@@ -1196,7 +1239,6 @@ export default class Mark {
|
|
|
1196
1239
|
* @param {import("../types/rendering.js").GlobalRenderingOptions} options
|
|
1197
1240
|
* @returns {(() => void)[]}
|
|
1198
1241
|
*/
|
|
1199
|
-
// eslint-disable-next-line complexity
|
|
1200
1242
|
prepareRender(options) {
|
|
1201
1243
|
const glHelper = this.glHelper;
|
|
1202
1244
|
const gl = this.gl;
|
|
@@ -1339,7 +1381,6 @@ export default class Mark {
|
|
|
1339
1381
|
return () => undefined;
|
|
1340
1382
|
}
|
|
1341
1383
|
|
|
1342
|
-
// eslint-disable-next-line consistent-this
|
|
1343
1384
|
const self = this;
|
|
1344
1385
|
|
|
1345
1386
|
/** @type {function(import("../gl/dataToVertices.js").RangeEntry):void} rangeEntry */
|
|
@@ -4,10 +4,27 @@
|
|
|
4
4
|
* @typedef {import("../spec/channel.js").Channel} Channel
|
|
5
5
|
*/
|
|
6
6
|
/**
|
|
7
|
+
* Expands a primary positional channel into a coverage range.
|
|
8
|
+
*
|
|
9
|
+
* Rect-like marks use this to turn a discrete position into band coverage and
|
|
10
|
+
* a quantitative position into a zero-anchored span.
|
|
11
|
+
*
|
|
12
|
+
* @param {Encoding} encoding
|
|
13
|
+
* @param {import("../spec/channel.js").PrimaryPositionalChannel} channel
|
|
14
|
+
*/
|
|
15
|
+
export function fixCoveragePositional(encoding: Encoding, channel: import("../spec/channel.js").PrimaryPositionalChannel): void;
|
|
16
|
+
/**
|
|
17
|
+
* Rewrites explicit ranged text on zero-based half-open coordinate systems to
|
|
18
|
+
* use interval edges instead of default band centers.
|
|
19
|
+
*
|
|
20
|
+
* With only `x`, text stays centered inside one band (`band = 0.5`). When both
|
|
21
|
+
* `x` and `x2` are defined for `index`/`locus`, the pair is interpreted as
|
|
22
|
+
* half-open interval edges, e.g. `[0, 1)`, so both endpoints use `band = 0`.
|
|
23
|
+
*
|
|
7
24
|
* @param {Encoding} encoding
|
|
8
25
|
* @param {import("../spec/channel.js").PrimaryPositionalChannel} channel
|
|
9
26
|
*/
|
|
10
|
-
export function
|
|
27
|
+
export function fixHalfOpenRangedText(encoding: Encoding, channel: import("../spec/channel.js").PrimaryPositionalChannel): void;
|
|
11
28
|
/**
|
|
12
29
|
* @param {import("../spec/channel.js").Encoding} encoding
|
|
13
30
|
* @param {boolean} filled
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"markUtils.d.ts","sourceRoot":"","sources":["../../../src/marks/markUtils.js"],"names":[],"mappings":"AAOA;;;;GAIG;AAEH
|
|
1
|
+
{"version":3,"file":"markUtils.d.ts","sourceRoot":"","sources":["../../../src/marks/markUtils.js"],"names":[],"mappings":"AAOA;;;;GAIG;AAEH;;;;;;;;GAQG;AACH,gDAHW,QAAQ,WACR,OAAO,oBAAoB,EAAE,wBAAwB,QAiD/D;AAED;;;;;;;;;;GAUG;AACH,gDAHW,QAAQ,WACR,OAAO,oBAAoB,EAAE,wBAAwB,QAmC/D;AAcD;;;GAGG;AACH,oCAHW,OAAO,oBAAoB,EAAE,QAAQ,UACrC,OAAO,QAqBjB;AAED;;;GAGG;AACH,kCAHW,OAAO,oBAAoB,EAAE,QAAQ,UACrC,OAAO,QAsBjB;AAED;;;GAGG;AACH,oCAHW,OAAO,iBAAiB,EAAE,SAAS,GACjC,KAAK,IAAI,OAAO,iBAAiB,EAAE,UAAU,CAIzD;AAED;;;GAGG;AACH,mCAHW,OAAO,iBAAiB,EAAE,SAAS,GACjC,KAAK,IAAI,OAAO,iBAAiB,EAAE,SAAS,CAIxD;AAED;;;GAGG;AACH,mCAHW,OAAO,iBAAiB,EAAE,SAAS,GACjC,KAAK,IAAI,OAAO,iBAAiB,EAAE,SAAS,CAIxD;AAED;;;GAGG;AACH,mCAHW,OAAO,iBAAiB,EAAE,SAAS,GACjC,KAAK,IAAI,OAAO,iBAAiB,EAAE,SAAS,CAIxD;AAED;;;GAGG;AACH,mCAHW,OAAO,iBAAiB,EAAE,SAAS,GACjC,KAAK,IAAI,OAAO,iBAAiB,EAAE,SAAS,CAIxD;uBAjNY,OAAO,oBAAoB,EAAE,QAAQ;sBACrC,OAAO,oBAAoB,EAAE,OAAO"}
|
|
@@ -12,10 +12,15 @@ import {
|
|
|
12
12
|
*/
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
|
+
* Expands a primary positional channel into a coverage range.
|
|
16
|
+
*
|
|
17
|
+
* Rect-like marks use this to turn a discrete position into band coverage and
|
|
18
|
+
* a quantitative position into a zero-anchored span.
|
|
19
|
+
*
|
|
15
20
|
* @param {Encoding} encoding
|
|
16
21
|
* @param {import("../spec/channel.js").PrimaryPositionalChannel} channel
|
|
17
22
|
*/
|
|
18
|
-
export function
|
|
23
|
+
export function fixCoveragePositional(encoding, channel) {
|
|
19
24
|
const secondaryChannel = getSecondaryChannel(channel);
|
|
20
25
|
|
|
21
26
|
// Must make copies because the definition may be shared with other views/marks
|
|
@@ -48,9 +53,6 @@ export function fixPositional(encoding, channel) {
|
|
|
48
53
|
const adjustment = (1 - (primary.band ?? 1)) / 2;
|
|
49
54
|
primary.band = 0 + adjustment;
|
|
50
55
|
secondary.band = 1 - adjustment;
|
|
51
|
-
|
|
52
|
-
// TODO: If the secondary channel duplicates the primary channel
|
|
53
|
-
// the data should be uploaded to the GPU only once.
|
|
54
56
|
}
|
|
55
57
|
} else if (primary.type != "quantitative") {
|
|
56
58
|
const adjustment = (1 - (primary.band || 1)) / 2;
|
|
@@ -67,6 +69,52 @@ export function fixPositional(encoding, channel) {
|
|
|
67
69
|
encoding[secondaryChannel] = secondary;
|
|
68
70
|
}
|
|
69
71
|
|
|
72
|
+
/**
|
|
73
|
+
* Rewrites explicit ranged text on zero-based half-open coordinate systems to
|
|
74
|
+
* use interval edges instead of default band centers.
|
|
75
|
+
*
|
|
76
|
+
* With only `x`, text stays centered inside one band (`band = 0.5`). When both
|
|
77
|
+
* `x` and `x2` are defined for `index`/`locus`, the pair is interpreted as
|
|
78
|
+
* half-open interval edges, e.g. `[0, 1)`, so both endpoints use `band = 0`.
|
|
79
|
+
*
|
|
80
|
+
* @param {Encoding} encoding
|
|
81
|
+
* @param {import("../spec/channel.js").PrimaryPositionalChannel} channel
|
|
82
|
+
*/
|
|
83
|
+
export function fixHalfOpenRangedText(encoding, channel) {
|
|
84
|
+
const secondaryChannel = getSecondaryChannel(channel);
|
|
85
|
+
|
|
86
|
+
const primary = encoding[channel];
|
|
87
|
+
const secondary = encoding[secondaryChannel];
|
|
88
|
+
|
|
89
|
+
if (
|
|
90
|
+
!primary ||
|
|
91
|
+
!secondary ||
|
|
92
|
+
isValueDef(primary) ||
|
|
93
|
+
isValueDef(secondary)
|
|
94
|
+
) {
|
|
95
|
+
return;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
if (
|
|
99
|
+
!isChannelDefWithScale(primary) ||
|
|
100
|
+
!isChannelDefWithScale(secondary) ||
|
|
101
|
+
!["index", "locus"].includes(primary.type)
|
|
102
|
+
) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
const primaryBand = /** @type {import("../spec/channel.js").BandMixins} */ (
|
|
107
|
+
primary
|
|
108
|
+
).band;
|
|
109
|
+
const secondaryBand =
|
|
110
|
+
/** @type {import("../spec/channel.js").BandMixins} */ (secondary).band;
|
|
111
|
+
|
|
112
|
+
const band = primaryBand ?? secondaryBand ?? 0;
|
|
113
|
+
|
|
114
|
+
encoding[channel] = { ...primary, band };
|
|
115
|
+
encoding[secondaryChannel] = { ...secondary, band: secondaryBand ?? band };
|
|
116
|
+
}
|
|
117
|
+
|
|
70
118
|
/**
|
|
71
119
|
*
|
|
72
120
|
* @param {import("../spec/channel.js").ChannelDef} channelDef
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/marks/point.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/marks/point.js"],"names":[],"mappings":"AAoBA;;GAEG;AACH;IAGI;;OAEG;IACH,sBAFW,OAAO,qBAAqB,EAAE,OAAO,EAyB/C;IA6EO,iDAMC;IAkET,+BAkBC;;CAgDJ;iBAhQgB,WAAW"}
|
package/dist/src/marks/point.js
CHANGED
|
@@ -10,6 +10,7 @@ import FRAGMENT_SHADER from "./point.fragment.glsl.js";
|
|
|
10
10
|
import COMMON_SHADER from "./point.common.glsl.js";
|
|
11
11
|
|
|
12
12
|
import Mark from "./mark.js";
|
|
13
|
+
import { getEncoderDataAccessor } from "../encoder/encoder.js";
|
|
13
14
|
import { isExprRef } from "../paramRuntime/paramUtils.js";
|
|
14
15
|
import { sampleIterable } from "../data/transforms/sample.js";
|
|
15
16
|
import { fixFill, fixStroke } from "./markUtils.js";
|
|
@@ -28,30 +29,6 @@ export default class PointMark extends Mark {
|
|
|
28
29
|
*/
|
|
29
30
|
constructor(unitView) {
|
|
30
31
|
super(unitView);
|
|
31
|
-
|
|
32
|
-
this.augmentDefaultProperties({
|
|
33
|
-
x: 0.5,
|
|
34
|
-
y: 0.5,
|
|
35
|
-
color: "#4c78a8",
|
|
36
|
-
filled: true,
|
|
37
|
-
opacity: 1.0,
|
|
38
|
-
size: 100.0,
|
|
39
|
-
// @ts-expect-error - TODO: Should be datum instead of value. But needs fixing.
|
|
40
|
-
semanticScore: 0.0,
|
|
41
|
-
shape: "circle",
|
|
42
|
-
strokeWidth: 2.0,
|
|
43
|
-
fillGradientStrength: 0.0,
|
|
44
|
-
dx: 0,
|
|
45
|
-
dy: 0,
|
|
46
|
-
angle: 0,
|
|
47
|
-
|
|
48
|
-
sampleFacetPadding: 0.1,
|
|
49
|
-
|
|
50
|
-
semanticZoomFraction: 0.02,
|
|
51
|
-
|
|
52
|
-
minPickingSize: 2.0,
|
|
53
|
-
});
|
|
54
|
-
|
|
55
32
|
// TODO: This mess should be simplified
|
|
56
33
|
// TODO: createExpression should accept constant values or ExprRefs and allow
|
|
57
34
|
// easy registration of requestRender listeners
|
|
@@ -142,8 +119,11 @@ export default class PointMark extends Mark {
|
|
|
142
119
|
|
|
143
120
|
// Semantic zooming is currently solely a feature of point mark.
|
|
144
121
|
// Build a sorted sample that allows for computing p-quantiles
|
|
145
|
-
const semanticScoreAccessor =
|
|
146
|
-
|
|
122
|
+
const semanticScoreAccessor = this.encoders["semanticScore"]
|
|
123
|
+
? getEncoderDataAccessor(
|
|
124
|
+
this.encoders["semanticScore"]
|
|
125
|
+
)?.asNumberAccessor()
|
|
126
|
+
: undefined;
|
|
147
127
|
if (semanticScoreAccessor) {
|
|
148
128
|
// n chosen using Stetson-Harrison
|
|
149
129
|
// TODO: Throw on missing scores
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/marks/rect.js"],"names":[],"mappings":"AA2BA;;GAEG;AACH;IACI;;OAEG;IACH,sBAFW,OAAO,qBAAqB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"rect.d.ts","sourceRoot":"","sources":["../../../src/marks/rect.js"],"names":[],"mappings":"AA2BA;;GAEG;AACH;IACI;;OAEG;IACH,sBAFW,OAAO,qBAAqB,EAAE,OAAO,EAI/C;IA0ND;;;;;;;;;;OAUG;IACH,8BALW,GAAG,KACH,OAAO,oBAAoB,EAAE,MAAM,GACjC,GAAG,CA+Bf;;CACJ;iBAhSgB,WAAW"}
|
package/dist/src/marks/rect.js
CHANGED
|
@@ -5,9 +5,9 @@ import COMMON_SHADER from "./rect.common.glsl.js";
|
|
|
5
5
|
import { RectVertexBuilder } from "../gl/dataToVertices.js";
|
|
6
6
|
|
|
7
7
|
import Mark from "./mark.js";
|
|
8
|
-
import {
|
|
8
|
+
import { fixCoveragePositional, fixFill, fixStroke } from "./markUtils.js";
|
|
9
9
|
import { asArray } from "../utils/arrayUtils.js";
|
|
10
|
-
import { isValueDef } from "../encoder/encoder.js";
|
|
10
|
+
import { getEncoderDataAccessor, isValueDef } from "../encoder/encoder.js";
|
|
11
11
|
import { getCachedOrCall } from "../utils/propertyCacher.js";
|
|
12
12
|
import { isDiscrete } from "vega-scale";
|
|
13
13
|
import { cssColorToArray } from "../gl/colorUtils.js";
|
|
@@ -34,20 +34,6 @@ export default class RectMark extends Mark {
|
|
|
34
34
|
*/
|
|
35
35
|
constructor(unitView) {
|
|
36
36
|
super(unitView);
|
|
37
|
-
|
|
38
|
-
this.augmentDefaultProperties({
|
|
39
|
-
x2: undefined,
|
|
40
|
-
y2: undefined,
|
|
41
|
-
filled: true,
|
|
42
|
-
color: "#4c78a8",
|
|
43
|
-
opacity: 1.0,
|
|
44
|
-
strokeWidth: 3,
|
|
45
|
-
cornerRadius: 0.0,
|
|
46
|
-
|
|
47
|
-
minWidth: 0.5, // Minimum width/height prevents annoying flickering when zooming
|
|
48
|
-
minHeight: 0.5,
|
|
49
|
-
minOpacity: 1.0,
|
|
50
|
-
});
|
|
51
37
|
}
|
|
52
38
|
|
|
53
39
|
/**
|
|
@@ -107,8 +93,8 @@ export default class RectMark extends Mark {
|
|
|
107
93
|
*/
|
|
108
94
|
fixEncoding(encoding) {
|
|
109
95
|
// TODO: Ensure that both the primary and secondary channel are either variables or constants (values)
|
|
110
|
-
|
|
111
|
-
|
|
96
|
+
fixCoveragePositional(encoding, "x");
|
|
97
|
+
fixCoveragePositional(encoding, "y");
|
|
112
98
|
|
|
113
99
|
fixStroke(encoding, this.properties.filled);
|
|
114
100
|
fixFill(encoding, this.properties.filled);
|
|
@@ -289,13 +275,19 @@ export default class RectMark extends Mark {
|
|
|
289
275
|
const scaleType = e.x.scale.type;
|
|
290
276
|
|
|
291
277
|
if (isDiscrete(scaleType)) {
|
|
292
|
-
const a = e.x
|
|
278
|
+
const a = getEncoderDataAccessor(e.x);
|
|
279
|
+
if (!a) {
|
|
280
|
+
return;
|
|
281
|
+
}
|
|
293
282
|
// TODO: Binary search
|
|
294
283
|
return data.find((d) => x == a(d));
|
|
295
284
|
} else {
|
|
296
285
|
// TODO: Handle point features on locus/index scales
|
|
297
|
-
const a = e.x
|
|
298
|
-
const a2 = e.x2
|
|
286
|
+
const a = getEncoderDataAccessor(e.x);
|
|
287
|
+
const a2 = getEncoderDataAccessor(e.x2);
|
|
288
|
+
if (!a || !a2) {
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
299
291
|
// TODO: Binary search
|
|
300
292
|
return data.find((d) => x >= a(d) && x < a2(d));
|
|
301
293
|
}
|
package/dist/src/marks/rule.d.ts
CHANGED
|
@@ -1,12 +1,17 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @extends {Mark<import("../spec/mark.js").RuleProps>}
|
|
2
|
+
* @extends {Mark<import("../spec/mark.js").RuleProps | import("../spec/mark.js").TickProps>}
|
|
3
3
|
*/
|
|
4
|
-
export default class RuleMark extends Mark<import("../spec/mark.js").RuleProps> {
|
|
4
|
+
export default class RuleMark extends Mark<import("../spec/mark.js").RuleProps | import("../spec/mark.js").TickProps> {
|
|
5
5
|
/**
|
|
6
6
|
* @param {import("../view/unitView.js").default} unitView
|
|
7
7
|
*/
|
|
8
8
|
constructor(unitView: import("../view/unitView.js").default);
|
|
9
9
|
dashTextureSize: number;
|
|
10
|
+
/**
|
|
11
|
+
* @param {import("../spec/channel.js").Encoding} encoding
|
|
12
|
+
* @returns {import("../spec/channel.js").Encoding}
|
|
13
|
+
*/
|
|
14
|
+
fixTickEncoding(encoding: import("../spec/channel.js").Encoding): import("../spec/channel.js").Encoding;
|
|
10
15
|
dashTexture: WebGLTexture;
|
|
11
16
|
}
|
|
12
17
|
import Mark from "./mark.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/marks/rule.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"rule.d.ts","sourceRoot":"","sources":["../../../src/marks/rule.js"],"names":[],"mappings":"AAiBA;;GAEG;AACH;IACI;;OAEG;IACH,sBAFW,OAAO,qBAAqB,EAAE,OAAO,EAM/C;IADG,wBAAwB;IAyF5B;;;OAGG;IACH,0BAHW,OAAO,oBAAoB,EAAE,QAAQ,GACnC,OAAO,oBAAoB,EAAE,QAAQ,CAqBjD;IAOG,0BAQE;CA+FT;iBAzPgB,WAAW"}
|