@genome-spy/core 0.65.0 → 0.67.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/browser-BRemItdO.js +138 -0
- package/dist/bundle/{index-CD7FLu9x.js → index-BatuyGAI.js} +23 -21
- package/dist/bundle/{index-C0llXMqm.js → index-ByuE8dvu.js} +140 -88
- package/dist/bundle/index-Cq3QFUxX.js +1781 -0
- package/dist/bundle/index-D28m8tSW.js +1607 -0
- package/dist/bundle/index-DbJ0oeYM.js +631 -0
- package/dist/bundle/index.es.js +15821 -14601
- package/dist/bundle/index.js +214 -212
- package/dist/bundle/{inflate-DRgHi_KK.js → inflate-GtwLkvSP.js} +222 -224
- package/dist/bundle/unzip-NywezaRR.js +1492 -0
- package/dist/schema.json +13 -3
- 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/flowHandle.d.ts +2 -0
- package/dist/src/data/flowHandle.d.ts.map +1 -1
- package/dist/src/data/flowHandle.js +1 -0
- package/dist/src/data/flowInit.d.ts +12 -4
- package/dist/src/data/flowInit.d.ts.map +1 -1
- package/dist/src/data/flowInit.js +115 -16
- package/dist/src/data/sources/lazy/axisTickSource.js +1 -1
- 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/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 +22 -0
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewDataInit.js +160 -0
- package/dist/src/genomeSpy/viewDataInit.test.d.ts +2 -0
- package/dist/src/genomeSpy/viewDataInit.test.d.ts.map +1 -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 -71
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +197 -741
- package/dist/src/gl/dataToVertices.d.ts.map +1 -1
- package/dist/src/gl/dataToVertices.js +16 -4
- 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.map +1 -1
- package/dist/src/marks/mark.js +4 -2
- package/dist/src/{view → scales}/axisResolution.d.ts +9 -16
- package/dist/src/scales/axisResolution.d.ts.map +1 -0
- package/dist/src/{view → scales}/axisResolution.js +29 -18
- 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 +167 -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 +317 -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 -35
- package/dist/src/scales/scaleResolution.d.ts.map +1 -0
- package/dist/src/scales/scaleResolution.js +732 -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/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/utils/domainArray.d.ts.map +1 -1
- package/dist/src/utils/domainArray.js +3 -0
- package/dist/src/utils/indexer.d.ts +3 -0
- package/dist/src/utils/indexer.d.ts.map +1 -1
- package/dist/src/utils/indexer.js +3 -0
- 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 +118 -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 -15
- package/dist/src/view/flowBuilder.d.ts +5 -3
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +69 -6
- 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 +106 -48
- 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/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/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +7 -1
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +41 -36
- package/dist/src/view/view.d.ts +18 -6
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +30 -4
- package/package.json +2 -2
- package/dist/bundle/browser-txUcLy2H.js +0 -123
- package/dist/bundle/index-BQpbYrv4.js +0 -1712
- package/dist/bundle/index-BhtHKLUo.js +0 -73
- package/dist/bundle/index-CCe8rnZz.js +0 -716
- package/dist/bundle/index-DhcU-Gk-.js +0 -1487
- package/dist/src/data/collector.test.js +0 -138
- package/dist/src/data/dataFlow.test.js +0 -38
- package/dist/src/data/flow.test.js +0 -81
- package/dist/src/data/flowInit.test.js +0 -413
- package/dist/src/data/flowNode.test.js +0 -50
- package/dist/src/data/flowOptimizer.test.js +0 -209
- 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/gridView/selectionRect.test.js +0 -87
- 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 -282
- package/dist/src/view/scaleResolution.d.ts.map +0 -1
- package/dist/src/view/scaleResolution.js +0 -1059
- 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/viewDispose.test.js +0 -110
- package/dist/src/view/viewFactory.test.js +0 -25
- package/dist/src/view/viewUtils.test.js +0 -87
- /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,22 @@
|
|
|
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
|
+
/**
|
|
13
|
+
* Initializes data flow and graphics for visible views that were previously
|
|
14
|
+
* skipped. Intended for view-visibility toggles.
|
|
15
|
+
*
|
|
16
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
17
|
+
* @param {import("../data/dataFlow.js").default} dataFlow
|
|
18
|
+
* @param {import("../fonts/bmFontManager.js").default} fontManager
|
|
19
|
+
* @returns {Promise<import("../data/dataFlow.js").default>}
|
|
20
|
+
*/
|
|
21
|
+
export function initializeVisibleViewData(viewRoot: import("../view/view.js").default, dataFlow: import("../data/dataFlow.js").default, fontManager: import("../fonts/bmFontManager.js").default): Promise<import("../data/dataFlow.js").default>;
|
|
22
|
+
//# sourceMappingURL=viewDataInit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewDataInit.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/viewDataInit.js"],"names":[],"mappings":"AAOA;;;;;;;;;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,CAkC1D;AAED;;;;;;;;GAQG;AACH,oDALW,OAAO,iBAAiB,EAAE,OAAO,YACjC,OAAO,qBAAqB,EAAE,OAAO,eACrC,OAAO,2BAA2B,EAAE,OAAO,GACzC,OAAO,CAAC,OAAO,qBAAqB,EAAE,OAAO,CAAC,CAgD1D"}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import {
|
|
2
|
+
initializeViewSubtree,
|
|
3
|
+
loadViewSubtreeData,
|
|
4
|
+
} from "../data/flowInit.js";
|
|
5
|
+
import { finalizeSubtreeGraphics } from "../view/viewUtils.js";
|
|
6
|
+
import { VISIT_SKIP } from "../view/view.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Initializes the view data pipeline: builds the flow graph, awaits fonts,
|
|
10
|
+
* loads sources, and finalizes graphics for rendering.
|
|
11
|
+
*
|
|
12
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
13
|
+
* @param {import("../data/dataFlow.js").default} dataFlow
|
|
14
|
+
* @param {import("../fonts/bmFontManager.js").default} fontManager
|
|
15
|
+
* @param {(dataFlow: import("../data/dataFlow.js").default) => void} onDataFlowBuilt
|
|
16
|
+
* @returns {Promise<import("../data/dataFlow.js").default>}
|
|
17
|
+
*/
|
|
18
|
+
export async function initializeViewData(
|
|
19
|
+
viewRoot,
|
|
20
|
+
dataFlow,
|
|
21
|
+
fontManager,
|
|
22
|
+
onDataFlowBuilt
|
|
23
|
+
) {
|
|
24
|
+
const visibilityPredicate = (
|
|
25
|
+
/** @type {import("../view/view.js").default} */ view
|
|
26
|
+
) => view.isConfiguredVisible();
|
|
27
|
+
const { dataFlow: builtDataFlow, graphicsPromises } = initializeViewSubtree(
|
|
28
|
+
viewRoot,
|
|
29
|
+
dataFlow,
|
|
30
|
+
visibilityPredicate
|
|
31
|
+
);
|
|
32
|
+
onDataFlowBuilt(builtDataFlow);
|
|
33
|
+
|
|
34
|
+
// Have to wait until asynchronous font loading is complete.
|
|
35
|
+
// Text mark's geometry builder needs font metrics before data can be
|
|
36
|
+
// converted into geometries.
|
|
37
|
+
// TODO: Make updateGraphicsData async and await font loading there.
|
|
38
|
+
await fontManager.waitUntilReady();
|
|
39
|
+
|
|
40
|
+
// Find all data sources and initiate loading.
|
|
41
|
+
await loadViewSubtreeData(
|
|
42
|
+
viewRoot,
|
|
43
|
+
new Set(builtDataFlow.dataSources),
|
|
44
|
+
visibilityPredicate
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
await finalizeSubtreeGraphics(graphicsPromises);
|
|
48
|
+
|
|
49
|
+
return builtDataFlow;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
/**
|
|
53
|
+
* Initializes data flow and graphics for visible views that were previously
|
|
54
|
+
* skipped. Intended for view-visibility toggles.
|
|
55
|
+
*
|
|
56
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
57
|
+
* @param {import("../data/dataFlow.js").default} dataFlow
|
|
58
|
+
* @param {import("../fonts/bmFontManager.js").default} fontManager
|
|
59
|
+
* @returns {Promise<import("../data/dataFlow.js").default>}
|
|
60
|
+
*/
|
|
61
|
+
export async function initializeVisibleViewData(
|
|
62
|
+
viewRoot,
|
|
63
|
+
dataFlow,
|
|
64
|
+
fontManager
|
|
65
|
+
) {
|
|
66
|
+
const visibilityPredicate = (
|
|
67
|
+
/** @type {import("../view/view.js").default} */ view
|
|
68
|
+
) => view.isConfiguredVisible();
|
|
69
|
+
const visibleViews = collectVisibleViews(viewRoot, visibilityPredicate);
|
|
70
|
+
const viewsToInitialize = visibleViews.filter(
|
|
71
|
+
(view) => view.getDataInitializationState() === "none"
|
|
72
|
+
);
|
|
73
|
+
|
|
74
|
+
if (viewsToInitialize.length === 0) {
|
|
75
|
+
return dataFlow;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
const viewsToInitializeSet = new Set(viewsToInitialize);
|
|
79
|
+
const viewInitializationPredicate = (
|
|
80
|
+
/** @type {import("../view/view.js").default} */ view
|
|
81
|
+
) => viewsToInitializeSet.has(view);
|
|
82
|
+
|
|
83
|
+
const { dataFlow: builtDataFlow, graphicsPromises } = initializeViewSubtree(
|
|
84
|
+
viewRoot,
|
|
85
|
+
dataFlow,
|
|
86
|
+
visibilityPredicate,
|
|
87
|
+
viewInitializationPredicate
|
|
88
|
+
);
|
|
89
|
+
|
|
90
|
+
await fontManager.waitUntilReady();
|
|
91
|
+
|
|
92
|
+
const dataSourceRoots = collectDataSourceRoots(viewsToInitialize);
|
|
93
|
+
await Promise.all(
|
|
94
|
+
Array.from(dataSourceRoots.entries()).map(
|
|
95
|
+
([subtreeRoot, dataSources]) =>
|
|
96
|
+
loadViewSubtreeData(subtreeRoot, dataSources, undefined, {
|
|
97
|
+
// If a source is already loading, schedule a reload so new branches
|
|
98
|
+
// added during lazy init receive a complete data propagation.
|
|
99
|
+
queueReload: true,
|
|
100
|
+
})
|
|
101
|
+
)
|
|
102
|
+
);
|
|
103
|
+
|
|
104
|
+
await finalizeSubtreeGraphics(graphicsPromises);
|
|
105
|
+
|
|
106
|
+
return builtDataFlow;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @param {import("../view/view.js").default} viewRoot
|
|
111
|
+
* @param {(view: import("../view/view.js").default) => boolean} viewFilter
|
|
112
|
+
* @returns {import("../view/view.js").default[]}
|
|
113
|
+
*/
|
|
114
|
+
function collectVisibleViews(viewRoot, viewFilter) {
|
|
115
|
+
/** @type {import("../view/view.js").default[]} */
|
|
116
|
+
const views = [];
|
|
117
|
+
viewRoot.visit((view) => {
|
|
118
|
+
if (!viewFilter(view)) {
|
|
119
|
+
return VISIT_SKIP;
|
|
120
|
+
}
|
|
121
|
+
views.push(view);
|
|
122
|
+
});
|
|
123
|
+
return views;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* @param {import("../view/view.js").default[]} views
|
|
128
|
+
* @returns {Map<import("../view/view.js").default, Set<import("../data/sources/dataSource.js").default>>}
|
|
129
|
+
*/
|
|
130
|
+
function collectDataSourceRoots(views) {
|
|
131
|
+
/** @type {Map<import("../view/view.js").default, Set<import("../data/sources/dataSource.js").default>>} */
|
|
132
|
+
const roots = new Map();
|
|
133
|
+
|
|
134
|
+
for (const view of views) {
|
|
135
|
+
let current = view;
|
|
136
|
+
while (current && !current.flowHandle?.dataSource) {
|
|
137
|
+
current = current.dataParent;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
if (!current?.flowHandle?.dataSource) {
|
|
141
|
+
if (view.spec.data) {
|
|
142
|
+
throw new Error(
|
|
143
|
+
"No data source found for view " + view.getPathString()
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
// Some views are data-less (constants or references); they don't
|
|
147
|
+
// participate in data loading but still need graphics init.
|
|
148
|
+
continue;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
let dataSources = roots.get(current);
|
|
152
|
+
if (!dataSources) {
|
|
153
|
+
dataSources = new Set();
|
|
154
|
+
roots.set(current, dataSources);
|
|
155
|
+
}
|
|
156
|
+
dataSources.add(current.flowHandle.dataSource);
|
|
157
|
+
}
|
|
158
|
+
|
|
159
|
+
return roots;
|
|
160
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"viewDataInit.test.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/viewDataInit.test.js"],"names":[],"mappings":""}
|
|
@@ -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,20 @@ 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>;
|
|
81
|
+
initializeVisibleViewData(): Promise<void>;
|
|
129
82
|
registerMouseEvents(): void;
|
|
130
|
-
_tooltipUpdateRequested: boolean;
|
|
131
|
-
/**
|
|
132
|
-
* @param {number} x
|
|
133
|
-
* @param {number} y
|
|
134
|
-
*/
|
|
135
|
-
_handlePicking(x: number, y: number): void;
|
|
136
83
|
/**
|
|
137
84
|
* This method should be called in a mouseMove handler. If not called, the
|
|
138
85
|
* tooltip will be hidden.
|
|
@@ -152,11 +99,15 @@ export default class GenomeSpy {
|
|
|
152
99
|
* @returns A PNG data Url
|
|
153
100
|
*/
|
|
154
101
|
exportCanvas(logicalWidth?: number, logicalHeight?: number, devicePixelRatio?: number, clearColor?: string): string;
|
|
102
|
+
getLogicalCanvasSize(): {
|
|
103
|
+
width: any;
|
|
104
|
+
height: any;
|
|
105
|
+
};
|
|
155
106
|
computeLayout(): void;
|
|
156
107
|
renderAll(): void;
|
|
157
108
|
renderPickingFramebuffer(): void;
|
|
158
109
|
getSearchableViews(): UnitView[];
|
|
159
|
-
getNamedScaleResolutions(): Map<string, import("./
|
|
110
|
+
getNamedScaleResolutions(): Map<string, import("./scales/scaleResolution.js").default>;
|
|
160
111
|
#private;
|
|
161
112
|
}
|
|
162
113
|
/**
|
|
@@ -166,10 +117,5 @@ export type BroadcastEventType = "dataFlowBuilt" | "layout" | "layoutComputed" |
|
|
|
166
117
|
import { ViewFactory } from "./view/viewFactory.js";
|
|
167
118
|
import Animator from "./utils/animator.js";
|
|
168
119
|
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
120
|
import UnitView from "./view/unitView.js";
|
|
175
121
|
//# 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":"AA6CA;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,2CAiBC;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;;;;iCArhBY,eAAe,GAAG,QAAQ,GAAG,gBAAgB,GAAG,kBAAkB;4BAZnC,uBAAuB;qBAR9C,qBAAqB;wBAElB,yBAAyB;qBAL5B,oBAAoB"}
|