@genome-spy/core 0.68.0 → 0.69.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.es.js +12119 -10681
- package/dist/bundle/index.js +119 -119
- package/dist/schema.json +6224 -6319
- package/dist/src/data/dataFlow.d.ts.map +1 -1
- package/dist/src/data/dataFlow.js +10 -0
- package/dist/src/data/flowNode.d.ts +25 -10
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +66 -13
- package/dist/src/data/flowTestUtils.d.ts +2 -2
- package/dist/src/data/flowTestUtils.d.ts.map +1 -1
- package/dist/src/data/flowTestUtils.js +5 -4
- package/dist/src/data/sources/dataSource.js +2 -2
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +11 -10
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +11 -10
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +1 -1
- package/dist/src/data/sources/lazy/tabixSource.d.ts +0 -1
- package/dist/src/data/sources/lazy/tabixSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/tabixSource.js +41 -11
- package/dist/src/data/sources/sequenceSource.d.ts.map +1 -1
- package/dist/src/data/sources/sequenceSource.js +5 -3
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +7 -3
- package/dist/src/data/transforms/filter.d.ts +4 -4
- package/dist/src/data/transforms/filter.d.ts.map +1 -1
- package/dist/src/data/transforms/filter.js +13 -7
- package/dist/src/data/transforms/filterScoredLabels.d.ts.map +1 -1
- package/dist/src/data/transforms/filterScoredLabels.js +11 -6
- package/dist/src/data/transforms/filterScoredLabels.test.d.ts +2 -0
- package/dist/src/data/transforms/filterScoredLabels.test.d.ts.map +1 -0
- package/dist/src/data/transforms/formula.d.ts +4 -4
- package/dist/src/data/transforms/formula.d.ts.map +1 -1
- package/dist/src/data/transforms/formula.js +12 -6
- package/dist/src/data/transforms/measureText.d.ts +2 -2
- package/dist/src/data/transforms/measureText.d.ts.map +1 -1
- package/dist/src/data/transforms/measureText.js +16 -12
- package/dist/src/data/transforms/transform.d.ts +2 -2
- package/dist/src/data/transforms/transform.d.ts.map +1 -1
- package/dist/src/data/transforms/transform.js +3 -3
- package/dist/src/encoder/accessor.d.ts +8 -4
- package/dist/src/encoder/accessor.d.ts.map +1 -1
- package/dist/src/encoder/accessor.js +10 -10
- package/dist/src/encoder/encoder.js +5 -5
- 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 -1
- package/dist/src/genomeSpy/inputBindingManager.js +1 -1
- package/dist/src/genomeSpy/interactionController.d.ts.map +1 -1
- package/dist/src/genomeSpy/interactionController.js +7 -1
- package/dist/src/genomeSpy.js +1 -1
- package/dist/src/gl/glslScaleGenerator.js +1 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +22 -30
- package/dist/src/marks/point.d.ts.map +1 -1
- package/dist/src/marks/point.js +4 -6
- package/dist/src/paramRuntime/expressionCompiler.d.ts +7 -0
- package/dist/src/paramRuntime/expressionCompiler.d.ts.map +1 -0
- package/dist/src/paramRuntime/expressionCompiler.js +10 -0
- package/dist/src/paramRuntime/expressionRef.d.ts +20 -0
- package/dist/src/paramRuntime/expressionRef.d.ts.map +1 -0
- package/dist/src/paramRuntime/expressionRef.js +95 -0
- package/dist/src/paramRuntime/expressionRef.test.d.ts +2 -0
- package/dist/src/paramRuntime/expressionRef.test.d.ts.map +1 -0
- package/dist/src/paramRuntime/graphRuntime.d.ts +176 -0
- package/dist/src/paramRuntime/graphRuntime.d.ts.map +1 -0
- package/dist/src/paramRuntime/graphRuntime.js +628 -0
- package/dist/src/paramRuntime/graphRuntime.test.d.ts +2 -0
- package/dist/src/paramRuntime/graphRuntime.test.d.ts.map +1 -0
- package/dist/src/paramRuntime/index.d.ts +9 -0
- package/dist/src/paramRuntime/index.d.ts.map +1 -0
- package/dist/src/paramRuntime/index.js +8 -0
- package/dist/src/paramRuntime/lifecycleRegistry.d.ts +27 -0
- package/dist/src/paramRuntime/lifecycleRegistry.d.ts.map +1 -0
- package/dist/src/paramRuntime/lifecycleRegistry.js +54 -0
- package/dist/src/paramRuntime/paramRuntime.d.ts +165 -0
- package/dist/src/paramRuntime/paramRuntime.d.ts.map +1 -0
- package/dist/src/paramRuntime/paramRuntime.js +222 -0
- package/dist/src/paramRuntime/paramRuntime.test.d.ts +2 -0
- package/dist/src/paramRuntime/paramRuntime.test.d.ts.map +1 -0
- package/dist/src/paramRuntime/paramStore.d.ts +68 -0
- package/dist/src/paramRuntime/paramStore.d.ts.map +1 -0
- package/dist/src/paramRuntime/paramStore.js +148 -0
- package/dist/src/paramRuntime/paramStore.test.d.ts +2 -0
- package/dist/src/paramRuntime/paramStore.test.d.ts.map +1 -0
- package/dist/src/paramRuntime/paramUtils.d.ts +86 -0
- package/dist/src/paramRuntime/paramUtils.d.ts.map +1 -0
- package/dist/src/paramRuntime/paramUtils.js +272 -0
- package/dist/src/paramRuntime/selectionStore.d.ts +6 -0
- package/dist/src/paramRuntime/selectionStore.d.ts.map +1 -0
- package/dist/src/paramRuntime/selectionStore.js +13 -0
- package/dist/src/paramRuntime/types.d.ts +16 -0
- package/dist/src/paramRuntime/types.d.ts.map +1 -0
- package/dist/src/paramRuntime/types.js +25 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts +164 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -0
- package/dist/src/paramRuntime/viewParamRuntime.js +443 -0
- package/dist/src/scales/scaleInstanceManager.d.ts +6 -3
- package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -1
- package/dist/src/scales/scaleInstanceManager.js +17 -11
- package/dist/src/scales/scaleResolution.d.ts +1 -0
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +7 -1
- package/dist/src/selection/selection.js +1 -1
- package/dist/src/spec/coreSchemaRoot.d.ts +53 -0
- package/dist/src/spec/root.d.ts +1 -1
- package/dist/src/spec/view.d.ts +114 -33
- package/dist/src/tooltip/dataTooltipHandler.d.ts +1 -1
- package/dist/src/tooltip/dataTooltipHandler.js +23 -32
- package/dist/src/tooltip/dataTooltipHandler.test.d.ts +2 -0
- package/dist/src/tooltip/dataTooltipHandler.test.d.ts.map +1 -0
- package/dist/src/tooltip/flattenDatumRows.d.ts +13 -0
- package/dist/src/tooltip/flattenDatumRows.d.ts.map +1 -0
- package/dist/src/tooltip/flattenDatumRows.js +47 -0
- package/dist/src/tooltip/flattenDatumRows.test.d.ts +2 -0
- package/dist/src/tooltip/flattenDatumRows.test.d.ts.map +1 -0
- package/dist/src/tooltip/refseqGeneTooltipHandler.d.ts +1 -1
- package/dist/src/tooltip/refseqGeneTooltipHandler.js +7 -1
- package/dist/src/tooltip/tooltipContext.d.ts +13 -0
- package/dist/src/tooltip/tooltipContext.d.ts.map +1 -0
- package/dist/src/tooltip/tooltipContext.js +543 -0
- package/dist/src/tooltip/tooltipContext.test.d.ts +2 -0
- package/dist/src/tooltip/tooltipContext.test.d.ts.map +1 -0
- package/dist/src/tooltip/tooltipHandler.d.ts +40 -1
- package/dist/src/tooltip/tooltipHandler.d.ts.map +1 -1
- package/dist/src/tooltip/tooltipHandler.ts +62 -1
- package/dist/src/types/encoder.d.ts +1 -1
- package/dist/src/utils/inputBinding.d.ts +10 -2
- package/dist/src/utils/inputBinding.d.ts.map +1 -1
- package/dist/src/utils/inputBinding.js +12 -3
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +12 -3
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +8 -3
- package/dist/src/view/gridView/selectionRect.d.ts +6 -10
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +3 -20
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +4 -2
- package/dist/src/view/multiscale.d.ts +35 -0
- package/dist/src/view/multiscale.d.ts.map +1 -0
- package/dist/src/view/multiscale.js +233 -0
- package/dist/src/view/multiscale.test.d.ts +2 -0
- package/dist/src/view/multiscale.test.d.ts.map +1 -0
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +10 -4
- package/dist/src/view/view.d.ts +5 -4
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +223 -28
- package/dist/src/view/viewFactory.d.ts +0 -12
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +35 -24
- package/dist/src/view/viewParamRuntime.test.d.ts +2 -0
- package/dist/src/view/viewParamRuntime.test.d.ts.map +1 -0
- package/dist/src/view/viewSelectors.d.ts.map +1 -1
- package/dist/src/view/viewSelectors.js +8 -5
- package/package.json +3 -3
- package/dist/src/spec/sampleView.d.ts +0 -197
- package/dist/src/view/paramMediator.d.ts +0 -168
- package/dist/src/view/paramMediator.d.ts.map +0 -1
- package/dist/src/view/paramMediator.js +0 -545
- package/dist/src/view/paramMediator.test.d.ts +0 -2
- package/dist/src/view/paramMediator.test.d.ts.map +0 -1
|
@@ -5,14 +5,14 @@ export default class FilterTransform extends Transform {
|
|
|
5
5
|
/**
|
|
6
6
|
*
|
|
7
7
|
* @param {import("../../spec/transform.js").FilterParams} params
|
|
8
|
-
* @param {import("../flowNode.js").
|
|
8
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} paramRuntimeProvider
|
|
9
9
|
*/
|
|
10
|
-
constructor(params,
|
|
11
|
-
super(params,
|
|
10
|
+
constructor(params, paramRuntimeProvider) {
|
|
11
|
+
super(params, paramRuntimeProvider);
|
|
12
12
|
|
|
13
13
|
this.params = params;
|
|
14
14
|
|
|
15
|
-
/** @type {import("../../
|
|
15
|
+
/** @type {import("../../paramRuntime/types.js").ExprRefFunction} */
|
|
16
16
|
this.predicate = undefined;
|
|
17
17
|
}
|
|
18
18
|
|
|
@@ -22,7 +22,7 @@ export default class FilterTransform extends Transform {
|
|
|
22
22
|
if (isExprFilterParams(this.params)) {
|
|
23
23
|
expression = this.params.expr;
|
|
24
24
|
} else if (isSelectionFilterParams(this.params)) {
|
|
25
|
-
const selection = this.
|
|
25
|
+
const selection = this.paramRuntime.findValue(this.params.param);
|
|
26
26
|
if (!selection) {
|
|
27
27
|
throw new Error(
|
|
28
28
|
`Cannot initialize filter transform. Selection parameter "${this.params.param}" not found!`
|
|
@@ -35,8 +35,14 @@ export default class FilterTransform extends Transform {
|
|
|
35
35
|
);
|
|
36
36
|
}
|
|
37
37
|
|
|
38
|
-
this.predicate = this.
|
|
39
|
-
|
|
38
|
+
this.predicate = this.paramRuntime.watchExpression(
|
|
39
|
+
expression,
|
|
40
|
+
() => this.repropagate(),
|
|
41
|
+
{
|
|
42
|
+
scopeOwned: false,
|
|
43
|
+
registerDisposer: (disposer) => this.registerDisposer(disposer),
|
|
44
|
+
}
|
|
45
|
+
);
|
|
40
46
|
}
|
|
41
47
|
|
|
42
48
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterScoredLabels.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.js"],"names":[],"mappings":"AAOA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,wBAAwB,QAC1D,OAAO,oBAAoB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"filterScoredLabels.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.js"],"names":[],"mappings":"AAOA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,wBAAwB,QAC1D,OAAO,oBAAoB,EAAE,OAAO,EAkD9C;IA7CG,mEAAoB;IAEpB,oBAAoB;IACpB,OADW,GAAG,EAAE,CACD;IAEf,mBAAoC;IAMpC,sDAA8C;IAC9C,oDAAgE;IAChE,wDAAuD;IACvD,sDAAmD;IACnD,mDAA6C;IAC7C,mDAA6C;IAC7C,gCAAgC;IAChC,cADW,CAAS,IAAG,EAAH,GAAG,KAAE,GAAG,CAGd;IACd,gBAAuC;IAEvC,uCAAuC;IACvC,iBADW,GAAG,CAAC,GAAG,EAAE,cAAc,CAAC,CACH;IAEhC,8DAAuD;IAIvD,qBAAuE;IA8B3E,4BAsEC;IAKG,sBAAuB;CAU9B;sBAhKqB,gBAAgB;2BAFX,+BAA+B"}
|
|
@@ -51,13 +51,18 @@ export default class FilterScoredLabelsTransform extends Transform {
|
|
|
51
51
|
this.schedule = () => view.context.animator.requestTransition(callback);
|
|
52
52
|
|
|
53
53
|
// Propagate when the domain changes
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
54
|
+
const domainListener = () => this.schedule();
|
|
55
|
+
this.resolution.addEventListener("domain", domainListener);
|
|
56
|
+
this.registerDisposer(() =>
|
|
57
|
+
this.resolution.removeEventListener("domain", domainListener)
|
|
58
|
+
);
|
|
59
59
|
|
|
60
|
-
//
|
|
60
|
+
// Propagate when layout changes.
|
|
61
|
+
const removeLayoutListener = view._addBroadcastHandler(
|
|
62
|
+
"layoutComputed",
|
|
63
|
+
() => this.schedule()
|
|
64
|
+
);
|
|
65
|
+
this.registerDisposer(removeLayoutListener);
|
|
61
66
|
}
|
|
62
67
|
|
|
63
68
|
complete() {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterScoredLabels.test.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filterScoredLabels.test.js"],"names":[],"mappings":""}
|
|
@@ -2,13 +2,13 @@ export default class FormulaTransform extends Transform {
|
|
|
2
2
|
/**
|
|
3
3
|
*
|
|
4
4
|
* @param {import("../../spec/transform.js").FormulaParams} params
|
|
5
|
-
* @param {import("../flowNode.js").
|
|
5
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} paramRuntimeProvider
|
|
6
6
|
*/
|
|
7
|
-
constructor(params: import("../../spec/transform.js").FormulaParams,
|
|
7
|
+
constructor(params: import("../../spec/transform.js").FormulaParams, paramRuntimeProvider: import("../flowNode.js").ParamRuntimeProvider);
|
|
8
8
|
params: import("../../spec/transform.js").FormulaParams;
|
|
9
9
|
as: string;
|
|
10
|
-
/** @type {import("../../
|
|
11
|
-
fn: import("../../
|
|
10
|
+
/** @type {import("../../paramRuntime/types.js").ExprRefFunction} */
|
|
11
|
+
fn: import("../../paramRuntime/types.js").ExprRefFunction;
|
|
12
12
|
}
|
|
13
13
|
import Transform from "./transform.js";
|
|
14
14
|
//# sourceMappingURL=formula.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/formula.js"],"names":[],"mappings":"AAGA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,aAAa,
|
|
1
|
+
{"version":3,"file":"formula.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/formula.js"],"names":[],"mappings":"AAGA;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,aAAa,wBAC/C,OAAO,gBAAgB,EAAE,oBAAoB,EAWvD;IANG,wDAAoB;IAEpB,WAAmB;IAEnB,oEAAoE;IACpE,IADW,OAAO,6BAA6B,EAAE,eAAe,CAC7C;CAsB1B;sBA1CqB,gBAAgB"}
|
|
@@ -9,22 +9,28 @@ export default class FormulaTransform extends Transform {
|
|
|
9
9
|
/**
|
|
10
10
|
*
|
|
11
11
|
* @param {import("../../spec/transform.js").FormulaParams} params
|
|
12
|
-
* @param {import("../flowNode.js").
|
|
12
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} paramRuntimeProvider
|
|
13
13
|
*/
|
|
14
|
-
constructor(params,
|
|
15
|
-
super(params,
|
|
14
|
+
constructor(params, paramRuntimeProvider) {
|
|
15
|
+
super(params, paramRuntimeProvider);
|
|
16
16
|
|
|
17
17
|
this.params = params;
|
|
18
18
|
|
|
19
19
|
this.as = params.as;
|
|
20
20
|
|
|
21
|
-
/** @type {import("../../
|
|
21
|
+
/** @type {import("../../paramRuntime/types.js").ExprRefFunction} */
|
|
22
22
|
this.fn = undefined;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
initialize() {
|
|
26
|
-
this.fn = this.
|
|
27
|
-
|
|
26
|
+
this.fn = this.paramRuntime.watchExpression(
|
|
27
|
+
this.params.expr,
|
|
28
|
+
() => this.repropagate(),
|
|
29
|
+
{
|
|
30
|
+
scopeOwned: false,
|
|
31
|
+
registerDisposer: (disposer) => this.registerDisposer(disposer),
|
|
32
|
+
}
|
|
33
|
+
);
|
|
28
34
|
}
|
|
29
35
|
|
|
30
36
|
/**
|
|
@@ -5,9 +5,9 @@ export default class MeasureTextTransform extends Transform {
|
|
|
5
5
|
/**
|
|
6
6
|
*
|
|
7
7
|
* @param {import("../../spec/transform.js").MeasureTextParams} params
|
|
8
|
-
* @param {import("../flowNode.js").
|
|
8
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} paramRuntimeProvider
|
|
9
9
|
*/
|
|
10
|
-
constructor(params: import("../../spec/transform.js").MeasureTextParams,
|
|
10
|
+
constructor(params: import("../../spec/transform.js").MeasureTextParams, paramRuntimeProvider: import("../flowNode.js").ParamRuntimeProvider);
|
|
11
11
|
params: import("../../spec/transform.js").MeasureTextParams;
|
|
12
12
|
/**
|
|
13
13
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"measureText.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/measureText.js"],"names":[],"mappings":"AAOA;;GAEG;AACH;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,iBAAiB,
|
|
1
|
+
{"version":3,"file":"measureText.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/measureText.js"],"names":[],"mappings":"AAOA;;GAEG;AACH;IAKI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,iBAAiB,wBACnD,OAAO,gBAAgB,EAAE,oBAAoB,EA8CvD;IAzCG,4DAAoB;IA4BpB;;;OAGG;IACH,gBAFW,GAAG,UAUb;CAER;sBA7DqB,gBAAgB"}
|
|
@@ -3,7 +3,7 @@ import fontMetadata from "../../fonts/Lato-Regular.json" with { type: "json" };
|
|
|
3
3
|
import getMetrics from "../../fonts/bmFontMetrics.js";
|
|
4
4
|
import { field } from "../../utils/field.js";
|
|
5
5
|
import Transform from "./transform.js";
|
|
6
|
-
import { isExprRef } from "../../
|
|
6
|
+
import { isExprRef } from "../../paramRuntime/paramUtils.js";
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Measures text length. This is mainly intended for strand arrows in gene annotations.
|
|
@@ -16,10 +16,10 @@ export default class MeasureTextTransform extends Transform {
|
|
|
16
16
|
/**
|
|
17
17
|
*
|
|
18
18
|
* @param {import("../../spec/transform.js").MeasureTextParams} params
|
|
19
|
-
* @param {import("../flowNode.js").
|
|
19
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} paramRuntimeProvider
|
|
20
20
|
*/
|
|
21
|
-
constructor(params,
|
|
22
|
-
super(params);
|
|
21
|
+
constructor(params, paramRuntimeProvider) {
|
|
22
|
+
super(params, paramRuntimeProvider);
|
|
23
23
|
|
|
24
24
|
this.params = params;
|
|
25
25
|
|
|
@@ -32,15 +32,19 @@ export default class MeasureTextTransform extends Transform {
|
|
|
32
32
|
|
|
33
33
|
// TODO: Refactor this into reusable code.
|
|
34
34
|
if (isExprRef(params.fontSize)) {
|
|
35
|
-
const sizeExpr =
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
35
|
+
const sizeExpr = paramRuntimeProvider.paramRuntime.watchExpression(
|
|
36
|
+
params.fontSize.expr,
|
|
37
|
+
() => {
|
|
38
|
+
size = sizeExpr();
|
|
39
|
+
this.repropagate();
|
|
40
|
+
},
|
|
41
|
+
{
|
|
42
|
+
scopeOwned: false,
|
|
43
|
+
registerDisposer: (disposer) =>
|
|
44
|
+
this.registerDisposer(disposer),
|
|
45
|
+
}
|
|
46
|
+
);
|
|
39
47
|
size = sizeExpr();
|
|
40
|
-
sizeExpr.addListener(() => {
|
|
41
|
-
size = sizeExpr();
|
|
42
|
-
this.repropagate();
|
|
43
|
-
});
|
|
44
48
|
} else {
|
|
45
49
|
size = params.fontSize;
|
|
46
50
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
export default class Transform extends FlowNode {
|
|
2
2
|
/**
|
|
3
3
|
* @param {import("../../spec/transform.js").TransformParamsBase} params
|
|
4
|
-
* @param {import("../flowNode.js").
|
|
4
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} [paramRuntimeProvider]
|
|
5
5
|
*/
|
|
6
|
-
constructor(params: import("../../spec/transform.js").TransformParamsBase,
|
|
6
|
+
constructor(params: import("../../spec/transform.js").TransformParamsBase, paramRuntimeProvider?: import("../flowNode.js").ParamRuntimeProvider);
|
|
7
7
|
#private;
|
|
8
8
|
}
|
|
9
9
|
import FlowNode from "../flowNode.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/transform.js"],"names":[],"mappings":"AAEA;IAII;;;OAGG;IACH,oBAHW,OAAO,yBAAyB,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"transform.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/transform.js"],"names":[],"mappings":"AAEA;IAII;;;OAGG;IACH,oBAHW,OAAO,yBAAyB,EAAE,mBAAmB,yBACrD,OAAO,gBAAgB,EAAE,oBAAoB,EAKvD;;CAQJ;qBArBoB,gBAAgB"}
|
|
@@ -6,10 +6,10 @@ export default class Transform extends FlowNode {
|
|
|
6
6
|
|
|
7
7
|
/**
|
|
8
8
|
* @param {import("../../spec/transform.js").TransformParamsBase} params
|
|
9
|
-
* @param {import("../flowNode.js").
|
|
9
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} [paramRuntimeProvider]
|
|
10
10
|
*/
|
|
11
|
-
constructor(params,
|
|
12
|
-
super(
|
|
11
|
+
constructor(params, paramRuntimeProvider) {
|
|
12
|
+
super(paramRuntimeProvider);
|
|
13
13
|
this.#label = params.type;
|
|
14
14
|
}
|
|
15
15
|
|
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @param {import("../spec/channel.js").Channel} channel
|
|
3
3
|
* @param {import("../spec/channel.js").ChannelDef | import("../spec/channel.js").Conditional<import("../spec/channel.js").ChannelDef>} channelDef
|
|
4
|
-
* @param {import("../
|
|
4
|
+
* @param {{ createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction }} paramRuntime
|
|
5
5
|
* @returns {import("../types/encoder.js").Accessor}
|
|
6
6
|
*/
|
|
7
|
-
export function createAccessor(channel: import("../spec/channel.js").Channel, channelDef: import("../spec/channel.js").ChannelDef | import("../spec/channel.js").Conditional<import("../spec/channel.js").ChannelDef>,
|
|
7
|
+
export function createAccessor(channel: import("../spec/channel.js").Channel, channelDef: import("../spec/channel.js").ChannelDef | import("../spec/channel.js").Conditional<import("../spec/channel.js").ChannelDef>, paramRuntime: {
|
|
8
|
+
createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction;
|
|
9
|
+
}): import("../types/encoder.js").Accessor;
|
|
8
10
|
/**
|
|
9
11
|
* Returns an array of acessors and their predicates. A returned array with
|
|
10
12
|
* a single element indicates that no conditions are present.
|
|
@@ -12,9 +14,11 @@ export function createAccessor(channel: import("../spec/channel.js").Channel, ch
|
|
|
12
14
|
*
|
|
13
15
|
* @param {import("../spec/channel.js").Channel} channel
|
|
14
16
|
* @param {import("../spec/channel.js").ChannelDef} channelDef
|
|
15
|
-
* @param {import("../
|
|
17
|
+
* @param {{ createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction }} paramRuntime
|
|
16
18
|
*/
|
|
17
|
-
export function createConditionalAccessors(channel: import("../spec/channel.js").Channel, channelDef: import("../spec/channel.js").ChannelDef,
|
|
19
|
+
export function createConditionalAccessors(channel: import("../spec/channel.js").Channel, channelDef: import("../spec/channel.js").ChannelDef, paramRuntime: {
|
|
20
|
+
createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction;
|
|
21
|
+
}): import("../types/encoder.js").Accessor<import("../spec/channel.js").Scalar>[];
|
|
18
22
|
/**
|
|
19
23
|
* @param {import("../types/encoder.js").Accessor} accessor
|
|
20
24
|
* @returns {accessor is import("../types/encoder.js").ScaleAccessor}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accessor.d.ts","sourceRoot":"","sources":["../../../src/encoder/accessor.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,wCALW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,oBAAoB,EAAE,UAAU,GAAG,OAAO,oBAAoB,EAAE,WAAW,CAAC,OAAO,oBAAoB,EAAE,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"accessor.d.ts","sourceRoot":"","sources":["../../../src/encoder/accessor.js"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,wCALW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,oBAAoB,EAAE,UAAU,GAAG,OAAO,oBAAoB,EAAE,WAAW,CAAC,OAAO,oBAAoB,EAAE,UAAU,CAAC,gBAC3H;IAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,0BAA0B,EAAE,eAAe,CAAA;CAAE,GACxF,OAAO,qBAAqB,EAAE,QAAQ,CAmHlD;AAED;;;;;;;;GAQG;AACH,oDAJW,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,oBAAoB,EAAE,UAAU,gBACvC;IAAE,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,0BAA0B,EAAE,eAAe,CAAA;CAAE,iFAgCpG;AAED;;;GAGG;AACH,0CAHW,OAAO,qBAAqB,EAAE,QAAQ,GACpC,QAAQ,IAAI,OAAO,qBAAqB,EAAE,aAAa,CAInE;AA6DD;;;;;;;;;;GAUG;AACH,+DALG;IAA+D,YAAY,EAAnE,OAAO,oBAAoB,EAAE,gBAAgB;IACpB,MAAM,EAA/B,eAAe;IAC6B,IAAI,GAAhD,OAAO,oBAAoB,EAAE,IAAI;CACzC,GAAU;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAYzD;AAED;;;;GAIG;AACH,+CAJW,OAAO,qBAAqB,EAAE,aAAa,QAC3C,OAAO,oBAAoB,EAAE,IAAI,GAC/B,MAAM,CAgBlB;8BApGY;IACN,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB,GAAG;IACA,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACjB,GAAG;IACA,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,oBAAoB,EAAE,MAAM,GAAG,OAAO,sBAAsB,EAAE,OAAO,CAAC;CACvF,GAAG;IACA,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,OAAO,oBAAoB,EAAE,MAAM,GAAG,OAAO,sBAAsB,EAAE,OAAO,CAAC;CACvF"}
|
|
@@ -9,15 +9,15 @@ import {
|
|
|
9
9
|
isValueDefWithCondition,
|
|
10
10
|
} from "./encoder.js";
|
|
11
11
|
import { field } from "../utils/field.js";
|
|
12
|
-
import { isExprRef, makeConstantExprRef } from "../
|
|
12
|
+
import { isExprRef, makeConstantExprRef } from "../paramRuntime/paramUtils.js";
|
|
13
13
|
|
|
14
14
|
/**
|
|
15
15
|
* @param {import("../spec/channel.js").Channel} channel
|
|
16
16
|
* @param {import("../spec/channel.js").ChannelDef | import("../spec/channel.js").Conditional<import("../spec/channel.js").ChannelDef>} channelDef
|
|
17
|
-
* @param {import("../
|
|
17
|
+
* @param {{ createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction }} paramRuntime
|
|
18
18
|
* @returns {import("../types/encoder.js").Accessor}
|
|
19
19
|
*/
|
|
20
|
-
export function createAccessor(channel, channelDef,
|
|
20
|
+
export function createAccessor(channel, channelDef, paramRuntime) {
|
|
21
21
|
/**
|
|
22
22
|
* @typedef {import("../data/flowNode.js").Datum} Datum
|
|
23
23
|
* @typedef {import("../spec/channel.js").Scalar} Scalar
|
|
@@ -56,7 +56,7 @@ export function createAccessor(channel, channelDef, paramMediator) {
|
|
|
56
56
|
if ("param" in channelDef) {
|
|
57
57
|
// TODO: Figure out how to fix it. Interval selection depends on FIELDS!
|
|
58
58
|
/*
|
|
59
|
-
a.predicate =
|
|
59
|
+
a.predicate = paramRuntime.createExpression(
|
|
60
60
|
makeSelectionTestExpression(channelDef)
|
|
61
61
|
);
|
|
62
62
|
a.predicate.param = channelDef.param;
|
|
@@ -95,7 +95,7 @@ export function createAccessor(channel, channelDef, paramMediator) {
|
|
|
95
95
|
function potentialExprRefToAccessor(potentialExprRef) {
|
|
96
96
|
if (isExprRef(potentialExprRef)) {
|
|
97
97
|
const a = asAccessor(
|
|
98
|
-
|
|
98
|
+
paramRuntime.createExpression(potentialExprRef.expr)
|
|
99
99
|
);
|
|
100
100
|
if (a.fields.length > 0) {
|
|
101
101
|
throw new Error(
|
|
@@ -118,7 +118,7 @@ export function createAccessor(channel, channelDef, paramMediator) {
|
|
|
118
118
|
}
|
|
119
119
|
} else if (isExprDef(channelDef)) {
|
|
120
120
|
// TODO: If parameters change, the data should be re-evaluated
|
|
121
|
-
return asAccessor(
|
|
121
|
+
return asAccessor(paramRuntime.createExpression(channelDef.expr));
|
|
122
122
|
} else if (isDatumDef(channelDef)) {
|
|
123
123
|
return potentialExprRefToAccessor(channelDef.datum);
|
|
124
124
|
} else if (isValueDef(channelDef)) {
|
|
@@ -139,9 +139,9 @@ export function createAccessor(channel, channelDef, paramMediator) {
|
|
|
139
139
|
*
|
|
140
140
|
* @param {import("../spec/channel.js").Channel} channel
|
|
141
141
|
* @param {import("../spec/channel.js").ChannelDef} channelDef
|
|
142
|
-
* @param {import("../
|
|
142
|
+
* @param {{ createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction }} paramRuntime
|
|
143
143
|
*/
|
|
144
|
-
export function createConditionalAccessors(channel, channelDef,
|
|
144
|
+
export function createConditionalAccessors(channel, channelDef, paramRuntime) {
|
|
145
145
|
/** @type {import("../types/encoder.js").Accessor[]} */
|
|
146
146
|
const conditionalAccessors = [];
|
|
147
147
|
|
|
@@ -156,13 +156,13 @@ export function createConditionalAccessors(channel, channelDef, paramMediator) {
|
|
|
156
156
|
|
|
157
157
|
for (const condition of conditions) {
|
|
158
158
|
conditionalAccessors.push(
|
|
159
|
-
createAccessor(channel, condition,
|
|
159
|
+
createAccessor(channel, condition, paramRuntime)
|
|
160
160
|
);
|
|
161
161
|
}
|
|
162
162
|
}
|
|
163
163
|
|
|
164
164
|
conditionalAccessors.push(
|
|
165
|
-
createAccessor(channel, channelDef,
|
|
165
|
+
createAccessor(channel, channelDef, paramRuntime)
|
|
166
166
|
);
|
|
167
167
|
|
|
168
168
|
if (conditionalAccessors.filter((a) => !a.constant).length > 1) {
|
|
@@ -11,14 +11,14 @@ import { createConditionalAccessors } from "./accessor.js";
|
|
|
11
11
|
*
|
|
12
12
|
* @param {string} param
|
|
13
13
|
* @param {import("../spec/channel.js").Encoding} encoding
|
|
14
|
-
* @param {import("../
|
|
14
|
+
* @param {{ findValue: (param: string) => any, createExpression: (expr: string) => import("../paramRuntime/types.js").ExprRefFunction }} paramRuntime
|
|
15
15
|
* @param {boolean} empty
|
|
16
16
|
*/
|
|
17
17
|
// eslint-disable-next-line no-unused-vars
|
|
18
|
-
function createSelectionPredicate(param, encoding,
|
|
18
|
+
function createSelectionPredicate(param, encoding, paramRuntime, empty) {
|
|
19
19
|
const selection =
|
|
20
20
|
/** @type {import("../types/selectionTypes.js").Selection} */ (
|
|
21
|
-
|
|
21
|
+
paramRuntime.findValue(param)
|
|
22
22
|
);
|
|
23
23
|
if (!selection) {
|
|
24
24
|
throw new Error(`No selection parameter found: ${param}`);
|
|
@@ -51,7 +51,7 @@ function createSelectionPredicate(param, encoding, paramMediator, empty) {
|
|
|
51
51
|
selection
|
|
52
52
|
);
|
|
53
53
|
|
|
54
|
-
return
|
|
54
|
+
return paramRuntime.createExpression(expr);
|
|
55
55
|
}
|
|
56
56
|
|
|
57
57
|
/**
|
|
@@ -94,7 +94,7 @@ export default function createEncoders(unitView, encoding) {
|
|
|
94
94
|
createConditionalAccessors(
|
|
95
95
|
typedChannel,
|
|
96
96
|
typedChannelDef,
|
|
97
|
-
unitView.
|
|
97
|
+
unitView.paramRuntime
|
|
98
98
|
),
|
|
99
99
|
scaleSource
|
|
100
100
|
);
|
|
@@ -124,6 +124,14 @@ export default class Genome {
|
|
|
124
124
|
* @returns {string}
|
|
125
125
|
*/
|
|
126
126
|
formatInterval(interval: number[]): string;
|
|
127
|
+
/**
|
|
128
|
+
* Returns a UCSC Genome Browser -style string presentation of a single
|
|
129
|
+
* position.
|
|
130
|
+
*
|
|
131
|
+
* @param {number} continuousPos
|
|
132
|
+
* @returns {string}
|
|
133
|
+
*/
|
|
134
|
+
formatLocus(continuousPos: number): string;
|
|
127
135
|
/**
|
|
128
136
|
* @param {number[]} interval
|
|
129
137
|
* @returns {[ChromosomalLocus, ChromosomalLocus]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"genome.d.ts","sourceRoot":"","sources":["../../../src/genome/genome.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"genome.d.ts","sourceRoot":"","sources":["../../../src/genome/genome.js"],"names":[],"mappings":"AAuXA;;;GAGG;AACH,gDAFW,MAAM;;;IAOhB;AAED;;;;GAIG;AACH,0CAHW,GAAG,GACF,KAAK,IAAI,gBAAgB,CAIpC;AAED;;;;GAIG;AACH,kDAHW,GAAG,EAAE,GACJ,KAAK,IAAI,gBAAgB,EAAE,CAItC;AAED;;;GAGG;AACH,sCAHW,GAAG,GACD,KAAK,IAAI,YAAY,CASjC;AAED;;;GAGG;AACH,yCAHW,GAAG,GACD,KAAK,IAAI,OAAO,mBAAmB,EAAE,eAAe,CAIhE;AAED;;;GAGG;AACH,4CAHW,GAAG,GACD,KAAK,IAAI,OAAO,mBAAmB,EAAE,kBAAkB,CAInE;AAxaD;;;;;;;;;;;;;;;;;;;;GAoBG;AAEH;IACI;;OAEG;IACH,oBAFW,YAAY,EA6CtB;IA1CG;;;;;;;;MAA2C;IAc3C,oDAAoD;IACpD,aADW,CAAC,UAAU,GAAG,oBAAoB,CAAC,EAAE,CAC3B;IAErB,2CAA2C;IAC3C,0BADW,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,MAAM,CAAC,CACE;IAEzC,sEAAsE;IACtE,mBADW,GAAG,CAAC,MAAM,GAAG,MAAM,EAAE,UAAU,GAAG,oBAAoB,CAAC,CAChC;IAElC,uBAAuB;IACvB,cADW,MAAM,EAAE,CACG;IAEtB,kBAAkB;IAkBtB,mBAEC;IAED;;OAEG;IACH,cAFW,MAAM,iBAmBhB;IAED,wBAEC;IAED;;;OAGG;IACH,0BAFW,UAAU,EAAE,QA2CtB;IAED,sBAEC;IAED;;;;;OAKG;IACH,oBAHW,MAAM,GAAG,MAAM,OACf,MAAM,UAShB;IAED;;;OAGG;IACH,4BAFW,MAAM,qCAgBhB;IAED;;;;OAIG;IACH,6BAHW,MAAM,GACJ,gBAAgB,CAY5B;IAED;;;OAGG;IACH,oBAFW,MAAM,qCAIhB;IAED;;;;;;;;;;OAUG;IACH,yBAHW,MAAM,EAAE,GACN,MAAM,CAIlB;IAED;;;;;;OAMG;IACH,2BAHW,MAAM,GACJ,MAAM,CAQlB;IAED;;;OAGG;IACH,gCAHW,MAAM,EAAE,GACN,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,CAUhD;IAED;;;;;;OAMG;IACH,kCAFW,gBAAgB,EAAE,YAgB5B;IAED;;;;;OAKG;IACH,wCAHW,CAAC,gBAAgB,EAAE,gBAAgB,CAAC,GAClC,0BAA0B,EAAE,CAiCxC;IAED;;;;OAIG;IACH,4DAFW,MAAM,EAAE,gCAOlB;IAED;;;;OAIG;IACH,mBAHW,MAAM,GACJ,CAAC,MAAM,EAAE,MAAM,CAAC,CAgC5B;CACJ;2BA7WY,OAAO,mBAAmB,EAAE,YAAY;+BACxC,OAAO,mBAAmB,EAAE,gBAAgB;;UAG/C,MAAM;UACN,MAAM;;;;;;WAGN,MAAM;;;;YACN,MAAM;;;;qBACN,MAAM;;;;mBACN,MAAM;wBACN,MAAM,EAAE;;;;SACR,OAAO;;;WAGP,MAAM;cACN,MAAM;YACN,MAAM"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { bisect } from "d3-array";
|
|
2
2
|
import { tsvParseRows } from "d3-dsv";
|
|
3
3
|
import { isObject } from "vega-util";
|
|
4
|
-
import { formatRange } from "./locusFormat.js";
|
|
4
|
+
import { formatLocus as formatLocusLabel, formatRange } from "./locusFormat.js";
|
|
5
5
|
import { getContigs } from "./genomes.js";
|
|
6
6
|
import { concatUrl } from "../utils/url.js";
|
|
7
7
|
|
|
@@ -232,6 +232,21 @@ export default class Genome {
|
|
|
232
232
|
return formatRange(...this.toChromosomalInterval(interval));
|
|
233
233
|
}
|
|
234
234
|
|
|
235
|
+
/**
|
|
236
|
+
* Returns a UCSC Genome Browser -style string presentation of a single
|
|
237
|
+
* position.
|
|
238
|
+
*
|
|
239
|
+
* @param {number} continuousPos
|
|
240
|
+
* @returns {string}
|
|
241
|
+
*/
|
|
242
|
+
formatLocus(continuousPos) {
|
|
243
|
+
const locus = this.toChromosomal(continuousPos);
|
|
244
|
+
if (!locus) {
|
|
245
|
+
return undefined;
|
|
246
|
+
}
|
|
247
|
+
return formatLocusLabel(locus);
|
|
248
|
+
}
|
|
249
|
+
|
|
235
250
|
/**
|
|
236
251
|
* @param {number[]} interval
|
|
237
252
|
* @returns {[ChromosomalLocus, ChromosomalLocus]}
|
|
@@ -29,7 +29,7 @@ export default class InputBindingManager {
|
|
|
29
29
|
const inputs = [];
|
|
30
30
|
|
|
31
31
|
viewRoot.visit((view) => {
|
|
32
|
-
const mediator = view.
|
|
32
|
+
const mediator = view.paramRuntime;
|
|
33
33
|
inputs.push(...createBindingInputs(mediator));
|
|
34
34
|
});
|
|
35
35
|
const ibc = this.#options.inputBindingContainer;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interactionController.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/interactionController.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"interactionController.d.ts","sourceRoot":"","sources":["../../../src/genomeSpy/interactionController.js"],"names":[],"mappings":"AASA;IA2BI;;;;;;;;;;OAUG;IACH,mIATG;QAAmD,QAAQ,EAAnD,OAAO,iBAAiB,EAAE,OAAO;QACe,QAAQ,EAAxD,OAAO,sBAAsB,EAAE,OAAO;QACY,OAAO,EAAzD,OAAO,wBAAwB,EAAE,OAAO;QACQ,QAAQ,EAAxD,OAAO,sBAAsB,EAAE,OAAO;QACM,SAAS,EAArD,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI;QAC6C,eAAe,EAA9F,MAAM,CAAC,MAAM,EAAE,OAAO,8BAA8B,EAAE,cAAc,CAAC;QACjD,wBAAwB,EAA5C,MAAM,IAAI;QACY,mBAAmB,EAAzC,MAAM,MAAM;KACtB,EAgCA;IAED;cArDkB,OAAO,kBAAkB,EAAE,OAAO;eAAS,OAAO,qBAAqB,EAAE,KAAK;kBAAY,MAAM;MAuDjH;IAED,4BAgMC;IAkFD;;;;;;;OAOG;IACH,cAFa,CAAC,SAFH,CAAC,cACD,CAAS,IAAC,EAAD,CAAC,KAAE,OAAO,CAAC,MAAM,GAAG,WAAW,GAAG,OAAO,KAAK,EAAE,cAAc,CAAC,QAYlF;;CACJ"}
|
|
@@ -5,6 +5,7 @@ import InteractionEvent from "../utils/interactionEvent.js";
|
|
|
5
5
|
import Inertia, { makeEventTemplate } from "../utils/inertia.js";
|
|
6
6
|
import Point from "../view/layout/point.js";
|
|
7
7
|
import { isStillZooming } from "../view/zoom.js";
|
|
8
|
+
import createTooltipContext from "../tooltip/tooltipContext.js";
|
|
8
9
|
|
|
9
10
|
export default class InteractionController {
|
|
10
11
|
/** @type {import("../view/view.js").default} */
|
|
@@ -344,7 +345,12 @@ export default class InteractionController {
|
|
|
344
345
|
);
|
|
345
346
|
}
|
|
346
347
|
|
|
347
|
-
|
|
348
|
+
const context = createTooltipContext(
|
|
349
|
+
datum,
|
|
350
|
+
mark,
|
|
351
|
+
tooltipProps?.params
|
|
352
|
+
);
|
|
353
|
+
return handler(datum, mark, tooltipProps?.params, context);
|
|
348
354
|
}
|
|
349
355
|
});
|
|
350
356
|
}
|
package/dist/src/genomeSpy.js
CHANGED
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "../encoder/encoder.js";
|
|
16
16
|
import { asArray, peek } from "../utils/arrayUtils.js";
|
|
17
17
|
import { InternMap } from "internmap";
|
|
18
|
-
import { isExprRef } from "../
|
|
18
|
+
import { isExprRef } from "../paramRuntime/paramUtils.js";
|
|
19
19
|
import scaleNull from "../utils/scaleNull.js";
|
|
20
20
|
import { cssColorToArray } from "./colorUtils.js";
|
|
21
21
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mark.d.ts","sourceRoot":"","sources":["../../../src/marks/mark.js"],"names":[],"mappings":"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"}
|