@genome-spy/core 0.64.0 → 0.66.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/{index-CCJIjehY.js → AbortablePromiseCache-CcuMrnn7.js} +22 -91
- package/dist/bundle/browser-BRemItdO.js +138 -0
- package/dist/bundle/index-BatuyGAI.js +271 -0
- package/dist/bundle/index-ByuE8dvu.js +332 -0
- package/dist/bundle/index-Cq3QFUxX.js +1781 -0
- package/dist/bundle/{index-C08YCM2T.js → index-D-w7Mmt9.js} +246 -126
- package/dist/bundle/index-D28m8tSW.js +1607 -0
- package/dist/bundle/index-D74H8TTz.js +508 -0
- package/dist/bundle/index-DbJ0oeYM.js +631 -0
- package/dist/bundle/index.es.js +15034 -13842
- package/dist/bundle/index.js +223 -237
- package/dist/bundle/inflate-GtwLkvSP.js +1048 -0
- package/dist/bundle/unzip-NywezaRR.js +1492 -0
- package/dist/schema.json +22 -4
- package/dist/src/config/scaleDefaults.d.ts +8 -0
- package/dist/src/config/scaleDefaults.d.ts.map +1 -0
- package/dist/src/config/scaleDefaults.js +45 -0
- package/dist/src/data/collector.d.ts +7 -2
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +13 -2
- package/dist/src/data/dataFlow.d.ts +20 -42
- package/dist/src/data/dataFlow.d.ts.map +1 -1
- package/dist/src/data/dataFlow.js +57 -80
- package/dist/src/data/flowHandle.d.ts +15 -0
- package/dist/src/data/flowHandle.d.ts.map +1 -0
- package/dist/src/data/flowHandle.js +13 -0
- package/dist/src/data/flowInit.d.ts +85 -0
- package/dist/src/data/flowInit.d.ts.map +1 -0
- package/dist/src/data/flowInit.js +238 -0
- package/dist/src/data/flowInit.test.d.ts +2 -0
- package/dist/src/data/flowInit.test.d.ts.map +1 -0
- package/dist/src/data/flowOptimizer.d.ts +6 -4
- package/dist/src/data/flowOptimizer.d.ts.map +1 -1
- package/dist/src/data/flowOptimizer.js +29 -14
- package/dist/src/data/sources/lazy/axisTickSource.js +1 -1
- package/dist/src/data/sources/lazy/bamSource.js +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +1 -1
- package/dist/src/data/sources/lazy/gff3Source.d.ts +2 -6
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +4 -8
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +17 -17
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +10 -3
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +5 -1
- package/dist/src/data/sources/lazy/tabixSource.js +1 -1
- package/dist/src/data/transforms/filterScoredLabels.d.ts +1 -1
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +1 -1
- package/dist/src/data/transforms/linearizeGenomicCoordinate.d.ts.map +1 -1
- package/dist/src/data/transforms/linearizeGenomicCoordinate.js +2 -1
- package/dist/src/encoder/encoder.d.ts +1 -1
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +1 -1
- package/dist/src/genome/scaleLocus.d.ts +39 -0
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +76 -0
- package/dist/src/genomeSpy/canvasExport.d.ts +19 -0
- package/dist/src/genomeSpy/canvasExport.d.ts.map +1 -0
- package/dist/src/genomeSpy/canvasExport.js +66 -0
- package/dist/src/genomeSpy/containerUi.d.ts +17 -0
- package/dist/src/genomeSpy/containerUi.d.ts.map +1 -0
- package/dist/src/genomeSpy/containerUi.js +78 -0
- package/dist/src/genomeSpy/eventListenerRegistry.d.ts +19 -0
- package/dist/src/genomeSpy/eventListenerRegistry.d.ts.map +1 -0
- package/dist/src/genomeSpy/eventListenerRegistry.js +38 -0
- package/dist/src/genomeSpy/inputBindingManager.d.ts +14 -0
- package/dist/src/genomeSpy/inputBindingManager.d.ts.map +1 -0
- package/dist/src/genomeSpy/inputBindingManager.js +63 -0
- package/dist/src/genomeSpy/interactionController.d.ts +40 -0
- package/dist/src/genomeSpy/interactionController.d.ts.map +1 -0
- package/dist/src/genomeSpy/interactionController.js +371 -0
- package/dist/src/genomeSpy/keyboardListenerManager.d.ts +10 -0
- package/dist/src/genomeSpy/keyboardListenerManager.d.ts.map +1 -0
- package/dist/src/genomeSpy/keyboardListenerManager.js +31 -0
- package/dist/src/genomeSpy/loadingIndicatorManager.d.ts +15 -0
- package/dist/src/genomeSpy/loadingIndicatorManager.d.ts.map +1 -0
- package/dist/src/genomeSpy/loadingIndicatorManager.js +92 -0
- package/dist/src/genomeSpy/renderCoordinator.d.ts +22 -0
- package/dist/src/genomeSpy/renderCoordinator.d.ts.map +1 -0
- package/dist/src/genomeSpy/renderCoordinator.js +118 -0
- package/dist/src/genomeSpy/viewContextFactory.d.ts +18 -0
- package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewContextFactory.js +79 -0
- package/dist/src/genomeSpy/viewDataInit.d.ts +12 -0
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewDataInit.js +41 -0
- package/dist/src/genomeSpy/viewHierarchyConfig.d.ts +14 -0
- package/dist/src/genomeSpy/viewHierarchyConfig.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewHierarchyConfig.js +24 -0
- package/dist/src/genomeSpy/viewHighlight.d.ts +5 -0
- package/dist/src/genomeSpy/viewHighlight.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewHighlight.js +30 -0
- package/dist/src/genomeSpy.d.ts +17 -72
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +180 -789
- package/dist/src/gl/glslScaleGenerator.d.ts +1 -1
- package/dist/src/gl/webGLHelper.d.ts +2 -2
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +4 -4
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +2 -12
- package/dist/src/marks/mark.d.ts +1 -0
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +26 -3
- package/dist/src/{view → scales}/axisResolution.d.ts +12 -14
- package/dist/src/scales/axisResolution.d.ts.map +1 -0
- package/dist/src/{view → scales}/axisResolution.js +38 -12
- package/dist/src/scales/axisResolution.test.d.ts.map +1 -0
- package/dist/src/scales/scaleDomainAggregator.d.ts +57 -0
- package/dist/src/scales/scaleDomainAggregator.d.ts.map +1 -0
- package/dist/src/scales/scaleDomainAggregator.js +162 -0
- package/dist/src/scales/scaleDomainAggregator.test.d.ts +2 -0
- package/dist/src/scales/scaleDomainAggregator.test.d.ts.map +1 -0
- package/dist/src/scales/scaleInstanceManager.d.ts +40 -0
- package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -0
- package/dist/src/scales/scaleInstanceManager.js +313 -0
- package/dist/src/scales/scaleInstanceManager.test.d.ts +2 -0
- package/dist/src/scales/scaleInstanceManager.test.d.ts.map +1 -0
- package/dist/src/scales/scaleInteractionController.d.ts +73 -0
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -0
- package/dist/src/scales/scaleInteractionController.js +336 -0
- package/dist/src/scales/scaleInteractionController.test.d.ts +2 -0
- package/dist/src/scales/scaleInteractionController.test.d.ts.map +1 -0
- package/dist/src/scales/scalePropsResolver.d.ts +23 -0
- package/dist/src/scales/scalePropsResolver.d.ts.map +1 -0
- package/dist/src/scales/scalePropsResolver.js +74 -0
- package/dist/src/{view → scales}/scaleResolution.d.ts +53 -31
- package/dist/src/scales/scaleResolution.d.ts.map +1 -0
- package/dist/src/scales/scaleResolution.js +658 -0
- package/dist/src/scales/scaleResolution.test.d.ts.map +1 -0
- package/dist/src/scales/scaleResolutionConstants.d.ts +6 -0
- package/dist/src/scales/scaleResolutionConstants.d.ts.map +1 -0
- package/dist/src/scales/scaleResolutionConstants.js +5 -0
- package/dist/src/scales/scaleRules.d.ts +16 -0
- package/dist/src/scales/scaleRules.d.ts.map +1 -0
- package/dist/src/scales/scaleRules.js +103 -0
- package/dist/src/scales/scaleRules.test.d.ts +2 -0
- package/dist/src/scales/scaleRules.test.d.ts.map +1 -0
- package/dist/src/spec/channel.d.ts +13 -18
- package/dist/src/spec/sampleView.d.ts +3 -2
- package/dist/src/spec/scale.d.ts +6 -0
- package/dist/src/types/embedApi.d.ts +5 -0
- package/dist/src/types/scaleResolutionApi.d.ts +1 -1
- package/dist/src/types/viewContext.d.ts +1 -1
- package/dist/src/view/concatView.d.ts +18 -0
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +73 -0
- package/dist/src/view/concatView.test.d.ts +2 -0
- package/dist/src/view/concatView.test.d.ts.map +1 -0
- package/dist/src/view/containerMutationHelper.d.ts +74 -0
- package/dist/src/view/containerMutationHelper.d.ts.map +1 -0
- package/dist/src/view/containerMutationHelper.js +114 -0
- package/dist/src/view/containerView.d.ts +0 -7
- package/dist/src/view/containerView.d.ts.map +1 -1
- package/dist/src/view/containerView.js +0 -10
- package/dist/src/view/facetView.d.ts.map +1 -1
- package/dist/src/view/facetView.js +0 -14
- package/dist/src/view/flowBuilder.d.ts +2 -2
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +21 -4
- package/dist/src/view/gridView/gridChild.d.ts +11 -0
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +32 -6
- package/dist/src/view/gridView/gridView.d.ts +39 -1
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +113 -42
- package/dist/src/view/gridView/gridView.test.d.ts +2 -0
- package/dist/src/view/gridView/gridView.test.d.ts.map +1 -0
- package/dist/src/view/gridView/scrollbar.d.ts +39 -8
- package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
- package/dist/src/view/gridView/scrollbar.js +184 -69
- package/dist/src/view/gridView/selectionRect.d.ts +8 -4
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +28 -3
- package/dist/src/view/gridView/selectionRect.test.d.ts +2 -0
- package/dist/src/view/gridView/selectionRect.test.d.ts.map +1 -0
- package/dist/src/view/layerView.d.ts +14 -0
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +66 -0
- package/dist/src/view/layerView.test.d.ts +2 -0
- package/dist/src/view/layerView.test.d.ts.map +1 -0
- package/dist/src/view/paramMediator.d.ts +2 -1
- package/dist/src/view/paramMediator.d.ts.map +1 -1
- package/dist/src/view/paramMediator.js +13 -1
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +18 -5
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +52 -12
- package/dist/src/view/view.d.ts +23 -7
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +61 -5
- package/dist/src/view/viewDispose.test.d.ts +2 -0
- package/dist/src/view/viewDispose.test.d.ts.map +1 -0
- package/dist/src/view/viewUtils.d.ts +4 -4
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +19 -15
- package/dist/src/view/viewUtils.test.d.ts +2 -0
- package/dist/src/view/viewUtils.test.d.ts.map +1 -0
- package/package.json +10 -10
- package/dist/bundle/__vite-browser-external-C--ziKoh.js +0 -8
- package/dist/bundle/_commonjsHelpers-DjF3Plf2.js +0 -26
- package/dist/bundle/index-5ajWdKly.js +0 -1319
- package/dist/bundle/index-B03-Om4z.js +0 -274
- package/dist/bundle/index-BftNdA0O.js +0 -27
- package/dist/bundle/index-Bg7C4Xat.js +0 -2750
- package/dist/bundle/index-C3QR8Lv6.js +0 -2131
- package/dist/bundle/index-DTcHjAHp.js +0 -505
- package/dist/bundle/index-DnIkxb0L.js +0 -1025
- package/dist/bundle/index-Ww3TAo6_.js +0 -71
- package/dist/bundle/index-g8iXgW0W.js +0 -651
- package/dist/bundle/long-B-FASCSo.js +0 -2387
- package/dist/bundle/remoteFile-BuaqFGWk.js +0 -94
- package/dist/src/data/collector.test.js +0 -138
- package/dist/src/data/dataFlow.test.js +0 -5
- package/dist/src/data/flow.test.js +0 -81
- package/dist/src/data/flowNode.test.js +0 -50
- package/dist/src/data/flowOptimizer.test.js +0 -204
- package/dist/src/data/formats/fasta.test.js +0 -27
- package/dist/src/data/sources/inlineSource.test.js +0 -63
- package/dist/src/data/sources/sequenceSource.test.js +0 -81
- package/dist/src/data/transforms/aggregate.test.js +0 -134
- package/dist/src/data/transforms/clone.test.js +0 -11
- package/dist/src/data/transforms/coverage.test.js +0 -238
- package/dist/src/data/transforms/filter.test.js +0 -20
- package/dist/src/data/transforms/flatten.test.js +0 -96
- package/dist/src/data/transforms/flattenDelimited.test.js +0 -90
- package/dist/src/data/transforms/flattenSequence.test.js +0 -34
- package/dist/src/data/transforms/formula.test.js +0 -25
- package/dist/src/data/transforms/identifier.test.js +0 -92
- package/dist/src/data/transforms/pileup.test.js +0 -70
- package/dist/src/data/transforms/project.test.js +0 -32
- package/dist/src/data/transforms/regexExtract.test.js +0 -70
- package/dist/src/data/transforms/regexFold.test.js +0 -201
- package/dist/src/data/transforms/sample.test.js +0 -38
- package/dist/src/data/transforms/stack.test.js +0 -91
- package/dist/src/encoder/accessor.test.js +0 -162
- package/dist/src/encoder/encoder.test.js +0 -105
- package/dist/src/genome/genome.test.js +0 -268
- package/dist/src/genome/genomes.test.js +0 -8
- package/dist/src/genome/scaleIndex.test.js +0 -78
- package/dist/src/genome/scaleLocus.test.js +0 -4
- package/dist/src/scale/scale.test.js +0 -326
- package/dist/src/scale/ticks.test.js +0 -46
- package/dist/src/selection/selection.test.js +0 -14
- package/dist/src/utils/addBaseUrl.test.js +0 -30
- package/dist/src/utils/binnedIndex.test.js +0 -201
- package/dist/src/utils/cloner.test.js +0 -35
- package/dist/src/utils/coalesce.test.js +0 -16
- package/dist/src/utils/concatIterables.test.js +0 -8
- package/dist/src/utils/domainArray.test.js +0 -130
- package/dist/src/utils/indexer.test.js +0 -49
- package/dist/src/utils/interactionEvent.test.js +0 -35
- package/dist/src/utils/iterateNestedMaps.test.js +0 -33
- package/dist/src/utils/kWayMerge.test.js +0 -30
- package/dist/src/utils/mergeObjects.test.js +0 -42
- package/dist/src/utils/numberExtractor.test.js +0 -6
- package/dist/src/utils/propertyCacher.test.js +0 -89
- package/dist/src/utils/propertyCoalescer.test.js +0 -25
- package/dist/src/utils/radixSort.test.js +0 -51
- package/dist/src/utils/reservationMap.test.js +0 -20
- package/dist/src/utils/ringBuffer.test.js +0 -39
- package/dist/src/utils/topK.test.js +0 -54
- package/dist/src/utils/trees.test.js +0 -135
- package/dist/src/utils/url.test.js +0 -28
- package/dist/src/utils/variableTools.test.js +0 -13
- package/dist/src/view/axisResolution.d.ts.map +0 -1
- package/dist/src/view/axisResolution.test.d.ts.map +0 -1
- package/dist/src/view/axisResolution.test.js +0 -206
- package/dist/src/view/flowBuilder.test.js +0 -125
- package/dist/src/view/layout/flexLayout.test.js +0 -323
- package/dist/src/view/layout/grid.test.js +0 -71
- package/dist/src/view/layout/rectangle.test.js +0 -192
- package/dist/src/view/paramMediator.test.js +0 -260
- package/dist/src/view/scaleResolution.d.ts.map +0 -1
- package/dist/src/view/scaleResolution.js +0 -1049
- package/dist/src/view/scaleResolution.test.d.ts.map +0 -1
- package/dist/src/view/scaleResolution.test.js +0 -645
- package/dist/src/view/view.test.js +0 -245
- package/dist/src/view/viewFactory.test.js +0 -25
- /package/dist/src/{view → scales}/axisResolution.test.d.ts +0 -0
- /package/dist/src/{view → scales}/scaleResolution.test.d.ts +0 -0
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../types/viewContext.js").default} ViewContext
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Creates a ViewContext from a partial input. Omitted fields default to
|
|
6
|
+
* "fail-fast" placeholders that throw when called. This lets tests supply only
|
|
7
|
+
* what they need while keeping production usage explicit.
|
|
8
|
+
*
|
|
9
|
+
* @param {Partial<ViewContext> & {
|
|
10
|
+
* createOrImportViewWithContext?: (context: ViewContext, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec, layoutParent?: import("../view/containerView.js").default, dataParent?: import("../view/view.js").default, defaultName?: string, validator?: (spec: import("../spec/view.js").ViewSpec) => void) => Promise<import("../view/view.js").default>
|
|
11
|
+
* }} options
|
|
12
|
+
* @returns {ViewContext}
|
|
13
|
+
*/
|
|
14
|
+
export function createViewContext(options: Partial<ViewContext> & {
|
|
15
|
+
createOrImportViewWithContext?: (context: ViewContext, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec, layoutParent?: import("../view/containerView.js").default, dataParent?: import("../view/view.js").default, defaultName?: string, validator?: (spec: import("../spec/view.js").ViewSpec) => void) => Promise<import("../view/view.js").default>;
|
|
16
|
+
}): ViewContext;
|
|
17
|
+
export type ViewContext = import("../types/viewContext.js").default;
|
|
18
|
+
//# sourceMappingURL=viewContextFactory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewContextFactory.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/viewContextFactory.js"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;;;;;;;;GASG;AACH,2CALW,OAAO,CAAC,WAAW,CAAC,GAAG;IAC7B,6BAA6B,CAAC,EAAE,CAAC,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,OAAO,iBAAiB,EAAE,QAAQ,GAAG,OAAO,iBAAiB,EAAE,UAAU,EAAE,YAAY,CAAC,EAAE,OAAO,0BAA0B,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,OAAO,iBAAiB,EAAE,OAAO,EAAE,WAAW,CAAC,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,iBAAiB,EAAE,QAAQ,KAAK,IAAI,KAAK,OAAO,CAAC,OAAO,iBAAiB,EAAE,OAAO,CAAC,CAAA;CACvX,GACS,WAAW,CAkEvB;0BA7EY,OAAO,yBAAyB,EAAE,OAAO"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {import("../types/viewContext.js").default} ViewContext
|
|
3
|
+
*/
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Creates a ViewContext from a partial input. Omitted fields default to
|
|
7
|
+
* "fail-fast" placeholders that throw when called. This lets tests supply only
|
|
8
|
+
* what they need while keeping production usage explicit.
|
|
9
|
+
*
|
|
10
|
+
* @param {Partial<ViewContext> & {
|
|
11
|
+
* createOrImportViewWithContext?: (context: ViewContext, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec, layoutParent?: import("../view/containerView.js").default, dataParent?: import("../view/view.js").default, defaultName?: string, validator?: (spec: import("../spec/view.js").ViewSpec) => void) => Promise<import("../view/view.js").default>
|
|
12
|
+
* }} options
|
|
13
|
+
* @returns {ViewContext}
|
|
14
|
+
*/
|
|
15
|
+
export function createViewContext(options) {
|
|
16
|
+
/** @param {string} name */
|
|
17
|
+
const missing = (name) => {
|
|
18
|
+
throw new Error("ViewContext." + name + " is not configured.");
|
|
19
|
+
};
|
|
20
|
+
/** @type {Partial<ViewContext>} */
|
|
21
|
+
const context = {
|
|
22
|
+
dataFlow: options.dataFlow ?? missing("dataFlow"),
|
|
23
|
+
glHelper: options.glHelper ?? missing("glHelper"),
|
|
24
|
+
animator: options.animator ?? missing("animator"),
|
|
25
|
+
genomeStore: options.genomeStore,
|
|
26
|
+
fontManager: options.fontManager ?? missing("fontManager"),
|
|
27
|
+
createOrImportView: async function (
|
|
28
|
+
spec,
|
|
29
|
+
layoutParent,
|
|
30
|
+
dataParent,
|
|
31
|
+
defaultName,
|
|
32
|
+
validator
|
|
33
|
+
) {
|
|
34
|
+
const create = options.createOrImportViewWithContext;
|
|
35
|
+
if (!create) {
|
|
36
|
+
return Promise.reject(
|
|
37
|
+
new Error(
|
|
38
|
+
"ViewContext.createOrImportView is not configured."
|
|
39
|
+
)
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Needs the fully wired context for recursive view creation.
|
|
44
|
+
return create(
|
|
45
|
+
/** @type {ViewContext} */ (context),
|
|
46
|
+
spec,
|
|
47
|
+
layoutParent,
|
|
48
|
+
dataParent,
|
|
49
|
+
defaultName,
|
|
50
|
+
validator
|
|
51
|
+
);
|
|
52
|
+
},
|
|
53
|
+
};
|
|
54
|
+
|
|
55
|
+
/** @type {(keyof ViewContext)[]} */
|
|
56
|
+
const methodNames = [
|
|
57
|
+
"requestLayoutReflow",
|
|
58
|
+
"updateTooltip",
|
|
59
|
+
"getNamedDataFromProvider",
|
|
60
|
+
"getCurrentHover",
|
|
61
|
+
"setDataLoadingStatus",
|
|
62
|
+
"addKeyboardListener",
|
|
63
|
+
"addBroadcastListener",
|
|
64
|
+
"removeBroadcastListener",
|
|
65
|
+
"highlightView",
|
|
66
|
+
"isViewConfiguredVisible",
|
|
67
|
+
"isViewSpec",
|
|
68
|
+
];
|
|
69
|
+
|
|
70
|
+
/** @type {Partial<ViewContext>} */
|
|
71
|
+
const optionValues = options;
|
|
72
|
+
const contextAny = /** @type {any} */ (context);
|
|
73
|
+
|
|
74
|
+
for (const name of methodNames) {
|
|
75
|
+
contextAny[name] = optionValues[name] ?? (() => missing(name));
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
return /** @type {ViewContext} */ (context);
|
|
79
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initializes the view data pipeline: builds the flow graph, awaits fonts,
|
|
3
|
+
* loads sources, and finalizes graphics for rendering.
|
|
4
|
+
*
|
|
5
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
6
|
+
* @param {import("../data/dataFlow.js").default} dataFlow
|
|
7
|
+
* @param {import("../fonts/bmFontManager.js").default} fontManager
|
|
8
|
+
* @param {(dataFlow: import("../data/dataFlow.js").default) => void} onDataFlowBuilt
|
|
9
|
+
* @returns {Promise<import("../data/dataFlow.js").default>}
|
|
10
|
+
*/
|
|
11
|
+
export function initializeViewData(viewRoot: import("../view/view.js").default, dataFlow: import("../data/dataFlow.js").default, fontManager: import("../fonts/bmFontManager.js").default, onDataFlowBuilt: (dataFlow: import("../data/dataFlow.js").default) => void): Promise<import("../data/dataFlow.js").default>;
|
|
12
|
+
//# sourceMappingURL=viewDataInit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewDataInit.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/viewDataInit.js"],"names":[],"mappings":"AAMA;;;;;;;;;GASG;AACH,6CANW,OAAO,iBAAiB,EAAE,OAAO,YACjC,OAAO,qBAAqB,EAAE,OAAO,eACrC,OAAO,2BAA2B,EAAE,OAAO,mBAC3C,CAAC,QAAQ,EAAE,OAAO,qBAAqB,EAAE,OAAO,KAAK,IAAI,GACvD,OAAO,CAAC,OAAO,qBAAqB,EAAE,OAAO,CAAC,CA0B1D"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import {
|
|
2
|
+
initializeViewSubtree,
|
|
3
|
+
loadViewSubtreeData,
|
|
4
|
+
} from "../data/flowInit.js";
|
|
5
|
+
import { finalizeSubtreeGraphics } from "../view/viewUtils.js";
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Initializes the view data pipeline: builds the flow graph, awaits fonts,
|
|
9
|
+
* loads sources, and finalizes graphics for rendering.
|
|
10
|
+
*
|
|
11
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
12
|
+
* @param {import("../data/dataFlow.js").default} dataFlow
|
|
13
|
+
* @param {import("../fonts/bmFontManager.js").default} fontManager
|
|
14
|
+
* @param {(dataFlow: import("../data/dataFlow.js").default) => void} onDataFlowBuilt
|
|
15
|
+
* @returns {Promise<import("../data/dataFlow.js").default>}
|
|
16
|
+
*/
|
|
17
|
+
export async function initializeViewData(
|
|
18
|
+
viewRoot,
|
|
19
|
+
dataFlow,
|
|
20
|
+
fontManager,
|
|
21
|
+
onDataFlowBuilt
|
|
22
|
+
) {
|
|
23
|
+
const { dataFlow: builtDataFlow, graphicsPromises } = initializeViewSubtree(
|
|
24
|
+
viewRoot,
|
|
25
|
+
dataFlow
|
|
26
|
+
);
|
|
27
|
+
onDataFlowBuilt(builtDataFlow);
|
|
28
|
+
|
|
29
|
+
// Have to wait until asynchronous font loading is complete.
|
|
30
|
+
// Text mark's geometry builder needs font metrics before data can be
|
|
31
|
+
// converted into geometries.
|
|
32
|
+
// TODO: Make updateGraphicsData async and await font loading there.
|
|
33
|
+
await fontManager.waitUntilReady();
|
|
34
|
+
|
|
35
|
+
// Find all data sources and initiate loading.
|
|
36
|
+
await loadViewSubtreeData(viewRoot, new Set(builtDataFlow.dataSources));
|
|
37
|
+
|
|
38
|
+
await finalizeSubtreeGraphics(graphicsPromises);
|
|
39
|
+
|
|
40
|
+
return builtDataFlow;
|
|
41
|
+
}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
3
|
+
*/
|
|
4
|
+
export function configureViewHierarchy(viewRoot: import("../view/view.js").default): void;
|
|
5
|
+
/**
|
|
6
|
+
* Configures view opacity after scale/axis resolution has stabilized.
|
|
7
|
+
*
|
|
8
|
+
* NOTE: This is a separate pass because dynamic opacity needs resolved scales.
|
|
9
|
+
* If we end up with more post-resolve work, consider a post-resolve thunk queue.
|
|
10
|
+
*
|
|
11
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
12
|
+
*/
|
|
13
|
+
export function configureViewOpacity(viewRoot: import("../view/view.js").default): void;
|
|
14
|
+
//# sourceMappingURL=viewHierarchyConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewHierarchyConfig.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/viewHierarchyConfig.js"],"names":[],"mappings":"AAKA;;GAEG;AACH,iDAFW,OAAO,iBAAiB,EAAE,OAAO,QAK3C;AAED;;;;;;;GAOG;AACH,+CAFW,OAAO,iBAAiB,EAAE,OAAO,QAI3C"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import {
|
|
2
|
+
checkForDuplicateScaleNames,
|
|
3
|
+
setImplicitScaleNames,
|
|
4
|
+
} from "../view/viewUtils.js";
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
8
|
+
*/
|
|
9
|
+
export function configureViewHierarchy(viewRoot) {
|
|
10
|
+
checkForDuplicateScaleNames(viewRoot);
|
|
11
|
+
setImplicitScaleNames(viewRoot);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* Configures view opacity after scale/axis resolution has stabilized.
|
|
16
|
+
*
|
|
17
|
+
* NOTE: This is a separate pass because dynamic opacity needs resolved scales.
|
|
18
|
+
* If we end up with more post-resolve work, consider a post-resolve thunk queue.
|
|
19
|
+
*
|
|
20
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
21
|
+
*/
|
|
22
|
+
export function configureViewOpacity(viewRoot) {
|
|
23
|
+
viewRoot.getDescendants().forEach((view) => view.configureViewOpacity());
|
|
24
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewHighlight.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/viewHighlight.js"],"names":[],"mappings":"AAAA;;GAEG;AACH,iDAFW,WAAW,IAMV,MAFG,OAAO,iBAAiB,EAAE,OAAO,GAAG,IAEnC,UAsBf"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {HTMLElement} container
|
|
3
|
+
*/
|
|
4
|
+
export function createViewHighlighter(container) {
|
|
5
|
+
/**
|
|
6
|
+
* @param {import("../view/view.js").default | null} view
|
|
7
|
+
*/
|
|
8
|
+
return (view) => {
|
|
9
|
+
container.querySelector(".view-highlight")?.remove();
|
|
10
|
+
if (view) {
|
|
11
|
+
if (!view.isConfiguredVisible()) {
|
|
12
|
+
return;
|
|
13
|
+
}
|
|
14
|
+
const coords = view.coords;
|
|
15
|
+
if (coords) {
|
|
16
|
+
const div = document.createElement("div");
|
|
17
|
+
div.className = "view-highlight";
|
|
18
|
+
div.style.position = "absolute";
|
|
19
|
+
div.style.left = coords.x + "px";
|
|
20
|
+
div.style.top = coords.y + "px";
|
|
21
|
+
div.style.width = coords.width + "px";
|
|
22
|
+
div.style.height = coords.height + "px";
|
|
23
|
+
div.style.border = "1px solid green";
|
|
24
|
+
div.style.backgroundColor = "rgba(0, 255, 0, 0.1)";
|
|
25
|
+
div.style.pointerEvents = "none";
|
|
26
|
+
container.appendChild(div);
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
}
|
package/dist/src/genomeSpy.d.ts
CHANGED
|
@@ -14,8 +14,6 @@ export default class GenomeSpy {
|
|
|
14
14
|
constructor(container: HTMLElement, spec: import("./spec/root.js").RootSpec, options?: import("./types/embedApi.js").EmbedOptions);
|
|
15
15
|
container: HTMLElement;
|
|
16
16
|
options: import("./types/embedApi.js").EmbedOptions;
|
|
17
|
-
/** @type {(() => void)[]} */
|
|
18
|
-
_destructionCallbacks: (() => void)[];
|
|
19
17
|
/** Root level configuration object */
|
|
20
18
|
spec: import("./spec/root.js").RootSpec;
|
|
21
19
|
viewFactory: ViewFactory;
|
|
@@ -31,59 +29,10 @@ export default class GenomeSpy {
|
|
|
31
29
|
* @type {(view: View) => boolean}
|
|
32
30
|
*/
|
|
33
31
|
viewVisibilityPredicate: (view: import("./view/view.js").default) => boolean;
|
|
34
|
-
/** @type {BufferedViewRenderingContext} */
|
|
35
|
-
_renderingContext: BufferedViewRenderingContext;
|
|
36
|
-
/** @type {BufferedViewRenderingContext} */
|
|
37
|
-
_pickingContext: BufferedViewRenderingContext;
|
|
38
|
-
/** Does picking buffer need to be rendered again */
|
|
39
|
-
_dirtyPickingBuffer: boolean;
|
|
40
|
-
/**
|
|
41
|
-
* Currently hovered mark and datum
|
|
42
|
-
* @type {{ mark: import("./marks/mark.js").default, datum: import("./data/flowNode.js").Datum, uniqueId: number }}
|
|
43
|
-
*/
|
|
44
|
-
_currentHover: {
|
|
45
|
-
mark: import("./marks/mark.js").default;
|
|
46
|
-
datum: import("./data/flowNode.js").Datum;
|
|
47
|
-
uniqueId: number;
|
|
48
|
-
};
|
|
49
|
-
_wheelInertia: Inertia;
|
|
50
|
-
/**
|
|
51
|
-
* Keeping track so that these can be cleaned up upon finalization.
|
|
52
|
-
* @type {Map<string, (function(KeyboardEvent):void)[]>}
|
|
53
|
-
*/
|
|
54
|
-
_keyboardListeners: Map<string, ((arg0: KeyboardEvent) => void)[]>;
|
|
55
|
-
/**
|
|
56
|
-
* Listers for exposed high-level events such as click on a mark instance.
|
|
57
|
-
* These should probably be in the View class and support bubbling through
|
|
58
|
-
* the hierarchy.
|
|
59
|
-
*
|
|
60
|
-
* @type {Map<string, Set<(event: any) => void>>}
|
|
61
|
-
*/
|
|
62
|
-
_eventListeners: Map<string, Set<(event: any) => void>>;
|
|
63
|
-
/**
|
|
64
|
-
*
|
|
65
|
-
* @type {Map<string, Set<(event: any) => void>>}
|
|
66
|
-
*/
|
|
67
|
-
_extraBroadcastListeners: Map<string, Set<(event: any) => void>>;
|
|
68
32
|
/** @type {Record<string, import("./tooltip/tooltipHandler.js").TooltipHandler>}> */
|
|
69
33
|
tooltipHandlers: Record<string, import("./tooltip/tooltipHandler.js").TooltipHandler>;
|
|
70
34
|
/** @type {View} */
|
|
71
35
|
viewRoot: import("./view/view.js").default;
|
|
72
|
-
/**
|
|
73
|
-
* Views that are currently loading data using lazy sources.
|
|
74
|
-
*
|
|
75
|
-
* @type {Map<View, { status: import("./types/viewContext.js").DataLoadingStatus, detail?: string }>}
|
|
76
|
-
*/
|
|
77
|
-
_loadingViews: Map<import("./view/view.js").default, {
|
|
78
|
-
status: import("./types/viewContext.js").DataLoadingStatus;
|
|
79
|
-
detail?: string;
|
|
80
|
-
}>;
|
|
81
|
-
/**
|
|
82
|
-
* @type {HTMLElement}
|
|
83
|
-
*/
|
|
84
|
-
_inputBindingContainer: HTMLElement;
|
|
85
|
-
/** @type {Point} */
|
|
86
|
-
_mouseDownCoords: Point;
|
|
87
36
|
dpr: number;
|
|
88
37
|
/**
|
|
89
38
|
*
|
|
@@ -100,6 +49,16 @@ export default class GenomeSpy {
|
|
|
100
49
|
* @param {any[]} data
|
|
101
50
|
*/
|
|
102
51
|
updateNamedData(name: string, data: any[]): void;
|
|
52
|
+
/**
|
|
53
|
+
* @param {string} type
|
|
54
|
+
* @param {(event: any) => void} listener
|
|
55
|
+
*/
|
|
56
|
+
addEventListener(type: string, listener: (event: any) => void): void;
|
|
57
|
+
/**
|
|
58
|
+
* @param {string} type
|
|
59
|
+
* @param {(event: any) => void} listener
|
|
60
|
+
*/
|
|
61
|
+
removeEventListener(type: string, listener: (event: any) => void): void;
|
|
103
62
|
/**
|
|
104
63
|
* Broadcast a message to all views
|
|
105
64
|
|
|
@@ -107,32 +66,19 @@ export default class GenomeSpy {
|
|
|
107
66
|
* @param {any} [payload]
|
|
108
67
|
*/
|
|
109
68
|
broadcast(type: BroadcastEventType, payload?: any): void;
|
|
110
|
-
/**
|
|
111
|
-
* Draw some layers on top of the canvas. It's easier to do fancy spinning
|
|
112
|
-
* animations with html elements than with WebGL.
|
|
113
|
-
*/
|
|
114
|
-
_updateLoadingIndicators(): void;
|
|
115
|
-
_glHelper: WebGLHelper;
|
|
116
69
|
loadingMessageElement: HTMLElement;
|
|
117
70
|
loadingIndicatorsElement: HTMLElement;
|
|
118
|
-
tooltip:
|
|
71
|
+
tooltip: import("./utils/ui/tooltip.js").default;
|
|
119
72
|
/**
|
|
120
73
|
* Unregisters all listeners, removes all created dom elements, removes all css classes from the container
|
|
121
74
|
*/
|
|
122
75
|
destroy(): void;
|
|
123
|
-
_prepareViewsAndData(): Promise<void>;
|
|
124
76
|
/**
|
|
125
77
|
* TODO: Come up with a sensible name. And maybe this should be called at the end of the constructor.
|
|
126
78
|
* @returns {Promise<boolean>} true if the launch was successful
|
|
127
79
|
*/
|
|
128
80
|
launch(): Promise<boolean>;
|
|
129
81
|
registerMouseEvents(): void;
|
|
130
|
-
_tooltipUpdateRequested: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* @param {number} x
|
|
133
|
-
* @param {number} y
|
|
134
|
-
*/
|
|
135
|
-
_handlePicking(x: number, y: number): void;
|
|
136
82
|
/**
|
|
137
83
|
* This method should be called in a mouseMove handler. If not called, the
|
|
138
84
|
* tooltip will be hidden.
|
|
@@ -152,24 +98,23 @@ export default class GenomeSpy {
|
|
|
152
98
|
* @returns A PNG data Url
|
|
153
99
|
*/
|
|
154
100
|
exportCanvas(logicalWidth?: number, logicalHeight?: number, devicePixelRatio?: number, clearColor?: string): string;
|
|
101
|
+
getLogicalCanvasSize(): {
|
|
102
|
+
width: any;
|
|
103
|
+
height: any;
|
|
104
|
+
};
|
|
155
105
|
computeLayout(): void;
|
|
156
106
|
renderAll(): void;
|
|
157
107
|
renderPickingFramebuffer(): void;
|
|
158
108
|
getSearchableViews(): UnitView[];
|
|
159
|
-
getNamedScaleResolutions(): Map<string, import("./
|
|
109
|
+
getNamedScaleResolutions(): Map<string, import("./scales/scaleResolution.js").default>;
|
|
160
110
|
#private;
|
|
161
111
|
}
|
|
162
112
|
/**
|
|
163
113
|
* Events that are broadcasted to all views.
|
|
164
114
|
*/
|
|
165
|
-
export type BroadcastEventType = "dataFlowBuilt" | "
|
|
115
|
+
export type BroadcastEventType = "dataFlowBuilt" | "layout" | "layoutComputed" | "subtreeDataReady";
|
|
166
116
|
import { ViewFactory } from "./view/viewFactory.js";
|
|
167
117
|
import Animator from "./utils/animator.js";
|
|
168
118
|
import GenomeStore from "./genome/genomeStore.js";
|
|
169
|
-
import BufferedViewRenderingContext from "./view/renderingContext/bufferedViewRenderingContext.js";
|
|
170
|
-
import Inertia from "./utils/inertia.js";
|
|
171
|
-
import Point from "./view/layout/point.js";
|
|
172
|
-
import WebGLHelper from "./gl/webGLHelper.js";
|
|
173
|
-
import Tooltip from "./utils/ui/tooltip.js";
|
|
174
119
|
import UnitView from "./view/unitView.js";
|
|
175
120
|
//# sourceMappingURL=genomeSpy.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genomeSpy.d.ts","sourceRoot":"","sources":["../../src/genomeSpy.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"genomeSpy.d.ts","sourceRoot":"","sources":["../../src/genomeSpy.js"],"names":[],"mappings":"AA0CA;IAkBI;;;;;OAKG;IAEH;;;;;OAKG;IACH,uBAJW,WAAW,qDAEX,OAAO,qBAAqB,EAAE,YAAY,EA0CpD;IAvCG,uBAA0B;IAC1B,oDAAsB;IAItB,sCAAsC;IACtC,wCAAgB;IAEhB,yBAAoC;IAEpC,4CAA4C;IAC5C,oBADW,CAAC,CAAS,IAAM,EAAN,MAAM,KAAE,MAAM,EAAE,CAAC,EAAE,CACZ;IAE5B,mBAAoD;IAEpD,0BAA0B;IAC1B,aADW,WAAW,CACM;IAE5B;;;;;OAKG;IACH,yBAFU,CAAC,IAAI,kCAAM,KAAK,OAAO,CAE8B;IAE/D,oFAAoF;IACpF,iBADW,MAAM,CAAC,MAAM,EAAE,OAAO,6BAA6B,EAAE,cAAc,CAAC,CAK9E;IAED,mBAAmB;IACnB,2CAAyB;IAIzB,YAAkC;IAatC;;;OAGG;IACH,oCAFW,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,EAAE,QAIjC;IAED;;OAEG;IACH,+BAFW,MAAM,YAShB;IAED;;;;OAIG;IACH,sBAHW,MAAM,QACN,GAAG,EAAE,QAYf;IAED;;;OAGG;IACH,uBAHW,MAAM,YACN,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,QAI9B;IAED;;;OAGG;IACH,0BAHW,MAAM,YACN,CAAC,KAAK,EAAE,GAAG,KAAK,IAAI,QAI9B;IAED;;;;;OAKG;IACH,gBAHW,kBAAkB,YAClB,GAAG,QAMb;IAiEG,mCAAkD;IAKlD,sCAAwD;IACxD,iDAAsB;IAM1B;;OAEG;IACH,gBAmBC;IA8ID;;;OAGG;IACH,UAFa,OAAO,CAAC,OAAO,CAAC,CAgC5B;IAED,4BAEC;IAED;;;;;;;OAOG;IACH,cAFa,CAAC,SAFH,CAAC,cACD,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAKlF;IAED;;;;;;;;OAQG;IACH,4BANW,MAAM,kBACN,MAAM,qBACN,MAAM,eACN,MAAM,UAuBhB;IAED;;;MAEC;IAED,sBAEC;IAED,kBAEC;IAED,iCAEC;IAED,iCASC;IAED,uFAWC;;CACJ;;;;iCAlgBY,eAAe,GAAG,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB;4BAZnC,uBAAuB;qBAR9C,qBAAqB;wBAElB,yBAAyB;qBAL5B,oBAAoB"}
|