@genome-spy/core 0.67.0 → 0.69.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/index.es.js +15884 -13130
- package/dist/bundle/index.js +130 -149
- package/dist/schema.json +6498 -6191
- package/dist/src/data/collector.d.ts +20 -0
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +148 -0
- package/dist/src/data/dataFlow.d.ts +6 -0
- package/dist/src/data/dataFlow.d.ts.map +1 -1
- package/dist/src/data/dataFlow.js +20 -0
- package/dist/src/data/flowInit.d.ts.map +1 -1
- package/dist/src/data/flowInit.js +2 -3
- package/dist/src/data/flowNode.d.ts +33 -10
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +84 -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/keyIndex.d.ts +18 -0
- package/dist/src/data/keyIndex.d.ts.map +1 -0
- package/dist/src/data/keyIndex.js +241 -0
- package/dist/src/data/keyIndex.test.d.ts +2 -0
- package/dist/src/data/keyIndex.test.d.ts.map +1 -0
- package/dist/src/data/sources/dataSource.d.ts.map +1 -1
- package/dist/src/data/sources/dataSource.js +7 -3
- package/dist/src/data/sources/dataSourceFactory.d.ts +14 -12
- package/dist/src/data/sources/dataSourceFactory.d.ts.map +1 -1
- package/dist/src/data/sources/dataSourceFactory.js +52 -16
- 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/mockLazySource.d.ts +29 -0
- package/dist/src/data/sources/lazy/mockLazySource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/mockLazySource.js +44 -0
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts +22 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisLazySource.js +34 -2
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +16 -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 +56 -16
- 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/stack.d.ts.map +1 -1
- package/dist/src/data/transforms/stack.js +1 -0
- 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 +51 -4
- package/dist/src/encoder/accessor.d.ts.map +1 -1
- package/dist/src/encoder/accessor.js +174 -10
- package/dist/src/encoder/encoder.d.ts +11 -2
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +29 -9
- package/dist/src/encoder/metadataChannels.d.ts +15 -0
- package/dist/src/encoder/metadataChannels.d.ts.map +1 -0
- package/dist/src/encoder/metadataChannels.js +65 -0
- package/dist/src/encoder/metadataChannels.test.d.ts +2 -0
- package/dist/src/encoder/metadataChannels.test.d.ts.map +1 -0
- package/dist/src/genome/genome.d.ts +8 -0
- package/dist/src/genome/genome.d.ts.map +1 -1
- package/dist/src/genome/genome.js +16 -1
- package/dist/src/genome/scaleLocus.d.ts.map +1 -1
- package/dist/src/genome/scaleLocus.js +14 -1
- package/dist/src/genomeSpy/containerUi.d.ts +0 -1
- package/dist/src/genomeSpy/containerUi.d.ts.map +1 -1
- package/dist/src/genomeSpy/containerUi.js +0 -14
- 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/loadingIndicatorManager.d.ts +3 -7
- package/dist/src/genomeSpy/loadingIndicatorManager.d.ts.map +1 -1
- package/dist/src/genomeSpy/loadingIndicatorManager.js +68 -20
- package/dist/src/genomeSpy/loadingStatusRegistry.d.ts +52 -0
- package/dist/src/genomeSpy/loadingStatusRegistry.d.ts.map +1 -0
- package/dist/src/genomeSpy/loadingStatusRegistry.js +86 -0
- package/dist/src/genomeSpy/viewContextFactory.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewContextFactory.js +0 -1
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewDataInit.js +56 -11
- package/dist/src/genomeSpy.d.ts +0 -2
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +47 -27
- package/dist/src/gl/glslScaleGenerator.js +1 -1
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +40 -41
- package/dist/src/marks/markUtils.js +1 -1
- 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/scale/scale.d.ts +6 -1
- package/dist/src/scale/scale.d.ts.map +1 -1
- package/dist/src/scale/scale.js +83 -23
- package/dist/src/scales/axisResolution.d.ts.map +1 -1
- package/dist/src/scales/axisResolution.js +10 -0
- package/dist/src/scales/{scaleDomainAggregator.d.ts → domainPlanner.d.ts} +6 -3
- package/dist/src/scales/domainPlanner.d.ts.map +1 -0
- package/dist/src/scales/{scaleDomainAggregator.js → domainPlanner.js} +128 -10
- package/dist/src/scales/domainPlanner.test.d.ts +2 -0
- package/dist/src/scales/domainPlanner.test.d.ts.map +1 -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/scaleInteractionController.d.ts +6 -0
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -1
- package/dist/src/scales/scaleInteractionController.js +41 -3
- package/dist/src/scales/scaleResolution.d.ts +20 -17
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +188 -71
- package/dist/src/scales/scaleResolution.test.d.ts.map +1 -1
- package/dist/src/selection/selection.d.ts +21 -0
- package/dist/src/selection/selection.d.ts.map +1 -1
- package/dist/src/selection/selection.js +83 -1
- package/dist/src/spec/channel.d.ts +52 -15
- package/dist/src/spec/coreSchemaRoot.d.ts +53 -0
- package/dist/src/spec/data.d.ts +4 -0
- package/dist/src/spec/parameter.d.ts +16 -11
- package/dist/src/spec/root.d.ts +1 -1
- package/dist/src/spec/testing.d.ts +12 -0
- package/dist/src/spec/testing.d.ts.map +1 -0
- package/dist/src/spec/testing.js +20 -0
- package/dist/src/spec/view.d.ts +157 -41
- package/dist/src/styles/genome-spy.css +3 -31
- package/dist/src/styles/genome-spy.css.d.ts +1 -1
- package/dist/src/styles/genome-spy.css.d.ts.map +1 -1
- package/dist/src/styles/genome-spy.css.js +0 -29
- 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 +38 -3
- package/dist/src/types/rendering.d.ts +4 -3
- package/dist/src/types/viewContext.d.ts +0 -14
- 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/utils/throttle.d.ts +4 -1
- package/dist/src/utils/throttle.d.ts.map +1 -1
- package/dist/src/utils/throttle.js +54 -23
- package/dist/src/utils/throttle.test.d.ts +2 -0
- package/dist/src/utils/throttle.test.d.ts.map +1 -0
- package/dist/src/utils/transition.d.ts +21 -0
- package/dist/src/utils/transition.d.ts.map +1 -1
- package/dist/src/utils/transition.js +28 -0
- package/dist/src/utils/ui/tooltip.d.ts.map +1 -1
- package/dist/src/utils/ui/tooltip.js +7 -1
- package/dist/src/utils/ui/tooltip.test.d.ts +2 -0
- package/dist/src/utils/ui/tooltip.test.d.ts.map +1 -0
- package/dist/src/view/axisGridView.d.ts.map +1 -1
- package/dist/src/view/axisGridView.js +22 -5
- package/dist/src/view/axisView.d.ts.map +1 -1
- package/dist/src/view/axisView.js +20 -5
- package/dist/src/view/concatView.js +3 -3
- package/dist/src/view/containerMutationHelper.js +1 -1
- package/dist/src/view/containerView.d.ts +9 -5
- package/dist/src/view/containerView.d.ts.map +1 -1
- package/dist/src/view/containerView.js +34 -9
- package/dist/src/view/dataReadiness.d.ts +46 -0
- package/dist/src/view/dataReadiness.d.ts.map +1 -0
- package/dist/src/view/dataReadiness.js +267 -0
- package/dist/src/view/dataReadiness.test.d.ts +2 -0
- package/dist/src/view/dataReadiness.test.d.ts.map +1 -0
- package/dist/src/view/facetView.d.ts.map +1 -1
- package/dist/src/view/facetView.js +7 -5
- package/dist/src/view/flowBuilder.d.ts.map +1 -1
- package/dist/src/view/flowBuilder.js +17 -4
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +16 -3
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +119 -2
- package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
- package/dist/src/view/gridView/scrollbar.js +3 -0
- 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 +22 -24
- package/dist/src/view/gridView/separatorView.d.ts +51 -0
- package/dist/src/view/gridView/separatorView.d.ts.map +1 -0
- package/dist/src/view/gridView/separatorView.js +275 -0
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +7 -5
- package/dist/src/view/layout/flexLayout.d.ts +0 -30
- package/dist/src/view/layout/flexLayout.d.ts.map +1 -1
- package/dist/src/view/layout/flexLayout.js +0 -86
- 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/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +6 -1
- package/dist/src/view/unitView.d.ts +8 -13
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +120 -45
- package/dist/src/view/view.d.ts +27 -18
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +298 -37
- 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 +55 -25
- 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 +148 -0
- package/dist/src/view/viewSelectors.d.ts.map +1 -0
- package/dist/src/view/viewSelectors.js +776 -0
- package/dist/src/view/viewSelectors.test.d.ts +2 -0
- package/dist/src/view/viewSelectors.test.d.ts.map +1 -0
- package/dist/src/view/viewUtils.d.ts +0 -8
- package/dist/src/view/viewUtils.d.ts.map +1 -1
- package/dist/src/view/viewUtils.js +1 -21
- package/package.json +4 -4
- package/dist/src/scales/scaleDomainAggregator.d.ts.map +0 -1
- package/dist/src/scales/scaleDomainAggregator.test.d.ts +0 -2
- package/dist/src/scales/scaleDomainAggregator.test.d.ts.map +0 -1
- package/dist/src/spec/sampleView.d.ts +0 -197
- package/dist/src/view/paramMediator.d.ts +0 -149
- package/dist/src/view/paramMediator.d.ts.map +0 -1
- package/dist/src/view/paramMediator.js +0 -478
- package/dist/src/view/paramMediator.test.d.ts +0 -2
- package/dist/src/view/paramMediator.test.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisLazySource.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"singleAxisLazySource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisLazySource.js"],"names":[],"mappings":"AAGA;;GAEG;AAEH;;GAEG;AAEH;;;;;GAKG;AACH,wEAFgB,sBAAsB;IAelC;;;OAGG;IACH,kBAHW,OAAO,uBAAuB,EAAE,OAAO,WACvC,OAAO,0BAA0B,EAAE,wBAAwB,EA+CrE;IA7DD;;;OAGG;IACH,4CAAuC;IAEvC;;;OAGG;IACH,6BAHU,MAAM,EAAE,GAAG,SAAS,CAGZ;IAmBd,2EAA2E;IAC3E,SADW,OAAO,0BAA0B,EAAE,wBAAwB,CAChD;IAEtB,sEAA4D;IA+BhE;;;;OAIG;IACH,oEASC;IAED;;;;;;OAMG;IACH,wBAJW,MAAM,EAAE,iBACR,OAAO,yBAAyB,EAAE,gBAAgB,EAAE,QAK9D;IAED;;;;;OAKG;IACH,gCAGC;IAQD;;;;;;;;OAQG;IACH,8BAHW,OAAO,mBAAmB,EAAE,KAAK,EAAE,EAAE,QAe/C;IAED;;;OAGG;IACH,8BAHW,oBAAoB,GAClB,OAAO,CAenB;CACJ;mCAlKY,OAAO,CAAC,MAAM,CAAC,OAAO,0BAA0B,EAAE,wBAAwB,EAAE,MAAM,EAAE,CAAC,CAAC;qCAItF;IAAC,oBAAoB,EAAE,CAAC,OAAO,EAAE,oBAAoB,KAAK,OAAO,CAAA;CAAC;uBAPxD,kBAAkB"}
|
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
import UnitView from "../../../view/unitView.js";
|
|
2
2
|
import DataSource from "../dataSource.js";
|
|
3
|
-
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {Partial<Record<import("../../../spec/channel.js").PrimaryPositionalChannel, number[]>>} DataReadinessRequest
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* @typedef {{isDataReadyForDomain: (request: DataReadinessRequest) => boolean}} DataReadinessCheckable
|
|
10
|
+
*/
|
|
4
11
|
|
|
5
12
|
/**
|
|
6
13
|
* Base class for data sources that listen a domain and propagate data lazily.
|
|
7
14
|
*
|
|
8
15
|
* @abstract
|
|
16
|
+
* @implements {DataReadinessCheckable}
|
|
9
17
|
*/
|
|
10
18
|
export default class SingleAxisLazySource extends DataSource {
|
|
11
19
|
/**
|
|
@@ -14,6 +22,12 @@ export default class SingleAxisLazySource extends DataSource {
|
|
|
14
22
|
*/
|
|
15
23
|
initializedPromise = Promise.resolve();
|
|
16
24
|
|
|
25
|
+
/**
|
|
26
|
+
* @type {number[] | undefined}
|
|
27
|
+
* @protected
|
|
28
|
+
*/
|
|
29
|
+
_lastLoadedDomain;
|
|
30
|
+
|
|
17
31
|
/**
|
|
18
32
|
* @param {import("../../../view/view.js").default} view
|
|
19
33
|
* @param {import("../../../spec/channel.js").PrimaryPositionalChannel} channel
|
|
@@ -119,6 +133,7 @@ export default class SingleAxisLazySource extends DataSource {
|
|
|
119
133
|
* @protected
|
|
120
134
|
*/
|
|
121
135
|
publishData(chunks) {
|
|
136
|
+
this._lastLoadedDomain = Array.from(this.scaleResolution.getDomain());
|
|
122
137
|
this.reset();
|
|
123
138
|
this.beginBatch({ type: "file" });
|
|
124
139
|
|
|
@@ -129,7 +144,24 @@ export default class SingleAxisLazySource extends DataSource {
|
|
|
129
144
|
}
|
|
130
145
|
|
|
131
146
|
this.complete();
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
/**
|
|
150
|
+
* @param {DataReadinessRequest} request
|
|
151
|
+
* @returns {boolean}
|
|
152
|
+
*/
|
|
153
|
+
isDataReadyForDomain(request) {
|
|
154
|
+
const domain = request[this.channel];
|
|
155
|
+
if (!domain || !this._lastLoadedDomain) {
|
|
156
|
+
return false;
|
|
157
|
+
}
|
|
132
158
|
|
|
133
|
-
|
|
159
|
+
const [min, max] =
|
|
160
|
+
domain[0] <= domain[1] ? domain : [domain[1], domain[0]];
|
|
161
|
+
const [loadedMin, loadedMax] =
|
|
162
|
+
this._lastLoadedDomain[0] <= this._lastLoadedDomain[1]
|
|
163
|
+
? this._lastLoadedDomain
|
|
164
|
+
: [this._lastLoadedDomain[1], this._lastLoadedDomain[0]];
|
|
165
|
+
return min >= loadedMin && max <= loadedMax;
|
|
134
166
|
}
|
|
135
167
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"singleAxisWindowedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisWindowedSource.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IAWI;;;OAGG;IACH,kBAHU;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,4BAA4B,EAAE,OAAO,CAAA;KAAC,CAGvE;IAEP;;;OAGG;IACH,0CAHW,OAAO,uBAAuB,EAAE,aAAa,QAqBvD;IAED;;;;OAIG;IACH,wBAFW,MAAM,EAAE,QAqBlB;
|
|
1
|
+
{"version":3,"file":"singleAxisWindowedSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/singleAxisWindowedSource.js"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH;IAWI;;;OAGG;IACH,kBAHU;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,OAAO,4BAA4B,EAAE,OAAO,CAAA;KAAC,CAGvE;IAEP;;;OAGG;IACH,0CAHW,OAAO,uBAAuB,EAAE,aAAa,QAqBvD;IAED;;;;OAIG;IACH,wBAFW,MAAM,EAAE,QAqBlB;IAeD;;;;;OAKG;IACH,iCAHW,MAAM,EAAE,iBAKlB;IArBD;;OAEG;IACH,mCAQC;IAyBD;;;;;;;;;OASG;IACH,4BAHa,CAAC,YAHH,MAAM,EAAE,UACR,CAAC,eAAe,EAAE,OAAO,mCAAmC,EAAE,0BAA0B,EAAE,MAAM,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC,CAAC,GAC3H,OAAO,CAAC,CAAC,EAAE,CAAC,CAyCvB;IAED;;;;;;OAMG;IACH,yCALW,MAAM,EAAE,cACR,MAAM,YACN,CAAS,IAAQ,EAAR,MAAM,EAAE,KAAE,IAAI,QAyBjC;;CACJ;iCA9LgC,2BAA2B"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { withoutExprRef } from "../../../
|
|
1
|
+
import { withoutExprRef } from "../../../paramRuntime/paramUtils.js";
|
|
2
2
|
import { debounce } from "../../../utils/debounce.js";
|
|
3
3
|
import SingleAxisLazySource from "./singleAxisLazySource.js";
|
|
4
4
|
|
|
@@ -83,6 +83,7 @@ export default class SingleAxisWindowedSource extends SingleAxisLazySource {
|
|
|
83
83
|
|
|
84
84
|
this.#lastDomain = [0, 0];
|
|
85
85
|
this.#lastQuantizedInterval = [0, 0];
|
|
86
|
+
this._lastLoadedDomain = undefined;
|
|
86
87
|
|
|
87
88
|
this.onDomainChanged(domain);
|
|
88
89
|
}
|
|
@@ -97,6 +98,19 @@ export default class SingleAxisWindowedSource extends SingleAxisLazySource {
|
|
|
97
98
|
// Override me if needed
|
|
98
99
|
}
|
|
99
100
|
|
|
101
|
+
/**
|
|
102
|
+
* @param {import("../../flowNode.js").Datum[][]} chunks
|
|
103
|
+
* @protected
|
|
104
|
+
*/
|
|
105
|
+
publishData(chunks) {
|
|
106
|
+
// Preserve window coverage; base publishData would overwrite it with the current scale domain.
|
|
107
|
+
const loadedDomain = this._lastLoadedDomain;
|
|
108
|
+
super.publishData(chunks);
|
|
109
|
+
if (loadedDomain) {
|
|
110
|
+
this._lastLoadedDomain = loadedDomain;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
100
114
|
/**
|
|
101
115
|
* Splits the interval into discrete chromosomal intervals – one for each chromosome –
|
|
102
116
|
* and loads the data for each of them. Handles abort signals and errors.
|
|
@@ -134,6 +148,7 @@ export default class SingleAxisWindowedSource extends SingleAxisLazySource {
|
|
|
134
148
|
|
|
135
149
|
if (!signal.aborted) {
|
|
136
150
|
this.setLoadingStatus("complete");
|
|
151
|
+
this._lastLoadedDomain = Array.from(interval);
|
|
137
152
|
return resultByChrom;
|
|
138
153
|
}
|
|
139
154
|
} catch (e) {
|
|
@@ -9,7 +9,6 @@ export default class TabixSource<T> extends SingleAxisWindowedSource {
|
|
|
9
9
|
*/
|
|
10
10
|
constructor(params: import("../../../spec/data.js").TabixData, view: import("../../../view/view.js").default);
|
|
11
11
|
params: import("../../../spec/data.js").TabixData;
|
|
12
|
-
initializedPromise: Promise<any>;
|
|
13
12
|
/**
|
|
14
13
|
* @param {string} header
|
|
15
14
|
* @protected
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabixSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/tabixSource.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tabixSource.d.ts","sourceRoot":"","sources":["../../../../../src/data/sources/lazy/tabixSource.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH,iCAHa,CAAC;IAOV;;;OAGG;IACH,oBAHW,OAAO,uBAAuB,EAAE,SAAS,QACzC,OAAO,uBAAuB,EAAE,OAAO,EAyCjD;IAzBG,kDAgBC;IA0FL;;;OAGG;IACH,gCAHW,MAAM,iBAKhB;IAED;;;;;OAKG;IACH,gCAHW,MAAM,EAAE,GACN,CAAC,EAAE,CAKf;;CACJ;qCAxJoC,+BAA+B"}
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
import {
|
|
2
|
+
activateExprRefProps,
|
|
3
|
+
withoutExprRef,
|
|
4
|
+
} from "../../../paramRuntime/paramUtils.js";
|
|
1
5
|
import addBaseUrl from "../../../utils/addBaseUrl.js";
|
|
2
6
|
import SingleAxisWindowedSource from "./singleAxisWindowedSource.js";
|
|
3
7
|
|
|
@@ -24,17 +28,38 @@ export default class TabixSource extends SingleAxisWindowedSource {
|
|
|
24
28
|
...params,
|
|
25
29
|
};
|
|
26
30
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
31
|
+
const channel = withoutExprRef(paramsWithDefaults.channel);
|
|
32
|
+
super(view, channel);
|
|
33
|
+
|
|
34
|
+
this.params = activateExprRefProps(
|
|
35
|
+
view.paramRuntime,
|
|
36
|
+
paramsWithDefaults,
|
|
37
|
+
(props) => {
|
|
38
|
+
if (
|
|
39
|
+
props.has("url") ||
|
|
40
|
+
props.has("indexUrl") ||
|
|
41
|
+
props.has("addChrPrefix")
|
|
42
|
+
) {
|
|
43
|
+
this.#initialize().then(() => this.reloadLastDomain());
|
|
44
|
+
} else if (props.has("windowSize")) {
|
|
45
|
+
this.reloadLastDomain();
|
|
46
|
+
}
|
|
47
|
+
},
|
|
48
|
+
(disposer) => this.registerDisposer(disposer),
|
|
49
|
+
{ batchMode: "whenPropagated" }
|
|
50
|
+
);
|
|
30
51
|
|
|
31
|
-
if (!this.params.url) {
|
|
52
|
+
if (!withoutExprRef(this.params.url)) {
|
|
32
53
|
throw new Error("No URL provided for TabixSource");
|
|
33
54
|
}
|
|
34
55
|
|
|
35
56
|
this.setupDebouncing(this.params);
|
|
36
57
|
|
|
37
|
-
this
|
|
58
|
+
this.#initialize();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
#initialize() {
|
|
62
|
+
this.initializedPromise = new Promise((resolve, reject) => {
|
|
38
63
|
Promise.all([
|
|
39
64
|
import("@gmod/tabix"),
|
|
40
65
|
import("generic-filehandle2"),
|
|
@@ -42,25 +67,40 @@ export default class TabixSource extends SingleAxisWindowedSource {
|
|
|
42
67
|
const withBase = (/** @type {string} */ uri) =>
|
|
43
68
|
new RemoteFile(addBaseUrl(uri, this.view.getBaseUrl()));
|
|
44
69
|
|
|
70
|
+
const url = withoutExprRef(this.params.url);
|
|
71
|
+
const indexUrl =
|
|
72
|
+
withoutExprRef(this.params.indexUrl) ?? url + ".tbi";
|
|
73
|
+
const addChrPrefix = withoutExprRef(this.params.addChrPrefix);
|
|
74
|
+
|
|
45
75
|
this.#tbiIndex = new TabixIndexedFile({
|
|
46
|
-
filehandle: withBase(
|
|
47
|
-
tbiFilehandle: withBase(
|
|
48
|
-
this.params.indexUrl ?? this.params.url + ".tbi"
|
|
49
|
-
),
|
|
76
|
+
filehandle: withBase(url),
|
|
77
|
+
tbiFilehandle: withBase(indexUrl),
|
|
50
78
|
renameRefSeqs:
|
|
51
|
-
|
|
79
|
+
addChrPrefix === true
|
|
52
80
|
? (refSeq) => "chr" + refSeq
|
|
53
|
-
:
|
|
54
|
-
? (refSeq) =>
|
|
81
|
+
: addChrPrefix
|
|
82
|
+
? (refSeq) => addChrPrefix + refSeq
|
|
55
83
|
: undefined,
|
|
56
84
|
});
|
|
57
85
|
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
86
|
+
try {
|
|
87
|
+
this.setLoadingStatus("loading");
|
|
88
|
+
const header = await this.#tbiIndex.getHeader();
|
|
89
|
+
await this._handleHeader(header);
|
|
90
|
+
this.setLoadingStatus("complete");
|
|
91
|
+
resolve();
|
|
92
|
+
} catch (e) {
|
|
93
|
+
this.load();
|
|
94
|
+
this.setLoadingStatus(
|
|
95
|
+
"error",
|
|
96
|
+
`${withoutExprRef(this.params.url)}: ${e.message}`
|
|
97
|
+
);
|
|
98
|
+
reject(e);
|
|
99
|
+
}
|
|
62
100
|
});
|
|
63
101
|
});
|
|
102
|
+
|
|
103
|
+
return this.initializedPromise;
|
|
64
104
|
}
|
|
65
105
|
|
|
66
106
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sequenceSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/sequenceSource.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,0CAHW,OAAO,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,GACxC,IAAI,IAAI,OAAO,oBAAoB,EAAE,iBAAiB,CAIlE;AAED;IACI;;;;OAIG;IACH,oBAHW,OAAO,oBAAoB,EAAE,iBAAiB,QAC9C,OAAO,oBAAoB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"sequenceSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/sequenceSource.js"],"names":[],"mappings":"AAMA;;;GAGG;AACH,0CAHW,OAAO,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,GACxC,IAAI,IAAI,OAAO,oBAAoB,EAAE,iBAAiB,CAIlE;AAED;IACI;;;;OAIG;IACH,oBAHW,OAAO,oBAAoB,EAAE,iBAAiB,QAC9C,OAAO,oBAAoB,EAAE,OAAO,EAmB9C;IAdG,sDAMC;IAcL,0BAcC;CAKJ;uBA1DsB,iBAAiB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import {
|
|
2
2
|
activateExprRefProps,
|
|
3
3
|
withoutExprRef,
|
|
4
|
-
} from "../../
|
|
4
|
+
} from "../../paramRuntime/paramUtils.js";
|
|
5
5
|
import DataSource from "./dataSource.js";
|
|
6
6
|
|
|
7
7
|
/**
|
|
@@ -22,9 +22,11 @@ export default class SequenceSource extends DataSource {
|
|
|
22
22
|
super(view);
|
|
23
23
|
|
|
24
24
|
this.sequence = activateExprRefProps(
|
|
25
|
-
view.
|
|
25
|
+
view.paramRuntime,
|
|
26
26
|
params.sequence,
|
|
27
|
-
() => this.loadSynchronously()
|
|
27
|
+
() => this.loadSynchronously(),
|
|
28
|
+
(disposer) => this.registerDisposer(disposer),
|
|
29
|
+
{ batchMode: "whenPropagated" }
|
|
28
30
|
);
|
|
29
31
|
|
|
30
32
|
if (!("start" in this.sequence)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"urlSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/urlSource.js"],"names":[],"mappings":"AASA;;;GAGG;AACH,gCAHW,OAAO,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,GACxC,IAAI,IAAI,OAAO,oBAAoB,EAAE,OAAO,CAIxD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,OAAO,QACpC,OAAO,oBAAoB,EAAE,OAAO,
|
|
1
|
+
{"version":3,"file":"urlSource.d.ts","sourceRoot":"","sources":["../../../../src/data/sources/urlSource.js"],"names":[],"mappings":"AASA;;;GAGG;AACH,gCAHW,OAAO,CAAC,OAAO,oBAAoB,EAAE,IAAI,CAAC,GACxC,IAAI,IAAI,OAAO,oBAAoB,EAAE,OAAO,CAIxD;AAED;IACI;;;OAGG;IACH,oBAHW,OAAO,oBAAoB,EAAE,OAAO,QACpC,OAAO,oBAAoB,EAAE,OAAO,EAc9C;IATG,6CAMC;IAED,gBAAiC;;CAuGxC;uBAtIsB,iBAAiB"}
|
|
@@ -4,7 +4,7 @@ import DataSource from "./dataSource.js";
|
|
|
4
4
|
import {
|
|
5
5
|
activateExprRefProps,
|
|
6
6
|
withoutExprRef,
|
|
7
|
-
} from "../../
|
|
7
|
+
} from "../../paramRuntime/paramUtils.js";
|
|
8
8
|
import { concatUrl } from "../../utils/url.js";
|
|
9
9
|
|
|
10
10
|
/**
|
|
@@ -23,8 +23,12 @@ export default class UrlSource extends DataSource {
|
|
|
23
23
|
constructor(params, view) {
|
|
24
24
|
super(view);
|
|
25
25
|
|
|
26
|
-
this.params = activateExprRefProps(
|
|
27
|
-
|
|
26
|
+
this.params = activateExprRefProps(
|
|
27
|
+
view.paramRuntime,
|
|
28
|
+
params,
|
|
29
|
+
() => this.load(),
|
|
30
|
+
(disposer) => this.registerDisposer(disposer),
|
|
31
|
+
{ batchMode: "whenPropagated" }
|
|
28
32
|
);
|
|
29
33
|
|
|
30
34
|
this.baseUrl = view?.getBaseUrl();
|
|
@@ -12,12 +12,12 @@ export default class FilterTransform extends Transform {
|
|
|
12
12
|
/**
|
|
13
13
|
*
|
|
14
14
|
* @param {import("../../spec/transform.js").FilterParams} params
|
|
15
|
-
* @param {import("../flowNode.js").
|
|
15
|
+
* @param {import("../flowNode.js").ParamRuntimeProvider} paramRuntimeProvider
|
|
16
16
|
*/
|
|
17
|
-
constructor(params: import("../../spec/transform.js").FilterParams,
|
|
17
|
+
constructor(params: import("../../spec/transform.js").FilterParams, paramRuntimeProvider: import("../flowNode.js").ParamRuntimeProvider);
|
|
18
18
|
params: import("../../spec/transform.js").FilterParams;
|
|
19
|
-
/** @type {import("../../
|
|
20
|
-
predicate: import("../../
|
|
19
|
+
/** @type {import("../../paramRuntime/types.js").ExprRefFunction} */
|
|
20
|
+
predicate: import("../../paramRuntime/types.js").ExprRefFunction;
|
|
21
21
|
}
|
|
22
22
|
import Transform from "./transform.js";
|
|
23
23
|
//# sourceMappingURL=filter.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filter.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"filter.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/filter.js"],"names":[],"mappings":"AA0DA;;;GAGG;AACH,2CAHW,OAAO,yBAAyB,EAAE,YAAY,GAC5C,MAAM,IAAI,OAAO,yBAAyB,EAAE,gBAAgB,CAIxE;AAED;;;GAGG;AACH,gDAHW,OAAO,yBAAyB,EAAE,YAAY,GAC5C,MAAM,IAAI,OAAO,yBAAyB,EAAE,qBAAqB,CAI7E;AArED;IACI;;;;OAIG;IACH,oBAHW,OAAO,yBAAyB,EAAE,YAAY,wBAC9C,OAAO,gBAAgB,EAAE,oBAAoB,EASvD;IAJG,uDAAoB;IAEpB,oEAAoE;IACpE,WADW,OAAO,6BAA6B,EAAE,eAAe,CACtC;CAyCjC;sBAvDqB,gBAAgB"}
|
|
@@ -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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/stack.js"],"names":[],"mappings":"AAMA;IAKI;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,WAAW,EAQvD;IAJG,sDAAoB;IAEpB,oBAAoB;IACpB,QADW,GAAG,EAAE,CACA;
|
|
1
|
+
{"version":3,"file":"stack.d.ts","sourceRoot":"","sources":["../../../../src/data/transforms/stack.js"],"names":[],"mappings":"AAMA;IAKI;;OAEG;IACH,oBAFW,OAAO,yBAAyB,EAAE,WAAW,EAQvD;IAJG,sDAAoB;IAEpB,oBAAoB;IACpB,QADW,GAAG,EAAE,CACA;CAoHvB;sBAnIqB,gBAAgB"}
|
|
@@ -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
|
|