@genome-spy/core 0.65.0 → 0.66.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/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 +17587 -16593
- 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/flowInit.js +2 -2
- 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 +12 -0
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewDataInit.js +41 -0
- package/dist/src/genomeSpy/viewHierarchyConfig.d.ts +14 -0
- package/dist/src/genomeSpy/viewHierarchyConfig.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewHierarchyConfig.js +24 -0
- package/dist/src/genomeSpy/viewHighlight.d.ts +5 -0
- package/dist/src/genomeSpy/viewHighlight.d.ts.map +1 -0
- package/dist/src/genomeSpy/viewHighlight.js +30 -0
- package/dist/src/genomeSpy.d.ts +16 -71
- package/dist/src/genomeSpy.d.ts.map +1 -1
- package/dist/src/genomeSpy.js +179 -745
- 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 +162 -0
- package/dist/src/scales/scaleDomainAggregator.test.d.ts +2 -0
- package/dist/src/scales/scaleDomainAggregator.test.d.ts.map +1 -0
- package/dist/src/scales/scaleInstanceManager.d.ts +40 -0
- package/dist/src/scales/scaleInstanceManager.d.ts.map +1 -0
- package/dist/src/scales/scaleInstanceManager.js +313 -0
- package/dist/src/scales/scaleInstanceManager.test.d.ts +2 -0
- package/dist/src/scales/scaleInstanceManager.test.d.ts.map +1 -0
- package/dist/src/scales/scaleInteractionController.d.ts +73 -0
- package/dist/src/scales/scaleInteractionController.d.ts.map +1 -0
- package/dist/src/scales/scaleInteractionController.js +336 -0
- package/dist/src/scales/scaleInteractionController.test.d.ts +2 -0
- package/dist/src/scales/scaleInteractionController.test.d.ts.map +1 -0
- package/dist/src/scales/scalePropsResolver.d.ts +23 -0
- package/dist/src/scales/scalePropsResolver.d.ts.map +1 -0
- package/dist/src/scales/scalePropsResolver.js +74 -0
- package/dist/src/{view → scales}/scaleResolution.d.ts +52 -35
- package/dist/src/scales/scaleResolution.d.ts.map +1 -0
- package/dist/src/scales/scaleResolution.js +658 -0
- package/dist/src/scales/scaleResolution.test.d.ts.map +1 -0
- package/dist/src/scales/scaleResolutionConstants.d.ts +6 -0
- package/dist/src/scales/scaleResolutionConstants.d.ts.map +1 -0
- package/dist/src/scales/scaleResolutionConstants.js +5 -0
- package/dist/src/scales/scaleRules.d.ts +16 -0
- package/dist/src/scales/scaleRules.d.ts.map +1 -0
- package/dist/src/scales/scaleRules.js +103 -0
- package/dist/src/scales/scaleRules.test.d.ts +2 -0
- package/dist/src/scales/scaleRules.test.d.ts.map +1 -0
- package/dist/src/spec/channel.d.ts +13 -18
- package/dist/src/spec/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/view/concatView.d.ts +18 -0
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +73 -0
- package/dist/src/view/concatView.test.d.ts +2 -0
- package/dist/src/view/concatView.test.d.ts.map +1 -0
- package/dist/src/view/containerMutationHelper.d.ts +74 -0
- package/dist/src/view/containerMutationHelper.d.ts.map +1 -0
- package/dist/src/view/containerMutationHelper.js +114 -0
- package/dist/src/view/containerView.d.ts +0 -7
- package/dist/src/view/containerView.d.ts.map +1 -1
- package/dist/src/view/containerView.js +0 -10
- package/dist/src/view/facetView.d.ts.map +1 -1
- package/dist/src/view/facetView.js +0 -15
- 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 +2 -1
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +24 -34
- package/dist/src/view/view.d.ts +6 -6
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +4 -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,103 @@
|
|
|
1
|
+
import { isContinuous } from "vega-scale";
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
isPositionalChannel,
|
|
5
|
+
isPrimaryPositionalChannel,
|
|
6
|
+
} from "../encoder/encoder.js";
|
|
7
|
+
import {
|
|
8
|
+
INDEX,
|
|
9
|
+
LOCUS,
|
|
10
|
+
NOMINAL,
|
|
11
|
+
ORDINAL,
|
|
12
|
+
QUANTITATIVE,
|
|
13
|
+
} from "./scaleResolutionConstants.js";
|
|
14
|
+
|
|
15
|
+
/**
|
|
16
|
+
* @typedef {import("../spec/channel.js").Channel} Channel
|
|
17
|
+
*/
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* @param {Channel} channel
|
|
21
|
+
* @param {import("../spec/channel.js").Type} dataType
|
|
22
|
+
* @returns {import("../spec/scale.js").ScaleType}
|
|
23
|
+
*/
|
|
24
|
+
export function getDefaultScaleType(channel, dataType) {
|
|
25
|
+
// TODO: Band scale, Bin-Quantitative
|
|
26
|
+
|
|
27
|
+
if (dataType == INDEX || dataType == LOCUS) {
|
|
28
|
+
if (isPrimaryPositionalChannel(channel)) {
|
|
29
|
+
return dataType;
|
|
30
|
+
} else {
|
|
31
|
+
// TODO: Also explicitly set scales should be validated
|
|
32
|
+
throw new Error(
|
|
33
|
+
channel +
|
|
34
|
+
" does not support " +
|
|
35
|
+
dataType +
|
|
36
|
+
" data type. Only positional channels do."
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @type {Partial<Record<Channel, (import("../spec/scale.js").ScaleType | undefined)[]>>}
|
|
43
|
+
* Default types: nominal, ordinal, quantitative.
|
|
44
|
+
* undefined = incompatible, "null" = disabled (pass-thru)
|
|
45
|
+
*/
|
|
46
|
+
const defaults = {
|
|
47
|
+
x: ["band", "band", "linear"],
|
|
48
|
+
y: ["band", "band", "linear"],
|
|
49
|
+
size: [undefined, "point", "linear"],
|
|
50
|
+
opacity: [undefined, "point", "linear"],
|
|
51
|
+
fillOpacity: [undefined, "point", "linear"],
|
|
52
|
+
strokeOpacity: [undefined, "point", "linear"],
|
|
53
|
+
color: ["ordinal", "ordinal", "linear"],
|
|
54
|
+
fill: ["ordinal", "ordinal", "linear"],
|
|
55
|
+
stroke: ["ordinal", "ordinal", "linear"],
|
|
56
|
+
strokeWidth: [undefined, undefined, "linear"],
|
|
57
|
+
shape: ["ordinal", "ordinal", undefined],
|
|
58
|
+
dx: [undefined, undefined, "null"],
|
|
59
|
+
dy: [undefined, undefined, "null"],
|
|
60
|
+
angle: [undefined, undefined, "linear"],
|
|
61
|
+
sample: ["null", undefined, undefined],
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
/** @type {Channel[]} */
|
|
65
|
+
const typelessChannels = ["sample"];
|
|
66
|
+
|
|
67
|
+
const type = typelessChannels.includes(channel)
|
|
68
|
+
? "null"
|
|
69
|
+
: defaults[channel]
|
|
70
|
+
? defaults[channel][
|
|
71
|
+
[NOMINAL, ORDINAL, QUANTITATIVE].indexOf(dataType)
|
|
72
|
+
]
|
|
73
|
+
: dataType == QUANTITATIVE
|
|
74
|
+
? "linear"
|
|
75
|
+
: "ordinal";
|
|
76
|
+
|
|
77
|
+
if (type === undefined) {
|
|
78
|
+
throw new Error(
|
|
79
|
+
'Channel "' +
|
|
80
|
+
channel +
|
|
81
|
+
'" is not compatible with "' +
|
|
82
|
+
dataType +
|
|
83
|
+
'" data type. Use of a proper scale may be needed.'
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
return type;
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
/**
|
|
91
|
+
* @param {import("../spec/scale.js").Scale} props
|
|
92
|
+
* @param {Channel} channel
|
|
93
|
+
*/
|
|
94
|
+
export function applyLockedProperties(props, channel) {
|
|
95
|
+
if (isPositionalChannel(channel) && props.type !== "ordinal") {
|
|
96
|
+
// Unit ranges are a temporary default until pixel ranges are adopted.
|
|
97
|
+
props.range = [0, 1];
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
if (channel == "opacity" && isContinuous(props.type)) {
|
|
101
|
+
props.clamp = true;
|
|
102
|
+
}
|
|
103
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scaleRules.test.d.ts","sourceRoot":"","sources":["../../../src/scales/scaleRules.test.js"],"names":[],"mappings":""}
|
|
@@ -166,19 +166,15 @@ export interface ValueDefBase<V extends Value = Scalar> {
|
|
|
166
166
|
export type ValueDef<V extends Value = Scalar> = ValueDefBase<V> & TitleMixins;
|
|
167
167
|
|
|
168
168
|
export interface DatumDef<V extends Scalar | ExprRef = Scalar | ExprRef>
|
|
169
|
-
extends Partial<TypeMixins<Type>>,
|
|
170
|
-
BandMixins,
|
|
171
|
-
ScaleMixins,
|
|
172
|
-
TitleMixins {
|
|
169
|
+
extends Partial<TypeMixins<Type>>, BandMixins, ScaleMixins, TitleMixins {
|
|
173
170
|
/**
|
|
174
171
|
* A constant value in data domain.
|
|
175
172
|
*/
|
|
176
173
|
datum?: V;
|
|
177
174
|
}
|
|
178
175
|
|
|
179
|
-
export interface ExprDef
|
|
180
|
-
|
|
181
|
-
TitleMixins {
|
|
176
|
+
export interface ExprDef
|
|
177
|
+
extends Partial<TypeMixins<Type>>, BandMixins, TitleMixins {
|
|
182
178
|
/**
|
|
183
179
|
* An expression. Properties of the data can be accessed through the `datum` object.
|
|
184
180
|
*/
|
|
@@ -200,17 +196,16 @@ export type MarkPropDatumDef<T extends Type> = LegendMixins &
|
|
|
200
196
|
ScaleDatumDef &
|
|
201
197
|
TypeMixins<T>;
|
|
202
198
|
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
}
|
|
199
|
+
/**
|
|
200
|
+
* An object defining properties of the legend.
|
|
201
|
+
* If `null`, the legend for the encoding channel will be removed.
|
|
202
|
+
*
|
|
203
|
+
* __Default value:__ If undefined, default [legend properties](https://vega.github.io/vega-lite/docs/legend.html) are applied.
|
|
204
|
+
*
|
|
205
|
+
* __See also:__ [`legend`](https://vega.github.io/vega-lite/docs/legend.html) documentation.
|
|
206
|
+
*/
|
|
207
|
+
// TODO: legend?: Legend<ExprRef | SignalRef> | null;
|
|
208
|
+
export type LegendMixins = Record<string, never>;
|
|
214
209
|
|
|
215
210
|
export type ConditionalTemplate =
|
|
216
211
|
| FieldDef<any>
|
package/dist/src/spec/scale.d.ts
CHANGED
|
@@ -47,6 +47,12 @@ export interface Scale {
|
|
|
47
47
|
*/
|
|
48
48
|
type?: ScaleType;
|
|
49
49
|
|
|
50
|
+
/**
|
|
51
|
+
* The genome assembly name for locus scales. If undefined, the default
|
|
52
|
+
* genome from the genome store is used.
|
|
53
|
+
*/
|
|
54
|
+
assembly?: string;
|
|
55
|
+
|
|
50
56
|
/**
|
|
51
57
|
* Customized domain values.
|
|
52
58
|
*
|
|
@@ -40,6 +40,11 @@ export interface EmbedOptions {
|
|
|
40
40
|
* @genome-spy/app package.
|
|
41
41
|
*/
|
|
42
42
|
powerPreference?: "default" | "high-performance" | "low-power";
|
|
43
|
+
|
|
44
|
+
/**
|
|
45
|
+
* Optional hook for handling launch errors. Return true to suppress default UI.
|
|
46
|
+
*/
|
|
47
|
+
onError?: (error: unknown, container: HTMLElement) => boolean | void;
|
|
43
48
|
}
|
|
44
49
|
|
|
45
50
|
/**
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ComplexDomain, NumericDomain } from "../spec/scale.js";
|
|
2
|
-
import ScaleResolution from "../
|
|
2
|
+
import ScaleResolution from "../scales/scaleResolution.js";
|
|
3
3
|
|
|
4
4
|
export type ScaleResolutionEventType = "domain" | "range";
|
|
5
5
|
export interface ScaleResolutionEvent {
|
|
@@ -11,6 +11,24 @@ export default class ConcatView extends GridView {
|
|
|
11
11
|
* @param {string} name
|
|
12
12
|
*/
|
|
13
13
|
constructor(spec: import("../spec/view.js").AnyConcatSpec, context: import("../types/viewContext.js").default, layoutParent: import("./containerView.js").default, dataParent: import("./view.js").default, name: string);
|
|
14
|
+
/**
|
|
15
|
+
* Adds a child spec dynamically. Intended for post-initialization updates.
|
|
16
|
+
*
|
|
17
|
+
* Callers should prefer this over direct GridView insertion to ensure
|
|
18
|
+
* dataflow initialization, axis wiring, and layout reflow are handled.
|
|
19
|
+
*
|
|
20
|
+
* @param {import("../spec/view.js").ViewSpec} childSpec
|
|
21
|
+
* @param {number} [index]
|
|
22
|
+
* @returns {Promise<import("./view.js").default>}
|
|
23
|
+
*/
|
|
24
|
+
addChildSpec(childSpec: import("../spec/view.js").ViewSpec, index?: number): Promise<import("./view.js").default>;
|
|
25
|
+
/**
|
|
26
|
+
* Removes a child by index. Intended for post-initialization updates.
|
|
27
|
+
*
|
|
28
|
+
* @param {number} index
|
|
29
|
+
*/
|
|
30
|
+
removeChildAt(index: number): Promise<void>;
|
|
31
|
+
#private;
|
|
14
32
|
}
|
|
15
33
|
import GridView from "./gridView/gridView.js";
|
|
16
34
|
//# sourceMappingURL=concatView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"concatView.d.ts","sourceRoot":"","sources":["../../../src/view/concatView.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"concatView.d.ts","sourceRoot":"","sources":["../../../src/view/concatView.js"],"names":[],"mappings":"AAIA;;GAEG;AACH;IACI;;;;;;;OAOG;IACH,kBANW,OAAO,iBAAiB,EAAE,aAAa,WACvC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,OAAO,oBAAoB,EAAE,OAAO,cACpC,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,EAiBhB;IA6BD;;;;;;;;;OASG;IACH,wBAJW,OAAO,iBAAiB,EAAE,QAAQ,UAClC,MAAM,GACJ,OAAO,CAAC,OAAO,WAAW,EAAE,OAAO,CAAC,CAIhD;IAED;;;;OAIG;IACH,qBAFW,MAAM,iBAIhB;;CA2EJ;qBA3JoB,wBAAwB"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { isConcatSpec, isHConcatSpec, isVConcatSpec } from "./viewFactory.js";
|
|
2
2
|
import GridView from "./gridView/gridView.js";
|
|
3
|
+
import ContainerMutationHelper from "./containerMutationHelper.js";
|
|
3
4
|
|
|
4
5
|
/**
|
|
5
6
|
* Creates a vertically or horizontally concatenated layout for children.
|
|
@@ -57,6 +58,29 @@ export default class ConcatView extends GridView {
|
|
|
57
58
|
await this.createAxes();
|
|
58
59
|
}
|
|
59
60
|
|
|
61
|
+
/**
|
|
62
|
+
* Adds a child spec dynamically. Intended for post-initialization updates.
|
|
63
|
+
*
|
|
64
|
+
* Callers should prefer this over direct GridView insertion to ensure
|
|
65
|
+
* dataflow initialization, axis wiring, and layout reflow are handled.
|
|
66
|
+
*
|
|
67
|
+
* @param {import("../spec/view.js").ViewSpec} childSpec
|
|
68
|
+
* @param {number} [index]
|
|
69
|
+
* @returns {Promise<import("./view.js").default>}
|
|
70
|
+
*/
|
|
71
|
+
async addChildSpec(childSpec, index) {
|
|
72
|
+
return this.#getMutationHelper().addChildSpec(childSpec, index);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Removes a child by index. Intended for post-initialization updates.
|
|
77
|
+
*
|
|
78
|
+
* @param {number} index
|
|
79
|
+
*/
|
|
80
|
+
async removeChildAt(index) {
|
|
81
|
+
await this.#getMutationHelper().removeChildAt(index);
|
|
82
|
+
}
|
|
83
|
+
|
|
60
84
|
/**
|
|
61
85
|
* @param {import("../spec/channel.js").Channel} channel
|
|
62
86
|
* @param {import("../spec/view.js").ResolutionTarget} resolutionType
|
|
@@ -81,4 +105,53 @@ export default class ConcatView extends GridView {
|
|
|
81
105
|
return "independent";
|
|
82
106
|
}
|
|
83
107
|
}
|
|
108
|
+
|
|
109
|
+
/**
|
|
110
|
+
* @returns {{
|
|
111
|
+
* specs: (import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec)[],
|
|
112
|
+
* insertAt: (index: number, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec) => void,
|
|
113
|
+
* removeAt: (index: number) => void
|
|
114
|
+
* }}
|
|
115
|
+
*/
|
|
116
|
+
#getChildSpecs() {
|
|
117
|
+
const spec = this.spec;
|
|
118
|
+
let specs;
|
|
119
|
+
|
|
120
|
+
if (isConcatSpec(spec)) {
|
|
121
|
+
specs = spec.concat;
|
|
122
|
+
} else if (isVConcatSpec(spec)) {
|
|
123
|
+
specs = spec.vconcat;
|
|
124
|
+
} else {
|
|
125
|
+
specs = spec.hconcat;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
return {
|
|
129
|
+
specs,
|
|
130
|
+
insertAt: (index, childSpec) => {
|
|
131
|
+
specs.splice(index, 0, childSpec);
|
|
132
|
+
},
|
|
133
|
+
removeAt: (index) => {
|
|
134
|
+
specs.splice(index, 1);
|
|
135
|
+
},
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
/**
|
|
140
|
+
* @returns {ContainerMutationHelper}
|
|
141
|
+
*/
|
|
142
|
+
#getMutationHelper() {
|
|
143
|
+
return new ContainerMutationHelper(this, {
|
|
144
|
+
getChildSpecs: this.#getChildSpecs.bind(this),
|
|
145
|
+
insertView: (view, index) => this.insertChildViewAt(view, index),
|
|
146
|
+
removeView: (index) => super.removeChildAt(index),
|
|
147
|
+
prepareView: async (view, _index, gridChild) => {
|
|
148
|
+
await gridChild.createAxes();
|
|
149
|
+
await this.syncSharedAxes();
|
|
150
|
+
},
|
|
151
|
+
afterRemove: async () => {
|
|
152
|
+
await this.syncSharedAxes();
|
|
153
|
+
},
|
|
154
|
+
defaultName: (_index) => "grid" + this.childCount,
|
|
155
|
+
});
|
|
156
|
+
}
|
|
84
157
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"concatView.test.d.ts","sourceRoot":"","sources":["../../../src/view/concatView.test.js"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,74 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Shared helper for dynamic container mutations.
|
|
3
|
+
* Encapsulates the common lifecycle for adding/removing child views.
|
|
4
|
+
*/
|
|
5
|
+
export default class ContainerMutationHelper {
|
|
6
|
+
/**
|
|
7
|
+
* @typedef {import("./view.js").default} View
|
|
8
|
+
* @typedef {import("../spec/view.js").ViewSpec} ViewSpec
|
|
9
|
+
* @typedef {import("../spec/view.js").ImportSpec} ImportSpec
|
|
10
|
+
*
|
|
11
|
+
* @typedef {{
|
|
12
|
+
* specs: (ViewSpec | ImportSpec)[],
|
|
13
|
+
* insertAt: (index: number, spec: ViewSpec | ImportSpec) => void,
|
|
14
|
+
* removeAt: (index: number) => void
|
|
15
|
+
* }} ChildSpecs
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* @typedef {{
|
|
19
|
+
* getChildSpecs: () => ChildSpecs,
|
|
20
|
+
* insertView: (view: View, index: number) => any,
|
|
21
|
+
* removeView: (index: number) => void,
|
|
22
|
+
* prepareView?: (view: View, index: number, insertionResult: any) => Promise<void>,
|
|
23
|
+
* afterRemove?: (index: number) => Promise<void>,
|
|
24
|
+
* defaultName?: (index: number, spec: ViewSpec | ImportSpec) => string,
|
|
25
|
+
* requestLayout?: boolean
|
|
26
|
+
* }} MutationOptions
|
|
27
|
+
*/
|
|
28
|
+
/**
|
|
29
|
+
* @param {import("./containerView.js").default} container
|
|
30
|
+
* @param {MutationOptions} options
|
|
31
|
+
*/
|
|
32
|
+
constructor(container: import("./containerView.js").default, options: {
|
|
33
|
+
getChildSpecs: () => {
|
|
34
|
+
specs: (import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec)[];
|
|
35
|
+
insertAt: (index: number, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec) => void;
|
|
36
|
+
removeAt: (index: number) => void;
|
|
37
|
+
};
|
|
38
|
+
insertView: (view: import("./view.js").default, index: number) => any;
|
|
39
|
+
removeView: (index: number) => void;
|
|
40
|
+
prepareView?: (view: import("./view.js").default, index: number, insertionResult: any) => Promise<void>;
|
|
41
|
+
afterRemove?: (index: number) => Promise<void>;
|
|
42
|
+
defaultName?: (index: number, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec) => string;
|
|
43
|
+
requestLayout?: boolean;
|
|
44
|
+
});
|
|
45
|
+
container: import("./containerView.js").default;
|
|
46
|
+
options: {
|
|
47
|
+
getChildSpecs: () => {
|
|
48
|
+
specs: (import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec)[];
|
|
49
|
+
insertAt: (index: number, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec) => void;
|
|
50
|
+
removeAt: (index: number) => void;
|
|
51
|
+
};
|
|
52
|
+
insertView: (view: import("./view.js").default, index: number) => any;
|
|
53
|
+
removeView: (index: number) => void;
|
|
54
|
+
prepareView?: (view: import("./view.js").default, index: number, insertionResult: any) => Promise<void>;
|
|
55
|
+
afterRemove?: (index: number) => Promise<void>;
|
|
56
|
+
defaultName?: (index: number, spec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec) => string;
|
|
57
|
+
requestLayout?: boolean;
|
|
58
|
+
};
|
|
59
|
+
/**
|
|
60
|
+
* Adds a child spec dynamically and initializes its subtree dataflow.
|
|
61
|
+
*
|
|
62
|
+
* @param {import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec} childSpec
|
|
63
|
+
* @param {number} [index]
|
|
64
|
+
* @returns {Promise<View>}
|
|
65
|
+
*/
|
|
66
|
+
addChildSpec(childSpec: import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec, index?: number): Promise<import("./view.js").default>;
|
|
67
|
+
/**
|
|
68
|
+
* Removes a child by index and updates the backing spec list.
|
|
69
|
+
*
|
|
70
|
+
* @param {number} index
|
|
71
|
+
*/
|
|
72
|
+
removeChildAt(index: number): Promise<void>;
|
|
73
|
+
}
|
|
74
|
+
//# sourceMappingURL=containerMutationHelper.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"containerMutationHelper.d.ts","sourceRoot":"","sources":["../../../src/view/containerMutationHelper.js"],"names":[],"mappings":"AAOA;;;GAGG;AACH;IACI;;;;;;;;;;OAUG;IAEH;;;;;;;;;;OAUG;IAEH;;;OAGG;IACH,uBAHW,OAAO,oBAAoB,EAAE,OAAO;uBAX3B;mBARR,CAAC,yEAAqB,CAAC,EAAE;sBACtB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,yEAAqB,KAAK,IAAI;sBACpD,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;SAMF;oBACnB,CAAC,IAAI,6BAAM,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG;oBAClC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;sBACrB,CAAC,IAAI,6BAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC;sBAClE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;sBAChC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,yEAAqB,KAAK,MAAM;wBACpD,OAAO;OAW3B;IAFG,gDAA0B;IAC1B;uBAhBgB;mBARR,CAAC,yEAAqB,CAAC,EAAE;sBACtB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,yEAAqB,KAAK,IAAI;sBACpD,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;SAMF;oBACnB,CAAC,IAAI,6BAAM,EAAE,KAAK,EAAE,MAAM,KAAK,GAAG;oBAClC,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI;sBACrB,CAAC,IAAI,6BAAM,EAAE,KAAK,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,KAAK,OAAO,CAAC,IAAI,CAAC;sBAClE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC;sBAChC,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,yEAAqB,KAAK,MAAM;wBACpD,OAAO;MAUF;IAG1B;;;;;;OAMG;IACH,wBAJW,OAAO,iBAAiB,EAAE,QAAQ,GAAG,OAAO,iBAAiB,EAAE,UAAU,UACzE,MAAM,GACJ,OAAO,6BAAM,CA0CzB;IAED;;;;OAIG;IACH,qBAFW,MAAM,iBAehB;CACJ"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import {
|
|
2
|
+
initializeViewSubtree,
|
|
3
|
+
loadViewSubtreeData,
|
|
4
|
+
} from "../data/flowInit.js";
|
|
5
|
+
import { configureViewOpacity } from "../genomeSpy/viewHierarchyConfig.js";
|
|
6
|
+
import { finalizeSubtreeGraphics } from "./viewUtils.js";
|
|
7
|
+
|
|
8
|
+
/**
|
|
9
|
+
* Shared helper for dynamic container mutations.
|
|
10
|
+
* Encapsulates the common lifecycle for adding/removing child views.
|
|
11
|
+
*/
|
|
12
|
+
export default class ContainerMutationHelper {
|
|
13
|
+
/**
|
|
14
|
+
* @typedef {import("./view.js").default} View
|
|
15
|
+
* @typedef {import("../spec/view.js").ViewSpec} ViewSpec
|
|
16
|
+
* @typedef {import("../spec/view.js").ImportSpec} ImportSpec
|
|
17
|
+
*
|
|
18
|
+
* @typedef {{
|
|
19
|
+
* specs: (ViewSpec | ImportSpec)[],
|
|
20
|
+
* insertAt: (index: number, spec: ViewSpec | ImportSpec) => void,
|
|
21
|
+
* removeAt: (index: number) => void
|
|
22
|
+
* }} ChildSpecs
|
|
23
|
+
*/
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* @typedef {{
|
|
27
|
+
* getChildSpecs: () => ChildSpecs,
|
|
28
|
+
* insertView: (view: View, index: number) => any,
|
|
29
|
+
* removeView: (index: number) => void,
|
|
30
|
+
* prepareView?: (view: View, index: number, insertionResult: any) => Promise<void>,
|
|
31
|
+
* afterRemove?: (index: number) => Promise<void>,
|
|
32
|
+
* defaultName?: (index: number, spec: ViewSpec | ImportSpec) => string,
|
|
33
|
+
* requestLayout?: boolean
|
|
34
|
+
* }} MutationOptions
|
|
35
|
+
*/
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* @param {import("./containerView.js").default} container
|
|
39
|
+
* @param {MutationOptions} options
|
|
40
|
+
*/
|
|
41
|
+
constructor(container, options) {
|
|
42
|
+
this.container = container;
|
|
43
|
+
this.options = options;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
/**
|
|
47
|
+
* Adds a child spec dynamically and initializes its subtree dataflow.
|
|
48
|
+
*
|
|
49
|
+
* @param {import("../spec/view.js").ViewSpec | import("../spec/view.js").ImportSpec} childSpec
|
|
50
|
+
* @param {number} [index]
|
|
51
|
+
* @returns {Promise<View>}
|
|
52
|
+
*/
|
|
53
|
+
async addChildSpec(childSpec, index) {
|
|
54
|
+
const { specs, insertAt } = this.options.getChildSpecs();
|
|
55
|
+
const insertIndex = index ?? specs.length;
|
|
56
|
+
const name =
|
|
57
|
+
this.options.defaultName?.(insertIndex, childSpec) ??
|
|
58
|
+
"child" + specs.length;
|
|
59
|
+
|
|
60
|
+
const childView = await this.container.context.createOrImportView(
|
|
61
|
+
childSpec,
|
|
62
|
+
this.container,
|
|
63
|
+
this.container,
|
|
64
|
+
name
|
|
65
|
+
);
|
|
66
|
+
|
|
67
|
+
insertAt(insertIndex, childSpec);
|
|
68
|
+
const insertionResult = this.options.insertView(childView, insertIndex);
|
|
69
|
+
|
|
70
|
+
if (this.options.prepareView) {
|
|
71
|
+
await this.options.prepareView(
|
|
72
|
+
childView,
|
|
73
|
+
insertIndex,
|
|
74
|
+
insertionResult
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
configureViewOpacity(childView);
|
|
79
|
+
|
|
80
|
+
const { dataSources, graphicsPromises } = initializeViewSubtree(
|
|
81
|
+
childView,
|
|
82
|
+
this.container.context.dataFlow
|
|
83
|
+
);
|
|
84
|
+
await loadViewSubtreeData(childView, dataSources);
|
|
85
|
+
await finalizeSubtreeGraphics(graphicsPromises);
|
|
86
|
+
|
|
87
|
+
if (this.options.requestLayout !== false) {
|
|
88
|
+
this.container.invalidateSizeCache();
|
|
89
|
+
this.container.context.requestLayoutReflow();
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
return childView;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Removes a child by index and updates the backing spec list.
|
|
97
|
+
*
|
|
98
|
+
* @param {number} index
|
|
99
|
+
*/
|
|
100
|
+
async removeChildAt(index) {
|
|
101
|
+
const { removeAt } = this.options.getChildSpecs();
|
|
102
|
+
this.options.removeView(index);
|
|
103
|
+
removeAt(index);
|
|
104
|
+
|
|
105
|
+
if (this.options.afterRemove) {
|
|
106
|
+
await this.options.afterRemove(index);
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
if (this.options.requestLayout !== false) {
|
|
110
|
+
this.container.invalidateSizeCache();
|
|
111
|
+
this.container.context.requestLayoutReflow();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
@@ -14,13 +14,6 @@ export default class ContainerView extends View {
|
|
|
14
14
|
constructor(spec: import("../spec/view.js").ContainerSpec, context: import("../types/viewContext.js").default, layoutParent: ContainerView, dataParent: import("./view.js").default, name: string, options?: import("./view.js").ViewOptions);
|
|
15
15
|
spec: import("../spec/view.js").ContainerSpec;
|
|
16
16
|
initializeChildren(): Promise<void>;
|
|
17
|
-
/**
|
|
18
|
-
* Replaces a child view with another one. Does not alter the old or new child.
|
|
19
|
-
*
|
|
20
|
-
* @param {import("./view.js").default} child
|
|
21
|
-
* @param {import("./view.js").default} replacement
|
|
22
|
-
*/
|
|
23
|
-
replaceChild(child: import("./view.js").default, replacement: import("./view.js").default): void;
|
|
24
17
|
/**
|
|
25
18
|
* @param {string[]} path An array of view names
|
|
26
19
|
* @returns {View}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"containerView.d.ts","sourceRoot":"","sources":["../../../src/view/containerView.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IACI;;;;;;;;OAQG;IACH,kBAPW,OAAO,iBAAiB,EAAE,aAAa,WACvC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,aAAa,cACb,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,YACN,OAAO,WAAW,EAAE,WAAW,EAMzC;IADG,8CAAgB;IAGpB,oCAEC;
|
|
1
|
+
{"version":3,"file":"containerView.d.ts","sourceRoot":"","sources":["../../../src/view/containerView.js"],"names":[],"mappings":"AAEA;;GAEG;AACH;IACI;;;;;;;;OAQG;IACH,kBAPW,OAAO,iBAAiB,EAAE,aAAa,WACvC,OAAO,yBAAyB,EAAE,OAAO,gBACzC,aAAa,cACb,OAAO,WAAW,EAAE,OAAO,QAC3B,MAAM,YACN,OAAO,WAAW,EAAE,WAAW,EAMzC;IADG,8CAAgB;IAGpB,oCAEC;IAsDD;;;OAGG;IACH,2BAHW,MAAM,EAAE,GACN,IAAI,CAYhB;IAED;;;OAGG;IACH,sBAFW,MAAM,QAQhB;IAED;;;OAGG;IACH,2BAFW,MAAM,QAchB;IAhGD;;OAEG;IACH,qBAFa,gBAAgB,CAAC,IAAI,CAAC,CAIlC;CAqGJ;iBAnI4C,WAAW"}
|
|
@@ -30,16 +30,6 @@ export default class ContainerView extends View {
|
|
|
30
30
|
// override
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
/**
|
|
34
|
-
* Replaces a child view with another one. Does not alter the old or new child.
|
|
35
|
-
*
|
|
36
|
-
* @param {import("./view.js").default} child
|
|
37
|
-
* @param {import("./view.js").default} replacement
|
|
38
|
-
*/
|
|
39
|
-
replaceChild(child, replacement) {
|
|
40
|
-
throw new Error("Not implemented");
|
|
41
|
-
}
|
|
42
|
-
|
|
43
33
|
/**
|
|
44
34
|
* Visits child views in depth-first pre-order. Terminates the search and returns
|
|
45
35
|
* the value if the visitor returns a defined value. The `afterChildren` callback
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"facetView.d.ts","sourceRoot":"","sources":["../../../src/view/facetView.js"],"names":[],"mappings":"AAmDA;;;;;;;;;;;;;;GAcG;AACH;IACI;;;;;;;OAOG;IACH;;;;;;OAMG;IACH,kBALW,OAAO,gBAAgB,EAAE,SAAS,WAClC,OAAO,gBAAgB,EAAE,WAAW,UACpC,aAAa,QACb,MAAM,EA8BhB;IAzBG,UAAgB;IAEhB,WAEC;IAED;;;;OAIG;IACH,aAFU,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAYvC;IAED,oDAAoD;IACpD,kBADY,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CACa;
|
|
1
|
+
{"version":3,"file":"facetView.d.ts","sourceRoot":"","sources":["../../../src/view/facetView.js"],"names":[],"mappings":"AAmDA;;;;;;;;;;;;;;GAcG;AACH;IACI;;;;;;;OAOG;IACH;;;;;;OAMG;IACH,kBALW,OAAO,gBAAgB,EAAE,SAAS,WAClC,OAAO,gBAAgB,EAAE,WAAW,UACpC,aAAa,QACb,MAAM,EA8BhB;IAzBG,UAAgB;IAEhB,WAEC;IAED;;;;OAIG;IACH,aAFU,MAAM,CAAC,YAAY,EAAE,QAAQ,CAAC,CAYvC;IAED,oDAAoD;IACpD,kBADY,MAAM,CAAC,YAAY,EAAE,cAAc,CAAC,CACa;IAajE,sBAIC;IAED;;;OAGG;IACH,qBAFW,KAAK,GAAG,QAAQ,OAwB1B;IAED,qBAyCC;IAED,qBASC;IA6BD,kDAgBC;IAOD;;;;OAIG;IACH,gBAJW,OAAO,4CAA4C,EAAE,OAAO,UAC5D,OAAO,uBAAuB,EAAE,OAAO,YACvC,OAAO,WAAW,EAAE,gBAAgB,QA2L9C;IA3KO,wBAA0B;CA4KrC;2BAjbY,QAAQ,GAAG,KAAK;;;;;;aA4CnB,OAAO,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,EAAE;;;0BA1Df,oBAAoB;qBACzB,eAAe"}
|
|
@@ -120,21 +120,6 @@ export default class FacetView extends ContainerView {
|
|
|
120
120
|
}
|
|
121
121
|
}
|
|
122
122
|
|
|
123
|
-
/**
|
|
124
|
-
* @param {import("./view.js").default} child
|
|
125
|
-
* @param {import("./view.js").default} replacement
|
|
126
|
-
*/
|
|
127
|
-
replaceChild(child, replacement) {
|
|
128
|
-
if (child !== this.child) {
|
|
129
|
-
throw new Error("Not my child!");
|
|
130
|
-
}
|
|
131
|
-
|
|
132
|
-
child.disposeSubtree();
|
|
133
|
-
this.child = /** @type {UnitView | LayerView | DecoratorView} */ (
|
|
134
|
-
replacement
|
|
135
|
-
);
|
|
136
|
-
}
|
|
137
|
-
|
|
138
123
|
transformData() {
|
|
139
124
|
super.transformData();
|
|
140
125
|
// A hacky solution for updating facets. TODO: Something more robust.
|
|
@@ -9,6 +9,13 @@ export function createBackground(viewBackground: import("../../spec/view.js").Vi
|
|
|
9
9
|
*/
|
|
10
10
|
export function createBackgroundStroke(viewBackground: import("../../spec/view.js").ViewBackground): import("../../spec/view.js").UnitSpec;
|
|
11
11
|
export default class GridChild {
|
|
12
|
+
/**
|
|
13
|
+
* Users guide:
|
|
14
|
+
* - GridChild is owned by GridView and is not meant to be instantiated or
|
|
15
|
+
* managed directly by callers.
|
|
16
|
+
* - Use GridView/ConcatView APIs for insertion/removal so decorations and
|
|
17
|
+
* dataflow are kept in sync.
|
|
18
|
+
*/
|
|
12
19
|
/**
|
|
13
20
|
* @param {import("../view.js").default} view
|
|
14
21
|
* @param {import("../containerView.js").default} layoutParent
|
|
@@ -39,6 +46,10 @@ export default class GridChild {
|
|
|
39
46
|
* Create view decorations, grid lines, axes, etc.
|
|
40
47
|
*/
|
|
41
48
|
createAxes(): Promise<void>;
|
|
49
|
+
/**
|
|
50
|
+
* Disposes axis and gridline views so axes can be recreated safely.
|
|
51
|
+
*/
|
|
52
|
+
disposeAxisViews(): void;
|
|
42
53
|
getOverhang(): Padding;
|
|
43
54
|
getOverhangAndPadding(): Padding;
|
|
44
55
|
#private;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gridChild.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/gridChild.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"gridChild.d.ts","sourceRoot":"","sources":["../../../../src/view/gridView/gridChild.js"],"names":[],"mappings":"AA4rBA;;;GAGG;AACH,iDAHW,OAAO,oBAAoB,EAAE,cAAc,GACzC,OAAO,oBAAoB,EAAE,QAAQ,CA8BjD;AAED;;;GAGG;AACH,uDAHW,OAAO,oBAAoB,EAAE,cAAc,GACzC,OAAO,oBAAoB,EAAE,QAAQ,CA6CjD;AA1vBD;IACI;;;;;;OAMG;IAEH;;;;OAIG;IACH,kBAJW,OAAO,YAAY,EAAE,OAAO,gBAC5B,OAAO,qBAAqB,EAAE,OAAO,UACrC,MAAM,EAyFhB;IAtFG,oDAAgC;IAChC,mCAAgB;IAChB,eAAoB;IAEpB,uBAAuB;IACvB,YADW,QAAQ,CACQ;IAE3B,uBAAuB;IACvB,kBADW,QAAQ,CACc;IAEjC,sFAAsF;IACtF,MADW,OAAO,CAAC,MAAM,CAAC,OAAO,oBAAoB,EAAE,UAAU,EAAE,QAAQ,CAAC,CAAC,CAC/D;IAEd,+FAA+F;IAC/F,WADW,OAAO,CAAC,MAAM,CAAC,OAAO,oBAAoB,EAAE,UAAU,EAAE,YAAY,CAAC,CAAC,CAC9D;IAEnB,mFAAmF;IACnF,YADW,OAAO,CAAC,MAAM,CAAC,OAAO,gBAAgB,EAAE,eAAe,EAAE,SAAS,CAAC,CAAC,CAC3D;IAEpB,4BAA4B;IAC5B,eADW,aAAa,CACM;IAE9B,uBAAuB;IACvB,OADW,QAAQ,CACG;IAEtB,wBAAwB;IACxB,QADW,SAAS,CACQ;IAoZhC,sEAiBC;IAED;;OAEG;IACH,4BAwKC;IAED;;OAEG;IACH,yBAWC;IAED,uBAqBC;IAED,iCAEC;;CACJ;qBA3qBoB,gBAAgB;qBANK,gBAAgB;yBADjC,oBAAoB;sBAQvB,gBAAgB;0BACZ,oBAAoB;sBAJxB,wBAAwB;oBAF1B,sBAAsB"}
|