@genome-spy/core 0.78.0 → 0.79.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/bundle/{browser-KWU9rWZT.js → browser-CETrb2cm.js} +53 -33
- package/dist/bundle/esm-BdLYkz-m.js +248 -0
- package/dist/bundle/esm-BwiDsqSb.js +1367 -0
- package/dist/bundle/esm-CDFd1cjk.js +441 -0
- package/dist/bundle/{esm-DVOHLB1e.js → esm-CTUHLDbv.js} +30 -30
- package/dist/bundle/{esm-NIYEaYkc.js → esm-Cx-EbkOj.js} +13 -13
- package/dist/bundle/esm-DlYGqi79.js +128 -0
- package/dist/bundle/{esm-BygJiwh0.js → esm-k9p3oHkt.js} +133 -158
- package/dist/bundle/{esm-CT3ygiMq.js → esm-zAZJQO6D.js} +226 -212
- package/dist/bundle/index.es.js +14840 -11661
- package/dist/bundle/index.js +119 -108
- package/dist/bundle/{parquetRead-DG_-F5j5.js → parquetRead-Cad1SOVV.js} +473 -399
- package/dist/schema.json +18940 -6914
- package/dist/src/config/axisConfig.d.ts +2 -2
- package/dist/src/config/axisConfig.d.ts.map +1 -1
- package/dist/src/config/axisConfig.js +28 -44
- package/dist/src/config/configLayers.d.ts +45 -0
- package/dist/src/config/configLayers.d.ts.map +1 -0
- package/dist/src/config/configLayers.js +110 -0
- package/dist/src/config/defaultConfig.d.ts.map +1 -1
- package/dist/src/config/defaultConfig.js +8 -1
- package/dist/src/config/defaults/legendDefaults.d.ts +14 -0
- package/dist/src/config/defaults/legendDefaults.d.ts.map +1 -0
- package/dist/src/config/defaults/legendDefaults.js +46 -0
- package/dist/src/config/defaults/titleDefaults.d.ts.map +1 -1
- package/dist/src/config/defaults/titleDefaults.js +26 -18
- package/dist/src/config/legendConfig.d.ts +11 -0
- package/dist/src/config/legendConfig.d.ts.map +1 -0
- package/dist/src/config/legendConfig.js +63 -0
- package/dist/src/config/styleUtils.d.ts +8 -2
- package/dist/src/config/styleUtils.d.ts.map +1 -1
- package/dist/src/config/styleUtils.js +25 -1
- package/dist/src/config/themes.d.ts.map +1 -1
- package/dist/src/config/themes.js +21 -2
- package/dist/src/config/titleConfig.d.ts.map +1 -1
- package/dist/src/config/titleConfig.js +2 -18
- package/dist/src/data/collector.d.ts.map +1 -1
- package/dist/src/data/collector.js +40 -18
- package/dist/src/data/flowInit.d.ts +6 -0
- package/dist/src/data/flowInit.d.ts.map +1 -1
- package/dist/src/data/flowInit.js +1 -1
- package/dist/src/data/flowNode.d.ts +32 -0
- package/dist/src/data/flowNode.d.ts.map +1 -1
- package/dist/src/data/flowNode.js +59 -0
- package/dist/src/data/sources/lazy/bamSource.d.ts +0 -1
- package/dist/src/data/sources/lazy/bamSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bamSource.js +39 -30
- package/dist/src/data/sources/lazy/bigBedSource.d.ts +0 -10
- package/dist/src/data/sources/lazy/bigBedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigBedSource.js +127 -62
- package/dist/src/data/sources/lazy/bigWigSource.d.ts +2 -2
- package/dist/src/data/sources/lazy/bigWigSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/bigWigSource.js +234 -81
- package/dist/src/data/sources/lazy/gff3Source.d.ts +7 -3
- package/dist/src/data/sources/lazy/gff3Source.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/gff3Source.js +7 -8
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/indexedFastaSource.js +28 -19
- package/dist/src/data/sources/lazy/legendEntriesSource.d.ts +24 -0
- package/dist/src/data/sources/lazy/legendEntriesSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/legendEntriesSource.js +217 -0
- package/dist/src/data/sources/lazy/legendGradientSource.d.ts +30 -0
- package/dist/src/data/sources/lazy/legendGradientSource.d.ts.map +1 -0
- package/dist/src/data/sources/lazy/legendGradientSource.js +388 -0
- package/dist/src/data/sources/lazy/mockLazySource.d.ts +4 -1
- package/dist/src/data/sources/lazy/mockLazySource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/mockLazySource.js +49 -4
- package/dist/src/data/sources/lazy/registerCoreLazySources.js +2 -0
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/singleAxisWindowedSource.js +3 -4
- package/dist/src/data/sources/lazy/tabixSource.d.ts +9 -4
- package/dist/src/data/sources/lazy/tabixSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/tabixSource.js +201 -70
- package/dist/src/data/sources/lazy/tabixTsvSource.d.ts +2 -3
- package/dist/src/data/sources/lazy/tabixTsvSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/tabixTsvSource.js +14 -12
- package/dist/src/data/sources/lazy/vcfSource.d.ts +7 -3
- package/dist/src/data/sources/lazy/vcfSource.d.ts.map +1 -1
- package/dist/src/data/sources/lazy/vcfSource.js +7 -8
- package/dist/src/data/sources/urlDescriptor.d.ts +165 -0
- package/dist/src/data/sources/urlDescriptor.d.ts.map +1 -0
- package/dist/src/data/sources/urlDescriptor.js +473 -0
- package/dist/src/data/sources/urlDescriptorController.d.ts +25 -0
- package/dist/src/data/sources/urlDescriptorController.d.ts.map +1 -0
- package/dist/src/data/sources/urlDescriptorController.js +72 -0
- package/dist/src/data/sources/urlDescriptorState.d.ts +47 -0
- package/dist/src/data/sources/urlDescriptorState.d.ts.map +1 -0
- package/dist/src/data/sources/urlDescriptorState.js +129 -0
- package/dist/src/data/sources/urlSource.d.ts.map +1 -1
- package/dist/src/data/sources/urlSource.js +101 -61
- package/dist/src/data/transforms/packLegendLabels.d.ts +21 -0
- package/dist/src/data/transforms/packLegendLabels.d.ts.map +1 -0
- package/dist/src/data/transforms/packLegendLabels.js +189 -0
- package/dist/src/data/transforms/transformFactory.d.ts.map +1 -1
- package/dist/src/data/transforms/transformFactory.js +4 -0
- package/dist/src/data/transforms/truncateText.d.ts +27 -0
- package/dist/src/data/transforms/truncateText.d.ts.map +1 -0
- package/dist/src/data/transforms/truncateText.js +94 -0
- package/dist/src/debug/dataflowDebugSnapshot.d.ts +58 -0
- package/dist/src/debug/dataflowDebugSnapshot.d.ts.map +1 -0
- package/dist/src/debug/dataflowDebugSnapshot.js +159 -0
- package/dist/src/debug/markDebugSnapshot.d.ts +54 -0
- package/dist/src/debug/markDebugSnapshot.d.ts.map +1 -0
- package/dist/src/debug/markDebugSnapshot.js +100 -0
- package/dist/src/debug/paramDebugSnapshot.d.ts +53 -0
- package/dist/src/debug/paramDebugSnapshot.d.ts.map +1 -0
- package/dist/src/debug/paramDebugSnapshot.js +86 -0
- package/dist/src/debug/resolutionDebugSnapshot.d.ts +155 -0
- package/dist/src/debug/resolutionDebugSnapshot.d.ts.map +1 -0
- package/dist/src/debug/resolutionDebugSnapshot.js +291 -0
- package/dist/src/debug/valuePreview.d.ts +9 -0
- package/dist/src/debug/valuePreview.d.ts.map +1 -0
- package/dist/src/debug/valuePreview.js +57 -0
- package/dist/src/debug/viewDebugSnapshot.d.ts +131 -0
- package/dist/src/debug/viewDebugSnapshot.d.ts.map +1 -0
- package/dist/src/debug/viewDebugSnapshot.js +390 -0
- package/dist/src/embedFactory.d.ts.map +1 -1
- package/dist/src/embedFactory.js +6 -1
- package/dist/src/encoder/encoder.d.ts +2 -2
- package/dist/src/encoder/encoder.d.ts.map +1 -1
- package/dist/src/encoder/encoder.js +5 -4
- package/dist/src/fonts/bmFontManager.d.ts +1 -1
- package/dist/src/fonts/bmFontManager.d.ts.map +1 -1
- package/dist/src/fonts/bmFontManager.js +45 -10
- package/dist/src/fonts/textMetrics.d.ts +69 -0
- package/dist/src/fonts/textMetrics.d.ts.map +1 -0
- package/dist/src/fonts/textMetrics.js +73 -0
- package/dist/src/genomeSpy/headlessBootstrap.d.ts.map +1 -1
- package/dist/src/genomeSpy/headlessBootstrap.js +6 -0
- package/dist/src/genomeSpy/renderCoordinator.d.ts.map +1 -1
- package/dist/src/genomeSpy/renderCoordinator.js +25 -3
- package/dist/src/genomeSpy/viewDataInit.d.ts +14 -0
- package/dist/src/genomeSpy/viewDataInit.d.ts.map +1 -1
- package/dist/src/genomeSpy/viewDataInit.js +45 -8
- package/dist/src/genomeSpyBase.d.ts +6 -0
- package/dist/src/genomeSpyBase.d.ts.map +1 -1
- package/dist/src/genomeSpyBase.js +20 -3
- package/dist/src/gl/glslScaleGenerator.d.ts +17 -0
- package/dist/src/gl/glslScaleGenerator.d.ts.map +1 -1
- package/dist/src/gl/glslScaleGenerator.js +39 -2
- package/dist/src/gl/includes/common.glsl.js +1 -1
- package/dist/src/gl/vertexRangeIndex.d.ts.map +1 -1
- package/dist/src/gl/vertexRangeIndex.js +4 -2
- package/dist/src/gl/webGLHelper.d.ts +1 -1
- package/dist/src/gl/webGLHelper.d.ts.map +1 -1
- package/dist/src/gl/webGLHelper.js +13 -8
- package/dist/src/marks/__snapshots__/shaderSnapshot.test.js.snap +140 -3
- package/dist/src/marks/mark.d.ts +47 -4
- package/dist/src/marks/mark.d.ts.map +1 -1
- package/dist/src/marks/mark.js +158 -54
- package/dist/src/marks/point.d.ts.map +1 -1
- package/dist/src/marks/point.js +4 -0
- package/dist/src/marks/point.vertex.glsl.js +1 -1
- package/dist/src/marks/text.d.ts +1 -1
- package/dist/src/marks/text.d.ts.map +1 -1
- package/dist/src/marks/text.js +2 -7
- package/dist/src/marks/text.vertex.glsl.js +1 -1
- package/dist/src/paramRuntime/paramUtils.d.ts +43 -9
- package/dist/src/paramRuntime/paramUtils.d.ts.map +1 -1
- package/dist/src/paramRuntime/paramUtils.js +61 -1
- package/dist/src/paramRuntime/viewParamRuntime.d.ts +32 -0
- package/dist/src/paramRuntime/viewParamRuntime.d.ts.map +1 -1
- package/dist/src/paramRuntime/viewParamRuntime.js +63 -0
- package/dist/src/scales/axisResolution.d.ts +35 -0
- package/dist/src/scales/axisResolution.d.ts.map +1 -1
- package/dist/src/scales/axisResolution.js +115 -7
- package/dist/src/scales/legendResolution.d.ts +83 -0
- package/dist/src/scales/legendResolution.d.ts.map +1 -0
- package/dist/src/scales/legendResolution.js +461 -0
- package/dist/src/scales/scaleResolution.d.ts +36 -0
- package/dist/src/scales/scaleResolution.d.ts.map +1 -1
- package/dist/src/scales/scaleResolution.js +59 -0
- package/dist/src/scales/viewLevelGuideConfig.d.ts +53 -0
- package/dist/src/scales/viewLevelGuideConfig.d.ts.map +1 -0
- package/dist/src/scales/viewLevelGuideConfig.js +224 -0
- package/dist/src/scales/viewLevelScaleConfig.d.ts.map +1 -1
- package/dist/src/scales/viewLevelScaleConfig.js +13 -2
- package/dist/src/spec/axis.d.ts +109 -3
- package/dist/src/spec/channel.d.ts +23 -4
- package/dist/src/spec/config.d.ts +59 -4
- package/dist/src/spec/data.d.ts +177 -17
- package/dist/src/spec/legend.d.ts +246 -0
- package/dist/src/spec/mark.d.ts +16 -4
- package/dist/src/spec/title.d.ts +58 -1
- package/dist/src/spec/transform.d.ts +149 -0
- package/dist/src/spec/view.d.ts +39 -6
- package/dist/src/types/embedApi.d.ts +262 -6
- package/dist/src/types/rendering.d.ts +19 -3
- package/dist/src/types/viewContext.d.ts +18 -2
- package/dist/src/utils/arrayUtils.d.ts +11 -0
- package/dist/src/utils/arrayUtils.d.ts.map +1 -1
- package/dist/src/utils/arrayUtils.js +23 -0
- package/dist/src/utils/suspension.d.ts +17 -0
- package/dist/src/utils/suspension.d.ts.map +1 -0
- package/dist/src/utils/suspension.js +41 -0
- package/dist/src/view/axisGridView.d.ts.map +1 -1
- package/dist/src/view/axisGridView.js +1 -4
- package/dist/src/view/axisView.d.ts +18 -2
- package/dist/src/view/axisView.d.ts.map +1 -1
- package/dist/src/view/axisView.js +180 -75
- package/dist/src/view/concatView.d.ts +10 -2
- package/dist/src/view/concatView.d.ts.map +1 -1
- package/dist/src/view/concatView.js +46 -9
- package/dist/src/view/containerMutationHelper.d.ts +20 -1
- package/dist/src/view/containerMutationHelper.d.ts.map +1 -1
- package/dist/src/view/containerMutationHelper.js +196 -33
- package/dist/src/view/facetView.d.ts +1 -1
- package/dist/src/view/gridView/gridChild.d.ts +54 -4
- package/dist/src/view/gridView/gridChild.d.ts.map +1 -1
- package/dist/src/view/gridView/gridChild.js +301 -120
- package/dist/src/view/gridView/gridChildLegends.d.ts +57 -0
- package/dist/src/view/gridView/gridChildLegends.d.ts.map +1 -0
- package/dist/src/view/gridView/gridChildLegends.js +503 -0
- package/dist/src/view/gridView/gridView.d.ts +25 -0
- package/dist/src/view/gridView/gridView.d.ts.map +1 -1
- package/dist/src/view/gridView/gridView.js +454 -78
- package/dist/src/view/gridView/legendLayout.d.ts +26 -0
- package/dist/src/view/gridView/legendLayout.d.ts.map +1 -0
- package/dist/src/view/gridView/legendLayout.js +111 -0
- package/dist/src/view/gridView/scrollbar.d.ts.map +1 -1
- package/dist/src/view/gridView/scrollbar.js +1 -4
- package/dist/src/view/gridView/selectionRect.d.ts.map +1 -1
- package/dist/src/view/gridView/selectionRect.js +1 -4
- package/dist/src/view/gridView/separatorView.d.ts.map +1 -1
- package/dist/src/view/gridView/separatorView.js +1 -4
- package/dist/src/view/layerView.d.ts +9 -2
- package/dist/src/view/layerView.d.ts.map +1 -1
- package/dist/src/view/layerView.js +18 -1
- package/dist/src/view/layout/flexLayout.d.ts +20 -4
- package/dist/src/view/layout/flexLayout.d.ts.map +1 -1
- package/dist/src/view/layout/flexLayout.js +331 -31
- package/dist/src/view/layout/rectangle.d.ts +14 -0
- package/dist/src/view/layout/rectangle.d.ts.map +1 -1
- package/dist/src/view/layout/rectangle.js +40 -0
- package/dist/src/view/legend/legendEntries.d.ts +20 -0
- package/dist/src/view/legend/legendEntries.d.ts.map +1 -0
- package/dist/src/view/legend/legendEntries.js +21 -0
- package/dist/src/view/legendView.d.ts +134 -0
- package/dist/src/view/legendView.d.ts.map +1 -0
- package/dist/src/view/legendView.js +1611 -0
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/bufferedViewRenderingContext.js +26 -4
- package/dist/src/view/renderingContext/clipOptions.d.ts +44 -0
- package/dist/src/view/renderingContext/clipOptions.d.ts.map +1 -0
- package/dist/src/view/renderingContext/clipOptions.js +140 -0
- package/dist/src/view/renderingContext/simpleViewRenderingContext.d.ts.map +1 -1
- package/dist/src/view/renderingContext/simpleViewRenderingContext.js +12 -1
- package/dist/src/view/resolutionPlanner.d.ts +2 -1
- package/dist/src/view/resolutionPlanner.d.ts.map +1 -1
- package/dist/src/view/resolutionPlanner.js +89 -25
- package/dist/src/view/testUtils.d.ts +4 -2
- package/dist/src/view/testUtils.d.ts.map +1 -1
- package/dist/src/view/testUtils.js +29 -7
- package/dist/src/view/titleView.d.ts +37 -0
- package/dist/src/view/titleView.d.ts.map +1 -0
- package/dist/src/view/titleView.js +584 -0
- package/dist/src/view/unitView.d.ts +3 -3
- package/dist/src/view/unitView.d.ts.map +1 -1
- package/dist/src/view/unitView.js +3 -2
- package/dist/src/view/view.d.ts +25 -24
- package/dist/src/view/view.d.ts.map +1 -1
- package/dist/src/view/view.js +121 -16
- package/dist/src/view/viewFactory.d.ts +2 -5
- package/dist/src/view/viewFactory.d.ts.map +1 -1
- package/dist/src/view/viewFactory.js +1 -2
- package/dist/src/view/viewIdentityRegistry.d.ts +37 -0
- package/dist/src/view/viewIdentityRegistry.d.ts.map +1 -0
- package/dist/src/view/viewIdentityRegistry.js +71 -0
- package/dist/src/view/viewMutationAcidTestUtils.d.ts +112 -0
- package/dist/src/view/viewMutationAcidTestUtils.d.ts.map +1 -0
- package/dist/src/view/viewMutationAcidTestUtils.js +234 -0
- package/dist/src/view/viewMutationApi.d.ts +42 -0
- package/dist/src/view/viewMutationApi.d.ts.map +1 -0
- package/dist/src/view/viewMutationApi.js +811 -0
- package/dist/src/view/viewSelectors.d.ts +10 -0
- package/dist/src/view/viewSelectors.d.ts.map +1 -1
- package/dist/src/view/viewSelectors.js +23 -1
- package/package.json +4 -4
- package/dist/bundle/esm-CuMSzCHy.js +0 -298
- package/dist/bundle/esm-DAnOffpD.js +0 -1426
- package/dist/bundle/esm-DMXpJXM4.js +0 -369
- package/dist/bundle/esm-DNtC3H80.js +0 -121
- package/dist/src/view/title.d.ts +0 -13
- package/dist/src/view/title.d.ts.map +0 -1
- package/dist/src/view/title.js +0 -154
- /package/dist/bundle/{AbortablePromiseCache-3gHJdF3E.js → AbortablePromiseCache-BTmAcN-t.js} +0 -0
- /package/dist/bundle/{esm-CuVa5T98.js → esm-VvpZ9hsq.js} +0 -0
- /package/dist/bundle/{chunk-DmhlhrBa.js → rolldown-runtime-Dy4uBu1J.js} +0 -0
|
@@ -4,13 +4,13 @@
|
|
|
4
4
|
* @param {import("../spec/channel.js").PrimaryPositionalChannel} options.channel
|
|
5
5
|
* @param {import("../spec/axis.js").AxisOrient} [options.orient]
|
|
6
6
|
* @param {import("../spec/channel.js").Type} [options.type]
|
|
7
|
-
* @param {string | string[]} [options.style]
|
|
7
|
+
* @param {string | string[] | null} [options.style]
|
|
8
8
|
* @returns {import("../spec/config.js").AxisConfig}
|
|
9
9
|
*/
|
|
10
10
|
export function getConfiguredAxisDefaults(scopes: import("../spec/config.js").GenomeSpyConfig[], { channel, orient, type, style }: {
|
|
11
11
|
channel: import("../spec/channel.js").PrimaryPositionalChannel;
|
|
12
12
|
orient?: import("../spec/axis.js").AxisOrient;
|
|
13
13
|
type?: import("../spec/channel.js").Type;
|
|
14
|
-
style?: string | string[];
|
|
14
|
+
style?: string | string[] | null;
|
|
15
15
|
}): import("../spec/config.js").AxisConfig;
|
|
16
16
|
//# sourceMappingURL=axisConfig.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"axisConfig.d.ts","sourceRoot":"","sources":["../../../src/config/axisConfig.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"axisConfig.d.ts","sourceRoot":"","sources":["../../../src/config/axisConfig.js"],"names":[],"mappings":"AAyBA;;;;;;;;GAQG;AACH,kDARW,OAAO,mBAAmB,EAAE,eAAe,EAAE,oCAErD;IAAuE,OAAO,EAAtE,OAAO,oBAAoB,EAAE,wBAAwB;IACN,MAAM,GAArD,OAAO,iBAAiB,EAAE,UAAU;IACQ,IAAI,GAAhD,OAAO,oBAAoB,EAAE,IAAI;IACE,KAAK,GAAxC,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI;CAChC,GAAU,OAAO,mBAAmB,EAAE,UAAU,CAmClD"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { normalizeStyle } from "./styleUtils.js";
|
|
1
|
+
import { createConfigLayerStack } from "./configLayers.js";
|
|
3
2
|
|
|
4
3
|
/** @type {Record<import("../spec/channel.js").PrimaryPositionalChannel, keyof import("../spec/config.js").GenomeSpyConfig>} */
|
|
5
4
|
const CHANNEL_BUCKETS = {
|
|
@@ -30,55 +29,40 @@ const TYPE_BUCKETS = {
|
|
|
30
29
|
* @param {import("../spec/channel.js").PrimaryPositionalChannel} options.channel
|
|
31
30
|
* @param {import("../spec/axis.js").AxisOrient} [options.orient]
|
|
32
31
|
* @param {import("../spec/channel.js").Type} [options.type]
|
|
33
|
-
* @param {string | string[]} [options.style]
|
|
32
|
+
* @param {string | string[] | null} [options.style]
|
|
34
33
|
* @returns {import("../spec/config.js").AxisConfig}
|
|
35
34
|
*/
|
|
36
35
|
export function getConfiguredAxisDefaults(
|
|
37
36
|
scopes,
|
|
38
37
|
{ channel, orient, type, style }
|
|
39
38
|
) {
|
|
40
|
-
const
|
|
39
|
+
const layers = createConfigLayerStack();
|
|
41
40
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
41
|
+
for (const [index, scope] of scopes.entries()) {
|
|
42
|
+
const channelBucket = CHANNEL_BUCKETS[channel];
|
|
43
|
+
const orientBucket = orient ? ORIENT_BUCKETS[orient] : undefined;
|
|
44
|
+
const typeBucket = type ? TYPE_BUCKETS[type] : undefined;
|
|
45
|
+
const precedingScopes = scopes.slice(0, index + 1);
|
|
46
|
+
const bucketConfigs = [
|
|
47
|
+
/** @type {Record<string, any> | undefined} */ (scope.axis),
|
|
48
|
+
/** @type {Record<string, any> | undefined} */ (
|
|
49
|
+
channelBucket ? scope[channelBucket] : undefined
|
|
50
|
+
),
|
|
51
|
+
/** @type {Record<string, any> | undefined} */ (
|
|
52
|
+
orientBucket ? scope[orientBucket] : undefined
|
|
53
|
+
),
|
|
54
|
+
/** @type {Record<string, any> | undefined} */ (
|
|
55
|
+
typeBucket ? scope[typeBucket] : undefined
|
|
56
|
+
),
|
|
57
|
+
];
|
|
58
|
+
|
|
59
|
+
for (const config of bucketConfigs) {
|
|
60
|
+
layers.appendConfig(precedingScopes, config);
|
|
61
|
+
}
|
|
62
|
+
layers.appendStyle(precedingScopes, style);
|
|
63
|
+
}
|
|
65
64
|
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
(styleName) =>
|
|
69
|
-
/** @type {Record<string, any> | undefined} */ (
|
|
70
|
-
scope.style?.[styleName]
|
|
71
|
-
)
|
|
72
|
-
),
|
|
73
|
-
...bucketConfigs,
|
|
74
|
-
...styles.map(
|
|
75
|
-
(styleName) =>
|
|
76
|
-
/** @type {Record<string, any> | undefined} */ (
|
|
77
|
-
scope.style?.[styleName]
|
|
78
|
-
)
|
|
79
|
-
),
|
|
80
|
-
];
|
|
81
|
-
})
|
|
82
|
-
)
|
|
65
|
+
return /** @type {import("../spec/config.js").AxisConfig} */ (
|
|
66
|
+
layers.merge()
|
|
83
67
|
);
|
|
84
68
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @typedef {{
|
|
3
|
+
* kind: "style" | "config",
|
|
4
|
+
* config: Record<string, any>
|
|
5
|
+
* }} ConfigLayer
|
|
6
|
+
*
|
|
7
|
+
* @typedef {{
|
|
8
|
+
* appendConfig: (scopes: import("../spec/config.js").GenomeSpyConfig[], config: StyleableConfig | undefined) => void,
|
|
9
|
+
* appendStyle: (scopes: import("../spec/config.js").GenomeSpyConfig[], style: string | string[] | null | undefined) => void,
|
|
10
|
+
* merge: () => Record<string, any>
|
|
11
|
+
* }} ConfigLayerStack
|
|
12
|
+
*
|
|
13
|
+
* @typedef {{
|
|
14
|
+
* style?: string | string[] | null
|
|
15
|
+
* }} StyleableConfig
|
|
16
|
+
*/
|
|
17
|
+
/**
|
|
18
|
+
* Creates an ordered config layer stack that understands GenomeSpy style
|
|
19
|
+
* expansion. A style reference is not an ordinary property: it expands to a
|
|
20
|
+
* separate layer of defaults before the config object that declared it. Keeping
|
|
21
|
+
* these expanded defaults as tagged layers makes `style: null` meaningful: it
|
|
22
|
+
* can remove previously expanded style defaults while preserving ordinary
|
|
23
|
+
* inherited config properties such as `disable`, colors, or label settings.
|
|
24
|
+
*
|
|
25
|
+
* This is primarily needed by guide-like config hierarchies where defaults are
|
|
26
|
+
* assembled from multiple buckets, for example `legend`, `legendTrack`, and
|
|
27
|
+
* channel-level legend properties. The caller remains responsible for appending
|
|
28
|
+
* buckets in the desired precedence order.
|
|
29
|
+
*
|
|
30
|
+
* @returns {ConfigLayerStack}
|
|
31
|
+
*/
|
|
32
|
+
export function createConfigLayerStack(): ConfigLayerStack;
|
|
33
|
+
export type ConfigLayer = {
|
|
34
|
+
kind: "style" | "config";
|
|
35
|
+
config: Record<string, any>;
|
|
36
|
+
};
|
|
37
|
+
export type ConfigLayerStack = {
|
|
38
|
+
appendConfig: (scopes: import("../spec/config.js").GenomeSpyConfig[], config: StyleableConfig | undefined) => void;
|
|
39
|
+
appendStyle: (scopes: import("../spec/config.js").GenomeSpyConfig[], style: string | string[] | null | undefined) => void;
|
|
40
|
+
merge: () => Record<string, any>;
|
|
41
|
+
};
|
|
42
|
+
export type StyleableConfig = {
|
|
43
|
+
style?: string | string[] | null;
|
|
44
|
+
};
|
|
45
|
+
//# sourceMappingURL=configLayers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"configLayers.d.ts","sourceRoot":"","sources":["../../../src/config/configLayers.js"],"names":[],"mappings":"AAGA;;;;;;;;;;;;;;;GAeG;AAEH;;;;;;;;;;;;;;GAcG;AACH,0CAFa,gBAAgB,CAmB5B;0BAhDY;IACN,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CAC9B;+BAES;IACN,YAAY,EAAE,CAAC,MAAM,EAAE,OAAO,mBAAmB,EAAE,eAAe,EAAE,EAAE,MAAM,EAAE,eAAe,GAAG,SAAS,KAAK,IAAI,CAAC;IACnH,WAAW,EAAE,CAAC,MAAM,EAAE,OAAO,mBAAmB,EAAE,eAAe,EAAE,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,KAAK,IAAI,CAAC;IAC1H,KAAK,EAAE,MAAM,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;CACnC;8BAES;IACN,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,CAAA;CACnC"}
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { mergeConfigScopes } from "./mergeConfig.js";
|
|
2
|
+
import { getConfiguredStyleConfig } from "./styleUtils.js";
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* @typedef {{
|
|
6
|
+
* kind: "style" | "config",
|
|
7
|
+
* config: Record<string, any>
|
|
8
|
+
* }} ConfigLayer
|
|
9
|
+
*
|
|
10
|
+
* @typedef {{
|
|
11
|
+
* appendConfig: (scopes: import("../spec/config.js").GenomeSpyConfig[], config: StyleableConfig | undefined) => void,
|
|
12
|
+
* appendStyle: (scopes: import("../spec/config.js").GenomeSpyConfig[], style: string | string[] | null | undefined) => void,
|
|
13
|
+
* merge: () => Record<string, any>
|
|
14
|
+
* }} ConfigLayerStack
|
|
15
|
+
*
|
|
16
|
+
* @typedef {{
|
|
17
|
+
* style?: string | string[] | null
|
|
18
|
+
* }} StyleableConfig
|
|
19
|
+
*/
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Creates an ordered config layer stack that understands GenomeSpy style
|
|
23
|
+
* expansion. A style reference is not an ordinary property: it expands to a
|
|
24
|
+
* separate layer of defaults before the config object that declared it. Keeping
|
|
25
|
+
* these expanded defaults as tagged layers makes `style: null` meaningful: it
|
|
26
|
+
* can remove previously expanded style defaults while preserving ordinary
|
|
27
|
+
* inherited config properties such as `disable`, colors, or label settings.
|
|
28
|
+
*
|
|
29
|
+
* This is primarily needed by guide-like config hierarchies where defaults are
|
|
30
|
+
* assembled from multiple buckets, for example `legend`, `legendTrack`, and
|
|
31
|
+
* channel-level legend properties. The caller remains responsible for appending
|
|
32
|
+
* buckets in the desired precedence order.
|
|
33
|
+
*
|
|
34
|
+
* @returns {ConfigLayerStack}
|
|
35
|
+
*/
|
|
36
|
+
export function createConfigLayerStack() {
|
|
37
|
+
/** @type {ConfigLayer[]} */
|
|
38
|
+
const layers = [];
|
|
39
|
+
|
|
40
|
+
return {
|
|
41
|
+
appendConfig(scopes, config) {
|
|
42
|
+
appendConfigLayer(layers, scopes, config);
|
|
43
|
+
},
|
|
44
|
+
|
|
45
|
+
appendStyle(scopes, style) {
|
|
46
|
+
appendStyleLayer(layers, scopes, style);
|
|
47
|
+
},
|
|
48
|
+
|
|
49
|
+
merge() {
|
|
50
|
+
return mergeConfigScopes(layers.map((layer) => layer.config));
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
/**
|
|
56
|
+
* @param {ConfigLayer[]} layers
|
|
57
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
58
|
+
* @param {StyleableConfig | undefined} config
|
|
59
|
+
*/
|
|
60
|
+
function appendConfigLayer(layers, scopes, config) {
|
|
61
|
+
if (!config) {
|
|
62
|
+
return;
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
appendStyleLayer(
|
|
66
|
+
layers,
|
|
67
|
+
scopes,
|
|
68
|
+
Object.hasOwn(config, "style") ? config.style : undefined
|
|
69
|
+
);
|
|
70
|
+
|
|
71
|
+
layers.push({ kind: "config", config });
|
|
72
|
+
}
|
|
73
|
+
|
|
74
|
+
/**
|
|
75
|
+
* Appends style-expanded defaults without appending the style declaration
|
|
76
|
+
* itself. Use this for explicit style inputs whose only purpose is to select a
|
|
77
|
+
* named style layer.
|
|
78
|
+
*
|
|
79
|
+
* @param {ConfigLayer[]} layers
|
|
80
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
81
|
+
* @param {string | string[] | null | undefined} style
|
|
82
|
+
*/
|
|
83
|
+
function appendStyleLayer(layers, scopes, style) {
|
|
84
|
+
if (style === undefined) {
|
|
85
|
+
return;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
if (style === null) {
|
|
89
|
+
removeStyleLayers(layers);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
const styleConfig = getConfiguredStyleConfig(scopes, style);
|
|
94
|
+
layers.push({ kind: "style", config: styleConfig });
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
/**
|
|
98
|
+
* Removes expanded style layers while leaving ordinary config layers intact.
|
|
99
|
+
* This allows a deeper config scope to clear inherited styles without clearing
|
|
100
|
+
* unrelated inherited defaults.
|
|
101
|
+
*
|
|
102
|
+
* @param {ConfigLayer[]} layers
|
|
103
|
+
*/
|
|
104
|
+
function removeStyleLayers(layers) {
|
|
105
|
+
for (let index = layers.length - 1; index >= 0; index--) {
|
|
106
|
+
if (layers[index].kind == "style") {
|
|
107
|
+
layers.splice(index, 1);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../../src/config/defaultConfig.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"defaultConfig.d.ts","sourceRoot":"","sources":["../../../src/config/defaultConfig.js"],"names":[],"mappings":"AAsBA,0DAA0D;AAC1D,sCADW,OAAO,mBAAmB,EAAE,eAAe,CAsBpD"}
|
|
@@ -8,6 +8,11 @@ import {
|
|
|
8
8
|
TEXT_MARK_DEFAULTS,
|
|
9
9
|
} from "./defaults/markDefaults.js";
|
|
10
10
|
import { AXIS_DEFAULTS, LOCUS_AXIS_DEFAULTS } from "./defaults/axisDefaults.js";
|
|
11
|
+
import {
|
|
12
|
+
LEGEND_DEFAULTS,
|
|
13
|
+
LEGEND_STYLE_DEFAULTS,
|
|
14
|
+
LEGEND_TRACK_DEFAULTS,
|
|
15
|
+
} from "./defaults/legendDefaults.js";
|
|
11
16
|
import { RANGE_DEFAULTS, SCALE_DEFAULTS } from "./defaults/scaleDefaults.js";
|
|
12
17
|
import {
|
|
13
18
|
TITLE_DEFAULTS,
|
|
@@ -29,10 +34,12 @@ export const INTERNAL_DEFAULT_CONFIG = {
|
|
|
29
34
|
|
|
30
35
|
axis: AXIS_DEFAULTS,
|
|
31
36
|
axisLocus: LOCUS_AXIS_DEFAULTS,
|
|
37
|
+
legend: LEGEND_DEFAULTS,
|
|
38
|
+
legendTrack: LEGEND_TRACK_DEFAULTS,
|
|
32
39
|
|
|
33
40
|
scale: SCALE_DEFAULTS,
|
|
34
41
|
range: RANGE_DEFAULTS,
|
|
35
42
|
|
|
36
43
|
title: TITLE_DEFAULTS,
|
|
37
|
-
style: TITLE_STYLE_DEFAULTS,
|
|
44
|
+
style: { ...TITLE_STYLE_DEFAULTS, ...LEGEND_STYLE_DEFAULTS },
|
|
38
45
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initial legend defaults are adapted from Vega:
|
|
3
|
+
* https://github.com/vega/vega/
|
|
4
|
+
*
|
|
5
|
+
* @type {import("../../spec/legend.js").LegendConfig}
|
|
6
|
+
*/
|
|
7
|
+
export const LEGEND_DEFAULTS: import("../../spec/legend.js").LegendConfig;
|
|
8
|
+
/** @type {Record<string, import("../../spec/config.js").StyleConfig>} */
|
|
9
|
+
export const LEGEND_STYLE_DEFAULTS: Record<string, import("../../spec/config.js").StyleConfig>;
|
|
10
|
+
/**
|
|
11
|
+
* @type {import("../../spec/legend.js").LegendConfig}
|
|
12
|
+
*/
|
|
13
|
+
export const LEGEND_TRACK_DEFAULTS: import("../../spec/legend.js").LegendConfig;
|
|
14
|
+
//# sourceMappingURL=legendDefaults.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legendDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/legendDefaults.js"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,8BAFU,OAAO,sBAAsB,EAAE,YAAY,CAwBnD;AAEF,yEAAyE;AACzE,oCADW,MAAM,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC,CAQnE;AAEF;;GAEG;AACH,oCAFU,OAAO,sBAAsB,EAAE,YAAY,CAInD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Initial legend defaults are adapted from Vega:
|
|
3
|
+
* https://github.com/vega/vega/
|
|
4
|
+
*
|
|
5
|
+
* @type {import("../../spec/legend.js").LegendConfig}
|
|
6
|
+
*/
|
|
7
|
+
export const LEGEND_DEFAULTS = {
|
|
8
|
+
disable: false,
|
|
9
|
+
orient: "right",
|
|
10
|
+
direction: "vertical",
|
|
11
|
+
offset: 18,
|
|
12
|
+
padding: 0,
|
|
13
|
+
spacing: 10,
|
|
14
|
+
columnPadding: 10,
|
|
15
|
+
rowPadding: 2,
|
|
16
|
+
labelAlign: "left",
|
|
17
|
+
labelBaseline: "middle",
|
|
18
|
+
labelLimit: 160,
|
|
19
|
+
labelOffset: 4,
|
|
20
|
+
symbolType: "circle",
|
|
21
|
+
symbolSize: 100,
|
|
22
|
+
symbolOffset: 0,
|
|
23
|
+
symbolStrokeWidth: 1.5,
|
|
24
|
+
symbolBaseFillColor: "transparent",
|
|
25
|
+
symbolBaseStrokeColor: "#888",
|
|
26
|
+
titleLimit: 180,
|
|
27
|
+
titleOrient: "top",
|
|
28
|
+
titlePadding: 5,
|
|
29
|
+
};
|
|
30
|
+
|
|
31
|
+
/** @type {Record<string, import("../../spec/config.js").StyleConfig>} */
|
|
32
|
+
export const LEGEND_STYLE_DEFAULTS = {
|
|
33
|
+
"track-bottom": {
|
|
34
|
+
orient: "bottom",
|
|
35
|
+
titleOrient: "left",
|
|
36
|
+
spacing: 3,
|
|
37
|
+
offset: 3,
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* @type {import("../../spec/legend.js").LegendConfig}
|
|
43
|
+
*/
|
|
44
|
+
export const LEGEND_TRACK_DEFAULTS = {
|
|
45
|
+
style: "track-bottom",
|
|
46
|
+
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"titleDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/titleDefaults.js"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,6BADW,OAAO,sBAAsB,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"titleDefaults.d.ts","sourceRoot":"","sources":["../../../../src/config/defaults/titleDefaults.js"],"names":[],"mappings":"AAAA,yDAAyD;AACzD,6BADW,OAAO,sBAAsB,EAAE,WAAW,CAkBnD;AAeF,yEAAyE;AACzE,mCADW,MAAM,CAAC,MAAM,EAAE,OAAO,sBAAsB,EAAE,WAAW,CAAC,CAqBnE"}
|
|
@@ -4,6 +4,7 @@ export const TITLE_DEFAULTS = {
|
|
|
4
4
|
frame: "group",
|
|
5
5
|
offset: 10,
|
|
6
6
|
orient: "top",
|
|
7
|
+
reserve: true,
|
|
7
8
|
align: undefined,
|
|
8
9
|
angle: 0,
|
|
9
10
|
baseline: "alphabetic",
|
|
@@ -11,37 +12,44 @@ export const TITLE_DEFAULTS = {
|
|
|
11
12
|
dy: 0,
|
|
12
13
|
color: undefined,
|
|
13
14
|
font: undefined,
|
|
14
|
-
fontSize:
|
|
15
|
+
fontSize: 13,
|
|
15
16
|
fontStyle: "normal",
|
|
16
17
|
fontWeight: "normal",
|
|
18
|
+
subtitlePadding: 3,
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/** @type {import("../../spec/config.js").StyleConfig} */
|
|
22
|
+
const OVERLAY_TITLE_STYLE = {
|
|
23
|
+
orient: "top",
|
|
24
|
+
frame: "group",
|
|
25
|
+
reserve: false,
|
|
26
|
+
anchor: "start",
|
|
27
|
+
align: "left",
|
|
28
|
+
baseline: "top",
|
|
29
|
+
offset: -10,
|
|
30
|
+
dx: 10,
|
|
31
|
+
fontSize: 12,
|
|
17
32
|
};
|
|
18
33
|
|
|
19
34
|
/** @type {Record<string, import("../../spec/config.js").StyleConfig>} */
|
|
20
35
|
export const TITLE_STYLE_DEFAULTS = {
|
|
36
|
+
"group-title": {},
|
|
21
37
|
"track-title": {
|
|
22
38
|
orient: "left",
|
|
39
|
+
frame: "group",
|
|
40
|
+
reserve: true,
|
|
23
41
|
anchor: "middle",
|
|
24
42
|
align: "right",
|
|
25
43
|
baseline: "middle",
|
|
26
44
|
angle: 0,
|
|
27
45
|
fontSize: 12,
|
|
28
46
|
},
|
|
29
|
-
overlay
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
fontSize: 12,
|
|
37
|
-
},
|
|
38
|
-
"overlay-title": {
|
|
39
|
-
orient: "top",
|
|
40
|
-
anchor: "start",
|
|
41
|
-
align: "left",
|
|
42
|
-
baseline: "top",
|
|
43
|
-
offset: -10,
|
|
44
|
-
dx: 10,
|
|
45
|
-
fontSize: 12,
|
|
47
|
+
// Legacy name kept for backward compatibility. Prefer "overlay-title".
|
|
48
|
+
overlay: OVERLAY_TITLE_STYLE,
|
|
49
|
+
"overlay-title": OVERLAY_TITLE_STYLE,
|
|
50
|
+
"group-subtitle": {
|
|
51
|
+
fontSize: 11,
|
|
52
|
+
fontStyle: "normal",
|
|
53
|
+
fontWeight: "normal",
|
|
46
54
|
},
|
|
47
55
|
};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
3
|
+
* @param {import("../spec/legend.js").Legend | import("../spec/legend.js").LegendConfig} [legend]
|
|
4
|
+
* @param {object} [options]
|
|
5
|
+
* @param {boolean} [options.track]
|
|
6
|
+
* @returns {import("../spec/legend.js").LegendConfig}
|
|
7
|
+
*/
|
|
8
|
+
export function getConfiguredLegendDefaults(scopes: import("../spec/config.js").GenomeSpyConfig[], legend?: import("../spec/legend.js").Legend | import("../spec/legend.js").LegendConfig, options?: {
|
|
9
|
+
track?: boolean;
|
|
10
|
+
}): import("../spec/legend.js").LegendConfig;
|
|
11
|
+
//# sourceMappingURL=legendConfig.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"legendConfig.d.ts","sourceRoot":"","sources":["../../../src/config/legendConfig.js"],"names":[],"mappings":"AAEA;;;;;;GAMG;AACH,oDANW,OAAO,mBAAmB,EAAE,eAAe,EAAE,WAC7C,OAAO,mBAAmB,EAAE,MAAM,GAAG,OAAO,mBAAmB,EAAE,YAAY,YAErF;IAA0B,KAAK,GAAvB,OAAO;CACf,GAAU,OAAO,mBAAmB,EAAE,YAAY,CAoBpD"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { createConfigLayerStack } from "./configLayers.js";
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
5
|
+
* @param {import("../spec/legend.js").Legend | import("../spec/legend.js").LegendConfig} [legend]
|
|
6
|
+
* @param {object} [options]
|
|
7
|
+
* @param {boolean} [options.track]
|
|
8
|
+
* @returns {import("../spec/legend.js").LegendConfig}
|
|
9
|
+
*/
|
|
10
|
+
export function getConfiguredLegendDefaults(scopes, legend, options = {}) {
|
|
11
|
+
const baseScope = scopes[0];
|
|
12
|
+
const scopedOverrides = scopes.slice(1);
|
|
13
|
+
const layers = createConfigLayerStack();
|
|
14
|
+
|
|
15
|
+
appendLegendScopeDefaults(layers, scopes, baseScope, options.track);
|
|
16
|
+
|
|
17
|
+
for (const [index, scope] of scopedOverrides.entries()) {
|
|
18
|
+
const scopedScopes = scopes.slice(0, index + 2);
|
|
19
|
+
appendTrackScopeDefaults(layers, scopedScopes, scope, options.track);
|
|
20
|
+
appendLegendConfigLayer(layers, scopedScopes, scope.legend);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
appendLegendConfigLayer(layers, scopes, legend);
|
|
24
|
+
|
|
25
|
+
return /** @type {import("../spec/legend.js").LegendConfig} */ (
|
|
26
|
+
layers.merge()
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* @param {import("./configLayers.js").ConfigLayerStack} layers
|
|
32
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
33
|
+
* @param {import("../spec/config.js").GenomeSpyConfig | undefined} baseScope
|
|
34
|
+
* @param {boolean | undefined} track
|
|
35
|
+
*/
|
|
36
|
+
function appendLegendScopeDefaults(layers, scopes, baseScope, track) {
|
|
37
|
+
const scopedScopes = scopes.slice(0, 1);
|
|
38
|
+
appendLegendConfigLayer(layers, scopedScopes, baseScope?.legend);
|
|
39
|
+
appendTrackScopeDefaults(layers, scopedScopes, baseScope, track);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
/**
|
|
43
|
+
* @param {import("./configLayers.js").ConfigLayerStack} layers
|
|
44
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopedScopes
|
|
45
|
+
* @param {import("../spec/config.js").GenomeSpyConfig | undefined} scope
|
|
46
|
+
* @param {boolean | undefined} track
|
|
47
|
+
*/
|
|
48
|
+
function appendTrackScopeDefaults(layers, scopedScopes, scope, track) {
|
|
49
|
+
if (!track) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
appendLegendConfigLayer(layers, scopedScopes, scope?.legendTrack);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
/**
|
|
57
|
+
* @param {import("./configLayers.js").ConfigLayerStack} layers
|
|
58
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
59
|
+
* @param {import("../spec/legend.js").Legend | import("../spec/legend.js").LegendConfig | undefined} config
|
|
60
|
+
*/
|
|
61
|
+
function appendLegendConfigLayer(layers, scopes, config) {
|
|
62
|
+
layers.appendConfig(scopes, config);
|
|
63
|
+
}
|
|
@@ -1,6 +1,12 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @param {string | string[] | undefined} style
|
|
2
|
+
* @param {string | string[] | null | undefined} style
|
|
3
3
|
* @returns {string[]}
|
|
4
4
|
*/
|
|
5
|
-
export function normalizeStyle(style: string | string[] | undefined): string[];
|
|
5
|
+
export function normalizeStyle(style: string | string[] | null | undefined): string[];
|
|
6
|
+
/**
|
|
7
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
8
|
+
* @param {string | string[] | null | undefined} style
|
|
9
|
+
* @returns {import("../spec/config.js").StyleConfig}
|
|
10
|
+
*/
|
|
11
|
+
export function getConfiguredStyleConfig(scopes: import("../spec/config.js").GenomeSpyConfig[], style: string | string[] | null | undefined): import("../spec/config.js").StyleConfig;
|
|
6
12
|
//# sourceMappingURL=styleUtils.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styleUtils.d.ts","sourceRoot":"","sources":["../../../src/config/styleUtils.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"styleUtils.d.ts","sourceRoot":"","sources":["../../../src/config/styleUtils.js"],"names":[],"mappings":"AAEA;;;GAGG;AACH,sCAHW,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAClC,MAAM,EAAE,CAOpB;AAED;;;;GAIG;AACH,iDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,SAC7C,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,GAAG,SAAS,GAClC,OAAO,mBAAmB,EAAE,WAAW,CAiBnD"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
|
+
import { mergeConfigScopes } from "./mergeConfig.js";
|
|
2
|
+
|
|
1
3
|
/**
|
|
2
|
-
* @param {string | string[] | undefined} style
|
|
4
|
+
* @param {string | string[] | null | undefined} style
|
|
3
5
|
* @returns {string[]}
|
|
4
6
|
*/
|
|
5
7
|
export function normalizeStyle(style) {
|
|
@@ -8,3 +10,25 @@ export function normalizeStyle(style) {
|
|
|
8
10
|
}
|
|
9
11
|
return Array.isArray(style) ? style : [style];
|
|
10
12
|
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* @param {import("../spec/config.js").GenomeSpyConfig[]} scopes
|
|
16
|
+
* @param {string | string[] | null | undefined} style
|
|
17
|
+
* @returns {import("../spec/config.js").StyleConfig}
|
|
18
|
+
*/
|
|
19
|
+
export function getConfiguredStyleConfig(scopes, style) {
|
|
20
|
+
const styles = normalizeStyle(style);
|
|
21
|
+
|
|
22
|
+
return /** @type {import("../spec/config.js").StyleConfig} */ (
|
|
23
|
+
mergeConfigScopes(
|
|
24
|
+
scopes.flatMap((scope) =>
|
|
25
|
+
styles.map(
|
|
26
|
+
(styleName) =>
|
|
27
|
+
/** @type {Record<string, any> | undefined} */ (
|
|
28
|
+
scope.style?.[styleName]
|
|
29
|
+
)
|
|
30
|
+
)
|
|
31
|
+
)
|
|
32
|
+
)
|
|
33
|
+
);
|
|
34
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/config/themes.js"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"themes.d.ts","sourceRoot":"","sources":["../../../src/config/themes.js"],"names":[],"mappings":"AA+SA;;;GAGG;AACH,gDAHW,OAAO,mBAAmB,EAAE,gBAAgB,GAC1C,MAAM,GAAG,SAAS,CAI9B;AAED;;;GAGG;AACH,iDAHW,OAAO,mBAAmB,EAAE,gBAAgB,GAAG,OAAO,mBAAmB,EAAE,gBAAgB,EAAE,GAAG,SAAS,GACvG,OAAO,mBAAmB,EAAE,eAAe,GAAG,SAAS,CAWnE;AA1BD;;GAEG;AACH,iCAFU,OAAO,mBAAmB,EAAE,gBAAgB,CAER"}
|
|
@@ -16,6 +16,9 @@ const VEGALITE_THEME = {
|
|
|
16
16
|
color: "black",
|
|
17
17
|
},
|
|
18
18
|
view: {
|
|
19
|
+
continuousWidth: 300,
|
|
20
|
+
continuousHeight: 300,
|
|
21
|
+
step: 20,
|
|
19
22
|
stroke: "#ddd",
|
|
20
23
|
strokeWidth: 1,
|
|
21
24
|
},
|
|
@@ -26,9 +29,25 @@ const VEGALITE_THEME = {
|
|
|
26
29
|
domainColor: "gray",
|
|
27
30
|
gridColor: "#ddd",
|
|
28
31
|
labelColor: "#333",
|
|
29
|
-
titleColor: "
|
|
32
|
+
titleColor: "black",
|
|
30
33
|
titleFontSize: 11,
|
|
31
|
-
titleFontWeight: "
|
|
34
|
+
titleFontWeight: "bold",
|
|
35
|
+
},
|
|
36
|
+
legend: {
|
|
37
|
+
titleColor: "black",
|
|
38
|
+
titleFontSize: 11,
|
|
39
|
+
titleFontWeight: "bold",
|
|
40
|
+
},
|
|
41
|
+
style: {
|
|
42
|
+
"group-title": {
|
|
43
|
+
color: "black",
|
|
44
|
+
fontSize: 13,
|
|
45
|
+
fontWeight: "bold",
|
|
46
|
+
},
|
|
47
|
+
"group-subtitle": {
|
|
48
|
+
color: "black",
|
|
49
|
+
fontSize: 12,
|
|
50
|
+
},
|
|
32
51
|
},
|
|
33
52
|
axisQuantitative: {
|
|
34
53
|
grid: true,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"titleConfig.d.ts","sourceRoot":"","sources":["../../../src/config/titleConfig.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,iDAHW,OAAO,mBAAmB,EAAE,eAAe,EAAE,GAC3C,OAAO,mBAAmB,EAAE,WAAW,CAWnD;AAED;;;;GAIG;AACH,iDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,cAC7C,MAAM,GAAG,MAAM,EAAE,GACf,OAAO,mBAAmB,EAAE,WAAW,
|
|
1
|
+
{"version":3,"file":"titleConfig.d.ts","sourceRoot":"","sources":["../../../src/config/titleConfig.js"],"names":[],"mappings":"AAGA;;;GAGG;AACH,iDAHW,OAAO,mBAAmB,EAAE,eAAe,EAAE,GAC3C,OAAO,mBAAmB,EAAE,WAAW,CAWnD;AAED;;;;GAIG;AACH,iDAJW,OAAO,mBAAmB,EAAE,eAAe,EAAE,cAC7C,MAAM,GAAG,MAAM,EAAE,GACf,OAAO,mBAAmB,EAAE,WAAW,CAInD"}
|