@genome-spy/core 0.73.0 → 0.75.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/AbortablePromiseCache-3gHJdF3E.js +96 -0
- package/dist/bundle/browser-BTgw5ieH.js +126 -0
- package/dist/bundle/chunk-DmhlhrBa.js +11 -0
- package/dist/bundle/esm-BDFRLEuD.js +1248 -0
- package/dist/bundle/esm-BygJiwh0.js +573 -0
- package/dist/bundle/esm-CGX-qz1d.js +155 -0
- package/dist/bundle/esm-CgfVIRJ-.js +121 -0
- package/dist/bundle/esm-CuMSzCHy.js +298 -0
- package/dist/bundle/esm-DMXpJXM4.js +369 -0
- package/dist/bundle/esm-DQiq2Zhd.js +1426 -0
- package/dist/bundle/esm-DtE8VqAv.js +1015 -0
- package/dist/bundle/esm-sIoQYZ21.js +461 -0
- package/dist/bundle/index.es.js +21266 -25938
- package/dist/bundle/index.js +367 -383
- package/dist/bundle/parquetRead-DG_-F5j5.js +1609 -0
- package/dist/schema.json +13421 -7210
- package/dist/src/config/axisConfig.d.ts +16 -0
- package/dist/src/config/axisConfig.d.ts.map +1 -0
- package/dist/src/config/axisConfig.js +84 -0
- package/dist/src/config/defaultConfig.d.ts +3 -0
- package/dist/src/config/defaultConfig.d.ts.map +1 -0
- package/dist/src/config/defaultConfig.js +38 -0
- package/dist/src/config/defaults/axisDefaults.d.ts +5 -0
- package/dist/src/config/defaults/axisDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/axisDefaults.js +72 -0
- package/dist/src/config/defaults/markDefaults.d.ts +15 -0
- package/dist/src/config/defaults/markDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/markDefaults.js +121 -0
- package/dist/src/config/defaults/scaleDefaults.d.ts +5 -0
- package/dist/src/config/defaults/scaleDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/scaleDefaults.js +18 -0
- package/dist/src/config/defaults/titleDefaults.d.ts +5 -0
- package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/titleDefaults.js +47 -0
- package/dist/src/config/defaults/viewDefaults.d.ts +3 -0
- package/dist/src/config/defaults/viewDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/viewDefaults.js +2 -0
- package/dist/src/config/markConfig.d.ts +8 -0
- package/dist/src/config/markConfig.d.ts.map +1 -0
- package/dist/src/config/markConfig.js +27 -0
- package/dist/src/config/mergeConfig.d.ts +8 -0
- package/dist/src/config/mergeConfig.d.ts.map +1 -0
- package/dist/src/config/mergeConfig.js +81 -0
- package/dist/src/config/resolveConfig.d.ts +22 -0
- package/dist/src/config/resolveConfig.d.ts.map +1 -0
- package/dist/src/config/resolveConfig.js +32 -0
- package/dist/src/config/scaleConfig.d.ts +40 -0
- package/dist/src/config/scaleConfig.d.ts.map +1 -0
- package/dist/src/config/scaleConfig.js +220 -0
- package/dist/src/config/styleUtils.d.ts +6 -0
- package/dist/src/config/styleUtils.d.ts.map +1 -0
- package/dist/src/config/styleUtils.js +10 -0
- package/dist/src/config/themes.d.ts +15 -0
- package/dist/src/config/themes.d.ts.map +1 -0
- package/dist/src/config/themes.js +293 -0
- package/dist/src/config/titleConfig.d.ts +12 -0
- package/dist/src/config/titleConfig.d.ts.map +1 -0
- package/dist/src/config/titleConfig.js +42 -0
- package/dist/src/config/viewConfig.d.ts +7 -0
- package/dist/src/config/viewConfig.d.ts.map +1 -0
- package/dist/src/config/viewConfig.js +29 -0
- package/dist/src/data/flowNode.d.ts +22 -1
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +37 -1
- package/dist/src/data/formats/bed.d.ts.map +1 -1
- package/dist/src/data/formats/bed.js +6 -1
- package/dist/src/data/formats/bedpe.d.ts.map +1 -1
- package/dist/src/data/formats/bedpe.js +4 -0
- package/dist/src/data/formats/fasta.d.ts.map +1 -1
- package/dist/src/data/formats/fasta.js +4 -0
- package/dist/src/data/formats/parquet.d.ts.map +1 -1
- package/dist/src/data/formats/parquet.js +4 -0
- package/dist/src/data/sources/dataSourceFactory.d.ts +2 -13
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
- package/dist/src/data/sources/dataSourceFactory.js +5 -141
- package/dist/src/data/sources/dataUtils.d.ts +25 -0
- package/dist/src/data/sources/dataUtils.d.ts.map +1 -1
- package/dist/src/data/sources/dataUtils.js +23 -0
- package/dist/src/data/sources/inlineSource.js +2 -2
- package/dist/src/data/sources/lazy/axisGenomeSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisGenomeSource.js +11 -0
- package/dist/src/data/sources/lazy/axisTickSource.d.ts +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/axisTickSource.js +19 -8
- package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bamSource.js +11 -0
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +12 -1
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +11 -0
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +12 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +11 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts +27 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/lazyDataSourceRegistry.js +65 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts +2 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/registerBuiltInLazySources.js +8 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +11 -2
- package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/vcfSource.js +11 -0
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +13 -5
- package/dist/src/data/transforms/aggregate.d.ts +1 -0
- package/dist/src/data/transforms/aggregate.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregate.js +30 -8
- package/dist/src/data/transforms/aggregateOps.d.ts.map +1 -1
- package/dist/src/data/transforms/aggregateOps.js +12 -1
- package/dist/src/data/transforms/coverage.js +2 -2
- package/dist/src/data/transforms/filter.js +1 -1
- package/dist/src/data/transforms/filterScoredLabels.d.ts +6 -0
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +9 -0
- package/dist/src/data/transforms/measureText.d.ts +1 -0
- package/dist/src/data/transforms/measureText.d.ts.map +1 -1
- package/dist/src/data/transforms/measureText.js +14 -5
- package/dist/src/data/transforms/pileup.d.ts.map +1 -1
- package/dist/src/data/transforms/pileup.js +1 -2
- package/dist/src/data/transforms/regexFold.d.ts.map +1 -1
- package/dist/src/data/transforms/regexFold.js +0 -1
- package/dist/src/embedFactory.d.ts +13 -0
- package/dist/src/embedFactory.d.ts.map +1 -0
- package/dist/src/embedFactory.js +127 -0
- package/dist/src/encoder/accessor.d.ts +3 -12
- package/dist/src/encoder/accessor.d.ts.map +1 -1
- package/dist/src/encoder/accessor.js +10 -65
- package/dist/src/encoder/encoder.d.ts +51 -8
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +179 -55
- package/dist/src/fonts/bmFontManager.js +1 -1
- package/dist/src/full.d.ts +2 -0
- package/dist/src/full.d.ts.map +1 -0
- package/dist/src/full.js +2 -0
- package/dist/src/genome/genome.d.ts +8 -0
- package/dist/src/genome/genome.d.ts.map +1 -1
- package/dist/src/genome/genome.js +16 -2
- package/dist/src/genome/genomeStore.js +1 -1
- package/dist/src/genome/rootGenomeConfig.d.ts.map +1 -1
- package/dist/src/genome/rootGenomeConfig.js +6 -2
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +31 -7
- package/dist/src/genomeSpy/cursorManager.d.ts +69 -0
- package/dist/src/genomeSpy/cursorManager.d.ts.map +1 -0
- package/dist/src/genomeSpy/cursorManager.js +131 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts +113 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -0
- package/dist/src/genomeSpy/headlessBootstrap.js +246 -0
- package/dist/src/genomeSpy/interactionController.d.ts +5 -0
- package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
- package/dist/src/genomeSpy/interactionController.js +292 -59
- package/dist/src/genomeSpy/interactionDispatcher.d.ts +50 -0
- package/dist/src/genomeSpy/interactionDispatcher.d.ts.map +1 -0
- package/dist/src/genomeSpy/interactionDispatcher.js +203 -0
- package/dist/src/genomeSpy/viewContextFactory.d.ts +4 -2
- package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewContextFactory.js +12 -4
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewDataInit.js +7 -3
- package/dist/src/genomeSpy.d.ts +1 -124
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +7 -688
- package/dist/src/genomeSpyBase.d.ts +133 -0
- package/dist/src/genomeSpyBase.d.ts.map +1 -0
- package/dist/src/genomeSpyBase.js +719 -0
- package/dist/src/gl/arrayBuilder.d.ts.map +1 -1
- package/dist/src/gl/arrayBuilder.js +0 -3
- package/dist/src/gl/colorUtils.d.ts.map +1 -1
- package/dist/src/gl/colorUtils.js +3 -0
- package/dist/src/gl/dataToVertices.d.ts +12 -14
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +121 -95
- package/dist/src/gl/glslScaleGenerator.d.ts +5 -2
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +15 -15
- package/dist/src/gl/vertexRangeIndex.d.ts +23 -0
- package/dist/src/gl/vertexRangeIndex.d.ts.map +1 -0
- package/dist/src/gl/vertexRangeIndex.js +150 -0
- package/dist/src/index.d.ts +3 -9
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -114
- package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +4462 -0
- package/dist/src/marks/link.d.ts.map +1 -1
- package/dist/src/marks/link.js +0 -23
- package/dist/src/marks/mark.d.ts +8 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +61 -20
- package/dist/src/marks/markUtils.d.ts +18 -1
- package/dist/src/marks/markUtils.d.ts.map +1 -1
- package/dist/src/marks/markUtils.js +52 -4
- package/dist/src/marks/point.d.ts.map +1 -1
- package/dist/src/marks/point.js +6 -26
- package/dist/src/marks/rect.d.ts.map +1 -1
- package/dist/src/marks/rect.js +13 -21
- package/dist/src/marks/rule.d.ts +7 -2
- package/dist/src/marks/rule.d.ts.map +1 -1
- package/dist/src/marks/rule.js +125 -16
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +5 -47
- package/dist/src/minimal.d.ts +8 -0
- package/dist/src/minimal.d.ts.map +1 -0
- package/dist/src/minimal.js +21 -0
- package/dist/src/paramRuntime/expressionCompiler.d.ts +2 -1
- package/dist/src/paramRuntime/expressionCompiler.d.ts.map +1 -1
- package/dist/src/paramRuntime/expressionCompiler.js +3 -2
- package/dist/src/paramRuntime/expressionRef.d.ts +4 -1
- package/dist/src/paramRuntime/expressionRef.d.ts.map +1 -1
- package/dist/src/paramRuntime/expressionRef.js +10 -3
- package/dist/src/paramRuntime/graphRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/graphRuntime.js +15 -6
- package/dist/src/paramRuntime/paramRuntime.d.ts +8 -2
- package/dist/src/paramRuntime/paramRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/paramRuntime.js +10 -5
- package/dist/src/paramRuntime/types.d.ts +1 -0
- package/dist/src/paramRuntime/types.d.ts.map +1 -1
- package/dist/src/paramRuntime/types.js +1 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts +24 -4
- package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/viewParamRuntime.js +52 -6
- package/dist/src/scale/scale.d.ts.map +1 -1
- package/dist/src/scale/scale.js +14 -7
- package/dist/src/scales/axisResolution.d.ts.map +1 -1
- package/dist/src/scales/axisResolution.js +9 -5
- package/dist/src/scales/domainPlanner.d.ts +82 -16
- package/dist/src/scales/domainPlanner.d.ts.map +1 -1
- package/dist/src/scales/domainPlanner.js +364 -131
- package/dist/src/scales/indexLikeDomainUtils.d.ts +29 -0
- package/dist/src/scales/indexLikeDomainUtils.d.ts.map +1 -0
- package/dist/src/scales/indexLikeDomainUtils.js +67 -0
- package/dist/src/scales/resolutionMemberOrder.d.ts +15 -0
- package/dist/src/scales/resolutionMemberOrder.d.ts.map +1 -0
- package/dist/src/scales/resolutionMemberOrder.js +22 -0
- package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
- package/dist/src/scales/scaleInstanceManager.js +7 -2
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
- package/dist/src/scales/scaleInteractionController.js +43 -4
- package/dist/src/scales/scalePropsResolver.d.ts +5 -3
- package/dist/src/scales/scalePropsResolver.d.ts.map +1 -1
- package/dist/src/scales/scalePropsResolver.js +108 -8
- package/dist/src/scales/scaleResolution.d.ts +35 -1
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +381 -66
- package/dist/src/scales/scaleResolutionTestUtils.d.ts.map +1 -1
- package/dist/src/scales/scaleResolutionTestUtils.js +6 -2
- package/dist/src/scales/scaleRules.d.ts.map +1 -1
- package/dist/src/scales/scaleRules.js +16 -2
- package/dist/src/scales/selectionDomainUtils.d.ts +30 -0
- package/dist/src/scales/selectionDomainUtils.d.ts.map +1 -1
- package/dist/src/scales/selectionDomainUtils.js +116 -1
- package/dist/src/screenshotExport.d.ts +23 -0
- package/dist/src/screenshotExport.d.ts.map +1 -0
- package/dist/src/screenshotExport.js +44 -0
- package/dist/src/screenshotHarness.d.ts.map +1 -1
- package/dist/src/screenshotHarness.js +26 -25
- package/dist/src/spec/axis.d.ts +43 -32
- package/dist/src/spec/channel.d.ts +19 -13
- package/dist/src/spec/config.d.ts +264 -0
- package/dist/src/spec/data.d.ts +19 -0
- package/dist/src/spec/decoration.d.ts +51 -0
- package/dist/src/spec/exampleFiles.d.ts +12 -0
- package/dist/src/spec/exampleFiles.d.ts.map +1 -0
- package/dist/src/spec/exampleFiles.js +52 -0
- package/dist/src/spec/font.d.ts +1 -1
- package/dist/src/spec/mark.d.ts +97 -13
- package/dist/src/spec/parameter.d.ts +30 -10
- package/dist/src/spec/root.d.ts +14 -0
- package/dist/src/spec/scale.d.ts +31 -14
- package/dist/src/spec/title.d.ts +13 -2
- package/dist/src/spec/tooltip.d.ts +1 -1
- package/dist/src/spec/transform.d.ts +39 -4
- package/dist/src/spec/view.d.ts +67 -19
- package/dist/src/styles/genome-spy.css +55 -55
- package/dist/src/styles/genome-spy.css.d.ts +1 -1
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
- package/dist/src/styles/genome-spy.css.js +23 -22
- package/dist/src/testSetup.d.ts +2 -0
- package/dist/src/testSetup.d.ts.map +1 -0
- package/dist/src/testSetup.js +5 -0
- package/dist/src/tooltip/dataTooltipHandler.js +8 -2
- package/dist/src/tooltip/tooltipContext.d.ts.map +1 -1
- package/dist/src/tooltip/tooltipContext.js +3 -2
- package/dist/src/types/embedApi.d.ts +7 -0
- package/dist/src/types/encoder.d.ts +17 -15
- package/dist/src/types/scaleResolutionApi.d.ts +20 -0
- package/dist/src/types/viewContext.d.ts +23 -1
- package/dist/src/utils/expression.d.ts +18 -10
- package/dist/src/utils/expression.d.ts.map +1 -1
- package/dist/src/utils/expression.js +354 -19
- package/dist/src/utils/field.d.ts.map +1 -1
- package/dist/src/utils/field.js +0 -1
- package/dist/src/utils/inertia.d.ts.map +1 -1
- package/dist/src/utils/inertia.js +0 -1
- package/dist/src/utils/inputBinding.d.ts +1 -1
- package/dist/src/utils/interaction.d.ts +109 -0
- package/dist/src/utils/interaction.d.ts.map +1 -0
- package/dist/src/utils/interaction.js +200 -0
- package/dist/src/utils/interactionEvent.d.ts +21 -42
- package/dist/src/utils/interactionEvent.d.ts.map +1 -1
- package/dist/src/utils/interactionEvent.js +43 -66
- package/dist/src/utils/kWayMerge.js +1 -1
- package/dist/src/utils/mergeObjects.d.ts.map +1 -1
- package/dist/src/utils/mergeObjects.js +0 -2
- package/dist/src/utils/radixSort.d.ts.map +1 -1
- package/dist/src/utils/radixSort.js +0 -2
- package/dist/src/utils/throttle.d.ts.map +1 -1
- package/dist/src/utils/throttle.js +0 -2
- package/dist/src/utils/ui/tooltip.d.ts +1 -0
- package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
- package/dist/src/utils/ui/tooltip.js +1 -0
- package/dist/src/utils/url.js +1 -1
- package/dist/src/view/axisGridView.d.ts +1 -1
- package/dist/src/view/axisGridView.d.ts.map +1 -1
- package/dist/src/view/axisGridView.js +2 -47
- package/dist/src/view/axisView.d.ts +2 -3
- package/dist/src/view/axisView.d.ts.map +1 -1
- package/dist/src/view/axisView.js +251 -106
- package/dist/src/view/concatView.d.ts +2 -1
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +4 -2
- package/dist/src/view/containerMutationHelper.d.ts +3 -0
- package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
- package/dist/src/view/containerMutationHelper.js +4 -1
- package/dist/src/view/facetView.d.ts +1 -1
- package/dist/src/view/facetView.js +3 -3
- package/dist/src/view/flowBuilder.d.ts +1 -1
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +13 -9
- package/dist/src/view/gridView/gridChild.d.ts +6 -0
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +72 -43
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +255 -101
- package/dist/src/view/gridView/keyboardZoomController.d.ts +2 -2
- package/dist/src/view/gridView/keyboardZoomController.d.ts.map +1 -1
- package/dist/src/view/gridView/keyboardZoomController.js +1 -1
- package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
- package/dist/src/view/gridView/scrollbar.js +4 -2
- package/dist/src/view/gridView/selectionRect.d.ts +4 -0
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +20 -1
- package/dist/src/view/gridView/separatorView.d.ts +1 -0
- package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
- package/dist/src/view/gridView/separatorView.js +9 -0
- package/dist/src/view/interactionRouting.d.ts +20 -0
- package/dist/src/view/interactionRouting.d.ts.map +1 -0
- package/dist/src/view/interactionRouting.js +53 -0
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +12 -9
- package/dist/src/view/layout/grid.js +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +0 -2
- package/dist/src/view/resolutionPlanner.d.ts +9 -0
- package/dist/src/view/resolutionPlanner.d.ts.map +1 -0
- package/dist/src/view/resolutionPlanner.js +302 -0
- package/dist/src/view/testUtils.d.ts +17 -3
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +62 -69
- package/dist/src/view/title.d.ts +8 -1
- package/dist/src/view/title.d.ts.map +1 -1
- package/dist/src/view/title.js +66 -76
- package/dist/src/view/unitView.d.ts +1 -1
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +72 -169
- package/dist/src/view/view.d.ts +76 -30
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +138 -48
- package/dist/src/view/viewFactory.d.ts +11 -3
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +37 -11
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +41 -5
- package/dist/src/view/zoom.d.ts +2 -2
- package/dist/src/view/zoom.d.ts.map +1 -1
- package/dist/src/view/zoom.js +21 -23
- package/package.json +18 -10
- package/dist/bundle/AbortablePromiseCache-Dj0vzLnp.js +0 -149
- package/dist/bundle/browser-0iNU5Wit.js +0 -138
- package/dist/bundle/index-BYsZN7b0.js +0 -1597
- package/dist/bundle/index-C3kClAEN.js +0 -1771
- package/dist/bundle/index-C7wOh6y1.js +0 -657
- package/dist/bundle/index-CRaQAuki.js +0 -326
- package/dist/bundle/index-D9v1PCj9.js +0 -507
- package/dist/bundle/index-GDOuv_D5.js +0 -266
- package/dist/bundle/index-Gt44EOIH.js +0 -628
- package/dist/bundle/inflate-GtwLkvSP.js +0 -1048
- package/dist/bundle/parquetRead-BnAGCa4_.js +0 -1663
- package/dist/bundle/unzip-Bac01w6X.js +0 -1492
- package/dist/src/config/scaleDefaults.d.ts +0 -8
- package/dist/src/config/scaleDefaults.d.ts.map +0 -1
- package/dist/src/config/scaleDefaults.js +0 -45
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"arrayBuilder.d.ts","sourceRoot":"","sources":["../../../src/gl/arrayBuilder.js"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH;IAKI;;;OAGG;IACH,kBAFW,MAAM,EAehB;IAZG,aAAgB;IAEhB,mJAAmJ;IACnJ;;kBADkC,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY;2BAAiB,MAAM;sBAAY,MAAM;;MAC7H;IAEhB,kCAAkC;IAClC,SADW,CAAC,MAAW,IAAI,CAAC,EAAE,CACb;IAEjB,qCAAqC;IACrC,cADW,CAAC,CAAS,IAAG,EAAH,GAAG,KAAE,IAAI,CAAC,EAAE,CACX;IAEtB,oBAAoB;IAGxB,kBAOC;IAED;;;;OAIG;IACH,wBAHW,MAAM,YACN,iBAAiB,QAe3B;IAED;;;;;;;OAOG;IACH,6BANW,MAAM,iBACN,MAAM,oBACN,OAAO,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,YAAY,mBACrG,MAAM,EAAE,GACP,CAAS,IAAe,EAAf,MAAM,GAAC,MAAM,EAAE,QAAC,
|
|
1
|
+
{"version":3,"file":"arrayBuilder.d.ts","sourceRoot":"","sources":["../../../src/gl/arrayBuilder.js"],"names":[],"mappings":"AAQA;;;;;;;;GAQG;AACH;IAKI;;;OAGG;IACH,kBAFW,MAAM,EAehB;IAZG,aAAgB;IAEhB,mJAAmJ;IACnJ;;kBADkC,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY;2BAAiB,MAAM;sBAAY,MAAM;;MAC7H;IAEhB,kCAAkC;IAClC,SADW,CAAC,MAAW,IAAI,CAAC,EAAE,CACb;IAEjB,qCAAqC;IACrC,cADW,CAAC,CAAS,IAAG,EAAH,GAAG,KAAE,IAAI,CAAC,EAAE,CACX;IAEtB,oBAAoB;IAGxB,kBAOC;IAED;;;;OAIG;IACH,wBAHW,MAAM,YACN,iBAAiB,QAe3B;IAED;;;;;;;OAOG;IACH,6BANW,MAAM,iBACN,MAAM,oBACN,OAAO,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,YAAY,mBACrG,MAAM,EAAE,GACP,CAAS,IAAe,EAAf,MAAM,GAAC,MAAM,EAAE,QAAC,CAmFpC;IAED,gBAEC;IAED;;OAEG;IACH,uBAFW,MAAM,QAIhB;IAqDD;;;OAGG;IACH,qBAFW,MAAM,QAKhB;;CACJ;;;;;;;;;OA3NS,CAAS,IAAM,EAAN,MAAM,KAAE,GAAG;;;;qBACpB,MAAM,EAAE;oBACR,MAAM;;;;sBACN,OAAO,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,WAAW,GAAG,OAAO,UAAU,GAAG,OAAO,YAAY"}
|
|
@@ -91,7 +91,6 @@ export default class ArrayBuilder {
|
|
|
91
91
|
let updater;
|
|
92
92
|
let i = 0;
|
|
93
93
|
|
|
94
|
-
// eslint-disable-next-line new-cap
|
|
95
94
|
const array = new targetArrayType(this.size * numComponents);
|
|
96
95
|
|
|
97
96
|
this.arrays[attributeName] = {
|
|
@@ -178,7 +177,6 @@ export default class ArrayBuilder {
|
|
|
178
177
|
.join("\n");
|
|
179
178
|
const pushs = this.pushers.map((_v, i) => ` p${i}();`).join("\n");
|
|
180
179
|
|
|
181
|
-
// eslint-disable-next-line no-new-func
|
|
182
180
|
this.pushAll = new Function(
|
|
183
181
|
"that",
|
|
184
182
|
`${preps}
|
|
@@ -206,7 +204,6 @@ ${pushs}
|
|
|
206
204
|
.map((_v, i) => ` u${i}(datum);`)
|
|
207
205
|
.join("\n");
|
|
208
206
|
|
|
209
|
-
// eslint-disable-next-line no-new-func
|
|
210
207
|
this.updateFromDatum = new Function(
|
|
211
208
|
"that",
|
|
212
209
|
"datum",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"colorUtils.d.ts","sourceRoot":"","sources":["../../../src/gl/colorUtils.js"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,kDANW,MAAM,GAAG,OAAO,kBAAkB,EAAE,YAAY,MAChD,sBAAsB,UACtB,MAAM,oBACN,YAAY,YACZ,OAAO,gBAgDjB;AAED;;;;;GAKG;AACH,uDALW,MAAM,EAAE,qBACR,OAAO,kBAAkB,EAAE,gBAAgB,GAAG,OAAO,kBAAkB,EAAE,sBAAsB,MAC/F,sBAAsB,oBACtB,YAAY,gBA6BtB;AAED;;;;;;;;GAQG;AACH,6CALW,MAAM,EAAE,MACR,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBAqBtB;AAED;;;;;;;GAOG;AACH,mDALW,MAAM,EAAE,MACR,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBActB;AAyDD;;GAEG;AACH,uCAFW,MAAM,
|
|
1
|
+
{"version":3,"file":"colorUtils.d.ts","sourceRoot":"","sources":["../../../src/gl/colorUtils.js"],"names":[],"mappings":"AAOA;;;;;;GAMG;AACH,kDANW,MAAM,GAAG,OAAO,kBAAkB,EAAE,YAAY,MAChD,sBAAsB,UACtB,MAAM,oBACN,YAAY,YACZ,OAAO,gBAgDjB;AAED;;;;;GAKG;AACH,uDALW,MAAM,EAAE,qBACR,OAAO,kBAAkB,EAAE,gBAAgB,GAAG,OAAO,kBAAkB,EAAE,sBAAsB,MAC/F,sBAAsB,oBACtB,YAAY,gBA6BtB;AAED;;;;;;;;GAQG;AACH,6CALW,MAAM,EAAE,MACR,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBAqBtB;AAED;;;;;;;GAOG;AACH,mDALW,MAAM,EAAE,MACR,sBAAsB,UACtB,MAAM,oBACN,YAAY,gBActB;AAyDD;;GAEG;AACH,uCAFW,MAAM,YAQhB"}
|
|
@@ -206,6 +206,9 @@ function colorArrayToTextureData(scheme, count) {
|
|
|
206
206
|
* @param {string} color
|
|
207
207
|
*/
|
|
208
208
|
export function cssColorToArray(color) {
|
|
209
|
+
// TODO: Support CSS "transparent" like Vega/Vega-Lite do. Currently
|
|
210
|
+
// d3-color returns NaN RGB with zero opacity, but GenomeSpy color channels
|
|
211
|
+
// are RGB-only and cannot carry alpha in this conversion path.
|
|
209
212
|
const rgb = d3color(color).rgb();
|
|
210
213
|
return [rgb.r, rgb.g, rgb.b].map((x) => x / 255);
|
|
211
214
|
}
|
|
@@ -25,6 +25,13 @@ export class GeometryBuilder {
|
|
|
25
25
|
variableEncoders: Record<import("../spec/channel.js").Channel, import("../types/encoder.js").Encoder>;
|
|
26
26
|
allocatedVertices: number;
|
|
27
27
|
variableBuilder: ArrayBuilder;
|
|
28
|
+
/** @type {Partial<Record<import("../spec/channel.js").Channel, string>>} */
|
|
29
|
+
attributeNames: Partial<Record<import("../spec/channel.js").Channel, string>>;
|
|
30
|
+
xIndexConfig: {
|
|
31
|
+
domain: [number, number];
|
|
32
|
+
xAttributeName: string;
|
|
33
|
+
x2AttributeName: string;
|
|
34
|
+
};
|
|
28
35
|
lastOffset: number;
|
|
29
36
|
/** @type {Map<any, RangeEntry>} keep track of facet locations within the vertex array */
|
|
30
37
|
rangeMap: Map<any, RangeEntry>;
|
|
@@ -44,22 +51,13 @@ export class GeometryBuilder {
|
|
|
44
51
|
*/
|
|
45
52
|
addBatch(key: any, data: object[], lo?: number, hi?: number): void;
|
|
46
53
|
/**
|
|
47
|
-
*
|
|
48
|
-
* @param {number} [lo]
|
|
49
|
-
* @param {number} [hi]
|
|
50
|
-
*/
|
|
51
|
-
prepareXIndexer(data: import("../data/flowNode.js").Data, lo?: number, hi?: number): void;
|
|
52
|
-
/**
|
|
53
|
-
* Add the datum to an index, which allows for efficient rendering of ranges
|
|
54
|
-
* on the x axis. Must be called after a datum has been pushed to the ArrayBuilder.
|
|
54
|
+
* Builds the x-domain lookup for the current batch if x indexing is enabled.
|
|
55
55
|
*
|
|
56
|
-
* @param {
|
|
56
|
+
* @param {number} startVertexIndex
|
|
57
|
+
* @param {number} endVertexIndex
|
|
58
|
+
* @returns {import("../utils/binnedIndex.js").Lookup | undefined}
|
|
57
59
|
*/
|
|
58
|
-
|
|
59
|
-
xIndexer: {
|
|
60
|
-
(datum: import("../data/flowNode.js").Datum, startVertexIndex: number, endVertexIndex: number): void;
|
|
61
|
-
getIndex: () => import("../utils/binnedIndex.js").Lookup;
|
|
62
|
-
};
|
|
60
|
+
createXIndex(startVertexIndex: number, endVertexIndex: number): import("../utils/binnedIndex.js").Lookup | undefined;
|
|
63
61
|
toArrays(): {
|
|
64
62
|
/** @type {Record<string, {data: Uint16Array | Int16Array | Uint32Array | Int32Array | Float32Array, numComponents: number, divisor?: number}>} */
|
|
65
63
|
arrays: Record<string, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataToVertices.d.ts","sourceRoot":"","sources":["../../../src/gl/dataToVertices.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"dataToVertices.d.ts","sourceRoot":"","sources":["../../../src/gl/dataToVertices.js"],"names":[],"mappings":"AAiBA;;;;;GAKG;AACH;IACI;;;OAGG;IAEH;;;;;;OAMG;IACH,mDALG;QAAsE,QAAQ,EAAtE,MAAM,CAAC,OAAO,oBAAoB,EAAE,OAAO,wCAAU;QACnC,UAAU,GAA5B,MAAM,EAAE;QACQ,WAAW,GAA3B,MAAM;KAEhB,EA0IA;IAxIG,8FAAwB;IAIxB,sGAQK;IAQL,0BAAoC;IAEpC,8BAAoD;IACpD,4EAA4E;IAC5E,gBADW,OAAO,CAAC,MAAM,CAAC,OAAO,oBAAoB,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,CAChD;IAgGpB;gBACuB,CAAC,MAAM,EAAE,MAAM,CAAC;;;MAMtC;IAKL,mBAAmB;IAEnB,yFAAyF;IACzF,UADW,GAAG,CAAC,GAAG,EAAE,UAAU,CAAC,CACkB;IAGrD;;;;OAIG;IACH,mBAFW,GAAG,QAcb;IAED;;OAEG;IACH,oBAFW,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,CAAC,QAM5B;IAED;;;OAGG;IACH,cAHW,GAAG,QACH,MAAM,EAAE,kCASlB;IAED;;;;;;OAMG;IACH,+BAJW,MAAM,kBACN,MAAM,GACJ,OAAO,yBAAyB,EAAE,MAAM,GAAG,SAAS,CA2ChE;IAED;QAEQ,kJAAkJ;gBAAvI,MAAM,CAAC,MAAM,EAAE;YAAC,IAAI,EAAE,WAAW,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,YAAY,CAAC;YAAC,aAAa,EAAE,MAAM,CAAC;YAAC,OAAO,CAAC,EAAE,MAAM,CAAA;SAAC,CAAC;QAE9I,8BAA8B;;QAE9B,8CAA8C;;;MAIrD;CACJ;AAED;IACI;;;;;;OAMG;IACH,gDAJG;QAAwC,QAAQ,EAAxC,MAAM,CAAC,MAAM,wCAAU;QACN,UAAU,EAA3B,MAAM,EAAE;QACQ,QAAQ,GAAxB,MAAM;KAChB,EA8BA;IAnBG,qBAkBW;CA0BlB;AAED;IACI;;;;;;;;;OASG;IACH,sFAPG;QAAwC,QAAQ,EAAxC,MAAM,CAAC,MAAM,wCAAU;QACN,UAAU,EAA3B,MAAM,EAAE;QACQ,qBAAqB,GAArC,MAAM;QAEY,YAAY,GAA9B,MAAM,EAAE;QACQ,QAAQ,GAAxB,MAAM;KAChB,EAuBA;IARG,uBAAgC;IAEhC,8BAA8D;IAE9D,6CAA+D;IAC/D,4CAA6D;CAyCpE;AAED;IACI;;;;;;OAMG;IACH,gDAJG;QAAwC,QAAQ,EAAxC,MAAM,CAAC,MAAM,wCAAU;QACN,UAAU,EAA3B,MAAM,EAAE;QACQ,QAAQ,GAAxB,MAAM;KAChB,EAQA;CAeJ;AAED;IACI;;;;;OAKG;IACH,gDAJG;QAAwC,QAAQ,EAAxC,MAAM,CAAC,MAAM,wCAAU;QACN,UAAU,EAA3B,MAAM,EAAE;QACQ,QAAQ,GAAxB,MAAM;KAChB,EAQA;CA0BJ;AAED;IACI;;;;;;;;;OASG;IACH,+EAPG;QAAwC,QAAQ,EAAxC,MAAM,CAAC,MAAM,wCAAU;QACN,UAAU,EAA3B,MAAM,EAAE;QACkD,WAAW,EAArE,OAAO,2BAA2B,EAAE,aAAa;QACrB,UAAU,EAAtC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;QACH,aAAa,GAA7B,MAAM;QACW,WAAW,GAA5B,OAAO;KAAsB,EA6CvC;IA9BG,4DAA2B;IAC3B,2DAA0B;IAE1B,gCAA4B;IAO5B,qCAAqC;IACrC,cADW,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,CAMf;IAElB,oDAGC;IACD,qDAGC;IAED,8CAAiE;CA4IxE;;;;;;;;YAtpBS,MAAM;;;;WACN,MAAM;YACN,OAAO,yBAAyB,EAAE,MAAM;;yBAlBzB,mBAAmB"}
|
|
@@ -3,9 +3,9 @@ import { format } from "d3-format";
|
|
|
3
3
|
import { isString } from "vega-util";
|
|
4
4
|
import ArrayBuilder from "./arrayBuilder.js";
|
|
5
5
|
import { SDF_PADDING } from "../fonts/bmFontMetrics.js";
|
|
6
|
-
import {
|
|
7
|
-
import { isValueDef } from "../encoder/encoder.js";
|
|
6
|
+
import { getEncoderDataAccessor, isValueDef } from "../encoder/encoder.js";
|
|
8
7
|
import {
|
|
8
|
+
HIGH_PRECISION_SPLIT_BASE,
|
|
9
9
|
dedupeEncodingFields,
|
|
10
10
|
getAttributeAndArrayTypes,
|
|
11
11
|
makeAttributeName,
|
|
@@ -13,6 +13,7 @@ import {
|
|
|
13
13
|
} from "./glslScaleGenerator.js";
|
|
14
14
|
import { isContinuous } from "vega-scale";
|
|
15
15
|
import createIndexer from "../utils/indexer.js";
|
|
16
|
+
import { createVertexRangeIndexer } from "./vertexRangeIndex.js";
|
|
16
17
|
|
|
17
18
|
/**
|
|
18
19
|
* @typedef {object} RangeEntry Represents a location of a vertex subset
|
|
@@ -57,10 +58,12 @@ export class GeometryBuilder {
|
|
|
57
58
|
this.allocatedVertices = numVertices;
|
|
58
59
|
|
|
59
60
|
this.variableBuilder = new ArrayBuilder(numVertices);
|
|
61
|
+
/** @type {Partial<Record<import("../spec/channel.js").Channel, string>>} */
|
|
62
|
+
this.attributeNames = {};
|
|
60
63
|
|
|
61
64
|
// Create converters and updaters for all variable channels.
|
|
62
65
|
for (const [channel, ce] of Object.entries(this.variableEncoders)) {
|
|
63
|
-
const accessor = ce
|
|
66
|
+
const accessor = getEncoderDataAccessor(ce);
|
|
64
67
|
if (!accessor) {
|
|
65
68
|
continue;
|
|
66
69
|
}
|
|
@@ -71,9 +74,6 @@ export class GeometryBuilder {
|
|
|
71
74
|
const sharedChannels = dedupedEncodingFields.find((channels) =>
|
|
72
75
|
channels.find((c) => c == channel)
|
|
73
76
|
);
|
|
74
|
-
if (sharedChannels && channel != sharedChannels[0]) {
|
|
75
|
-
continue;
|
|
76
|
-
}
|
|
77
77
|
|
|
78
78
|
const numberAccessor = accessor.asNumberAccessor();
|
|
79
79
|
const scale = ce.scale;
|
|
@@ -116,6 +116,13 @@ export class GeometryBuilder {
|
|
|
116
116
|
: numberAccessor;
|
|
117
117
|
|
|
118
118
|
const attributeName = makeAttributeName(sharedChannels ?? channel);
|
|
119
|
+
for (const sharedChannel of sharedChannels ?? [channel]) {
|
|
120
|
+
this.attributeNames[sharedChannel] = attributeName;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
if (sharedChannels && channel != sharedChannels[0]) {
|
|
124
|
+
continue;
|
|
125
|
+
}
|
|
119
126
|
|
|
120
127
|
this.variableBuilder.addConverter(attributeName, {
|
|
121
128
|
f,
|
|
@@ -125,6 +132,41 @@ export class GeometryBuilder {
|
|
|
125
132
|
});
|
|
126
133
|
}
|
|
127
134
|
|
|
135
|
+
const xEncoder = this.variableEncoders.x;
|
|
136
|
+
const x2Encoder = this.variableEncoders.x2;
|
|
137
|
+
const xChannelDef =
|
|
138
|
+
/** @type {import("../spec/channel.js").Encoding["x"] | undefined} */ (
|
|
139
|
+
this.encoders.x?.channelDef
|
|
140
|
+
);
|
|
141
|
+
const xScale = xEncoder?.scale;
|
|
142
|
+
if (
|
|
143
|
+
xChannelDef?.buildIndex &&
|
|
144
|
+
xEncoder &&
|
|
145
|
+
xScale &&
|
|
146
|
+
isContinuous(xScale.type)
|
|
147
|
+
) {
|
|
148
|
+
const xAttributeName = this.attributeNames.x;
|
|
149
|
+
if (!xAttributeName) {
|
|
150
|
+
throw new Error("Missing x attribute for x indexing.");
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
const x2AttributeName =
|
|
154
|
+
x2Encoder?.scale && isContinuous(x2Encoder.scale.type)
|
|
155
|
+
? (this.attributeNames.x2 ?? xAttributeName)
|
|
156
|
+
: xAttributeName;
|
|
157
|
+
|
|
158
|
+
this.xIndexConfig = {
|
|
159
|
+
domain: /** @type {[number, number]} */ ([
|
|
160
|
+
xScale.domain()[0],
|
|
161
|
+
xScale.domain()[1],
|
|
162
|
+
]),
|
|
163
|
+
xAttributeName,
|
|
164
|
+
x2AttributeName,
|
|
165
|
+
};
|
|
166
|
+
} else {
|
|
167
|
+
this.xIndexConfig = undefined;
|
|
168
|
+
}
|
|
169
|
+
|
|
128
170
|
this.lastOffset = 0;
|
|
129
171
|
|
|
130
172
|
/** @type {Map<any, RangeEntry>} keep track of facet locations within the vertex array */
|
|
@@ -144,7 +186,7 @@ export class GeometryBuilder {
|
|
|
144
186
|
this.rangeMap.set(key, {
|
|
145
187
|
offset,
|
|
146
188
|
count: size,
|
|
147
|
-
xIndex: this.
|
|
189
|
+
xIndex: this.createXIndex(offset, index),
|
|
148
190
|
});
|
|
149
191
|
}
|
|
150
192
|
this.lastOffset = index;
|
|
@@ -164,94 +206,62 @@ export class GeometryBuilder {
|
|
|
164
206
|
* @param {object[]} data
|
|
165
207
|
*/
|
|
166
208
|
addBatch(key, data, lo = 0, hi = data.length) {
|
|
167
|
-
this.prepareXIndexer(data, lo, hi);
|
|
168
|
-
|
|
169
209
|
for (let i = lo; i < hi; i++) {
|
|
170
210
|
const d = data[i];
|
|
171
211
|
this.variableBuilder.pushFromDatum(d);
|
|
172
|
-
this.addToXIndex(d);
|
|
173
212
|
}
|
|
174
213
|
|
|
175
214
|
this.registerBatch(key);
|
|
176
215
|
}
|
|
177
216
|
|
|
178
217
|
/**
|
|
179
|
-
*
|
|
180
|
-
*
|
|
181
|
-
* @param {number}
|
|
218
|
+
* Builds the x-domain lookup for the current batch if x indexing is enabled.
|
|
219
|
+
*
|
|
220
|
+
* @param {number} startVertexIndex
|
|
221
|
+
* @param {number} endVertexIndex
|
|
222
|
+
* @returns {import("../utils/binnedIndex.js").Lookup | undefined}
|
|
182
223
|
*/
|
|
183
|
-
|
|
184
|
-
const
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
*/
|
|
188
|
-
this.addToXIndex = (datum) => {
|
|
189
|
-
// nop
|
|
190
|
-
};
|
|
191
|
-
this.xIndexer = undefined;
|
|
192
|
-
};
|
|
193
|
-
|
|
194
|
-
const channelDef = this.encoders.x?.channelDef;
|
|
195
|
-
if (
|
|
196
|
-
!("buildIndex" in channelDef) ||
|
|
197
|
-
!channelDef.buildIndex ||
|
|
198
|
-
!data.length ||
|
|
199
|
-
hi - lo < 0
|
|
200
|
-
) {
|
|
201
|
-
disable();
|
|
202
|
-
return;
|
|
224
|
+
createXIndex(startVertexIndex, endVertexIndex) {
|
|
225
|
+
const config = this.xIndexConfig;
|
|
226
|
+
if (!config) {
|
|
227
|
+
return undefined;
|
|
203
228
|
}
|
|
204
229
|
|
|
205
|
-
/**
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
// No indexer for point domains that have zero extent
|
|
221
|
-
if (dataDomain[1] > dataDomain[0]) {
|
|
222
|
-
this.xIndexer = createBinningRangeIndexer(
|
|
223
|
-
50,
|
|
224
|
-
dataDomain,
|
|
225
|
-
xa,
|
|
226
|
-
x2a
|
|
227
|
-
);
|
|
228
|
-
|
|
229
|
-
let lastVertexCount = this.variableBuilder.vertexCount;
|
|
230
|
-
|
|
231
|
-
/**
|
|
232
|
-
* @param {any} datum
|
|
233
|
-
*/
|
|
234
|
-
this.addToXIndex = (datum) => {
|
|
235
|
-
let currentVertexCount = this.variableBuilder.vertexCount;
|
|
236
|
-
this.xIndexer(datum, lastVertexCount, currentVertexCount);
|
|
237
|
-
lastVertexCount = currentVertexCount;
|
|
230
|
+
/**
|
|
231
|
+
* @param {string} attributeName
|
|
232
|
+
*/
|
|
233
|
+
const createReader = (attributeName) => {
|
|
234
|
+
const attribute = this.variableBuilder.arrays[attributeName];
|
|
235
|
+
const { data, numComponents } = attribute;
|
|
236
|
+
|
|
237
|
+
if (numComponents == 2) {
|
|
238
|
+
/** @type {(vertexIndex: number) => number} */
|
|
239
|
+
return (vertexIndex) => {
|
|
240
|
+
const base = vertexIndex * numComponents;
|
|
241
|
+
return (
|
|
242
|
+
data[base] * HIGH_PRECISION_SPLIT_BASE + data[base + 1]
|
|
243
|
+
);
|
|
238
244
|
};
|
|
239
|
-
} else {
|
|
240
|
-
disable();
|
|
241
245
|
}
|
|
242
|
-
} else {
|
|
243
|
-
disable();
|
|
244
|
-
}
|
|
245
|
-
}
|
|
246
246
|
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
247
|
+
/** @type {(vertexIndex: number) => number} */
|
|
248
|
+
return (vertexIndex) => data[vertexIndex * numComponents];
|
|
249
|
+
};
|
|
250
|
+
|
|
251
|
+
const xReader = createReader(config.xAttributeName);
|
|
252
|
+
const x2Reader =
|
|
253
|
+
config.x2AttributeName == config.xAttributeName
|
|
254
|
+
? xReader
|
|
255
|
+
: createReader(config.x2AttributeName);
|
|
256
|
+
|
|
257
|
+
return createVertexRangeIndexer(
|
|
258
|
+
50,
|
|
259
|
+
config.domain,
|
|
260
|
+
xReader,
|
|
261
|
+
x2Reader,
|
|
262
|
+
startVertexIndex,
|
|
263
|
+
endVertexIndex
|
|
264
|
+
);
|
|
255
265
|
}
|
|
256
266
|
|
|
257
267
|
toArrays() {
|
|
@@ -316,8 +326,6 @@ export class RectVertexBuilder extends GeometryBuilder {
|
|
|
316
326
|
return;
|
|
317
327
|
}
|
|
318
328
|
|
|
319
|
-
this.prepareXIndexer(data, lo, hi);
|
|
320
|
-
|
|
321
329
|
for (let i = lo; i < hi; i++) {
|
|
322
330
|
const d = data[i];
|
|
323
331
|
|
|
@@ -327,8 +335,6 @@ export class RectVertexBuilder extends GeometryBuilder {
|
|
|
327
335
|
// Six vertices per rect. The vertex shader is using gl_VertexID to
|
|
328
336
|
// determine the vertex position within the rect.
|
|
329
337
|
this.pushAllSixTimes();
|
|
330
|
-
|
|
331
|
-
this.addToXIndex(d);
|
|
332
338
|
}
|
|
333
339
|
|
|
334
340
|
this.registerBatch(key);
|
|
@@ -370,7 +376,6 @@ export class RuleVertexBuilder extends GeometryBuilder {
|
|
|
370
376
|
this.variableBuilder.configure();
|
|
371
377
|
}
|
|
372
378
|
|
|
373
|
-
/* eslint-disable complexity */
|
|
374
379
|
/**
|
|
375
380
|
*
|
|
376
381
|
* @param {any} key
|
|
@@ -379,8 +384,6 @@ export class RuleVertexBuilder extends GeometryBuilder {
|
|
|
379
384
|
addBatch(key, data, lo = 0, hi = data.length) {
|
|
380
385
|
//const [lower, upper] = this.visibleRange; // TODO
|
|
381
386
|
|
|
382
|
-
this.prepareXIndexer(data, lo, hi);
|
|
383
|
-
|
|
384
387
|
for (let i = lo; i < hi; i++) {
|
|
385
388
|
const d = data[i];
|
|
386
389
|
|
|
@@ -405,7 +408,6 @@ export class RuleVertexBuilder extends GeometryBuilder {
|
|
|
405
408
|
|
|
406
409
|
// Duplicate the last vertex to produce a degenerate triangle between the rules
|
|
407
410
|
this.variableBuilder.pushAll();
|
|
408
|
-
this.addToXIndex(d);
|
|
409
411
|
}
|
|
410
412
|
|
|
411
413
|
this.registerBatch(key);
|
|
@@ -428,6 +430,20 @@ export class PointVertexBuilder extends GeometryBuilder {
|
|
|
428
430
|
});
|
|
429
431
|
this.variableBuilder.configure();
|
|
430
432
|
}
|
|
433
|
+
|
|
434
|
+
/**
|
|
435
|
+
*
|
|
436
|
+
* @param {any} key
|
|
437
|
+
* @param {object[]} data
|
|
438
|
+
*/
|
|
439
|
+
addBatch(key, data, lo = 0, hi = data.length) {
|
|
440
|
+
for (let i = lo; i < hi; i++) {
|
|
441
|
+
const d = data[i];
|
|
442
|
+
this.variableBuilder.pushFromDatum(d);
|
|
443
|
+
}
|
|
444
|
+
|
|
445
|
+
this.registerBatch(key);
|
|
446
|
+
}
|
|
431
447
|
}
|
|
432
448
|
|
|
433
449
|
export class LinkVertexBuilder extends GeometryBuilder {
|
|
@@ -446,6 +462,20 @@ export class LinkVertexBuilder extends GeometryBuilder {
|
|
|
446
462
|
this.variableBuilder.configure();
|
|
447
463
|
}
|
|
448
464
|
|
|
465
|
+
/**
|
|
466
|
+
*
|
|
467
|
+
* @param {any} key
|
|
468
|
+
* @param {object[]} data
|
|
469
|
+
*/
|
|
470
|
+
addBatch(key, data, lo = 0, hi = data.length) {
|
|
471
|
+
for (let i = lo; i < hi; i++) {
|
|
472
|
+
const d = data[i];
|
|
473
|
+
this.variableBuilder.pushFromDatum(d);
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
this.registerBatch(key);
|
|
477
|
+
}
|
|
478
|
+
|
|
449
479
|
toArrays() {
|
|
450
480
|
const arrays = this.variableBuilder.arrays;
|
|
451
481
|
|
|
@@ -548,8 +578,6 @@ export class TextVertexBuilder extends GeometryBuilder {
|
|
|
548
578
|
const textureCoord = [0, 0];
|
|
549
579
|
this.updateTextureCoord(textureCoord);
|
|
550
580
|
|
|
551
|
-
this.prepareXIndexer(data, lo, hi);
|
|
552
|
-
|
|
553
581
|
for (let i = lo; i < hi; i++) {
|
|
554
582
|
const d = data[i];
|
|
555
583
|
|
|
@@ -581,9 +609,9 @@ export class TextVertexBuilder extends GeometryBuilder {
|
|
|
581
609
|
x -= (firstChar.width - firstChar.xadvance) / base / 2; // TODO: Fix, this is a bit off..
|
|
582
610
|
}
|
|
583
611
|
|
|
584
|
-
let bottom
|
|
585
|
-
|
|
586
|
-
|
|
612
|
+
let bottom;
|
|
613
|
+
let height;
|
|
614
|
+
let normalWidth;
|
|
587
615
|
|
|
588
616
|
for (let i = 0; i < str.length; i++) {
|
|
589
617
|
const c = this.metrics.getCharByCode(str.charCodeAt(i));
|
|
@@ -647,8 +675,6 @@ export class TextVertexBuilder extends GeometryBuilder {
|
|
|
647
675
|
|
|
648
676
|
x += advance;
|
|
649
677
|
}
|
|
650
|
-
|
|
651
|
-
this.addToXIndex(d);
|
|
652
678
|
}
|
|
653
679
|
|
|
654
680
|
this.registerBatch(key);
|
|
@@ -65,9 +65,9 @@ export function generateScaleGlsl(channel: Channel, scale: any, channelDef: impo
|
|
|
65
65
|
/**
|
|
66
66
|
*
|
|
67
67
|
* @param {Channel} channel
|
|
68
|
-
* @param {import("../types/encoder.js").
|
|
68
|
+
* @param {import("../types/encoder.js").EncodingBranch[]} branches
|
|
69
69
|
*/
|
|
70
|
-
export function generateConditionalEncoderGlsl(channel: Channel,
|
|
70
|
+
export function generateConditionalEncoderGlsl(channel: Channel, branches: import("../types/encoder.js").EncodingBranch[]): string;
|
|
71
71
|
/**
|
|
72
72
|
* @param {Channel} channel
|
|
73
73
|
*/
|
|
@@ -141,6 +141,9 @@ export const SCALED_FUNCTION_PREFIX: "getScaled_";
|
|
|
141
141
|
export const RANGE_TEXTURE_PREFIX: "uRangeTexture_";
|
|
142
142
|
export const PARAM_PREFIX: "uParam_";
|
|
143
143
|
export const SELECTION_CHECKER_PREFIX: "checkSelection_";
|
|
144
|
+
export const HIGH_PRECISION_SPLIT_BITS: 12;
|
|
145
|
+
export const HIGH_PRECISION_SPLIT_BASE: number;
|
|
146
|
+
export const HIGH_PRECISION_SPLIT_MASK: number;
|
|
144
147
|
export function getRangeForGlsl(scale: any, channel: Channel): number[];
|
|
145
148
|
export type Channel = import("../spec/channel.js").Channel;
|
|
146
149
|
export type AccessorParts = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"glslScaleGenerator.d.ts","sourceRoot":"","sources":["../../../src/gl/glslScaleGenerator.js"],"names":[],"mappings":"AAsDA;;;;;GAKG;AACH,kDAJW,OAAO,mBACP,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,mDALW,OAAO,mBACP,MAAM,SACN,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAClC,aAAa,CA4CzB;AAED;;;;;;;GAOG;AACH,4DAJW,OAAO,mBACP,MAAM,GACJ,aAAa,CAkCzB;AAED;;;;;;GAMG;AACH,0CANW,OAAO,SACP,GAAG,mBACH,MAAM,+BACN,OAAO,EAAE,GACP,aAAa,CA8BzB;AACD;;;;;GAKG;AACH,qDALW,OAAO,SACP,GAAG,mBACH,MAAM,GACJ,aAAa,CAyBzB;AAED;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"glslScaleGenerator.d.ts","sourceRoot":"","sources":["../../../src/gl/glslScaleGenerator.js"],"names":[],"mappings":"AAsDA;;;;;GAKG;AACH,kDAJW,OAAO,mBACP,MAAM,GACJ,MAAM,CAIlB;AAED;;;;;;;;;;GAUG;AAEH;;;;;;;GAOG;AACH,mDALW,OAAO,mBACP,MAAM,SACN,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,GAAG,OAAO,GAClC,aAAa,CA4CzB;AAED;;;;;;;GAOG;AACH,4DAJW,OAAO,mBACP,MAAM,GACJ,aAAa,CAkCzB;AAED;;;;;;GAMG;AACH,0CANW,OAAO,SACP,GAAG,mBACH,MAAM,+BACN,OAAO,EAAE,GACP,aAAa,CA8BzB;AACD;;;;;GAKG;AACH,qDALW,OAAO,SACP,GAAG,mBACH,MAAM,GACJ,aAAa,CAyBzB;AAED;;;;;GAKG;AACH,2CAJW,OAAO,SACP,GAAG,cACH,OAAO,oBAAoB,EAAE,UAAU;;;;;;EAsQjD;AAED;;;;GAIG;AACH,wDAHW,OAAO,YACP,OAAO,qBAAqB,EAAE,cAAc,EAAE,UA+BxD;AAmED;;GAEG;AACH,qDAFW,OAAO,6BAQjB;AAuCD;;;;GAIG;AACH,iDAHW,OAAO,qBAAqB,EAAE,SAAS,WACvC,OAAO,oBAAoB,EAAE,OAAO;mBAQjB,MAAM;sBAAoB,sBAAsB,GAAG,sBAAsB,GAAG,uBAAuB;;;;;;EAoBhI;AAED;;;;GAIG;AACH,2CAFW,MAAM,6BAIhB;AAED;;;;GAIG;AACH,sCAFW,MAAM,EAAE,WAIlB;AAMD;;;GAGG;AACH,sCAHW,MAAM,QACN,MAAM,EAAE,YAYlB;AAED;;;GAGG;AACH,2CAHW,MAAM,QACN,MAAM,EAAE,YAUlB;AAYD;;GAEG;AACH,qDAFW,MAAM,EAAE,YAIlB;AAED;;GAEG;AAEH;;;;;GAKG;AACH,+CAFW,OAAO,CAAC,MAAM,CAAC,OAAO,oBAAoB,EAAE,OAAO,EAAE,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAAC,+DA4BtG;AAED;;GAEG;AACH,2CAFW,OAAO,oBAAoB,EAAE,OAAO,GAAG,OAAO,oBAAoB,EAAE,OAAO,EAAE,UAIvF;AAwBD;;;;GAIG;AACH,uCAJW,MAAM,EAAE,cACR,MAAM,EAAE,GACN,MAAM,CAgClB;AAr0BD,+BAAgC,OAAO,CAAC;AACxC,4BAA6B,UAAU,CAAC;AACxC,2BAA4B,QAAQ,CAAC;AACrC,uCAAwC,WAAW,CAAC;AACpD,oCAAqC,QAAQ,CAAC;AAC9C,qCAAsC,YAAY,CAAC;AACnD,mCAAoC,gBAAgB,CAAC;AACrD,2BAA4B,SAAS,CAAC;AACtC,uCAAwC,iBAAiB,CAAC;AAoqB1D,wCAAyC,EAAE,CAAC;AAC5C,+CAAwE;AACxE,+CAAuE;AA4GhE,uCAJI,GAAG,WACH,OAAO,GACL,MAAM,EAAE,CAQA;sBAlxBR,OAAO,oBAAoB,EAAE,OAAO;;aA+BvC,OAAO;kBACP,MAAM;0BACN,MAAM;oBACN,MAAM;oBACN,MAAM;kBACN,MAAM;kBACN,MAAM;eACN,CAAC,CAAC,EAAE,GAAG,KAAK,GAAG;;;;;8BAkfZ,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAA;CAAE;;;;uBA0LhD,CAAC,MAAM,EAAE,OAAO,CAAC;0BAruBJ,WAAW"}
|
|
@@ -241,7 +241,6 @@ ${attributeType} ${accessorFunctionName}() {
|
|
|
241
241
|
* @param {any} scale
|
|
242
242
|
* @param {import("../spec/channel.js").ChannelDef} channelDef
|
|
243
243
|
*/
|
|
244
|
-
// eslint-disable-next-line complexity
|
|
245
244
|
export function generateScaleGlsl(channel, scale, channelDef) {
|
|
246
245
|
scale ??= scaleNull();
|
|
247
246
|
|
|
@@ -272,7 +271,6 @@ export function generateScaleGlsl(channel, scale, channelDef) {
|
|
|
272
271
|
* @param {...any} args
|
|
273
272
|
*/
|
|
274
273
|
const makeScaleCall = (name, ...args) =>
|
|
275
|
-
// eslint-disable-next-line no-useless-call
|
|
276
274
|
makeFunctionCall.apply(null, [name, "value", ...args]);
|
|
277
275
|
|
|
278
276
|
let functionCall;
|
|
@@ -508,9 +506,9 @@ ${scaleBody.map((x) => ` ${x}\n`).join("")}
|
|
|
508
506
|
/**
|
|
509
507
|
*
|
|
510
508
|
* @param {Channel} channel
|
|
511
|
-
* @param {import("../types/encoder.js").
|
|
509
|
+
* @param {import("../types/encoder.js").EncodingBranch[]} branches
|
|
512
510
|
*/
|
|
513
|
-
export function generateConditionalEncoderGlsl(channel,
|
|
511
|
+
export function generateConditionalEncoderGlsl(channel, branches) {
|
|
514
512
|
const type = getScaledDataTypeForChannel(channel);
|
|
515
513
|
|
|
516
514
|
/** @type {string[]} */
|
|
@@ -518,10 +516,10 @@ export function generateConditionalEncoderGlsl(channel, accessors) {
|
|
|
518
516
|
/** @type {string[]} */
|
|
519
517
|
const statements = [];
|
|
520
518
|
|
|
521
|
-
for (let i = 0; i <
|
|
522
|
-
const accessor =
|
|
519
|
+
for (let i = 0; i < branches.length; i++) {
|
|
520
|
+
const { accessor, predicate } = branches[i];
|
|
523
521
|
const accessorFunctionName = makeAccessorFunctionName(channel, i);
|
|
524
|
-
const { param, empty } =
|
|
522
|
+
const { param, empty } = predicate;
|
|
525
523
|
|
|
526
524
|
conditions.push(
|
|
527
525
|
param ? `${SELECTION_CHECKER_PREFIX}${param}(${!!empty})` : null
|
|
@@ -678,7 +676,9 @@ export function getAttributeAndArrayTypes(scale, channel) {
|
|
|
678
676
|
: { attributeType: "float", arrayConstructor: Float32Array };
|
|
679
677
|
|
|
680
678
|
return Object.assign(props, {
|
|
681
|
-
numComponents: +(
|
|
679
|
+
numComponents: +(
|
|
680
|
+
props.attributeType.match(/^(?:u)?vec([234])$/)?.[1] ?? 1
|
|
681
|
+
),
|
|
682
682
|
discrete,
|
|
683
683
|
hp,
|
|
684
684
|
largeHp,
|
|
@@ -703,9 +703,9 @@ export function isLargeGenome(domain) {
|
|
|
703
703
|
return domain[1] > 2 ** 32;
|
|
704
704
|
}
|
|
705
705
|
|
|
706
|
-
const
|
|
707
|
-
const
|
|
708
|
-
const
|
|
706
|
+
export const HIGH_PRECISION_SPLIT_BITS = 12;
|
|
707
|
+
export const HIGH_PRECISION_SPLIT_BASE = 2 ** HIGH_PRECISION_SPLIT_BITS;
|
|
708
|
+
export const HIGH_PRECISION_SPLIT_MASK = HIGH_PRECISION_SPLIT_BASE - 1;
|
|
709
709
|
|
|
710
710
|
/**
|
|
711
711
|
* @param {number} x Must be an integer
|
|
@@ -714,7 +714,7 @@ const BM = BS - 1;
|
|
|
714
714
|
export function splitHighPrecision(x, arr = []) {
|
|
715
715
|
// Using a bitmask is MUCH faster than using modulo (at least on Chrome 112)
|
|
716
716
|
// https://www.wikiwand.com/en/Modulo#Performance_issues
|
|
717
|
-
const lo = x &
|
|
717
|
+
const lo = x & HIGH_PRECISION_SPLIT_MASK;
|
|
718
718
|
const hi = x - lo;
|
|
719
719
|
|
|
720
720
|
arr[0] = hi;
|
|
@@ -728,8 +728,8 @@ export function splitHighPrecision(x, arr = []) {
|
|
|
728
728
|
* @param {number[]} [arr]
|
|
729
729
|
*/
|
|
730
730
|
export function splitLargeHighPrecision(x, arr = []) {
|
|
731
|
-
const lo = x %
|
|
732
|
-
const hi = (x - lo) /
|
|
731
|
+
const lo = x % HIGH_PRECISION_SPLIT_BASE;
|
|
732
|
+
const hi = (x - lo) / HIGH_PRECISION_SPLIT_BASE;
|
|
733
733
|
|
|
734
734
|
arr[0] = hi;
|
|
735
735
|
arr[1] = lo;
|
|
@@ -741,7 +741,7 @@ export function splitLargeHighPrecision(x, arr = []) {
|
|
|
741
741
|
* @param {number} x
|
|
742
742
|
*/
|
|
743
743
|
function exactSplitHighPrecision(x) {
|
|
744
|
-
const lo = x %
|
|
744
|
+
const lo = x % HIGH_PRECISION_SPLIT_BASE;
|
|
745
745
|
const hi = x - lo;
|
|
746
746
|
|
|
747
747
|
return [hi, lo];
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @callback VertexReader
|
|
3
|
+
* @param {number} vertexIndex
|
|
4
|
+
* @returns {number}
|
|
5
|
+
*/
|
|
6
|
+
/**
|
|
7
|
+
* A binned index for vertex ranges that are already emitted into typed arrays.
|
|
8
|
+
* The readers operate on vertices, not source datums.
|
|
9
|
+
*
|
|
10
|
+
* The scan is run-based: consecutive vertices with the same effective x
|
|
11
|
+
* interval are collapsed into one range before binning.
|
|
12
|
+
*
|
|
13
|
+
* @param {number} size Number of bins
|
|
14
|
+
* @param {[number, number]} domain Domain of positions
|
|
15
|
+
* @param {VertexReader} readStart Reader for the start x value at a vertex
|
|
16
|
+
* @param {VertexReader} [readEnd=readStart] Reader for the end x value at a vertex
|
|
17
|
+
* @param {number} [startVertexIndex=0] First vertex index in the scanned range
|
|
18
|
+
* @param {number} [endVertexIndex=startVertexIndex] One past the last vertex index
|
|
19
|
+
* @returns {import("../utils/binnedIndex.js").Lookup | undefined}
|
|
20
|
+
*/
|
|
21
|
+
export function createVertexRangeIndexer(size: number, domain: [number, number], readStart: VertexReader, readEnd?: VertexReader, startVertexIndex?: number, endVertexIndex?: number): import("../utils/binnedIndex.js").Lookup | undefined;
|
|
22
|
+
export type VertexReader = (vertexIndex: number) => number;
|
|
23
|
+
//# sourceMappingURL=vertexRangeIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vertexRangeIndex.d.ts","sourceRoot":"","sources":["../../../src/gl/vertexRangeIndex.js"],"names":[],"mappings":"AAKA;;;;GAIG;AAEH;;;;;;;;;;;;;;GAcG;AACH,+CARW,MAAM,UACN,CAAC,MAAM,EAAE,MAAM,CAAC,aAChB,YAAY,YACZ,YAAY,qBACZ,MAAM,mBACN,MAAM,GACJ,OAAO,yBAAyB,EAAE,MAAM,GAAG,SAAS,CA6HhE;yCA9IU,MAAM,KACJ,MAAM"}
|