@milaboratories/graph-maker 1.1.192 → 1.1.194
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/constantsAesthetic.d.ts +0 -1
- package/dist/constantsAesthetic.js +16 -17
- package/dist/constantsAesthetic.js.map +1 -1
- package/dist/constantsCommon.d.ts +4 -0
- package/dist/constantsCommon.js +21 -17
- package/dist/constantsCommon.js.map +1 -1
- package/dist/dataBindAes.d.ts +5 -5
- package/dist/dataBindAes.js +110 -110
- package/dist/dataBindAes.js.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +154 -144
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +263 -193
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/LayersForm/AesSelector.vue.js +59 -59
- package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/Bubble.vue.js +41 -41
- package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +35 -35
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +31 -31
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +35 -35
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
- package/dist/index.vue.js +94 -90
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts +8 -3
- package/dist/store.js +129 -123
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +9 -0
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +2 -2
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +11 -11
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +2 -2
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js +28 -28
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +23 -20
- package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +2 -2
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +20 -18
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +2 -2
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +28 -28
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +2 -2
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +11 -10
- package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +3 -3
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +71 -68
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +2 -2
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +19 -18
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +27 -27
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts +1 -1
- package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js +37 -37
- package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
- package/package.json +2 -2
package/dist/types.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ import { AxesState, LayersSettings, NumberRange, StatisticsState } from './const
|
|
|
4
4
|
import { AestheticMappingCategorical, AestheticMappingState } from './dataBindAes';
|
|
5
5
|
import { FormKey } from './forms';
|
|
6
6
|
import { LassoControlsState, Polygon } from '@milaboratories/miplots4';
|
|
7
|
+
import { CategoricalPalette, ContinuousPalette, Palette } from './components/AesSettings/types';
|
|
7
8
|
export type DeepPartial<T> = {
|
|
8
9
|
[P in keyof T]?: Partial<T[P]>;
|
|
9
10
|
};
|
|
@@ -49,6 +50,10 @@ export interface GraphMakerPropsTyped<T extends ChartType> {
|
|
|
49
50
|
/** Changing of dataStateKey triggers reset of data-mapping - removing of users selections and reapplying defaults */
|
|
50
51
|
dataStateKey?: unknown;
|
|
51
52
|
defaultOptions?: PredefinedGraphOption<T>[];
|
|
53
|
+
defaultPalette?: Palette | {
|
|
54
|
+
categorical?: CategoricalPalette;
|
|
55
|
+
continuous?: ContinuousPalette;
|
|
56
|
+
};
|
|
52
57
|
fixedOptions?: PredefinedGraphOption<T>[];
|
|
53
58
|
allowChartDeleting?: boolean;
|
|
54
59
|
driver?: PFrameDriver;
|
|
@@ -123,3 +128,7 @@ export type FilterSuggestionsBySourceMap = Record<string, {
|
|
|
123
128
|
overflow: boolean;
|
|
124
129
|
}>;
|
|
125
130
|
export type GraphStatus = 'notReady' | 'empty' | 'inconsistent' | 'ready' | 'unknownError' | 'knownError' | 'loading';
|
|
131
|
+
export type DefaultPalettes = {
|
|
132
|
+
categorical: CategoricalPalette;
|
|
133
|
+
continuous: ContinuousPalette;
|
|
134
|
+
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { BubbleSettings } from '@milaboratories/miplots4';
|
|
2
|
-
import { ReactiveState } from '../../types';
|
|
3
|
-
export declare function composeBubbleSettings(settings: BubbleSettings, reactiveState: ReactiveState): {
|
|
2
|
+
import { DefaultPalettes, ReactiveState } from '../../types';
|
|
3
|
+
export declare function composeBubbleSettings(settings: BubbleSettings, reactiveState: ReactiveState, defaultPalettes: DefaultPalettes): {
|
|
4
4
|
type: "bubble";
|
|
5
5
|
title: {
|
|
6
6
|
name: string;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
|
-
import { PALETTE_MAP as
|
|
1
|
+
import { PALETTE_MAP as t, DEFAULT_BLACK as p } from "../../constantsAesthetic.js";
|
|
2
2
|
import "d3-scale";
|
|
3
3
|
import "vue";
|
|
4
|
-
import { getAxesDataFromForms as
|
|
4
|
+
import { getAxesDataFromForms as c } from "./getAxesDataFromForms.js";
|
|
5
5
|
import "@milaboratories/pf-plots";
|
|
6
6
|
import "@platforma-sdk/model";
|
|
7
|
-
const e = 40,
|
|
8
|
-
function
|
|
7
|
+
const e = 40, g = e / 2 - 2, u = 3;
|
|
8
|
+
function E(o, a, n) {
|
|
9
9
|
var l;
|
|
10
|
-
const
|
|
10
|
+
const i = a.template, r = a.layersSettings[i], m = (l = a.dataBindAes[o.valueColor.value]) == null ? void 0 : l.palette;
|
|
11
11
|
return o.aes = {
|
|
12
|
-
cellStrokeColor: r.strokeColor ??
|
|
13
|
-
colorsList:
|
|
14
|
-
maxRadius:
|
|
15
|
-
minRadius:
|
|
12
|
+
cellStrokeColor: r.strokeColor ?? p,
|
|
13
|
+
colorsList: t[m ?? n.continuous].colors,
|
|
14
|
+
maxRadius: g * (a.chartScale / 100),
|
|
15
|
+
minRadius: u
|
|
16
16
|
}, o.size = { cellSize: e * (a.chartScale / 100) }, Object.assign(
|
|
17
17
|
o,
|
|
18
|
-
|
|
18
|
+
c(a.axesSettings, a.chartType)
|
|
19
19
|
), o.NAValueAs = r.NAValueAs, r.normalizationDirection && (o.normalization = {
|
|
20
20
|
method: r.normalizationMethod,
|
|
21
21
|
direction: r.normalizationDirection
|
|
@@ -26,6 +26,6 @@ function _(o, a) {
|
|
|
26
26
|
}), o;
|
|
27
27
|
}
|
|
28
28
|
export {
|
|
29
|
-
|
|
29
|
+
E as composeBubbleSettings
|
|
30
30
|
};
|
|
31
31
|
//# sourceMappingURL=composeBubbleSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeBubbleSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeBubbleSettings.ts"],"sourcesContent":["import type { BubbleSettings } from '@milaboratories/miplots4';\nimport {\n DEFAULT_BLACK,\n
|
|
1
|
+
{"version":3,"file":"composeBubbleSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeBubbleSettings.ts"],"sourcesContent":["import type { BubbleSettings } from '@milaboratories/miplots4';\nimport {\n DEFAULT_BLACK,\n PALETTE_MAP,\n} from '../../constantsAesthetic';\nimport type { BubbleLayer, DefaultPalettes, ReactiveState } from '../../types';\nimport { getAxesDataFromForms } from '../index';\n\nconst DEFAULT_CELL_SIZE = 40;\nconst DEFAULT_MAX_R = DEFAULT_CELL_SIZE / 2 - 2;\nconst DEFAULT_MIN_R = 3;\nexport function composeBubbleSettings(\n settings: BubbleSettings,\n reactiveState: ReactiveState,\n defaultPalettes: DefaultPalettes,\n) {\n const template = reactiveState.template as BubbleLayer;\n const layerSettings = reactiveState.layersSettings[template];\n const palette = reactiveState.dataBindAes[settings.valueColor.value]?.palette;\n\n settings.aes = {\n cellStrokeColor: layerSettings.strokeColor ?? DEFAULT_BLACK,\n colorsList: PALETTE_MAP[palette ?? defaultPalettes.continuous].colors,\n maxRadius: DEFAULT_MAX_R * (reactiveState.chartScale / 100),\n minRadius: DEFAULT_MIN_R,\n };\n\n settings.size = { cellSize: DEFAULT_CELL_SIZE * (reactiveState.chartScale / 100) };\n\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType),\n );\n\n settings.NAValueAs = layerSettings.NAValueAs;\n if (layerSettings.normalizationDirection) {\n settings.normalization = {\n method: layerSettings.normalizationMethod,\n direction: layerSettings.normalizationDirection,\n };\n }\n\n if (layerSettings.aggregateByX || layerSettings.aggregateByY) {\n settings.aggregation = {\n x: layerSettings.aggregateByX && settings.xGroupBy && settings.xGroupBy.length > 0,\n y: layerSettings.aggregateByY && settings.yGroupBy && settings.yGroupBy.length > 0,\n method: layerSettings.aggregationMethod,\n };\n }\n\n return settings;\n}\n"],"names":["DEFAULT_CELL_SIZE","DEFAULT_MAX_R","DEFAULT_MIN_R","composeBubbleSettings","settings","reactiveState","defaultPalettes","template","layerSettings","palette","_a","DEFAULT_BLACK","PALETTE_MAP","getAxesDataFromForms"],"mappings":";;;;;;AAQA,MAAMA,IAAoB,IACpBC,IAAgBD,IAAoB,IAAI,GACxCE,IAAgB;AACf,SAASC,EACdC,GACAC,GACAC,GACA;;AACA,QAAMC,IAAWF,EAAc,UACzBG,IAAgBH,EAAc,eAAeE,CAAQ,GACrDE,KAAUC,IAAAL,EAAc,YAAYD,EAAS,WAAW,KAAK,MAAnD,gBAAAM,EAAsD;AAEtE,SAAAN,EAAS,MAAM;AAAA,IACb,iBAAiBI,EAAc,eAAeG;AAAA,IAC9C,YAAYC,EAAYH,KAAWH,EAAgB,UAAU,EAAE;AAAA,IAC/D,WAAWL,KAAiBI,EAAc,aAAa;AAAA,IACvD,WAAWH;AAAA,EAAA,GAGbE,EAAS,OAAO,EAAE,UAAUJ,KAAqBK,EAAc,aAAa,KAAA,GAE5E,OAAO;AAAA,IACLD;AAAA,IACAS,EAAqBR,EAAc,cAAcA,EAAc,SAAS;AAAA,EAAA,GAG1ED,EAAS,YAAYI,EAAc,WAC/BA,EAAc,2BAChBJ,EAAS,gBAAgB;AAAA,IACvB,QAAQI,EAAc;AAAA,IACtB,WAAWA,EAAc;AAAA,EAAA,KAIzBA,EAAc,gBAAgBA,EAAc,kBAC9CJ,EAAS,cAAc;AAAA,IACrB,GAAGI,EAAc,gBAAgBJ,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,GAAGI,EAAc,gBAAgBJ,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,QAAQI,EAAc;AAAA,EAAA,IAInBJ;AACT;"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { DemoDataStore, InputGuide, InputState, PlotDataAndSettings } from '@milaboratories/pf-plots';
|
|
2
|
-
import { GraphMakerProps, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
2
|
+
import { DefaultPalettes, GraphMakerProps, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
3
3
|
import { DataByColumns, Settings } from '@milaboratories/miplots4';
|
|
4
4
|
import { ListOption } from '@platforma-sdk/ui-vue';
|
|
5
5
|
export declare function loadDataForPlot(inputGuide: InputGuide<InputState>, reactiveState: ReactiveState, dataStore: DemoDataStore | null, fixedOptions?: GraphMakerProps['fixedOptions']): Promise<PlotDataAndSettings | null>;
|
|
6
|
-
export declare function composeChartSettings(chartData: PlotDataAndSettings | null, inputGuide: InputGuide<InputState>, labelsInfo: UniqueValuesBySourceMap, filterLabelsInfo: Record<string, ListOption>, reactiveState: ReactiveState): null | {
|
|
6
|
+
export declare function composeChartSettings(chartData: PlotDataAndSettings | null, inputGuide: InputGuide<InputState>, labelsInfo: UniqueValuesBySourceMap, filterLabelsInfo: Record<string, ListOption>, reactiveState: ReactiveState, defaultPalette: DefaultPalettes): null | {
|
|
7
7
|
settings: Settings;
|
|
8
8
|
data: DataByColumns;
|
|
9
9
|
};
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { getControllerByType as
|
|
2
|
-
import { addFixedOptionsToState as
|
|
3
|
-
import { DEFAULT_HEIGHT_SMALL as
|
|
1
|
+
import { getControllerByType as d } from "@milaboratories/pf-plots";
|
|
2
|
+
import { addFixedOptionsToState as g } from "../addFixedOptionsToState.js";
|
|
3
|
+
import { DEFAULT_HEIGHT_SMALL as y, DEFAULT_HEIGHT as a, DEFAULT_WIDTH_SMALL as b, DEFAULT_WIDTH as w } from "../../constantsCommon.js";
|
|
4
4
|
import { composeDiscreteSettings as C } from "./composeDiscreteSettings.js";
|
|
5
5
|
import { composeScatterplotSettings as H } from "./composeScatterplotSettings.js";
|
|
6
6
|
import { composeScatterplotUmapSettings as D } from "./composeScatterplotUmapSettings.js";
|
|
@@ -11,61 +11,61 @@ import { composeBubbleSettings as L } from "./composeBubbleSettings.js";
|
|
|
11
11
|
function _(s, n = 0) {
|
|
12
12
|
return {
|
|
13
13
|
width: (n > 0 ? b : w) * (s / 100),
|
|
14
|
-
height: (n > 0 ?
|
|
14
|
+
height: (n > 0 ? y : a) * (s / 100)
|
|
15
15
|
};
|
|
16
16
|
}
|
|
17
|
-
function B(s, n, r,
|
|
18
|
-
var o,
|
|
17
|
+
function B(s, n, r, i) {
|
|
18
|
+
var o, m;
|
|
19
19
|
if (s !== "scatterplot" && s !== "scatterplot-umap" && s !== "discrete" && s !== "heatmap" && s !== "histogram" && s !== "bubble")
|
|
20
20
|
return { name: "", show: !1 };
|
|
21
|
-
if (
|
|
21
|
+
if (i.title.mode === "hidden")
|
|
22
22
|
return { name: "", show: !1 };
|
|
23
|
-
if (
|
|
24
|
-
return { name:
|
|
25
|
-
if (
|
|
26
|
-
const
|
|
23
|
+
if (i.title.mode === "custom")
|
|
24
|
+
return { name: i.title.value, show: !0, position: i.title.position };
|
|
25
|
+
if (i.title.mode === "auto") {
|
|
26
|
+
const t = [], p = ((o = n.components) == null ? void 0 : o.tabBy.selectorStates) ?? [], l = (((m = n.components) == null ? void 0 : m.filters.selectorStates) ?? []).filter((e) => !p.some((c) => c.selectedSource === e.selectedSource));
|
|
27
27
|
return [
|
|
28
|
-
...
|
|
29
|
-
...
|
|
30
|
-
].forEach(({ type:
|
|
31
|
-
if ((!
|
|
32
|
-
const { value: h, label:
|
|
33
|
-
|
|
28
|
+
...p,
|
|
29
|
+
...l
|
|
30
|
+
].forEach(({ type: e, selectedSource: c, selectedFilterValues: u }) => {
|
|
31
|
+
if ((!e || e === "equals") && u && r[c]) {
|
|
32
|
+
const { value: h, label: T } = r[c];
|
|
33
|
+
t.push(...u.map((f) => h === f ? T : String(f)));
|
|
34
34
|
}
|
|
35
|
-
}), { name:
|
|
35
|
+
}), { name: t.join(", "), show: !0, position: i.title.position };
|
|
36
36
|
}
|
|
37
37
|
return { name: "", show: !1 };
|
|
38
38
|
}
|
|
39
|
-
async function
|
|
39
|
+
async function N(s, n, r, i) {
|
|
40
40
|
if (!s.ready || r === null)
|
|
41
41
|
return null;
|
|
42
42
|
try {
|
|
43
|
-
const o =
|
|
43
|
+
const o = d(n.chartType), m = await g(
|
|
44
44
|
n.optionsState,
|
|
45
45
|
r,
|
|
46
|
-
|
|
46
|
+
i
|
|
47
47
|
);
|
|
48
48
|
return o.createDataForPlot(
|
|
49
49
|
r,
|
|
50
|
-
|
|
50
|
+
m
|
|
51
51
|
);
|
|
52
52
|
} catch (o) {
|
|
53
53
|
return console.warn("Cant build chart data"), console.warn(o.message), null;
|
|
54
54
|
}
|
|
55
55
|
}
|
|
56
|
-
function
|
|
57
|
-
var
|
|
56
|
+
function Q(s, n, r, i, o, m) {
|
|
57
|
+
var l;
|
|
58
58
|
if (!n.ready || s === null)
|
|
59
59
|
return null;
|
|
60
60
|
let t = { ...s.settings };
|
|
61
|
-
const
|
|
62
|
-
return t.title = B(o.chartType, o.optionsState,
|
|
61
|
+
const p = s.data.byColumns;
|
|
62
|
+
return t.title = B(o.chartType, o.optionsState, i, o.axesSettings), t.size = _(o.chartScale, ((l = o.optionsState.components) == null ? void 0 : l.facetBy.selectorStates.length) || 0), o.chartType === "discrete" && (t = C(t, o, r, n, m)), o.chartType === "scatterplot" && (t = H(t, p, o, n, r, m)), o.chartType === "scatterplot-umap" && (t = D(t, p, o, n, r, m)), o.chartType === "heatmap" && (t = E(t, o, m)), o.chartType === "dendro" && (t = F(t, p, o, n, r)), o.chartType === "histogram" && (t = A(t, o, r, m)), o.chartType === "bubble" && (t = L(t, o, m)), {
|
|
63
63
|
settings: t,
|
|
64
64
|
data: s.data.byColumns
|
|
65
65
|
};
|
|
66
66
|
}
|
|
67
67
|
export {
|
|
68
|
-
|
|
69
|
-
|
|
68
|
+
Q as composeChartSettings,
|
|
69
|
+
N as loadDataForPlot
|
|
70
70
|
};
|
|
71
71
|
//# sourceMappingURL=composeChartSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeChartSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeChartSettings.ts"],"sourcesContent":["import type {\n ChartType,\n DemoDataStore,\n InputGuide,\n InputState,\n PlotDataAndSettings,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n} from '@milaboratories/pf-plots';\nimport type {\n GraphMakerProps,\n ReactiveState,\n TitlePosition,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { addFixedOptionsToState } from '../addFixedOptionsToState';\nimport type {\n AxesState } from '../../constantsCommon';\nimport { DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL,\n} from '../../constantsCommon';\nimport type {\n BubbleSettings,\n DataByColumns,\n DendroSettings,\n DiscreteSettings,\n HeatmapSettings,\n HistogramSettings,\n ScatterplotSettings,\n ScatterplotUmapSettings,\n Settings,\n} from '@milaboratories/miplots4';\nimport { composeDiscreteSettings } from './composeDiscreteSettings';\nimport { composeScatterplotSettings } from './composeScatterplotSettings';\nimport { composeScatterplotUmapSettings } from './composeScatterplotUmapSettings';\nimport { composeHeatmapSettings } from './composeHeatmapSettings';\nimport { composeDendroSettings } from './composeDendroSettings';\nimport { composeHistogramSettings } from './composeHistogramSettings';\nimport { composeBubbleSettings } from './composeBubbleSettings';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\n\nfunction getChartSizes(chartScale: number, facetByLength = 0) {\n return {\n width: (facetByLength > 0 ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH) * (chartScale / 100),\n height: (facetByLength > 0 ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT) * (chartScale / 100),\n };\n}\n\nfunction getChartTitle(\n chartType: ChartType,\n optionsState: InputState,\n filterLabelsInfo: Record<string, ListOption>,\n axesSettings: AxesState,\n): {\n name: string;\n show: boolean;\n position?: TitlePosition;\n } {\n if (\n chartType !== 'scatterplot'\n && chartType !== 'scatterplot-umap'\n && chartType !== 'discrete'\n && chartType !== 'heatmap'\n && chartType !== 'histogram'\n && chartType !== 'bubble'\n ) {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'hidden') {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'custom') {\n return { name: axesSettings.title.value, show: true, position: axesSettings.title.position };\n }\n if (axesSettings.title.mode === 'auto') {\n const selectedFilters: string[] = [];\n const tabByStates = (optionsState.components?.tabBy.selectorStates ?? []);\n const filterStates = (optionsState.components?.filters.selectorStates ?? []).filter((state) => !tabByStates.some((tabByState) => tabByState.selectedSource === state.selectedSource));\n\n const usedInTitleStates = [\n ...tabByStates,\n ...filterStates,\n ] as SelectorStateFilter[];\n usedInTitleStates.forEach(({ type, selectedSource, selectedFilterValues }) => {\n if ((!type || type === 'equals') && selectedFilterValues && filterLabelsInfo[selectedSource]) {\n const { value, label } = filterLabelsInfo[selectedSource] as { value: unknown; label: string };\n selectedFilters.push(...selectedFilterValues.map((selectedFilterValue) => value === selectedFilterValue ? label : String(selectedFilterValue)));\n }\n });\n const title = selectedFilters.join(', ');\n return { name: title, show: true, position: axesSettings.title.position };\n }\n return { name: '', show: false };\n}\n\nexport async function loadDataForPlot(\n inputGuide: InputGuide<InputState>,\n reactiveState: ReactiveState,\n dataStore: DemoDataStore | null,\n fixedOptions?: GraphMakerProps['fixedOptions'],\n) {\n if (!inputGuide.ready || dataStore === null) {\n return null;\n }\n try {\n const controller = getControllerByType(reactiveState.chartType);\n const optionsStateWithFixed = await addFixedOptionsToState(\n reactiveState.optionsState,\n dataStore,\n fixedOptions,\n );\n return controller.createDataForPlot(\n dataStore,\n optionsStateWithFixed,\n );\n } catch (err) {\n console.warn('Cant build chart data');\n console.warn((err as Error).message);\n return null;\n }\n}\nexport function composeChartSettings(\n chartData: PlotDataAndSettings | null,\n inputGuide: InputGuide<InputState>,\n labelsInfo: UniqueValuesBySourceMap,\n filterLabelsInfo: Record<string, ListOption>,\n reactiveState: ReactiveState,\n): null | { settings: Settings; data: DataByColumns } {\n if (!inputGuide.ready || chartData === null) {\n return null;\n }\n\n let settings = { ...chartData.settings };\n const dataByColumns = chartData.data.byColumns;\n settings.title = getChartTitle(reactiveState.chartType, reactiveState.optionsState, filterLabelsInfo, reactiveState.axesSettings);\n settings.size = getChartSizes(reactiveState.chartScale, reactiveState.optionsState.components?.facetBy.selectorStates.length || 0);\n if (reactiveState.chartType === 'discrete') {\n settings = composeDiscreteSettings(settings as DiscreteSettings, reactiveState, labelsInfo, inputGuide);\n }\n if (reactiveState.chartType === 'scatterplot') {\n settings = composeScatterplotSettings(settings as ScatterplotSettings, dataByColumns, reactiveState, inputGuide, labelsInfo);\n }\n if (reactiveState.chartType === 'scatterplot-umap') {\n settings = composeScatterplotUmapSettings(settings as ScatterplotUmapSettings, dataByColumns, reactiveState, inputGuide, labelsInfo);\n }\n if (reactiveState.chartType === 'heatmap') {\n settings = composeHeatmapSettings(settings as HeatmapSettings, reactiveState);\n }\n if (reactiveState.chartType === 'dendro') {\n settings = composeDendroSettings(settings as DendroSettings, dataByColumns, reactiveState, inputGuide, labelsInfo);\n }\n if (reactiveState.chartType === 'histogram') {\n settings = composeHistogramSettings(settings as HistogramSettings, reactiveState, labelsInfo);\n }\n if (reactiveState.chartType === 'bubble') {\n settings = composeBubbleSettings(settings as BubbleSettings, reactiveState);\n }\n return {\n settings: settings as Settings,\n data: chartData.data.byColumns,\n };\n}\n"],"names":["getChartSizes","chartScale","facetByLength","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","getChartTitle","chartType","optionsState","filterLabelsInfo","axesSettings","selectedFilters","tabByStates","_a","filterStates","_b","state","tabByState","type","selectedSource","selectedFilterValues","value","label","selectedFilterValue","loadDataForPlot","inputGuide","reactiveState","dataStore","fixedOptions","controller","getControllerByType","optionsStateWithFixed","addFixedOptionsToState","err","composeChartSettings","chartData","labelsInfo","settings","dataByColumns","composeDiscreteSettings","composeScatterplotSettings","composeScatterplotUmapSettings","composeHeatmapSettings","composeDendroSettings","composeHistogramSettings","composeBubbleSettings"],"mappings":";;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"composeChartSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeChartSettings.ts"],"sourcesContent":["import type {\n ChartType,\n DemoDataStore,\n InputGuide,\n InputState,\n PlotDataAndSettings,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport {\n getControllerByType,\n} from '@milaboratories/pf-plots';\nimport type {\n DefaultPalettes,\n GraphMakerProps,\n ReactiveState,\n TitlePosition,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { addFixedOptionsToState } from '../addFixedOptionsToState';\nimport type {\n AxesState } from '../../constantsCommon';\nimport { DEFAULT_HEIGHT, DEFAULT_HEIGHT_SMALL, DEFAULT_WIDTH, DEFAULT_WIDTH_SMALL,\n} from '../../constantsCommon';\nimport type {\n BubbleSettings,\n DataByColumns,\n DendroSettings,\n DiscreteSettings,\n HeatmapSettings,\n HistogramSettings,\n ScatterplotSettings,\n ScatterplotUmapSettings,\n Settings,\n} from '@milaboratories/miplots4';\nimport { composeDiscreteSettings } from './composeDiscreteSettings';\nimport { composeScatterplotSettings } from './composeScatterplotSettings';\nimport { composeScatterplotUmapSettings } from './composeScatterplotUmapSettings';\nimport { composeHeatmapSettings } from './composeHeatmapSettings';\nimport { composeDendroSettings } from './composeDendroSettings';\nimport { composeHistogramSettings } from './composeHistogramSettings';\nimport { composeBubbleSettings } from './composeBubbleSettings';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\nimport type { Palette } from '../../components/AesSettings/types';\n\nfunction getChartSizes(chartScale: number, facetByLength = 0) {\n return {\n width: (facetByLength > 0 ? DEFAULT_WIDTH_SMALL : DEFAULT_WIDTH) * (chartScale / 100),\n height: (facetByLength > 0 ? DEFAULT_HEIGHT_SMALL : DEFAULT_HEIGHT) * (chartScale / 100),\n };\n}\n\nfunction getChartTitle(\n chartType: ChartType,\n optionsState: InputState,\n filterLabelsInfo: Record<string, ListOption>,\n axesSettings: AxesState,\n): {\n name: string;\n show: boolean;\n position?: TitlePosition;\n } {\n if (\n chartType !== 'scatterplot'\n && chartType !== 'scatterplot-umap'\n && chartType !== 'discrete'\n && chartType !== 'heatmap'\n && chartType !== 'histogram'\n && chartType !== 'bubble'\n ) {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'hidden') {\n return { name: '', show: false };\n }\n if (axesSettings.title.mode === 'custom') {\n return { name: axesSettings.title.value, show: true, position: axesSettings.title.position };\n }\n if (axesSettings.title.mode === 'auto') {\n const selectedFilters: string[] = [];\n const tabByStates = (optionsState.components?.tabBy.selectorStates ?? []);\n const filterStates = (optionsState.components?.filters.selectorStates ?? []).filter((state) => !tabByStates.some((tabByState) => tabByState.selectedSource === state.selectedSource));\n\n const usedInTitleStates = [\n ...tabByStates,\n ...filterStates,\n ] as SelectorStateFilter[];\n usedInTitleStates.forEach(({ type, selectedSource, selectedFilterValues }) => {\n if ((!type || type === 'equals') && selectedFilterValues && filterLabelsInfo[selectedSource]) {\n const { value, label } = filterLabelsInfo[selectedSource] as { value: unknown; label: string };\n selectedFilters.push(...selectedFilterValues.map((selectedFilterValue) => value === selectedFilterValue ? label : String(selectedFilterValue)));\n }\n });\n const title = selectedFilters.join(', ');\n return { name: title, show: true, position: axesSettings.title.position };\n }\n return { name: '', show: false };\n}\n\nexport async function loadDataForPlot(\n inputGuide: InputGuide<InputState>,\n reactiveState: ReactiveState,\n dataStore: DemoDataStore | null,\n fixedOptions?: GraphMakerProps['fixedOptions'],\n) {\n if (!inputGuide.ready || dataStore === null) {\n return null;\n }\n try {\n const controller = getControllerByType(reactiveState.chartType);\n const optionsStateWithFixed = await addFixedOptionsToState(\n reactiveState.optionsState,\n dataStore,\n fixedOptions,\n );\n return controller.createDataForPlot(\n dataStore,\n optionsStateWithFixed,\n );\n } catch (err) {\n console.warn('Cant build chart data');\n console.warn((err as Error).message);\n return null;\n }\n}\nexport function composeChartSettings(\n chartData: PlotDataAndSettings | null,\n inputGuide: InputGuide<InputState>,\n labelsInfo: UniqueValuesBySourceMap,\n filterLabelsInfo: Record<string, ListOption>,\n reactiveState: ReactiveState,\n defaultPalette: DefaultPalettes,\n): null | { settings: Settings; data: DataByColumns } {\n if (!inputGuide.ready || chartData === null) {\n return null;\n }\n\n let settings = { ...chartData.settings };\n const dataByColumns = chartData.data.byColumns;\n settings.title = getChartTitle(reactiveState.chartType, reactiveState.optionsState, filterLabelsInfo, reactiveState.axesSettings);\n settings.size = getChartSizes(reactiveState.chartScale, reactiveState.optionsState.components?.facetBy.selectorStates.length || 0);\n if (reactiveState.chartType === 'discrete') {\n settings = composeDiscreteSettings(settings as DiscreteSettings, reactiveState, labelsInfo, inputGuide, defaultPalette);\n }\n if (reactiveState.chartType === 'scatterplot') {\n settings = composeScatterplotSettings(settings as ScatterplotSettings, dataByColumns, reactiveState, inputGuide, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'scatterplot-umap') {\n settings = composeScatterplotUmapSettings(settings as ScatterplotUmapSettings, dataByColumns, reactiveState, inputGuide, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'heatmap') {\n settings = composeHeatmapSettings(settings as HeatmapSettings, reactiveState, defaultPalette);\n }\n if (reactiveState.chartType === 'dendro') {\n settings = composeDendroSettings(settings as DendroSettings, dataByColumns, reactiveState, inputGuide, labelsInfo);\n }\n if (reactiveState.chartType === 'histogram') {\n settings = composeHistogramSettings(settings as HistogramSettings, reactiveState, labelsInfo, defaultPalette);\n }\n if (reactiveState.chartType === 'bubble') {\n settings = composeBubbleSettings(settings as BubbleSettings, reactiveState, defaultPalette);\n }\n return {\n settings: settings as Settings,\n data: chartData.data.byColumns,\n };\n}\n"],"names":["getChartSizes","chartScale","facetByLength","DEFAULT_WIDTH_SMALL","DEFAULT_WIDTH","DEFAULT_HEIGHT_SMALL","DEFAULT_HEIGHT","getChartTitle","chartType","optionsState","filterLabelsInfo","axesSettings","selectedFilters","tabByStates","_a","filterStates","_b","state","tabByState","type","selectedSource","selectedFilterValues","value","label","selectedFilterValue","loadDataForPlot","inputGuide","reactiveState","dataStore","fixedOptions","controller","getControllerByType","optionsStateWithFixed","addFixedOptionsToState","err","composeChartSettings","chartData","labelsInfo","defaultPalette","settings","dataByColumns","composeDiscreteSettings","composeScatterplotSettings","composeScatterplotUmapSettings","composeHeatmapSettings","composeDendroSettings","composeHistogramSettings","composeBubbleSettings"],"mappings":"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"}
|
|
@@ -1,44 +1,47 @@
|
|
|
1
|
-
import { getDendroAes as S, DEFAULT_DOT_SHAPE as
|
|
2
|
-
import { DEFAULT_BLACK as F, PALETTE_MAP as p } from "../../constantsAesthetic.js";
|
|
3
|
-
import { DEFAULT_HEIGHT as
|
|
1
|
+
import { getDendroAes as S, DEFAULT_DOT_SHAPE as _, DEFAULT_DOT_RANGE as C } from "../../dataBindAes.js";
|
|
2
|
+
import { DEFAULT_BLACK as F, PALETTE_MAP as p, DEFAULT_CATEGORICAL_PALETTE as h } from "../../constantsAesthetic.js";
|
|
3
|
+
import { DEFAULT_HEIGHT as D, DEFAULT_WIDTH as M, isNumberRange as I } from "../../constantsCommon.js";
|
|
4
4
|
const v = 280;
|
|
5
|
-
function
|
|
6
|
-
var
|
|
7
|
-
o.rootPosition = "left", o.size = { width:
|
|
5
|
+
function R(o, E, r, L, d) {
|
|
6
|
+
var f, m, u, A, y;
|
|
7
|
+
o.rootPosition = "left", o.size = { width: M, height: D };
|
|
8
8
|
const n = r.optionsState.components, t = r.layersSettings.dendro, e = o == null ? void 0 : o.aes;
|
|
9
9
|
if (e.nodeShape && typeof e.nodeShape == "object") {
|
|
10
|
-
const s = (
|
|
10
|
+
const s = (f = n.nodeShape.selectorStates[0]) == null ? void 0 : f.selectedSource, l = S(
|
|
11
11
|
s,
|
|
12
12
|
d,
|
|
13
13
|
r.dataBindAes,
|
|
14
|
-
"dotShape"
|
|
14
|
+
"dotShape",
|
|
15
|
+
h
|
|
15
16
|
);
|
|
16
|
-
Object.keys(l).length ? e.nodeShape.valuesMap = l : e.nodeShape =
|
|
17
|
+
Object.keys(l).length ? e.nodeShape.valuesMap = l : e.nodeShape = _;
|
|
17
18
|
} else typeof t.dotShape == "string" && (e.nodeShape = t.dotShape);
|
|
18
19
|
if (e.nodeColor && typeof e.nodeColor == "object") {
|
|
19
|
-
const s = (
|
|
20
|
+
const s = (m = n.nodeColor.selectorStates[0]) == null ? void 0 : m.selectedSource, l = S(
|
|
20
21
|
s,
|
|
21
22
|
d,
|
|
22
23
|
r.dataBindAes,
|
|
23
|
-
"color"
|
|
24
|
+
"color",
|
|
25
|
+
h
|
|
24
26
|
);
|
|
25
27
|
Object.keys(l).length ? e.nodeColor.valuesMap = l : e.nodeColor = F;
|
|
26
28
|
} else typeof t.dotFill == "string" && (e.nodeColor = t.dotFill);
|
|
27
29
|
if (e.nodeSize && typeof e.nodeSize == "object") {
|
|
28
|
-
const s = (
|
|
30
|
+
const s = (u = n.nodeSize.selectorStates[0]) == null ? void 0 : u.selectedSource;
|
|
29
31
|
let [l, c] = [1 / 0, -1 / 0];
|
|
30
|
-
|
|
32
|
+
E.values[s].forEach((i) => {
|
|
31
33
|
const a = Number(i);
|
|
32
34
|
a < l && (l = a), a > c && (c = a);
|
|
33
|
-
}), e.nodeSize.domain = [l, c], e.nodeSize.range =
|
|
35
|
+
}), e.nodeSize.domain = [l, c], e.nodeSize.range = I(t.dotSize) ? [t.dotSize.min, t.dotSize.max] : [C.min, C.max];
|
|
34
36
|
} else typeof t.dotSize == "number" && (e.nodeSize = t.dotSize);
|
|
35
37
|
if (e.lineColor && typeof e.lineColor == "object") {
|
|
36
|
-
const s = (
|
|
38
|
+
const s = (A = n.lineColor.selectorStates[0]) == null ? void 0 : A.selectedSource;
|
|
37
39
|
e.lineColor.valuesMap = S(
|
|
38
40
|
s,
|
|
39
41
|
d,
|
|
40
42
|
r.dataBindAes,
|
|
41
|
-
"color"
|
|
43
|
+
"color",
|
|
44
|
+
h
|
|
42
45
|
);
|
|
43
46
|
} else typeof t.lineColor == "string" && (e.lineColor = t.lineColor);
|
|
44
47
|
if (n.heatmapForSequence.selectorStates.length > 0 && (o.heatmapSettings = {
|
|
@@ -47,10 +50,10 @@ function x(o, z, r, C, d) {
|
|
|
47
50
|
colorsList: p.bright.colors
|
|
48
51
|
}
|
|
49
52
|
}, o.size.maxCellWidth = 8), n.heatmapAnnotation.selectorStates.length > 0) {
|
|
50
|
-
const s = n.heatmapAnnotation.selectorStates[0].selectedSource, l =
|
|
53
|
+
const s = n.heatmapAnnotation.selectorStates[0].selectedSource, l = L.getSourceInfo(s), c = l.type === "Double" || l.type === "Float" || l.type === "Int" || l.type === "Long" ? "continuous" : "discrete", i = p.bright.colors;
|
|
51
54
|
let a;
|
|
52
|
-
const
|
|
53
|
-
|
|
55
|
+
const T = (y = d[s]) == null ? void 0 : y.list;
|
|
56
|
+
T && (a = T.reduce((b, z, g) => (b[z] = i[g % i.length], b), {})), o.heatmapSettings = {
|
|
54
57
|
valueType: c,
|
|
55
58
|
aes: {
|
|
56
59
|
colorsList: p.viridis.colors,
|
|
@@ -61,6 +64,6 @@ function x(o, z, r, C, d) {
|
|
|
61
64
|
return o.mode = t.mode, o.leavesMode = t.leavesMode, o.showNodesLabels = n.labels.selectorStates.length > 0, o.showLeavesLabels = n.labels.selectorStates.length > 0, t.showTable && n.heatmapAnnotation.selectorStates.length === 0 && n.heatmapForSequence.selectorStates.length === 0 && (o.size.width = v), o.size.scale = r.chartScale / 100, o.legend = { show: r.layersSettings.dendro.showLegend ?? !0 }, o;
|
|
62
65
|
}
|
|
63
66
|
export {
|
|
64
|
-
|
|
67
|
+
R as composeDendroSettings
|
|
65
68
|
};
|
|
66
69
|
//# sourceMappingURL=composeDendroSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeDendroSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeDendroSettings.ts"],"sourcesContent":["import type {\n DendroUIState,\n InputGuide, InputState,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport type { ReactiveState, UniqueValuesBySourceMap } from '../../types';\nimport { DEFAULT_DOT_RANGE, DEFAULT_DOT_SHAPE, getDendroAes } from '../../dataBindAes';\nimport { DEFAULT_BLACK, PALETTE_MAP } from '../../constantsAesthetic';\nimport { DEFAULT_HEIGHT, DEFAULT_WIDTH, isNumberRange } from '../../constantsCommon';\nimport type { DendroSettings } from '@milaboratories/miplots4';\n\nconst NARROW_TREE_WIDTH = 280;\n\nexport function composeDendroSettings(\n settings: DendroSettings,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n reactiveState: ReactiveState,\n inputGuide: InputGuide<InputState>,\n uniqueValuesData: UniqueValuesBySourceMap,\n) {\n settings.rootPosition = 'left';\n settings.size = { width: DEFAULT_WIDTH, height: DEFAULT_HEIGHT };\n\n const optionsState = (reactiveState.optionsState as DendroUIState).components;\n const layerSettings = reactiveState.layersSettings.dendro;\n const aes = settings?.aes as Record<string, Record<string, unknown> | string | number>;\n if (aes.nodeShape && typeof aes.nodeShape === 'object') {\n const selectedStr = optionsState.nodeShape.selectorStates[0]?.selectedSource;\n const valuesMap = getDendroAes(\n selectedStr,\n uniqueValuesData,\n reactiveState.dataBindAes,\n 'dotShape',\n );\n if (Object.keys(valuesMap).length) {\n aes.nodeShape.valuesMap = valuesMap;\n } else {\n aes.nodeShape = DEFAULT_DOT_SHAPE;\n }\n } else if (typeof layerSettings.dotShape === 'string') {\n aes.nodeShape = layerSettings.dotShape as string;\n }\n if (aes.nodeColor && typeof aes.nodeColor === 'object') {\n const selectedStr = optionsState.nodeColor.selectorStates[0]?.selectedSource;\n const valuesMap = getDendroAes(\n selectedStr,\n uniqueValuesData,\n reactiveState.dataBindAes,\n 'color',\n );\n if (Object.keys(valuesMap).length) {\n aes.nodeColor.valuesMap = valuesMap;\n } else {\n aes.nodeColor = DEFAULT_BLACK;\n }\n } else if (typeof layerSettings.dotFill === 'string') {\n aes.nodeColor = layerSettings.dotFill;\n }\n if (aes.nodeSize && typeof aes.nodeSize === 'object') {\n const selectedStr = optionsState.nodeSize.selectorStates[0]?.selectedSource;\n let [min, max] = [Infinity, -Infinity];\n dataByColumns.values[selectedStr].forEach((v) => {\n const value = Number(v);\n if (value < min) {\n min = value;\n }\n if (value > max) {\n max = value;\n }\n });\n\n aes.nodeSize.domain = [min, max];\n aes.nodeSize.range = isNumberRange(layerSettings.dotSize) ? [layerSettings.dotSize.min, layerSettings.dotSize.max] : [DEFAULT_DOT_RANGE.min, DEFAULT_DOT_RANGE.max];\n } else if (typeof layerSettings.dotSize === 'number') {\n aes.nodeSize = layerSettings.dotSize;\n }\n if (aes.lineColor && typeof aes.lineColor === 'object') {\n const selectedStr = optionsState.lineColor.selectorStates[0]?.selectedSource;\n aes.lineColor.valuesMap = getDendroAes(\n selectedStr,\n uniqueValuesData,\n reactiveState.dataBindAes,\n 'color',\n );\n } else if (\n typeof layerSettings.lineColor === 'string'\n ) {\n aes.lineColor = layerSettings.lineColor;\n }\n\n if (optionsState.heatmapForSequence.selectorStates.length > 0) {\n settings.heatmapSettings = {\n valueType: 'stringSource',\n aes: {\n colorsList: PALETTE_MAP['bright'].colors,\n },\n };\n (settings.size as Record<string, number>).maxCellWidth = 8;\n }\n\n if (optionsState.heatmapAnnotation.selectorStates.length > 0) {\n const selectedSource = optionsState.heatmapAnnotation.selectorStates[0].selectedSource;\n const info = inputGuide.getSourceInfo(selectedSource);\n const valueType\n = info.type === 'Double'\n || info.type === 'Float'\n || info.type === 'Int'\n || info.type === 'Long'\n ? 'continuous'\n : 'discrete';\n const colors = PALETTE_MAP['bright'].colors; // TODO: should be in settings\n\n let colorsMap;\n const uniqueValues = uniqueValuesData[selectedSource]?.list;\n if (uniqueValues) {\n colorsMap = uniqueValues.reduce((res: Record<string, string>, value, idx) => {\n res[value] = colors[idx % colors.length];\n return res;\n }, {});\n }\n\n settings.heatmapSettings = {\n valueType,\n aes: {\n colorsList: PALETTE_MAP['viridis'].colors,\n colorsMap: colorsMap,\n },\n };\n }\n\n settings.mode = layerSettings.mode;\n settings.leavesMode = layerSettings.leavesMode;\n settings.showNodesLabels = optionsState.labels.selectorStates.length > 0;\n settings.showLeavesLabels = optionsState.labels.selectorStates.length > 0;\n\n // in other cases (if there is heatmap) tree width is half-width of svg\n if (layerSettings.showTable\n && optionsState.heatmapAnnotation.selectorStates.length === 0\n && optionsState.heatmapForSequence.selectorStates.length === 0\n ) {\n (settings.size as Record<string, number>).width = NARROW_TREE_WIDTH;\n }\n\n (settings.size as Record<string, number>).scale = reactiveState.chartScale / 100;\n settings.legend = { show: reactiveState.layersSettings.dendro.showLegend ?? true };\n return settings;\n}\n"],"names":["NARROW_TREE_WIDTH","composeDendroSettings","settings","dataByColumns","reactiveState","inputGuide","uniqueValuesData","DEFAULT_WIDTH","DEFAULT_HEIGHT","optionsState","layerSettings","aes","selectedStr","_a","valuesMap","getDendroAes","DEFAULT_DOT_SHAPE","_b","DEFAULT_BLACK","_c","min","max","v","value","isNumberRange","DEFAULT_DOT_RANGE","_d","PALETTE_MAP","selectedSource","info","valueType","colors","colorsMap","uniqueValues","_e","res","idx"],"mappings":";;;AAWA,MAAMA,IAAoB;AAEnB,SAASC,EACdC,GACAC,GACAC,GACAC,GACAC,GACA;;AACA,EAAAJ,EAAS,eAAe,QACxBA,EAAS,OAAO,EAAE,OAAOK,GAAe,QAAQC,EAAA;AAEhD,QAAMC,IAAgBL,EAAc,aAA+B,YAC7DM,IAAgBN,EAAc,eAAe,QAC7CO,IAAMT,KAAA,gBAAAA,EAAU;AACtB,MAAIS,EAAI,aAAa,OAAOA,EAAI,aAAc,UAAU;AACtD,UAAMC,KAAcC,IAAAJ,EAAa,UAAU,eAAe,CAAC,MAAvC,gBAAAI,EAA0C,gBACxDC,IAAYC;AAAA,MAChBH;AAAA,MACAN;AAAA,MACAF,EAAc;AAAA,MACd;AAAA,IAAA;AAEF,IAAI,OAAO,
|
|
1
|
+
{"version":3,"file":"composeDendroSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeDendroSettings.ts"],"sourcesContent":["import type {\n DendroUIState,\n InputGuide, InputState,\n PlotDataAndSettings,\n} from '@milaboratories/pf-plots';\nimport type { ReactiveState, UniqueValuesBySourceMap } from '../../types';\nimport { DEFAULT_DOT_RANGE, DEFAULT_DOT_SHAPE, getDendroAes } from '../../dataBindAes';\nimport { DEFAULT_BLACK, DEFAULT_CATEGORICAL_PALETTE, PALETTE_MAP } from '../../constantsAesthetic';\nimport { DEFAULT_HEIGHT, DEFAULT_WIDTH, isNumberRange } from '../../constantsCommon';\nimport type { DendroSettings } from '@milaboratories/miplots4';\n\nconst NARROW_TREE_WIDTH = 280;\n\nexport function composeDendroSettings(\n settings: DendroSettings,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n reactiveState: ReactiveState,\n inputGuide: InputGuide<InputState>,\n uniqueValuesData: UniqueValuesBySourceMap,\n) {\n settings.rootPosition = 'left';\n settings.size = { width: DEFAULT_WIDTH, height: DEFAULT_HEIGHT };\n\n const optionsState = (reactiveState.optionsState as DendroUIState).components;\n const layerSettings = reactiveState.layersSettings.dendro;\n const aes = settings?.aes as Record<string, Record<string, unknown> | string | number>;\n if (aes.nodeShape && typeof aes.nodeShape === 'object') {\n const selectedStr = optionsState.nodeShape.selectorStates[0]?.selectedSource;\n const valuesMap = getDendroAes(\n selectedStr,\n uniqueValuesData,\n reactiveState.dataBindAes,\n 'dotShape',\n DEFAULT_CATEGORICAL_PALETTE,\n );\n if (Object.keys(valuesMap).length) {\n aes.nodeShape.valuesMap = valuesMap;\n } else {\n aes.nodeShape = DEFAULT_DOT_SHAPE;\n }\n } else if (typeof layerSettings.dotShape === 'string') {\n aes.nodeShape = layerSettings.dotShape as string;\n }\n if (aes.nodeColor && typeof aes.nodeColor === 'object') {\n const selectedStr = optionsState.nodeColor.selectorStates[0]?.selectedSource;\n const valuesMap = getDendroAes(\n selectedStr,\n uniqueValuesData,\n reactiveState.dataBindAes,\n 'color',\n DEFAULT_CATEGORICAL_PALETTE,\n );\n if (Object.keys(valuesMap).length) {\n aes.nodeColor.valuesMap = valuesMap;\n } else {\n aes.nodeColor = DEFAULT_BLACK;\n }\n } else if (typeof layerSettings.dotFill === 'string') {\n aes.nodeColor = layerSettings.dotFill;\n }\n if (aes.nodeSize && typeof aes.nodeSize === 'object') {\n const selectedStr = optionsState.nodeSize.selectorStates[0]?.selectedSource;\n let [min, max] = [Infinity, -Infinity];\n dataByColumns.values[selectedStr].forEach((v) => {\n const value = Number(v);\n if (value < min) {\n min = value;\n }\n if (value > max) {\n max = value;\n }\n });\n\n aes.nodeSize.domain = [min, max];\n aes.nodeSize.range = isNumberRange(layerSettings.dotSize) ? [layerSettings.dotSize.min, layerSettings.dotSize.max] : [DEFAULT_DOT_RANGE.min, DEFAULT_DOT_RANGE.max];\n } else if (typeof layerSettings.dotSize === 'number') {\n aes.nodeSize = layerSettings.dotSize;\n }\n if (aes.lineColor && typeof aes.lineColor === 'object') {\n const selectedStr = optionsState.lineColor.selectorStates[0]?.selectedSource;\n aes.lineColor.valuesMap = getDendroAes(\n selectedStr,\n uniqueValuesData,\n reactiveState.dataBindAes,\n 'color',\n DEFAULT_CATEGORICAL_PALETTE,\n );\n } else if (\n typeof layerSettings.lineColor === 'string'\n ) {\n aes.lineColor = layerSettings.lineColor;\n }\n\n if (optionsState.heatmapForSequence.selectorStates.length > 0) {\n settings.heatmapSettings = {\n valueType: 'stringSource',\n aes: {\n colorsList: PALETTE_MAP['bright'].colors,\n },\n };\n (settings.size as Record<string, number>).maxCellWidth = 8;\n }\n\n if (optionsState.heatmapAnnotation.selectorStates.length > 0) {\n const selectedSource = optionsState.heatmapAnnotation.selectorStates[0].selectedSource;\n const info = inputGuide.getSourceInfo(selectedSource);\n const valueType\n = info.type === 'Double'\n || info.type === 'Float'\n || info.type === 'Int'\n || info.type === 'Long'\n ? 'continuous'\n : 'discrete';\n const colors = PALETTE_MAP['bright'].colors; // TODO: should be in settings\n\n let colorsMap;\n const uniqueValues = uniqueValuesData[selectedSource]?.list;\n if (uniqueValues) {\n colorsMap = uniqueValues.reduce((res: Record<string, string>, value, idx) => {\n res[value] = colors[idx % colors.length];\n return res;\n }, {});\n }\n\n settings.heatmapSettings = {\n valueType,\n aes: {\n colorsList: PALETTE_MAP['viridis'].colors,\n colorsMap: colorsMap,\n },\n };\n }\n\n settings.mode = layerSettings.mode;\n settings.leavesMode = layerSettings.leavesMode;\n settings.showNodesLabels = optionsState.labels.selectorStates.length > 0;\n settings.showLeavesLabels = optionsState.labels.selectorStates.length > 0;\n\n // in other cases (if there is heatmap) tree width is half-width of svg\n if (layerSettings.showTable\n && optionsState.heatmapAnnotation.selectorStates.length === 0\n && optionsState.heatmapForSequence.selectorStates.length === 0\n ) {\n (settings.size as Record<string, number>).width = NARROW_TREE_WIDTH;\n }\n\n (settings.size as Record<string, number>).scale = reactiveState.chartScale / 100;\n settings.legend = { show: reactiveState.layersSettings.dendro.showLegend ?? true };\n return settings;\n}\n"],"names":["NARROW_TREE_WIDTH","composeDendroSettings","settings","dataByColumns","reactiveState","inputGuide","uniqueValuesData","DEFAULT_WIDTH","DEFAULT_HEIGHT","optionsState","layerSettings","aes","selectedStr","_a","valuesMap","getDendroAes","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_DOT_SHAPE","_b","DEFAULT_BLACK","_c","min","max","v","value","isNumberRange","DEFAULT_DOT_RANGE","_d","PALETTE_MAP","selectedSource","info","valueType","colors","colorsMap","uniqueValues","_e","res","idx"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DiscreteSettings } from '@milaboratories/miplots4';
|
|
2
2
|
import { InputGuide, InputState } from '@milaboratories/pf-plots';
|
|
3
|
-
import { ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
4
|
-
export declare function composeDiscreteSettings(settings: DiscreteSettings, reactiveState: ReactiveState, uniqueValuesData: UniqueValuesBySourceMap, inputGuide: InputGuide<InputState
|
|
3
|
+
import { DefaultPalettes, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
4
|
+
export declare function composeDiscreteSettings(settings: DiscreteSettings, reactiveState: ReactiveState, uniqueValuesData: UniqueValuesBySourceMap, inputGuide: InputGuide<InputState>, defaultPalette: DefaultPalettes): {
|
|
5
5
|
type: "discrete";
|
|
6
6
|
title: {
|
|
7
7
|
name: string;
|
|
@@ -1,21 +1,21 @@
|
|
|
1
1
|
import { DISCRETE_TEMPLATES_MAP as e } from "../../constantsCommon.js";
|
|
2
|
-
import { getChartSettingsInheritedAes as
|
|
3
|
-
import { getUsedAesInMapping as
|
|
4
|
-
import { getDiscreteLayersSettings as
|
|
5
|
-
import { getAxesDataFromForms as
|
|
2
|
+
import { getChartSettingsInheritedAes as d } from "../../dataBindAes.js";
|
|
3
|
+
import { getUsedAesInMapping as g } from "../getUsedAesInMapping.js";
|
|
4
|
+
import { getDiscreteLayersSettings as f } from "./getLayersDataFromForms.js";
|
|
5
|
+
import { getAxesDataFromForms as x } from "./getAxesDataFromForms.js";
|
|
6
6
|
import "@milaboratories/pf-plots";
|
|
7
7
|
import "@platforma-sdk/model";
|
|
8
8
|
import "vue";
|
|
9
9
|
import "../../constantsAesthetic.js";
|
|
10
|
-
function
|
|
11
|
-
var
|
|
12
|
-
const
|
|
10
|
+
function P(r, o, i, l, m) {
|
|
11
|
+
var y;
|
|
12
|
+
const G = f(
|
|
13
13
|
e[o.template],
|
|
14
14
|
o.layersSettings,
|
|
15
15
|
o.statisticsSettings,
|
|
16
16
|
o.optionsState,
|
|
17
17
|
l
|
|
18
|
-
),
|
|
18
|
+
), s = g(
|
|
19
19
|
o.chartType,
|
|
20
20
|
o.template,
|
|
21
21
|
o.layersSettings,
|
|
@@ -23,41 +23,43 @@ function T(r, o, i, l) {
|
|
|
23
23
|
o.optionsState,
|
|
24
24
|
l
|
|
25
25
|
);
|
|
26
|
-
r.layers =
|
|
26
|
+
r.layers = G;
|
|
27
27
|
const n = o.optionsState.components;
|
|
28
28
|
if (n.primaryGrouping.selectorStates.length && r.primaryGrouping) {
|
|
29
29
|
r.primaryGrouping = { ...r.primaryGrouping }, r.primaryGrouping.order && (r.primaryGrouping.order = [...r.primaryGrouping.order]);
|
|
30
|
-
const p = n.primaryGrouping.selectorStates[0].selectedSource, a =
|
|
30
|
+
const p = n.primaryGrouping.selectorStates[0].selectedSource, a = s[p];
|
|
31
31
|
Object.assign(
|
|
32
32
|
r.primaryGrouping,
|
|
33
|
-
|
|
33
|
+
d(
|
|
34
34
|
i,
|
|
35
35
|
o.dataBindAes[p],
|
|
36
36
|
p,
|
|
37
|
-
a
|
|
37
|
+
a,
|
|
38
|
+
m.categorical
|
|
38
39
|
)
|
|
39
40
|
), r.primaryGrouping.allowNullGroup = o.axesSettings.axisX.allowNullPrimaryGroups, !o.axesSettings.axisX.allowNullPrimaryGroups && r.primaryGrouping.order && (r.primaryGrouping.order = r.primaryGrouping.order.filter((u) => u !== "null"));
|
|
40
41
|
}
|
|
41
42
|
if (n.secondaryGrouping.selectorStates && r.secondaryGrouping) {
|
|
42
43
|
r.secondaryGrouping = { ...r.secondaryGrouping }, r.secondaryGrouping.order && (r.secondaryGrouping.order = [...r.secondaryGrouping.order]);
|
|
43
|
-
const p = n.secondaryGrouping.selectorStates[0].selectedSource, a =
|
|
44
|
+
const p = n.secondaryGrouping.selectorStates[0].selectedSource, a = s[p];
|
|
44
45
|
Object.assign(
|
|
45
46
|
r.secondaryGrouping,
|
|
46
|
-
|
|
47
|
+
d(
|
|
47
48
|
i,
|
|
48
49
|
o.dataBindAes[p],
|
|
49
50
|
p,
|
|
50
|
-
a
|
|
51
|
+
a,
|
|
52
|
+
m.categorical
|
|
51
53
|
)
|
|
52
54
|
), r.secondaryGrouping.allowNullGroup = o.axesSettings.axisX.allowNullSecondaryGroups, !o.axesSettings.axisX.allowNullPrimaryGroups && r.secondaryGrouping.order && (r.secondaryGrouping.order = r.secondaryGrouping.order.filter((u) => u !== "null"));
|
|
53
55
|
}
|
|
54
|
-
const
|
|
56
|
+
const c = r.primaryGrouping ? (y = i[r.primaryGrouping.columnName.value]) == null ? void 0 : y.options : [];
|
|
55
57
|
return Object.assign(
|
|
56
58
|
r,
|
|
57
|
-
|
|
59
|
+
x(o.axesSettings, o.chartType, c)
|
|
58
60
|
), r;
|
|
59
61
|
}
|
|
60
62
|
export {
|
|
61
|
-
|
|
63
|
+
P as composeDiscreteSettings
|
|
62
64
|
};
|
|
63
65
|
//# sourceMappingURL=composeDiscreteSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeDiscreteSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeDiscreteSettings.ts"],"sourcesContent":["import type { DiscreteSettings } from '@milaboratories/miplots4';\nimport type { DiscreteUIState, InputGuide, InputState } from '@milaboratories/pf-plots';\nimport type { DiscreteStatisticsState } from '../../constantsCommon';\nimport { DISCRETE_TEMPLATES_MAP } from '../../constantsCommon';\nimport {\n getChartSettingsInheritedAes,\n} from '../../dataBindAes';\nimport type {\n DiscreteLayersTemplate,\n ReactiveState,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { getUsedAesInMapping } from '../getUsedAesInMapping';\nimport { getAxesDataFromForms, getDiscreteLayersSettings } from '../index';\n\nexport function composeDiscreteSettings(\n settings: DiscreteSettings,\n reactiveState: ReactiveState,\n uniqueValuesData: UniqueValuesBySourceMap,\n inputGuide: InputGuide<InputState>,\n) {\n const layers = getDiscreteLayersSettings(\n DISCRETE_TEMPLATES_MAP[reactiveState.template as DiscreteLayersTemplate],\n reactiveState.layersSettings,\n reactiveState.statisticsSettings as DiscreteStatisticsState,\n reactiveState.optionsState as DiscreteUIState,\n inputGuide,\n ) as DiscreteSettings['layers'];\n const usedAesInMappingsMap = getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide,\n );\n settings.layers = layers;\n\n const inputStateMap = reactiveState.optionsState.components;\n\n if (inputStateMap.primaryGrouping.selectorStates.length && settings.primaryGrouping) {\n settings.primaryGrouping = { ...settings.primaryGrouping };\n if (settings.primaryGrouping.order) {\n settings.primaryGrouping.order = [...settings.primaryGrouping.order];\n }\n const columnName = inputStateMap.primaryGrouping.selectorStates[0].selectedSource;\n const usedAesInMapping = usedAesInMappingsMap[columnName];\n Object.assign(\n settings.primaryGrouping,\n getChartSettingsInheritedAes(\n uniqueValuesData,\n reactiveState.dataBindAes[columnName],\n columnName,\n usedAesInMapping,\n ),\n );\n settings.primaryGrouping.allowNullGroup = reactiveState.axesSettings.axisX.allowNullPrimaryGroups;\n if (!reactiveState.axesSettings.axisX.allowNullPrimaryGroups && settings.primaryGrouping.order) {\n settings.primaryGrouping.order = settings.primaryGrouping.order.filter((v) => v !== 'null');\n }\n }\n if (inputStateMap.secondaryGrouping.selectorStates && settings.secondaryGrouping) {\n settings.secondaryGrouping = { ...settings.secondaryGrouping };\n if (settings.secondaryGrouping.order) {\n settings.secondaryGrouping.order = [...settings.secondaryGrouping.order];\n }\n const columnName = inputStateMap.secondaryGrouping.selectorStates[0].selectedSource;\n const usedAesInMapping = usedAesInMappingsMap[columnName];\n Object.assign(\n settings.secondaryGrouping,\n getChartSettingsInheritedAes(\n uniqueValuesData,\n reactiveState.dataBindAes[columnName],\n columnName,\n usedAesInMapping,\n ),\n );\n settings.secondaryGrouping.allowNullGroup = reactiveState.axesSettings.axisX.allowNullSecondaryGroups;\n if (!reactiveState.axesSettings.axisX.allowNullPrimaryGroups && settings.secondaryGrouping.order) {\n settings.secondaryGrouping.order = settings.secondaryGrouping.order.filter((v) => v !== 'null');\n }\n }\n\n const primaryGroups = settings.primaryGrouping ? uniqueValuesData[settings.primaryGrouping.columnName.value]?.options : [];\n\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType, primaryGroups),\n );\n\n return settings;\n}\n"],"names":["composeDiscreteSettings","settings","reactiveState","uniqueValuesData","inputGuide","layers","getDiscreteLayersSettings","DISCRETE_TEMPLATES_MAP","usedAesInMappingsMap","getUsedAesInMapping","inputStateMap","columnName","usedAesInMapping","getChartSettingsInheritedAes","v","primaryGroups","_a","getAxesDataFromForms"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"composeDiscreteSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeDiscreteSettings.ts"],"sourcesContent":["import type { DiscreteSettings } from '@milaboratories/miplots4';\nimport type { DiscreteUIState, InputGuide, InputState } from '@milaboratories/pf-plots';\nimport type { DiscreteStatisticsState } from '../../constantsCommon';\nimport { DISCRETE_TEMPLATES_MAP } from '../../constantsCommon';\nimport {\n getChartSettingsInheritedAes,\n} from '../../dataBindAes';\nimport type {\n DefaultPalettes,\n DiscreteLayersTemplate,\n ReactiveState,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { getUsedAesInMapping } from '../getUsedAesInMapping';\nimport { getAxesDataFromForms, getDiscreteLayersSettings } from '../index';\n\nexport function composeDiscreteSettings(\n settings: DiscreteSettings,\n reactiveState: ReactiveState,\n uniqueValuesData: UniqueValuesBySourceMap,\n inputGuide: InputGuide<InputState>,\n defaultPalette: DefaultPalettes,\n) {\n const layers = getDiscreteLayersSettings(\n DISCRETE_TEMPLATES_MAP[reactiveState.template as DiscreteLayersTemplate],\n reactiveState.layersSettings,\n reactiveState.statisticsSettings as DiscreteStatisticsState,\n reactiveState.optionsState as DiscreteUIState,\n inputGuide,\n ) as DiscreteSettings['layers'];\n const usedAesInMappingsMap = getUsedAesInMapping(\n reactiveState.chartType,\n reactiveState.template,\n reactiveState.layersSettings,\n reactiveState.statisticsSettings,\n reactiveState.optionsState,\n inputGuide,\n );\n settings.layers = layers;\n\n const inputStateMap = reactiveState.optionsState.components;\n\n if (inputStateMap.primaryGrouping.selectorStates.length && settings.primaryGrouping) {\n settings.primaryGrouping = { ...settings.primaryGrouping };\n if (settings.primaryGrouping.order) {\n settings.primaryGrouping.order = [...settings.primaryGrouping.order];\n }\n const columnName = inputStateMap.primaryGrouping.selectorStates[0].selectedSource;\n const usedAesInMapping = usedAesInMappingsMap[columnName];\n Object.assign(\n settings.primaryGrouping,\n getChartSettingsInheritedAes(\n uniqueValuesData,\n reactiveState.dataBindAes[columnName],\n columnName,\n usedAesInMapping,\n defaultPalette.categorical,\n ),\n );\n settings.primaryGrouping.allowNullGroup = reactiveState.axesSettings.axisX.allowNullPrimaryGroups;\n if (!reactiveState.axesSettings.axisX.allowNullPrimaryGroups && settings.primaryGrouping.order) {\n settings.primaryGrouping.order = settings.primaryGrouping.order.filter((v) => v !== 'null');\n }\n }\n if (inputStateMap.secondaryGrouping.selectorStates && settings.secondaryGrouping) {\n settings.secondaryGrouping = { ...settings.secondaryGrouping };\n if (settings.secondaryGrouping.order) {\n settings.secondaryGrouping.order = [...settings.secondaryGrouping.order];\n }\n const columnName = inputStateMap.secondaryGrouping.selectorStates[0].selectedSource;\n const usedAesInMapping = usedAesInMappingsMap[columnName];\n Object.assign(\n settings.secondaryGrouping,\n getChartSettingsInheritedAes(\n uniqueValuesData,\n reactiveState.dataBindAes[columnName],\n columnName,\n usedAesInMapping,\n defaultPalette.categorical,\n ),\n );\n settings.secondaryGrouping.allowNullGroup = reactiveState.axesSettings.axisX.allowNullSecondaryGroups;\n if (!reactiveState.axesSettings.axisX.allowNullPrimaryGroups && settings.secondaryGrouping.order) {\n settings.secondaryGrouping.order = settings.secondaryGrouping.order.filter((v) => v !== 'null');\n }\n }\n\n const primaryGroups = settings.primaryGrouping ? uniqueValuesData[settings.primaryGrouping.columnName.value]?.options : [];\n\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType, primaryGroups),\n );\n\n return settings;\n}\n"],"names":["composeDiscreteSettings","settings","reactiveState","uniqueValuesData","inputGuide","defaultPalette","layers","getDiscreteLayersSettings","DISCRETE_TEMPLATES_MAP","usedAesInMappingsMap","getUsedAesInMapping","inputStateMap","columnName","usedAesInMapping","getChartSettingsInheritedAes","v","primaryGroups","_a","getAxesDataFromForms"],"mappings":";;;;;;;;;AAgBO,SAASA,EACdC,GACAC,GACAC,GACAC,GACAC,GACA;;AACA,QAAMC,IAASC;AAAA,IACbC,EAAuBN,EAAc,QAAkC;AAAA,IACvEA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdE;AAAA,EAAA,GAEIK,IAAuBC;AAAA,IAC3BR,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdE;AAAA,EAAA;AAEF,EAAAH,EAAS,SAASK;AAElB,QAAMK,IAAgBT,EAAc,aAAa;AAEjD,MAAIS,EAAc,gBAAgB,eAAe,UAAUV,EAAS,iBAAiB;AACnF,IAAAA,EAAS,kBAAkB,EAAE,GAAGA,EAAS,gBAAA,GACrCA,EAAS,gBAAgB,UAC3BA,EAAS,gBAAgB,QAAQ,CAAC,GAAGA,EAAS,gBAAgB,KAAK;AAErE,UAAMW,IAAaD,EAAc,gBAAgB,eAAe,CAAC,EAAE,gBAC7DE,IAAmBJ,EAAqBG,CAAU;AACxD,WAAO;AAAA,MACLX,EAAS;AAAA,MACTa;AAAA,QACEX;AAAA,QACAD,EAAc,YAAYU,CAAU;AAAA,QACpCA;AAAA,QACAC;AAAA,QACAR,EAAe;AAAA,MAAA;AAAA,IACjB,GAEFJ,EAAS,gBAAgB,iBAAiBC,EAAc,aAAa,MAAM,wBACvE,CAACA,EAAc,aAAa,MAAM,0BAA0BD,EAAS,gBAAgB,UACvFA,EAAS,gBAAgB,QAAQA,EAAS,gBAAgB,MAAM,OAAO,CAACc,MAAMA,MAAM,MAAM;AAAA,EAE9F;AACA,MAAIJ,EAAc,kBAAkB,kBAAkBV,EAAS,mBAAmB;AAChF,IAAAA,EAAS,oBAAoB,EAAE,GAAGA,EAAS,kBAAA,GACvCA,EAAS,kBAAkB,UAC7BA,EAAS,kBAAkB,QAAQ,CAAC,GAAGA,EAAS,kBAAkB,KAAK;AAEzE,UAAMW,IAAaD,EAAc,kBAAkB,eAAe,CAAC,EAAE,gBAC/DE,IAAmBJ,EAAqBG,CAAU;AACxD,WAAO;AAAA,MACLX,EAAS;AAAA,MACTa;AAAA,QACEX;AAAA,QACAD,EAAc,YAAYU,CAAU;AAAA,QACpCA;AAAA,QACAC;AAAA,QACAR,EAAe;AAAA,MAAA;AAAA,IACjB,GAEFJ,EAAS,kBAAkB,iBAAiBC,EAAc,aAAa,MAAM,0BACzE,CAACA,EAAc,aAAa,MAAM,0BAA0BD,EAAS,kBAAkB,UACzFA,EAAS,kBAAkB,QAAQA,EAAS,kBAAkB,MAAM,OAAO,CAACc,MAAMA,MAAM,MAAM;AAAA,EAElG;AAEA,QAAMC,IAAgBf,EAAS,mBAAkBgB,IAAAd,EAAiBF,EAAS,gBAAgB,WAAW,KAAK,MAA1D,gBAAAgB,EAA6D,UAAU,CAAA;AAExH,gBAAO;AAAA,IACLhB;AAAA,IACAiB,EAAqBhB,EAAc,cAAcA,EAAc,WAAWc,CAAa;AAAA,EAAA,GAGlFf;AACT;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HeatmapSettings } from '@milaboratories/miplots4';
|
|
2
|
-
import { ReactiveState } from '../../types';
|
|
3
|
-
export declare function composeHeatmapSettings(settings: HeatmapSettings, reactiveState: ReactiveState): {
|
|
2
|
+
import { DefaultPalettes, ReactiveState } from '../../types';
|
|
3
|
+
export declare function composeHeatmapSettings(settings: HeatmapSettings, reactiveState: ReactiveState, defaultPalette: DefaultPalettes): {
|
|
4
4
|
type: "heatmap";
|
|
5
5
|
title: {
|
|
6
6
|
name: string;
|