@milaboratories/graph-maker 1.1.192 → 1.1.193
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/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 +35 -35
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.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/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 +1 -1
|
@@ -1,50 +1,50 @@
|
|
|
1
|
-
import { PALETTE_MAP as
|
|
1
|
+
import { PALETTE_MAP as s } from "../../constantsAesthetic.js";
|
|
2
2
|
import "d3-scale";
|
|
3
3
|
import "vue";
|
|
4
|
-
import { getAxesDataFromForms as
|
|
4
|
+
import { getAxesDataFromForms as f } from "./getAxesDataFromForms.js";
|
|
5
5
|
import "@milaboratories/pf-plots";
|
|
6
6
|
import "@platforma-sdk/model";
|
|
7
|
-
function
|
|
8
|
-
var
|
|
9
|
-
const
|
|
7
|
+
function X(o, l, a) {
|
|
8
|
+
var d, u, p;
|
|
9
|
+
const n = {}, r = (d = l.dataBindAes[o.valueColumn.value]) == null ? void 0 : d.palette;
|
|
10
10
|
if ((o == null ? void 0 : o.valueType) !== "discrete") {
|
|
11
11
|
if (l.template === "heatmapClustered") {
|
|
12
|
-
const
|
|
13
|
-
|
|
12
|
+
const i = l.layersSettings.heatmapClustered;
|
|
13
|
+
i.disableClusteringX || (o.dendrogramX = {
|
|
14
14
|
fillNA: 0,
|
|
15
15
|
showNodes: !1,
|
|
16
|
-
hidden: !
|
|
17
|
-
}),
|
|
16
|
+
hidden: !i.dendrogramX
|
|
17
|
+
}), i.disableClusteringY || (o.dendrogramY = {
|
|
18
18
|
fillNA: 0,
|
|
19
19
|
position: "right",
|
|
20
20
|
showNodes: !1,
|
|
21
|
-
hidden: !
|
|
21
|
+
hidden: !i.dendrogramY
|
|
22
22
|
});
|
|
23
23
|
}
|
|
24
|
-
|
|
24
|
+
n.colorsList = s[r ?? a.continuous].colors;
|
|
25
25
|
} else
|
|
26
|
-
|
|
27
|
-
o.aes =
|
|
28
|
-
var
|
|
29
|
-
const
|
|
30
|
-
|
|
26
|
+
n.colorsList = s[r ?? "bright"].colors;
|
|
27
|
+
o.aes = n, (u = o.annotations) == null || u.forEach((i) => {
|
|
28
|
+
var h;
|
|
29
|
+
const x = i.valueColumn.value, c = (h = l.dataBindAes[x]) == null ? void 0 : h.palette;
|
|
30
|
+
i.colors = s[c ?? (i.type === "discrete" ? a.categorical : a.continuous)].colors;
|
|
31
31
|
}), Object.assign(
|
|
32
32
|
o,
|
|
33
|
-
|
|
33
|
+
f(l.axesSettings, l.chartType)
|
|
34
34
|
), l.axesSettings.axisX.cellSize !== null && o.size && (o.size.cellWidth = l.axesSettings.axisX.cellSize * (l.chartScale / 100)), l.axesSettings.axisY.cellSize !== null && o.size && (o.size.cellHeight = l.axesSettings.axisY.cellSize * (l.chartScale / 100)), l.template === "heatmapClustered" && (o == null ? void 0 : o.valueType) !== "discrete" && (o.facetSettings.sharedX = !1, o.facetSettings.sharedY = !1);
|
|
35
|
-
const
|
|
36
|
-
return o.NAValueAs =
|
|
37
|
-
method:
|
|
38
|
-
direction:
|
|
39
|
-
}), o.valueType === "continuous" && (
|
|
40
|
-
x:
|
|
41
|
-
y:
|
|
42
|
-
method:
|
|
43
|
-
}), (p = o.annotations) == null || p.forEach((
|
|
44
|
-
|
|
35
|
+
const m = l.template, e = l.layersSettings[m];
|
|
36
|
+
return o.NAValueAs = e.NAValueAs, o.valueType === "continuous" && e.normalizationDirection && (o.normalization = {
|
|
37
|
+
method: e.normalizationMethod,
|
|
38
|
+
direction: e.normalizationDirection
|
|
39
|
+
}), o.valueType === "continuous" && (e.aggregateByX || e.aggregateByY) && (o.aggregation = {
|
|
40
|
+
x: e.aggregateByX && o.xGroupBy && o.xGroupBy.length > 0,
|
|
41
|
+
y: e.aggregateByY && o.yGroupBy && o.yGroupBy.length > 0,
|
|
42
|
+
method: e.aggregationMethod
|
|
43
|
+
}), (p = o.annotations) == null || p.forEach((i) => {
|
|
44
|
+
i.axis === "x" ? (i.titlePosition = l.axesSettings.axisX.annotationTitlePosition === "hidden" ? void 0 : l.axesSettings.axisX.annotationTitlePosition, i.showTitle = l.axesSettings.axisX.annotationTitlePosition !== "hidden") : (i.titlePosition = l.axesSettings.axisY.annotationTitlePosition === "hidden" ? void 0 : l.axesSettings.axisY.annotationTitlePosition, i.showTitle = l.axesSettings.axisY.annotationTitlePosition !== "hidden");
|
|
45
45
|
}), l.axesSettings.other.canvasRenderMode && (o.cellsRenderingMode = "canvas"), o;
|
|
46
46
|
}
|
|
47
47
|
export {
|
|
48
|
-
|
|
48
|
+
X as composeHeatmapSettings
|
|
49
49
|
};
|
|
50
50
|
//# sourceMappingURL=composeHeatmapSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeHeatmapSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeHeatmapSettings.ts"],"sourcesContent":["import type { HeatmapSettings } from '@milaboratories/miplots4';\nimport {
|
|
1
|
+
{"version":3,"file":"composeHeatmapSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeHeatmapSettings.ts"],"sourcesContent":["import type { HeatmapSettings } from '@milaboratories/miplots4';\nimport { PALETTE_MAP } from '../../constantsAesthetic';\nimport type { DefaultPalettes, HeatmapLayerTemplate, ReactiveState } from '../../types';\nimport { getAxesDataFromForms } from '../index';\n\nexport function composeHeatmapSettings(\n settings: HeatmapSettings,\n reactiveState: ReactiveState,\n defaultPalette: DefaultPalettes,\n) {\n const aes = {} as Record<string, unknown>;\n const palette = reactiveState.dataBindAes[settings.valueColumn.value]?.palette;\n if (settings?.valueType !== 'discrete') {\n if (reactiveState.template === 'heatmapClustered') {\n const layer = reactiveState.layersSettings.heatmapClustered;\n if (!layer.disableClusteringX) {\n settings.dendrogramX = {\n fillNA: 0,\n showNodes: false,\n hidden: !layer.dendrogramX,\n };\n }\n if (!layer.disableClusteringY) {\n settings.dendrogramY = {\n fillNA: 0,\n position: 'right',\n showNodes: false,\n hidden: !layer.dendrogramY,\n };\n }\n }\n aes.colorsList = PALETTE_MAP[palette ?? defaultPalette.continuous].colors;\n } else {\n aes.colorsList = PALETTE_MAP[palette ?? 'bright'].colors;\n }\n\n settings.aes = aes;\n\n settings.annotations?.forEach((annotationSchema) => {\n const source = annotationSchema.valueColumn.value;\n const palette = reactiveState.dataBindAes[source]?.palette;\n\n annotationSchema.colors = PALETTE_MAP[palette ?? (annotationSchema.type === 'discrete' ? defaultPalette.categorical : defaultPalette.continuous)].colors;\n });\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType),\n );\n\n if (reactiveState.axesSettings.axisX.cellSize !== null && settings.size) {\n settings.size.cellWidth = reactiveState.axesSettings.axisX.cellSize * (reactiveState.chartScale / 100);\n }\n if (reactiveState.axesSettings.axisY.cellSize !== null && settings.size) {\n settings.size.cellHeight = reactiveState.axesSettings.axisY.cellSize * (reactiveState.chartScale / 100);\n }\n if (reactiveState.template === 'heatmapClustered' && settings?.valueType !== 'discrete') {\n (settings.facetSettings as HeatmapSettings['facetSettings'])!.sharedX = false;\n (settings.facetSettings as HeatmapSettings['facetSettings'])!.sharedY = false;\n }\n\n const template = reactiveState.template as HeatmapLayerTemplate;\n const layerSettings = reactiveState.layersSettings[template];\n\n settings.NAValueAs = layerSettings.NAValueAs;\n if (settings.valueType === 'continuous' && layerSettings.normalizationDirection) {\n settings.normalization = {\n method: layerSettings.normalizationMethod,\n direction: layerSettings.normalizationDirection,\n };\n }\n\n if (settings.valueType === 'continuous' && (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 settings.annotations?.forEach((annotation) => {\n if (annotation.axis === 'x') {\n annotation.titlePosition = reactiveState.axesSettings.axisX.annotationTitlePosition === 'hidden' ? undefined : reactiveState.axesSettings.axisX.annotationTitlePosition;\n annotation.showTitle = reactiveState.axesSettings.axisX.annotationTitlePosition !== 'hidden';\n } else {\n annotation.titlePosition = reactiveState.axesSettings.axisY.annotationTitlePosition === 'hidden' ? undefined : reactiveState.axesSettings.axisY.annotationTitlePosition;\n annotation.showTitle = reactiveState.axesSettings.axisY.annotationTitlePosition !== 'hidden';\n }\n });\n\n if (reactiveState.axesSettings.other.canvasRenderMode) {\n settings.cellsRenderingMode = 'canvas';\n }\n\n return settings;\n}\n"],"names":["composeHeatmapSettings","settings","reactiveState","defaultPalette","aes","palette","_a","layer","PALETTE_MAP","_b","annotationSchema","source","getAxesDataFromForms","template","layerSettings","_c","annotation"],"mappings":";;;;;;AAKO,SAASA,EACdC,GACAC,GACAC,GACA;;AACA,QAAMC,IAAM,CAAA,GACNC,KAAUC,IAAAJ,EAAc,YAAYD,EAAS,YAAY,KAAK,MAApD,gBAAAK,EAAuD;AACvE,OAAIL,KAAA,gBAAAA,EAAU,eAAc,YAAY;AACtC,QAAIC,EAAc,aAAa,oBAAoB;AACjD,YAAMK,IAAQL,EAAc,eAAe;AAC3C,MAAKK,EAAM,uBACTN,EAAS,cAAc;AAAA,QACrB,QAAQ;AAAA,QACR,WAAW;AAAA,QACX,QAAQ,CAACM,EAAM;AAAA,MAAA,IAGdA,EAAM,uBACTN,EAAS,cAAc;AAAA,QACrB,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,WAAW;AAAA,QACX,QAAQ,CAACM,EAAM;AAAA,MAAA;AAAA,IAGrB;AACA,IAAAH,EAAI,aAAaI,EAAYH,KAAWF,EAAe,UAAU,EAAE;AAAA,EACrE;AACE,IAAAC,EAAI,aAAaI,EAAYH,KAAW,QAAQ,EAAE;AAGpD,EAAAJ,EAAS,MAAMG,IAEfK,IAAAR,EAAS,gBAAT,QAAAQ,EAAsB,QAAQ,CAACC,MAAqB;;AAClD,UAAMC,IAASD,EAAiB,YAAY,OACtCL,KAAUC,IAAAJ,EAAc,YAAYS,CAAM,MAAhC,gBAAAL,EAAmC;AAEnD,IAAAI,EAAiB,SAASF,EAAYH,MAAYK,EAAiB,SAAS,aAAaP,EAAe,cAAcA,EAAe,WAAW,EAAE;AAAA,EACpJ,IACA,OAAO;AAAA,IACLF;AAAA,IACAW,EAAqBV,EAAc,cAAcA,EAAc,SAAS;AAAA,EAAA,GAGtEA,EAAc,aAAa,MAAM,aAAa,QAAQD,EAAS,SACjEA,EAAS,KAAK,YAAYC,EAAc,aAAa,MAAM,YAAYA,EAAc,aAAa,OAEhGA,EAAc,aAAa,MAAM,aAAa,QAAQD,EAAS,SACjEA,EAAS,KAAK,aAAaC,EAAc,aAAa,MAAM,YAAYA,EAAc,aAAa,OAEjGA,EAAc,aAAa,uBAAsBD,KAAA,gBAAAA,EAAU,eAAc,eAC1EA,EAAS,cAAoD,UAAU,IACvEA,EAAS,cAAoD,UAAU;AAG1E,QAAMY,IAAWX,EAAc,UACzBY,IAAgBZ,EAAc,eAAeW,CAAQ;AAE3D,SAAAZ,EAAS,YAAYa,EAAc,WAC/Bb,EAAS,cAAc,gBAAgBa,EAAc,2BACvDb,EAAS,gBAAgB;AAAA,IACvB,QAAQa,EAAc;AAAA,IACtB,WAAWA,EAAc;AAAA,EAAA,IAIzBb,EAAS,cAAc,iBAAiBa,EAAc,gBAAgBA,EAAc,kBACtFb,EAAS,cAAc;AAAA,IACrB,GAAGa,EAAc,gBAAgBb,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,GAAGa,EAAc,gBAAgBb,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,QAAQa,EAAc;AAAA,EAAA,KAI1BC,IAAAd,EAAS,gBAAT,QAAAc,EAAsB,QAAQ,CAACC,MAAe;AAC5C,IAAIA,EAAW,SAAS,OACtBA,EAAW,gBAAgBd,EAAc,aAAa,MAAM,4BAA4B,WAAW,SAAYA,EAAc,aAAa,MAAM,yBAChJc,EAAW,YAAYd,EAAc,aAAa,MAAM,4BAA4B,aAEpFc,EAAW,gBAAgBd,EAAc,aAAa,MAAM,4BAA4B,WAAW,SAAYA,EAAc,aAAa,MAAM,yBAChJc,EAAW,YAAYd,EAAc,aAAa,MAAM,4BAA4B;AAAA,EAExF,IAEIA,EAAc,aAAa,MAAM,qBACnCD,EAAS,qBAAqB,WAGzBA;AACT;"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { HistogramSettings } from '@milaboratories/miplots4';
|
|
2
|
-
import { ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
3
|
-
export declare function composeHistogramSettings(settings: HistogramSettings, reactiveState: ReactiveState, uniqueValuesData: UniqueValuesBySourceMap): {
|
|
2
|
+
import { DefaultPalettes, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
3
|
+
export declare function composeHistogramSettings(settings: HistogramSettings, reactiveState: ReactiveState, uniqueValuesData: UniqueValuesBySourceMap, defaultPalette: DefaultPalettes): {
|
|
4
4
|
type: "histogram";
|
|
5
5
|
title: {
|
|
6
6
|
name: string;
|
|
@@ -1,25 +1,26 @@
|
|
|
1
|
-
import { HISTOGRAM_TEMPLATES_MAP as
|
|
2
|
-
import { getHistogramAes as
|
|
1
|
+
import { HISTOGRAM_TEMPLATES_MAP as g } from "../../constantsCommon.js";
|
|
2
|
+
import { getHistogramAes as m } from "../../dataBindAes.js";
|
|
3
3
|
import "../../constantsAesthetic.js";
|
|
4
|
-
import { getAxesDataFromForms as
|
|
4
|
+
import { getAxesDataFromForms as a } from "./getAxesDataFromForms.js";
|
|
5
5
|
import "@milaboratories/pf-plots";
|
|
6
6
|
import "@platforma-sdk/model";
|
|
7
7
|
import "vue";
|
|
8
8
|
function u(e, o, s) {
|
|
9
9
|
return o.length ? { type: "grouping", value: o[0] } : typeof e == "object" ? s : e;
|
|
10
10
|
}
|
|
11
|
-
function
|
|
11
|
+
function x(e, o, s, c) {
|
|
12
12
|
const n = o.optionsState.components.grouping;
|
|
13
13
|
if (n.selectorStates.length) {
|
|
14
|
-
const t = n.selectorStates[0].selectedSource, { inheritedAes: r, order: i } =
|
|
14
|
+
const t = n.selectorStates[0].selectedSource, { inheritedAes: r, order: i } = m(
|
|
15
15
|
t,
|
|
16
16
|
s,
|
|
17
|
-
o.dataBindAes
|
|
17
|
+
o.dataBindAes,
|
|
18
|
+
c.categorical
|
|
18
19
|
);
|
|
19
20
|
Object.assign(e, { inheritedAes: { [t]: r }, groupingOrder: i });
|
|
20
21
|
}
|
|
21
|
-
const
|
|
22
|
-
return
|
|
22
|
+
const l = g[o.template], p = [];
|
|
23
|
+
return l.forEach((t) => {
|
|
23
24
|
if (t === "bins") {
|
|
24
25
|
const r = o.layersSettings[t];
|
|
25
26
|
p.push({
|
|
@@ -32,10 +33,10 @@ function b(e, o, s) {
|
|
|
32
33
|
}
|
|
33
34
|
}), e.layers = p, Object.assign(
|
|
34
35
|
e,
|
|
35
|
-
|
|
36
|
+
a(o.axesSettings, o.chartType)
|
|
36
37
|
), e.binsCount = o.axesSettings.other.binsCount, e;
|
|
37
38
|
}
|
|
38
39
|
export {
|
|
39
|
-
|
|
40
|
+
x as composeHistogramSettings
|
|
40
41
|
};
|
|
41
42
|
//# sourceMappingURL=composeHistogramSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeHistogramSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeHistogramSettings.ts"],"sourcesContent":["import type { HistogramSettings } from '@milaboratories/miplots4';\nimport type { MappingLink } from '../../constantsCommon';\nimport { HISTOGRAM_TEMPLATES_MAP } from '../../constantsCommon';\nimport {\n getHistogramAes,\n} from '../../dataBindAes';\nimport type {\n HistogramLayerTemplate,\n ReactiveState,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport type { ChartLayerSettings } from '../index';\nimport { getAxesDataFromForms } from '../index';\n\nfunction useDefault<T extends string>(value: T | MappingLink | null, columns: string[], defaultValue: T): T | {\n type: 'grouping';\n value: string;\n} {\n if (columns.length) {\n return { type: 'grouping', value: columns[0] } as { type: 'grouping'; value: string };\n }\n return typeof value === 'object' ? defaultValue : value as T;\n}\nexport function composeHistogramSettings(\n settings: HistogramSettings,\n reactiveState: ReactiveState,\n uniqueValuesData: UniqueValuesBySourceMap,\n) {\n const grouping = reactiveState.optionsState.components.grouping;\n if (grouping.selectorStates.length) {\n const selectedSource = grouping.selectorStates[0].selectedSource;\n const { inheritedAes, order } = getHistogramAes(\n selectedSource,\n uniqueValuesData,\n reactiveState.dataBindAes,\n );\n Object.assign(settings, { inheritedAes: { [selectedSource]: inheritedAes }, groupingOrder: order });\n }\n\n const layersKeys = HISTOGRAM_TEMPLATES_MAP[reactiveState.template as HistogramLayerTemplate];\n const layers: ChartLayerSettings[] = [];\n layersKeys.forEach((layer) => {\n if (layer === 'bins') {\n const layerSettings = reactiveState.layersSettings[layer];\n layers.push({\n type: 'bins',\n aes: {\n opacity: layerSettings.opacity,\n fillColor: useDefault(layerSettings.fillColor, grouping.selectorStates.map((v) => v.selectedSource), 'white'),\n },\n });\n }\n });\n settings.layers = layers as HistogramSettings['layers'];\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType),\n );\n settings.binsCount = reactiveState.axesSettings.other.binsCount;\n\n return settings;\n}\n"],"names":["useDefault","value","columns","defaultValue","composeHistogramSettings","settings","reactiveState","uniqueValuesData","grouping","selectedSource","inheritedAes","order","getHistogramAes","layersKeys","HISTOGRAM_TEMPLATES_MAP","layers","layer","layerSettings","v","getAxesDataFromForms"],"mappings":";;;;;;;
|
|
1
|
+
{"version":3,"file":"composeHistogramSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeHistogramSettings.ts"],"sourcesContent":["import type { HistogramSettings } from '@milaboratories/miplots4';\nimport type { MappingLink } from '../../constantsCommon';\nimport { HISTOGRAM_TEMPLATES_MAP } from '../../constantsCommon';\nimport {\n getHistogramAes,\n} from '../../dataBindAes';\nimport type {\n DefaultPalettes,\n HistogramLayerTemplate,\n ReactiveState,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport type { ChartLayerSettings } from '../index';\nimport { getAxesDataFromForms } from '../index';\n\nfunction useDefault<T extends string>(value: T | MappingLink | null, columns: string[], defaultValue: T): T | {\n type: 'grouping';\n value: string;\n} {\n if (columns.length) {\n return { type: 'grouping', value: columns[0] } as { type: 'grouping'; value: string };\n }\n return typeof value === 'object' ? defaultValue : value as T;\n}\nexport function composeHistogramSettings(\n settings: HistogramSettings,\n reactiveState: ReactiveState,\n uniqueValuesData: UniqueValuesBySourceMap,\n defaultPalette: DefaultPalettes,\n) {\n const grouping = reactiveState.optionsState.components.grouping;\n if (grouping.selectorStates.length) {\n const selectedSource = grouping.selectorStates[0].selectedSource;\n const { inheritedAes, order } = getHistogramAes(\n selectedSource,\n uniqueValuesData,\n reactiveState.dataBindAes,\n defaultPalette.categorical,\n );\n Object.assign(settings, { inheritedAes: { [selectedSource]: inheritedAes }, groupingOrder: order });\n }\n\n const layersKeys = HISTOGRAM_TEMPLATES_MAP[reactiveState.template as HistogramLayerTemplate];\n const layers: ChartLayerSettings[] = [];\n layersKeys.forEach((layer) => {\n if (layer === 'bins') {\n const layerSettings = reactiveState.layersSettings[layer];\n layers.push({\n type: 'bins',\n aes: {\n opacity: layerSettings.opacity,\n fillColor: useDefault(layerSettings.fillColor, grouping.selectorStates.map((v) => v.selectedSource), 'white'),\n },\n });\n }\n });\n settings.layers = layers as HistogramSettings['layers'];\n Object.assign(\n settings,\n getAxesDataFromForms(reactiveState.axesSettings, reactiveState.chartType),\n );\n settings.binsCount = reactiveState.axesSettings.other.binsCount;\n\n return settings;\n}\n"],"names":["useDefault","value","columns","defaultValue","composeHistogramSettings","settings","reactiveState","uniqueValuesData","defaultPalette","grouping","selectedSource","inheritedAes","order","getHistogramAes","layersKeys","HISTOGRAM_TEMPLATES_MAP","layers","layer","layerSettings","v","getAxesDataFromForms"],"mappings":";;;;;;;AAeA,SAASA,EAA6BC,GAA+BC,GAAmBC,GAGtF;AACA,SAAID,EAAQ,SACH,EAAE,MAAM,YAAY,OAAOA,EAAQ,CAAC,EAAA,IAEtC,OAAOD,KAAU,WAAWE,IAAeF;AACpD;AACO,SAASG,EACdC,GACAC,GACAC,GACAC,GACA;AACA,QAAMC,IAAWH,EAAc,aAAa,WAAW;AACvD,MAAIG,EAAS,eAAe,QAAQ;AAClC,UAAMC,IAAiBD,EAAS,eAAe,CAAC,EAAE,gBAC5C,EAAE,cAAAE,GAAc,OAAAC,EAAA,IAAUC;AAAA,MAC9BH;AAAA,MACAH;AAAA,MACAD,EAAc;AAAA,MACdE,EAAe;AAAA,IAAA;AAEjB,WAAO,OAAOH,GAAU,EAAE,cAAc,EAAE,CAACK,CAAc,GAAGC,EAAA,GAAgB,eAAeC,GAAO;AAAA,EACpG;AAEA,QAAME,IAAaC,EAAwBT,EAAc,QAAkC,GACrFU,IAA+B,CAAA;AACrC,SAAAF,EAAW,QAAQ,CAACG,MAAU;AAC5B,QAAIA,MAAU,QAAQ;AACpB,YAAMC,IAAgBZ,EAAc,eAAeW,CAAK;AACxD,MAAAD,EAAO,KAAK;AAAA,QACV,MAAM;AAAA,QACN,KAAK;AAAA,UACH,SAASE,EAAc;AAAA,UACvB,WAAWlB,EAAWkB,EAAc,WAAWT,EAAS,eAAe,IAAI,CAACU,MAAMA,EAAE,cAAc,GAAG,OAAO;AAAA,QAAA;AAAA,MAC9G,CACD;AAAA,IACH;AAAA,EACF,CAAC,GACDd,EAAS,SAASW,GAClB,OAAO;AAAA,IACLX;AAAA,IACAe,EAAqBd,EAAc,cAAcA,EAAc,SAAS;AAAA,EAAA,GAE1ED,EAAS,YAAYC,EAAc,aAAa,MAAM,WAE/CD;AACT;"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { ScatterplotSettings, ScatterplotUmapSettings } from '@milaboratories/miplots4';
|
|
2
2
|
import { ComponentStateFilter, ComponentStateSimple, InputGuide, InputState, PlotDataAndSettings } from '@milaboratories/pf-plots';
|
|
3
3
|
import { AestheticMappingState } from '../../dataBindAes';
|
|
4
|
-
import { ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
4
|
+
import { DefaultPalettes, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
5
5
|
export declare function applyChartInfoFromAnnotations(settings: ScatterplotSettings | ScatterplotUmapSettings, grouping: ComponentStateSimple | ComponentStateFilter, x: ComponentStateSimple | ComponentStateFilter, y: ComponentStateSimple | ComponentStateFilter, inputGuide: InputGuide<InputState>): void;
|
|
6
|
-
export declare function applyInheritedAes(settings: ScatterplotSettings | ScatterplotUmapSettings, grouping: ComponentStateSimple | ComponentStateFilter, shape: ComponentStateSimple | ComponentStateFilter | undefined, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState): void;
|
|
7
|
-
export declare function composeScatterplotSettings(settings: ScatterplotSettings, dataByColumns: PlotDataAndSettings['data']['byColumns'], reactiveState: ReactiveState, inputGuide: InputGuide<InputState>, uniqueValuesData: UniqueValuesBySourceMap): {
|
|
6
|
+
export declare function applyInheritedAes(settings: ScatterplotSettings | ScatterplotUmapSettings, grouping: ComponentStateSimple | ComponentStateFilter, shape: ComponentStateSimple | ComponentStateFilter | undefined, uniqueValuesData: UniqueValuesBySourceMap, dataBindAes: AestheticMappingState, defaultPalette: DefaultPalettes): void;
|
|
7
|
+
export declare function composeScatterplotSettings(settings: ScatterplotSettings, dataByColumns: PlotDataAndSettings['data']['byColumns'], reactiveState: ReactiveState, inputGuide: InputGuide<InputState>, uniqueValuesData: UniqueValuesBySourceMap, defaultPalette: DefaultPalettes): {
|
|
8
8
|
type: "scatterplot";
|
|
9
9
|
title: {
|
|
10
10
|
name: string;
|
|
@@ -1,107 +1,110 @@
|
|
|
1
|
-
import { PALETTE_MAP as F,
|
|
2
|
-
import { SCATTERPLOT_TEMPLATES_MAP as
|
|
3
|
-
import { getScatterplotAes as
|
|
4
|
-
import { getScatterplotLayersSettings as
|
|
5
|
-
import { getAxesDataFromFormsScatterplot as
|
|
1
|
+
import { PALETTE_MAP as F, UNKNOWN_COLOR as U, DEFAULT_BLACK as w } from "../../constantsAesthetic.js";
|
|
2
|
+
import { SCATTERPLOT_TEMPLATES_MAP as P, isMappedAes as G } from "../../constantsCommon.js";
|
|
3
|
+
import { getScatterplotAes as K, DEFAULT_LINE_WIDTH as M, DEFAULT_DOT_SIZE as j, DEFAULT_DOT_SHAPE as k } from "../../dataBindAes.js";
|
|
4
|
+
import { getScatterplotLayersSettings as V } from "./getLayersDataFromForms.js";
|
|
5
|
+
import { getAxesDataFromFormsScatterplot as W } from "./getAxesDataFromForms.js";
|
|
6
6
|
import "@milaboratories/pf-plots";
|
|
7
|
-
import { readAnnotation as
|
|
7
|
+
import { readAnnotation as f, Annotation as d } from "@platforma-sdk/model";
|
|
8
8
|
import "vue";
|
|
9
|
-
function
|
|
10
|
-
var
|
|
11
|
-
const
|
|
9
|
+
function B(o, g, e, A, i) {
|
|
10
|
+
var E, y, L, x, N;
|
|
11
|
+
const c = (E = g.selectorStates[0]) == null ? void 0 : E.selectedSource, a = (y = e.selectorStates[0]) == null ? void 0 : y.selectedSource, p = (L = A.selectorStates[0]) == null ? void 0 : L.selectedSource, t = i.getSourceInfo(a), r = i.getSourceInfo(p);
|
|
12
12
|
o.grouping = [...o.grouping ?? []].map((s) => ({ ...s }));
|
|
13
|
-
const
|
|
14
|
-
if (
|
|
15
|
-
const s = i.getSourceInfo(
|
|
16
|
-
l && (JSON.parse(l) ?? []).forEach((
|
|
17
|
-
var
|
|
18
|
-
const { columnId:
|
|
19
|
-
|
|
13
|
+
const n = o.xAxis, h = o.yAxis;
|
|
14
|
+
if (g.selectorStates.length) {
|
|
15
|
+
const s = i.getSourceInfo(c).spec, l = f(s, d.Graph.Thresholds);
|
|
16
|
+
l && (JSON.parse(l) ?? []).forEach((D) => {
|
|
17
|
+
var b;
|
|
18
|
+
const { columnId: u, value: T } = D;
|
|
19
|
+
u && t.kind === "column" && t.type === u.valueType && t.name === u.name && ((b = o.xAxis) == null ? void 0 : b.scale) === "discrete" && (n.significantLines || (n.significantLines = []), n.significantLines.push(Number(T))), u && r.kind === "column" && r.type === u.valueType && r.name === u.name && (h.significantLines || (h.significantLines = []), h.significantLines.push(Number(T)));
|
|
20
20
|
});
|
|
21
|
-
const m =
|
|
21
|
+
const m = f(s, d.Graph.Palette);
|
|
22
22
|
if (m) {
|
|
23
|
-
const
|
|
24
|
-
o.layers.forEach((
|
|
25
|
-
|
|
23
|
+
const O = JSON.parse(m), { mapping: D = {}, name: u = "" } = O;
|
|
24
|
+
o.layers.forEach((S) => {
|
|
25
|
+
S.type === "dots" && (S.aes || (S.aes = {}), S.aes.dotFill = { type: "grouping", value: c });
|
|
26
26
|
});
|
|
27
|
-
const
|
|
28
|
-
(
|
|
29
|
-
|
|
30
|
-
const
|
|
31
|
-
return
|
|
32
|
-
fillColor:
|
|
33
|
-
lineColor:
|
|
34
|
-
dotFill:
|
|
35
|
-
dotShape:
|
|
36
|
-
dotSize:
|
|
37
|
-
lineWidth:
|
|
38
|
-
},
|
|
27
|
+
const T = [...Object.entries(D), ["null", U]], b = ((x = F[u]) == null ? void 0 : x.colors) ?? [];
|
|
28
|
+
(N = o.grouping) == null || N.forEach((S) => {
|
|
29
|
+
S.columnName.value === c && (S.inheritedAes = T.reduce((_, [R, C]) => {
|
|
30
|
+
const I = b[Number(C)] ?? w;
|
|
31
|
+
return _[R] = {
|
|
32
|
+
fillColor: I,
|
|
33
|
+
lineColor: I,
|
|
34
|
+
dotFill: I,
|
|
35
|
+
dotShape: k,
|
|
36
|
+
dotSize: j,
|
|
37
|
+
lineWidth: M
|
|
38
|
+
}, _;
|
|
39
39
|
}, {}));
|
|
40
40
|
});
|
|
41
41
|
}
|
|
42
42
|
}
|
|
43
|
-
if (n.annotations) {
|
|
44
|
-
const s = u(n, A.Graph.Axis.UpperLimit), l = u(n, A.Graph.Axis.LowerLimit), m = u(n, A.Graph.Axis.SymmetricRange);
|
|
45
|
-
s && (h.upperValue = Number(s)), l && (h.lowerValue = Number(l)), m && (h.symmetricRange = Number(m));
|
|
46
|
-
}
|
|
47
43
|
if (t.annotations) {
|
|
48
|
-
const s =
|
|
49
|
-
s && (
|
|
44
|
+
const s = f(t, d.Graph.Axis.UpperLimit), l = f(t, d.Graph.Axis.LowerLimit), m = f(t, d.Graph.Axis.SymmetricRange);
|
|
45
|
+
s && (n.upperValue = Number(s)), l && (n.lowerValue = Number(l)), m && (n.symmetricRange = Number(m));
|
|
46
|
+
}
|
|
47
|
+
if (r.annotations) {
|
|
48
|
+
const s = f(r, d.Graph.Axis.UpperLimit), l = f(r, d.Graph.Axis.LowerLimit), m = f(r, d.Graph.Axis.SymmetricRange);
|
|
49
|
+
s && (h.upperValue = Number(s)), l && (h.lowerValue = Number(l)), m && (h.symmetricRange = Number(m));
|
|
50
50
|
}
|
|
51
51
|
}
|
|
52
|
-
function
|
|
53
|
-
(
|
|
54
|
-
const
|
|
55
|
-
|
|
56
|
-
const
|
|
57
|
-
if (!
|
|
52
|
+
function H(o, g, e, A, i, c) {
|
|
53
|
+
(g.selectorStates.length || e != null && e.selectorStates.length) && (o.grouping = [...o.grouping ?? []].map((a) => ({ ...a })), o.grouping.forEach((a) => {
|
|
54
|
+
const p = a.columnName.value, t = K(p, A, i, c.continuous);
|
|
55
|
+
t.order.length ? (a.order = t.order, a.inheritedAes = t.inheritedAes) : o.layers.forEach((r) => {
|
|
56
|
+
const n = r.aes;
|
|
57
|
+
if (!n)
|
|
58
58
|
return;
|
|
59
|
-
Object.keys(
|
|
60
|
-
var
|
|
61
|
-
const
|
|
62
|
-
if (
|
|
63
|
-
const
|
|
64
|
-
|
|
59
|
+
Object.keys(n).forEach((E) => {
|
|
60
|
+
var L, x;
|
|
61
|
+
const y = n[E];
|
|
62
|
+
if (G(y) && y.value === p) {
|
|
63
|
+
const N = ((x = F[((L = i[p]) == null ? void 0 : L.palette) ?? c.categorical]) == null ? void 0 : x.colors) ?? [];
|
|
64
|
+
y.palette = N;
|
|
65
65
|
}
|
|
66
66
|
});
|
|
67
67
|
});
|
|
68
68
|
}));
|
|
69
69
|
}
|
|
70
|
-
function
|
|
71
|
-
var
|
|
72
|
-
o.layers =
|
|
73
|
-
|
|
70
|
+
function v(o, g, e, A, i, c) {
|
|
71
|
+
var t, r;
|
|
72
|
+
o.layers = V(
|
|
73
|
+
P[e.template],
|
|
74
74
|
e.layersSettings,
|
|
75
|
-
|
|
75
|
+
g,
|
|
76
76
|
e.optionsState,
|
|
77
77
|
e.dataBindAes,
|
|
78
|
-
|
|
79
|
-
(
|
|
80
|
-
|
|
78
|
+
A,
|
|
79
|
+
(t = o == null ? void 0 : o.grouping) == null ? void 0 : t.map((n) => n.columnName),
|
|
80
|
+
void 0,
|
|
81
|
+
c.continuous
|
|
82
|
+
), H(
|
|
81
83
|
o,
|
|
82
84
|
e.optionsState.components.grouping,
|
|
83
85
|
e.optionsState.components.shape,
|
|
84
86
|
i,
|
|
85
|
-
e.dataBindAes
|
|
87
|
+
e.dataBindAes,
|
|
88
|
+
c
|
|
86
89
|
);
|
|
87
|
-
const
|
|
88
|
-
return
|
|
89
|
-
color: (
|
|
90
|
+
const a = e.statisticsSettings, p = o.layers.find((n) => n.type === "dots");
|
|
91
|
+
return a.trend.on && p && (o.trend = {
|
|
92
|
+
color: (r = p.aes) == null ? void 0 : r.dotFill,
|
|
90
93
|
bounded: !1
|
|
91
94
|
}), Object.assign(
|
|
92
95
|
o,
|
|
93
|
-
|
|
94
|
-
),
|
|
96
|
+
W(e.axesSettings, i, e.optionsState, A)
|
|
97
|
+
), B(
|
|
95
98
|
o,
|
|
96
99
|
e.optionsState.components.grouping,
|
|
97
100
|
e.optionsState.components.x,
|
|
98
101
|
e.optionsState.components.y,
|
|
99
|
-
|
|
102
|
+
A
|
|
100
103
|
), o;
|
|
101
104
|
}
|
|
102
105
|
export {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
+
B as applyChartInfoFromAnnotations,
|
|
107
|
+
H as applyInheritedAes,
|
|
108
|
+
v as composeScatterplotSettings
|
|
106
109
|
};
|
|
107
110
|
//# sourceMappingURL=composeScatterplotSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeScatterplotSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeScatterplotSettings.ts"],"sourcesContent":["import type { ScatterplotSettings, ScatterplotUmapSettings } from '@milaboratories/miplots4';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n InputGuide,\n InputState,\n PlotDataAndSettings,\n ScatterplotUIState,\n} from '@milaboratories/pf-plots';\nimport {\n DEFAULT_BLACK,\n DEFAULT_CATEGORICAL_PALETTE,\n PALETTE_MAP,\n UNKNOWN_COLOR,\n} from '../../constantsAesthetic';\nimport type {\n MappingLink,\n ScatterplotStatisticsState } from '../../constantsCommon';\nimport {\n isMappedAes,\n SCATTERPLOT_TEMPLATES_MAP,\n} from '../../constantsCommon';\nimport type {\n AestheticMappingState } from '../../dataBindAes';\nimport {\n DEFAULT_DOT_SHAPE,\n DEFAULT_DOT_SIZE,\n DEFAULT_LINE_WIDTH,\n getScatterplotAes,\n} from '../../dataBindAes';\nimport type {\n ReactiveState,\n ScatterplotLayersTemplate,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { getAxesDataFromFormsScatterplot, getScatterplotLayersSettings } from '../index';\nimport type { AxisSettingsContinuous } from '@milaboratories/miplots4';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\n\nexport function applyChartInfoFromAnnotations(\n settings: ScatterplotSettings | ScatterplotUmapSettings,\n grouping: ComponentStateSimple | ComponentStateFilter,\n x: ComponentStateSimple | ComponentStateFilter,\n y: ComponentStateSimple | ComponentStateFilter,\n inputGuide: InputGuide<InputState>,\n) {\n const groupingSource = grouping.selectorStates[0]?.selectedSource;\n const xSource = x.selectorStates[0]?.selectedSource;\n const ySource = y.selectorStates[0]?.selectedSource;\n const xInfo = inputGuide.getSourceInfo(xSource);\n const yInfo = inputGuide.getSourceInfo(ySource);\n\n settings.grouping = [...(settings.grouping ?? [])].map((v) => ({ ...v }));\n\n const xAxis = settings.xAxis as AxisSettingsContinuous;\n const yAxis = settings.yAxis as AxisSettingsContinuous;\n if (grouping.selectorStates.length) {\n const spec = inputGuide.getSourceInfo(groupingSource).spec;\n const thresholds = readAnnotation(spec, Annotation.Graph.Thresholds);\n if (thresholds) {\n const thresholdsData = JSON.parse(thresholds) ?? [];\n\n thresholdsData.forEach((thresholdData: { columnId: Record<string, string>; value: number }) => {\n const { columnId, value } = thresholdData;\n if (columnId && (xInfo.kind === 'column' && xInfo.type === columnId.valueType && xInfo.name === columnId.name && settings.xAxis?.scale === 'discrete')) {\n if (!xAxis.significantLines) {\n xAxis.significantLines = [];\n }\n xAxis.significantLines.push(Number(value));\n }\n\n if (columnId && (yInfo.kind === 'column' && yInfo.type === columnId.valueType && yInfo.name === columnId.name)) {\n if (!yAxis.significantLines) {\n yAxis.significantLines = [];\n }\n yAxis.significantLines.push(Number(value));\n }\n });\n }\n\n const palette = readAnnotation(spec, Annotation.Graph.Palette);\n if (palette) {\n const paletteData = JSON.parse(palette);\n const { mapping = {}, name = '' } = paletteData;\n settings.layers.forEach((layer) => {\n if (layer.type === 'dots') {\n if (!layer.aes) {\n layer.aes = {};\n }\n layer.aes.dotFill = { type: 'grouping', value: groupingSource };\n }\n });\n const paletteEntries = [...Object.entries(mapping), ['null', UNKNOWN_COLOR]];\n const paletteColors = PALETTE_MAP[name as keyof typeof PALETTE_MAP]?.colors ?? [];\n\n settings.grouping?.forEach((groupingElement) => {\n if (groupingElement.columnName.value === groupingSource) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupingElement.inheritedAes = paletteEntries.reduce((res: Record<string, any>, [key, value]) => { // TODO: remove any\n const color = paletteColors[Number(value)] ?? DEFAULT_BLACK;\n res[key] = {\n fillColor: color,\n lineColor: color,\n dotFill: color,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {});\n }\n });\n }\n }\n if (xInfo.annotations) {\n const upperLimit = readAnnotation(xInfo, Annotation.Graph.Axis.UpperLimit);\n const lowerLimit = readAnnotation(xInfo, Annotation.Graph.Axis.LowerLimit);\n const symmetricRange = readAnnotation(xInfo, Annotation.Graph.Axis.SymmetricRange);\n if (upperLimit) {\n xAxis!.upperValue = Number(upperLimit);\n }\n if (lowerLimit) {\n xAxis!.lowerValue = Number(lowerLimit);\n }\n if (symmetricRange) {\n xAxis!.symmetricRange = Number(symmetricRange);\n }\n }\n\n if (yInfo.annotations) {\n const upperLimit = readAnnotation(yInfo, Annotation.Graph.Axis.UpperLimit);\n const lowerLimit = readAnnotation(yInfo, Annotation.Graph.Axis.LowerLimit);\n const symmetricRange = readAnnotation(yInfo, Annotation.Graph.Axis.SymmetricRange);\n if (upperLimit) {\n yAxis!.upperValue = Number(upperLimit);\n }\n if (lowerLimit) {\n yAxis!.lowerValue = Number(lowerLimit);\n }\n if (symmetricRange) {\n yAxis!.symmetricRange = Number(symmetricRange);\n }\n }\n}\n\nexport function applyInheritedAes(\n settings: ScatterplotSettings | ScatterplotUmapSettings,\n grouping: ComponentStateSimple | ComponentStateFilter,\n shape: ComponentStateSimple | ComponentStateFilter | undefined,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n if (grouping.selectorStates.length || shape?.selectorStates.length) {\n settings.grouping = [...(settings.grouping ?? [])].map((v) => ({ ...v }));\n settings.grouping.forEach((el) => {\n const selectedSource = el.columnName.value;\n const savedData = getScatterplotAes(selectedSource, uniqueValuesData, dataBindAes); // get saved or default color or shape mapping\n // if mapping exists but doesn't have saved order and value-color pairs - add just colors list to chart settings, chart will use it\n if (!savedData.order.length) {\n settings.layers.forEach((layer) => {\n const layerAes = layer.aes;\n if (!layerAes) {\n return;\n }\n const aesKeys = Object.keys(layerAes);\n aesKeys.forEach((aesKey) => {\n const value = layerAes[aesKey as keyof typeof layerAes] as unknown;\n if (isMappedAes(value) && value.value === selectedSource) {\n const colors = PALETTE_MAP[dataBindAes[selectedSource]?.palette ?? DEFAULT_CATEGORICAL_PALETTE]?.colors ?? [];\n (value as MappingLink & { palette: string[] }).palette = colors;\n }\n });\n });\n } else {\n el.order = savedData.order;\n el.inheritedAes = savedData.inheritedAes;\n }\n });\n }\n}\nexport function composeScatterplotSettings(\n settings: ScatterplotSettings,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n reactiveState: ReactiveState,\n inputGuide: InputGuide<InputState>,\n uniqueValuesData: UniqueValuesBySourceMap,\n) {\n settings.layers = getScatterplotLayersSettings(\n SCATTERPLOT_TEMPLATES_MAP[reactiveState.template as ScatterplotLayersTemplate],\n reactiveState.layersSettings,\n dataByColumns,\n reactiveState.optionsState as ScatterplotUIState,\n reactiveState.dataBindAes,\n inputGuide,\n settings?.grouping?.map((v) => v.columnName),\n );\n\n applyInheritedAes(\n settings,\n reactiveState.optionsState.components.grouping,\n reactiveState.optionsState.components.shape,\n uniqueValuesData,\n reactiveState.dataBindAes,\n );\n\n const statisticsSettings = reactiveState.statisticsSettings as ScatterplotStatisticsState;\n const dotsLayer = settings.layers.find((layer) => layer.type === 'dots');\n if (statisticsSettings.trend.on && dotsLayer) {\n settings.trend = {\n color: dotsLayer.aes?.dotFill,\n bounded: false,\n };\n }\n\n Object.assign(\n settings,\n getAxesDataFromFormsScatterplot(reactiveState.axesSettings, uniqueValuesData, reactiveState.optionsState, inputGuide),\n );\n\n applyChartInfoFromAnnotations(\n settings,\n reactiveState.optionsState.components.grouping,\n reactiveState.optionsState.components.x,\n reactiveState.optionsState.components.y,\n inputGuide,\n );\n\n return settings;\n}\n"],"names":["applyChartInfoFromAnnotations","settings","grouping","x","y","inputGuide","groupingSource","_a","xSource","_b","ySource","_c","xInfo","yInfo","v","xAxis","yAxis","spec","thresholds","readAnnotation","Annotation","thresholdData","columnId","value","palette","paletteData","mapping","name","layer","paletteEntries","UNKNOWN_COLOR","paletteColors","_d","PALETTE_MAP","_e","groupingElement","res","key","color","DEFAULT_BLACK","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_LINE_WIDTH","upperLimit","lowerLimit","symmetricRange","applyInheritedAes","shape","uniqueValuesData","dataBindAes","el","selectedSource","savedData","getScatterplotAes","layerAes","aesKey","isMappedAes","colors","DEFAULT_CATEGORICAL_PALETTE","composeScatterplotSettings","dataByColumns","reactiveState","getScatterplotLayersSettings","SCATTERPLOT_TEMPLATES_MAP","statisticsSettings","dotsLayer","getAxesDataFromFormsScatterplot"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"composeScatterplotSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeScatterplotSettings.ts"],"sourcesContent":["import type { ScatterplotSettings, ScatterplotUmapSettings } from '@milaboratories/miplots4';\nimport type {\n ComponentStateFilter,\n ComponentStateSimple,\n InputGuide,\n InputState,\n PlotDataAndSettings,\n ScatterplotUIState,\n} from '@milaboratories/pf-plots';\nimport {\n DEFAULT_BLACK,\n PALETTE_MAP,\n UNKNOWN_COLOR,\n} from '../../constantsAesthetic';\nimport type {\n MappingLink,\n ScatterplotStatisticsState } from '../../constantsCommon';\nimport {\n isMappedAes,\n SCATTERPLOT_TEMPLATES_MAP,\n} from '../../constantsCommon';\nimport type {\n AestheticMappingState } from '../../dataBindAes';\nimport {\n DEFAULT_DOT_SHAPE,\n DEFAULT_DOT_SIZE,\n DEFAULT_LINE_WIDTH,\n getScatterplotAes,\n} from '../../dataBindAes';\nimport type {\n DefaultPalettes,\n ReactiveState,\n ScatterplotLayersTemplate,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { getAxesDataFromFormsScatterplot, getScatterplotLayersSettings } from '../index';\nimport type { AxisSettingsContinuous } from '@milaboratories/miplots4';\nimport { Annotation, readAnnotation } from '@platforma-sdk/model';\n\nexport function applyChartInfoFromAnnotations(\n settings: ScatterplotSettings | ScatterplotUmapSettings,\n grouping: ComponentStateSimple | ComponentStateFilter,\n x: ComponentStateSimple | ComponentStateFilter,\n y: ComponentStateSimple | ComponentStateFilter,\n inputGuide: InputGuide<InputState>,\n) {\n const groupingSource = grouping.selectorStates[0]?.selectedSource;\n const xSource = x.selectorStates[0]?.selectedSource;\n const ySource = y.selectorStates[0]?.selectedSource;\n const xInfo = inputGuide.getSourceInfo(xSource);\n const yInfo = inputGuide.getSourceInfo(ySource);\n\n settings.grouping = [...(settings.grouping ?? [])].map((v) => ({ ...v }));\n\n const xAxis = settings.xAxis as AxisSettingsContinuous;\n const yAxis = settings.yAxis as AxisSettingsContinuous;\n if (grouping.selectorStates.length) {\n const spec = inputGuide.getSourceInfo(groupingSource).spec;\n const thresholds = readAnnotation(spec, Annotation.Graph.Thresholds);\n if (thresholds) {\n const thresholdsData = JSON.parse(thresholds) ?? [];\n\n thresholdsData.forEach((thresholdData: { columnId: Record<string, string>; value: number }) => {\n const { columnId, value } = thresholdData;\n if (columnId && (xInfo.kind === 'column' && xInfo.type === columnId.valueType && xInfo.name === columnId.name && settings.xAxis?.scale === 'discrete')) {\n if (!xAxis.significantLines) {\n xAxis.significantLines = [];\n }\n xAxis.significantLines.push(Number(value));\n }\n\n if (columnId && (yInfo.kind === 'column' && yInfo.type === columnId.valueType && yInfo.name === columnId.name)) {\n if (!yAxis.significantLines) {\n yAxis.significantLines = [];\n }\n yAxis.significantLines.push(Number(value));\n }\n });\n }\n\n const palette = readAnnotation(spec, Annotation.Graph.Palette);\n if (palette) {\n const paletteData = JSON.parse(palette);\n const { mapping = {}, name = '' } = paletteData;\n settings.layers.forEach((layer) => {\n if (layer.type === 'dots') {\n if (!layer.aes) {\n layer.aes = {};\n }\n layer.aes.dotFill = { type: 'grouping', value: groupingSource };\n }\n });\n const paletteEntries = [...Object.entries(mapping), ['null', UNKNOWN_COLOR]];\n const paletteColors = PALETTE_MAP[name as keyof typeof PALETTE_MAP]?.colors ?? [];\n\n settings.grouping?.forEach((groupingElement) => {\n if (groupingElement.columnName.value === groupingSource) {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n groupingElement.inheritedAes = paletteEntries.reduce((res: Record<string, any>, [key, value]) => { // TODO: remove any\n const color = paletteColors[Number(value)] ?? DEFAULT_BLACK;\n res[key] = {\n fillColor: color,\n lineColor: color,\n dotFill: color,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {});\n }\n });\n }\n }\n if (xInfo.annotations) {\n const upperLimit = readAnnotation(xInfo, Annotation.Graph.Axis.UpperLimit);\n const lowerLimit = readAnnotation(xInfo, Annotation.Graph.Axis.LowerLimit);\n const symmetricRange = readAnnotation(xInfo, Annotation.Graph.Axis.SymmetricRange);\n if (upperLimit) {\n xAxis!.upperValue = Number(upperLimit);\n }\n if (lowerLimit) {\n xAxis!.lowerValue = Number(lowerLimit);\n }\n if (symmetricRange) {\n xAxis!.symmetricRange = Number(symmetricRange);\n }\n }\n\n if (yInfo.annotations) {\n const upperLimit = readAnnotation(yInfo, Annotation.Graph.Axis.UpperLimit);\n const lowerLimit = readAnnotation(yInfo, Annotation.Graph.Axis.LowerLimit);\n const symmetricRange = readAnnotation(yInfo, Annotation.Graph.Axis.SymmetricRange);\n if (upperLimit) {\n yAxis!.upperValue = Number(upperLimit);\n }\n if (lowerLimit) {\n yAxis!.lowerValue = Number(lowerLimit);\n }\n if (symmetricRange) {\n yAxis!.symmetricRange = Number(symmetricRange);\n }\n }\n}\n\nexport function applyInheritedAes(\n settings: ScatterplotSettings | ScatterplotUmapSettings,\n grouping: ComponentStateSimple | ComponentStateFilter,\n shape: ComponentStateSimple | ComponentStateFilter | undefined,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n defaultPalette: DefaultPalettes,\n) {\n if (grouping.selectorStates.length || shape?.selectorStates.length) {\n settings.grouping = [...(settings.grouping ?? [])].map((v) => ({ ...v }));\n settings.grouping.forEach((el) => {\n const selectedSource = el.columnName.value;\n const savedData = getScatterplotAes(selectedSource, uniqueValuesData, dataBindAes, defaultPalette.continuous); // get saved or default color or shape mapping\n // if mapping exists but doesn't have saved order and value-color pairs - add just colors list to chart settings, chart will use it\n if (!savedData.order.length) {\n settings.layers.forEach((layer) => {\n const layerAes = layer.aes;\n if (!layerAes) {\n return;\n }\n const aesKeys = Object.keys(layerAes);\n aesKeys.forEach((aesKey) => {\n const value = layerAes[aesKey as keyof typeof layerAes] as unknown;\n if (isMappedAes(value) && value.value === selectedSource) {\n const colors = PALETTE_MAP[dataBindAes[selectedSource]?.palette ?? defaultPalette.categorical]?.colors ?? [];\n (value as MappingLink & { palette: string[] }).palette = colors;\n }\n });\n });\n } else {\n el.order = savedData.order;\n el.inheritedAes = savedData.inheritedAes;\n }\n });\n }\n}\nexport function composeScatterplotSettings(\n settings: ScatterplotSettings,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n reactiveState: ReactiveState,\n inputGuide: InputGuide<InputState>,\n uniqueValuesData: UniqueValuesBySourceMap,\n defaultPalette: DefaultPalettes,\n) {\n settings.layers = getScatterplotLayersSettings(\n SCATTERPLOT_TEMPLATES_MAP[reactiveState.template as ScatterplotLayersTemplate],\n reactiveState.layersSettings,\n dataByColumns,\n reactiveState.optionsState as ScatterplotUIState,\n reactiveState.dataBindAes,\n inputGuide,\n settings?.grouping?.map((v) => v.columnName),\n undefined,\n defaultPalette.continuous,\n );\n\n applyInheritedAes(\n settings,\n reactiveState.optionsState.components.grouping,\n reactiveState.optionsState.components.shape,\n uniqueValuesData,\n reactiveState.dataBindAes,\n defaultPalette,\n );\n\n const statisticsSettings = reactiveState.statisticsSettings as ScatterplotStatisticsState;\n const dotsLayer = settings.layers.find((layer) => layer.type === 'dots');\n if (statisticsSettings.trend.on && dotsLayer) {\n settings.trend = {\n color: dotsLayer.aes?.dotFill,\n bounded: false,\n };\n }\n\n Object.assign(\n settings,\n getAxesDataFromFormsScatterplot(reactiveState.axesSettings, uniqueValuesData, reactiveState.optionsState, inputGuide),\n );\n\n applyChartInfoFromAnnotations(\n settings,\n reactiveState.optionsState.components.grouping,\n reactiveState.optionsState.components.x,\n reactiveState.optionsState.components.y,\n inputGuide,\n );\n\n return settings;\n}\n"],"names":["applyChartInfoFromAnnotations","settings","grouping","x","y","inputGuide","groupingSource","_a","xSource","_b","ySource","_c","xInfo","yInfo","v","xAxis","yAxis","spec","thresholds","readAnnotation","Annotation","thresholdData","columnId","value","palette","paletteData","mapping","name","layer","paletteEntries","UNKNOWN_COLOR","paletteColors","_d","PALETTE_MAP","_e","groupingElement","res","key","color","DEFAULT_BLACK","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_LINE_WIDTH","upperLimit","lowerLimit","symmetricRange","applyInheritedAes","shape","uniqueValuesData","dataBindAes","defaultPalette","el","selectedSource","savedData","getScatterplotAes","layerAes","aesKey","isMappedAes","colors","composeScatterplotSettings","dataByColumns","reactiveState","getScatterplotLayersSettings","SCATTERPLOT_TEMPLATES_MAP","statisticsSettings","dotsLayer","getAxesDataFromFormsScatterplot"],"mappings":";;;;;;;;AAuCO,SAASA,EACdC,GACAC,GACAC,GACAC,GACAC,GACA;;AACA,QAAMC,KAAiBC,IAAAL,EAAS,eAAe,CAAC,MAAzB,gBAAAK,EAA4B,gBAC7CC,KAAUC,IAAAN,EAAE,eAAe,CAAC,MAAlB,gBAAAM,EAAqB,gBAC/BC,KAAUC,IAAAP,EAAE,eAAe,CAAC,MAAlB,gBAAAO,EAAqB,gBAC/BC,IAAQP,EAAW,cAAcG,CAAO,GACxCK,IAAQR,EAAW,cAAcK,CAAO;AAE9C,EAAAT,EAAS,WAAW,CAAC,GAAIA,EAAS,YAAY,CAAA,CAAG,EAAE,IAAI,CAACa,OAAO,EAAE,GAAGA,IAAI;AAExE,QAAMC,IAAQd,EAAS,OACjBe,IAAQf,EAAS;AACvB,MAAIC,EAAS,eAAe,QAAQ;AAClC,UAAMe,IAAOZ,EAAW,cAAcC,CAAc,EAAE,MAChDY,IAAaC,EAAeF,GAAMG,EAAW,MAAM,UAAU;AACnE,IAAIF,MACqB,KAAK,MAAMA,CAAU,KAAK,CAAA,GAElC,QAAQ,CAACG,MAAuE;;AAC7F,YAAM,EAAE,UAAAC,GAAU,OAAAC,EAAA,IAAUF;AAC5B,MAAIC,KAAaV,EAAM,SAAS,YAAYA,EAAM,SAASU,EAAS,aAAaV,EAAM,SAASU,EAAS,UAAQf,IAAAN,EAAS,UAAT,gBAAAM,EAAgB,WAAU,eACpIQ,EAAM,qBACTA,EAAM,mBAAmB,CAAA,IAE3BA,EAAM,iBAAiB,KAAK,OAAOQ,CAAK,CAAC,IAGvCD,KAAaT,EAAM,SAAS,YAAYA,EAAM,SAASS,EAAS,aAAaT,EAAM,SAASS,EAAS,SAClGN,EAAM,qBACTA,EAAM,mBAAmB,CAAA,IAE3BA,EAAM,iBAAiB,KAAK,OAAOO,CAAK,CAAC;AAAA,IAE7C,CAAC;AAGH,UAAMC,IAAUL,EAAeF,GAAMG,EAAW,MAAM,OAAO;AAC7D,QAAII,GAAS;AACX,YAAMC,IAAc,KAAK,MAAMD,CAAO,GAChC,EAAE,SAAAE,IAAU,CAAA,GAAI,MAAAC,IAAO,OAAOF;AACpC,MAAAxB,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,QAAIA,EAAM,SAAS,WACZA,EAAM,QACTA,EAAM,MAAM,CAAA,IAEdA,EAAM,IAAI,UAAU,EAAE,MAAM,YAAY,OAAOtB,EAAA;AAAA,MAEnD,CAAC;AACD,YAAMuB,IAAiB,CAAC,GAAG,OAAO,QAAQH,CAAO,GAAG,CAAC,QAAQI,CAAa,CAAC,GACrEC,MAAgBC,IAAAC,EAAYN,CAAgC,MAA5C,gBAAAK,EAA+C,WAAU,CAAA;AAE/E,OAAAE,IAAAjC,EAAS,aAAT,QAAAiC,EAAmB,QAAQ,CAACC,MAAoB;AAC9C,QAAIA,EAAgB,WAAW,UAAU7B,MAEvC6B,EAAgB,eAAeN,EAAe,OAAO,CAACO,GAA0B,CAACC,GAAKd,CAAK,MAAM;AAC/F,gBAAMe,IAAQP,EAAc,OAAOR,CAAK,CAAC,KAAKgB;AAC9C,iBAAAH,EAAIC,CAAG,IAAI;AAAA,YACT,WAAWC;AAAA,YACX,WAAWA;AAAA,YACX,SAASA;AAAA,YACT,UAAUE;AAAA,YACV,SAASC;AAAA,YACT,WAAWC;AAAA,UAAA,GAENN;AAAA,QACT,GAAG,CAAA,CAAE;AAAA,MAET;AAAA,IACF;AAAA,EACF;AACA,MAAIxB,EAAM,aAAa;AACrB,UAAM+B,IAAaxB,EAAeP,GAAOQ,EAAW,MAAM,KAAK,UAAU,GACnEwB,IAAazB,EAAeP,GAAOQ,EAAW,MAAM,KAAK,UAAU,GACnEyB,IAAiB1B,EAAeP,GAAOQ,EAAW,MAAM,KAAK,cAAc;AACjF,IAAIuB,MACF5B,EAAO,aAAa,OAAO4B,CAAU,IAEnCC,MACF7B,EAAO,aAAa,OAAO6B,CAAU,IAEnCC,MACF9B,EAAO,iBAAiB,OAAO8B,CAAc;AAAA,EAEjD;AAEA,MAAIhC,EAAM,aAAa;AACrB,UAAM8B,IAAaxB,EAAeN,GAAOO,EAAW,MAAM,KAAK,UAAU,GACnEwB,IAAazB,EAAeN,GAAOO,EAAW,MAAM,KAAK,UAAU,GACnEyB,IAAiB1B,EAAeN,GAAOO,EAAW,MAAM,KAAK,cAAc;AACjF,IAAIuB,MACF3B,EAAO,aAAa,OAAO2B,CAAU,IAEnCC,MACF5B,EAAO,aAAa,OAAO4B,CAAU,IAEnCC,MACF7B,EAAO,iBAAiB,OAAO6B,CAAc;AAAA,EAEjD;AACF;AAEO,SAASC,EACd7C,GACAC,GACA6C,GACAC,GACAC,GACAC,GACA;AACA,GAAIhD,EAAS,eAAe,UAAU6C,KAAA,QAAAA,EAAO,eAAe,YAC1D9C,EAAS,WAAW,CAAC,GAAIA,EAAS,YAAY,CAAA,CAAG,EAAE,IAAI,CAACa,OAAO,EAAE,GAAGA,IAAI,GACxEb,EAAS,SAAS,QAAQ,CAACkD,MAAO;AAChC,UAAMC,IAAiBD,EAAG,WAAW,OAC/BE,IAAYC,EAAkBF,GAAgBJ,GAAkBC,GAAaC,EAAe,UAAU;AAE5G,IAAKG,EAAU,MAAM,UAgBnBF,EAAG,QAAQE,EAAU,OACrBF,EAAG,eAAeE,EAAU,gBAhB5BpD,EAAS,OAAO,QAAQ,CAAC2B,MAAU;AACjC,YAAM2B,IAAW3B,EAAM;AACvB,UAAI,CAAC2B;AACH;AAGF,MADgB,OAAO,KAAKA,CAAQ,EAC5B,QAAQ,CAACC,MAAW;;AAC1B,cAAMjC,IAAQgC,EAASC,CAA+B;AACtD,YAAIC,EAAYlC,CAAK,KAAKA,EAAM,UAAU6B,GAAgB;AACxD,gBAAMM,MAASjD,IAAAwB,IAAY1B,IAAA0C,EAAYG,CAAc,MAA1B,gBAAA7C,EAA6B,YAAW2C,EAAe,WAAW,MAA9E,gBAAAzC,EAAiF,WAAU,CAAA;AACzG,UAAAc,EAA8C,UAAUmC;AAAA,QAC3D;AAAA,MACF,CAAC;AAAA,IACH,CAAC;AAAA,EAKL,CAAC;AAEL;AACO,SAASC,EACd1D,GACA2D,GACAC,GACAxD,GACA2C,GACAE,GACA;;AACA,EAAAjD,EAAS,SAAS6D;AAAA,IAChBC,EAA0BF,EAAc,QAAqC;AAAA,IAC7EA,EAAc;AAAA,IACdD;AAAA,IACAC,EAAc;AAAA,IACdA,EAAc;AAAA,IACdxD;AAAA,KACAE,IAAAN,KAAA,gBAAAA,EAAU,aAAV,gBAAAM,EAAoB,IAAI,CAACO,MAAMA,EAAE;AAAA,IACjC;AAAA,IACAoC,EAAe;AAAA,EAAA,GAGjBJ;AAAA,IACE7C;AAAA,IACA4D,EAAc,aAAa,WAAW;AAAA,IACtCA,EAAc,aAAa,WAAW;AAAA,IACtCb;AAAA,IACAa,EAAc;AAAA,IACdX;AAAA,EAAA;AAGF,QAAMc,IAAqBH,EAAc,oBACnCI,IAAYhE,EAAS,OAAO,KAAK,CAAC2B,MAAUA,EAAM,SAAS,MAAM;AACvE,SAAIoC,EAAmB,MAAM,MAAMC,MACjChE,EAAS,QAAQ;AAAA,IACf,QAAOQ,IAAAwD,EAAU,QAAV,gBAAAxD,EAAe;AAAA,IACtB,SAAS;AAAA,EAAA,IAIb,OAAO;AAAA,IACLR;AAAA,IACAiE,EAAgCL,EAAc,cAAcb,GAAkBa,EAAc,cAAcxD,CAAU;AAAA,EAAA,GAGtHL;AAAA,IACEC;AAAA,IACA4D,EAAc,aAAa,WAAW;AAAA,IACtCA,EAAc,aAAa,WAAW;AAAA,IACtCA,EAAc,aAAa,WAAW;AAAA,IACtCxD;AAAA,EAAA,GAGKJ;AACT;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { ScatterplotUmapSettings } from '@milaboratories/miplots4';
|
|
2
2
|
import { InputGuide, InputState, PlotDataAndSettings } from '@milaboratories/pf-plots';
|
|
3
|
-
import { ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
4
|
-
export declare function composeScatterplotUmapSettings(settings: ScatterplotUmapSettings, dataByColumns: PlotDataAndSettings['data']['byColumns'], reactiveState: ReactiveState, inputGuide: InputGuide<InputState>, uniqueValuesData: UniqueValuesBySourceMap): {
|
|
3
|
+
import { DefaultPalettes, ReactiveState, UniqueValuesBySourceMap } from '../../types';
|
|
4
|
+
export declare function composeScatterplotUmapSettings(settings: ScatterplotUmapSettings, dataByColumns: PlotDataAndSettings['data']['byColumns'], reactiveState: ReactiveState, inputGuide: InputGuide<InputState>, uniqueValuesData: UniqueValuesBySourceMap, defaultPalette: DefaultPalettes): {
|
|
5
5
|
type: "scatterplot-umap";
|
|
6
6
|
title: {
|
|
7
7
|
name: string;
|
|
@@ -1,45 +1,46 @@
|
|
|
1
|
-
import { SCATTERPLOT_TEMPLATES_MAP as
|
|
2
|
-
import { DEFAULT_DOT_SIZE_CANVAS as
|
|
3
|
-
import { getScatterplotLayersSettings as
|
|
4
|
-
import { getAxesDataFromFormsScatterplot as
|
|
1
|
+
import { SCATTERPLOT_TEMPLATES_MAP as l } from "../../constantsCommon.js";
|
|
2
|
+
import { DEFAULT_DOT_SIZE_CANVAS as t } from "../../dataBindAes.js";
|
|
3
|
+
import { getScatterplotLayersSettings as E } from "./getLayersDataFromForms.js";
|
|
4
|
+
import { getAxesDataFromFormsScatterplot as s } from "./getAxesDataFromForms.js";
|
|
5
5
|
import "@milaboratories/pf-plots";
|
|
6
6
|
import "@platforma-sdk/model";
|
|
7
7
|
import "vue";
|
|
8
|
-
import { applyInheritedAes as
|
|
8
|
+
import { applyInheritedAes as S, applyChartInfoFromAnnotations as L } from "./composeScatterplotSettings.js";
|
|
9
9
|
import "../../constantsAesthetic.js";
|
|
10
|
-
const
|
|
11
|
-
function
|
|
10
|
+
const f = 750, h = 450;
|
|
11
|
+
function D(p, A, o, m, n, T) {
|
|
12
12
|
var r;
|
|
13
|
-
return p.layers =
|
|
14
|
-
|
|
13
|
+
return p.layers = E(
|
|
14
|
+
l[o.template],
|
|
15
15
|
o.layersSettings,
|
|
16
16
|
A,
|
|
17
17
|
o.optionsState,
|
|
18
18
|
o.dataBindAes,
|
|
19
19
|
m,
|
|
20
|
-
(r = p == null ? void 0 : p.grouping) == null ? void 0 : r.map((
|
|
21
|
-
|
|
22
|
-
),
|
|
20
|
+
(r = p == null ? void 0 : p.grouping) == null ? void 0 : r.map((_) => _.columnName),
|
|
21
|
+
t
|
|
22
|
+
), S(
|
|
23
23
|
p,
|
|
24
24
|
o.optionsState.components.grouping,
|
|
25
25
|
void 0,
|
|
26
26
|
n,
|
|
27
|
-
o.dataBindAes
|
|
27
|
+
o.dataBindAes,
|
|
28
|
+
T
|
|
28
29
|
), Object.assign(
|
|
29
30
|
p,
|
|
30
|
-
|
|
31
|
-
),
|
|
31
|
+
s(o.axesSettings, n, o.optionsState, m)
|
|
32
|
+
), L(
|
|
32
33
|
p,
|
|
33
34
|
o.optionsState.components.grouping,
|
|
34
35
|
o.optionsState.components.x,
|
|
35
36
|
o.optionsState.components.y,
|
|
36
37
|
m
|
|
37
38
|
), p.size = {
|
|
38
|
-
width:
|
|
39
|
-
height:
|
|
39
|
+
width: f * o.chartScale / 100,
|
|
40
|
+
height: h * o.chartScale / 100
|
|
40
41
|
}, p;
|
|
41
42
|
}
|
|
42
43
|
export {
|
|
43
|
-
|
|
44
|
+
D as composeScatterplotUmapSettings
|
|
44
45
|
};
|
|
45
46
|
//# sourceMappingURL=composeScatterplotUmapSettings.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"composeScatterplotUmapSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeScatterplotUmapSettings.ts"],"sourcesContent":["import type { ScatterplotUmapSettings } from '@milaboratories/miplots4';\nimport type { InputGuide, InputState, PlotDataAndSettings, ScatterplotUIState } from '@milaboratories/pf-plots';\nimport { SCATTERPLOT_TEMPLATES_MAP } from '../../constantsCommon';\nimport { DEFAULT_DOT_SIZE_CANVAS } from '../../dataBindAes';\nimport type {\n ReactiveState,\n ScatterplotLayersTemplate,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { getAxesDataFromFormsScatterplot, getScatterplotLayersSettings } from '../index';\nimport { applyChartInfoFromAnnotations, applyInheritedAes } from './composeScatterplotSettings';\n\nconst DEFAULT_WIDTH_SCATTERPLOT_UMAP = 750;\nconst DEFAULT_HEIGHT_SCATTERPLOT_UMAP = 450;\n\nexport function composeScatterplotUmapSettings(\n settings: ScatterplotUmapSettings,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n reactiveState: ReactiveState,\n inputGuide: InputGuide<InputState>,\n uniqueValuesData: UniqueValuesBySourceMap,\n) {\n settings.layers = getScatterplotLayersSettings(\n SCATTERPLOT_TEMPLATES_MAP[reactiveState.template as ScatterplotLayersTemplate],\n reactiveState.layersSettings,\n dataByColumns,\n reactiveState.optionsState as ScatterplotUIState,\n reactiveState.dataBindAes,\n inputGuide,\n settings?.grouping?.map((v) => v.columnName),\n DEFAULT_DOT_SIZE_CANVAS,\n ) as ScatterplotUmapSettings['layers'];\n\n applyInheritedAes(\n settings,\n reactiveState.optionsState.components.grouping,\n undefined,\n uniqueValuesData,\n reactiveState.dataBindAes,\n );\n\n Object.assign(\n settings,\n getAxesDataFromFormsScatterplot(reactiveState.axesSettings, uniqueValuesData, reactiveState.optionsState, inputGuide),\n );\n\n applyChartInfoFromAnnotations(\n settings,\n reactiveState.optionsState.components.grouping,\n reactiveState.optionsState.components.x,\n reactiveState.optionsState.components.y,\n inputGuide,\n );\n\n settings.size = {\n width: DEFAULT_WIDTH_SCATTERPLOT_UMAP * reactiveState.chartScale / 100,\n height: DEFAULT_HEIGHT_SCATTERPLOT_UMAP * reactiveState.chartScale / 100,\n };\n\n return settings;\n}\n"],"names":["DEFAULT_WIDTH_SCATTERPLOT_UMAP","DEFAULT_HEIGHT_SCATTERPLOT_UMAP","composeScatterplotUmapSettings","settings","dataByColumns","reactiveState","inputGuide","uniqueValuesData","getScatterplotLayersSettings","SCATTERPLOT_TEMPLATES_MAP","_a","v","DEFAULT_DOT_SIZE_CANVAS","applyInheritedAes","getAxesDataFromFormsScatterplot","applyChartInfoFromAnnotations"],"mappings":";;;;;;;;;
|
|
1
|
+
{"version":3,"file":"composeScatterplotUmapSettings.js","sources":["../../../src/utils/createChartSettingsForRender/composeScatterplotUmapSettings.ts"],"sourcesContent":["import type { ScatterplotUmapSettings } from '@milaboratories/miplots4';\nimport type { InputGuide, InputState, PlotDataAndSettings, ScatterplotUIState } from '@milaboratories/pf-plots';\nimport { SCATTERPLOT_TEMPLATES_MAP } from '../../constantsCommon';\nimport { DEFAULT_DOT_SIZE_CANVAS } from '../../dataBindAes';\nimport type {\n DefaultPalettes,\n ReactiveState,\n ScatterplotLayersTemplate,\n UniqueValuesBySourceMap,\n} from '../../types';\nimport { getAxesDataFromFormsScatterplot, getScatterplotLayersSettings } from '../index';\nimport { applyChartInfoFromAnnotations, applyInheritedAes } from './composeScatterplotSettings';\n\nconst DEFAULT_WIDTH_SCATTERPLOT_UMAP = 750;\nconst DEFAULT_HEIGHT_SCATTERPLOT_UMAP = 450;\n\nexport function composeScatterplotUmapSettings(\n settings: ScatterplotUmapSettings,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n reactiveState: ReactiveState,\n inputGuide: InputGuide<InputState>,\n uniqueValuesData: UniqueValuesBySourceMap,\n defaultPalette: DefaultPalettes,\n) {\n settings.layers = getScatterplotLayersSettings(\n SCATTERPLOT_TEMPLATES_MAP[reactiveState.template as ScatterplotLayersTemplate],\n reactiveState.layersSettings,\n dataByColumns,\n reactiveState.optionsState as ScatterplotUIState,\n reactiveState.dataBindAes,\n inputGuide,\n settings?.grouping?.map((v) => v.columnName),\n DEFAULT_DOT_SIZE_CANVAS,\n ) as ScatterplotUmapSettings['layers'];\n\n applyInheritedAes(\n settings,\n reactiveState.optionsState.components.grouping,\n undefined,\n uniqueValuesData,\n reactiveState.dataBindAes,\n defaultPalette,\n );\n\n Object.assign(\n settings,\n getAxesDataFromFormsScatterplot(reactiveState.axesSettings, uniqueValuesData, reactiveState.optionsState, inputGuide),\n );\n\n applyChartInfoFromAnnotations(\n settings,\n reactiveState.optionsState.components.grouping,\n reactiveState.optionsState.components.x,\n reactiveState.optionsState.components.y,\n inputGuide,\n );\n\n settings.size = {\n width: DEFAULT_WIDTH_SCATTERPLOT_UMAP * reactiveState.chartScale / 100,\n height: DEFAULT_HEIGHT_SCATTERPLOT_UMAP * reactiveState.chartScale / 100,\n };\n\n return settings;\n}\n"],"names":["DEFAULT_WIDTH_SCATTERPLOT_UMAP","DEFAULT_HEIGHT_SCATTERPLOT_UMAP","composeScatterplotUmapSettings","settings","dataByColumns","reactiveState","inputGuide","uniqueValuesData","defaultPalette","getScatterplotLayersSettings","SCATTERPLOT_TEMPLATES_MAP","_a","v","DEFAULT_DOT_SIZE_CANVAS","applyInheritedAes","getAxesDataFromFormsScatterplot","applyChartInfoFromAnnotations"],"mappings":";;;;;;;;;AAaA,MAAMA,IAAiC,KACjCC,IAAkC;AAEjC,SAASC,EACdC,GACAC,GACAC,GACAC,GACAC,GACAC,GACA;;AACA,SAAAL,EAAS,SAASM;AAAA,IAChBC,EAA0BL,EAAc,QAAqC;AAAA,IAC7EA,EAAc;AAAA,IACdD;AAAA,IACAC,EAAc;AAAA,IACdA,EAAc;AAAA,IACdC;AAAA,KACAK,IAAAR,KAAA,gBAAAA,EAAU,aAAV,gBAAAQ,EAAoB,IAAI,CAACC,MAAMA,EAAE;AAAA,IACjCC;AAAA,EAAA,GAGFC;AAAA,IACEX;AAAA,IACAE,EAAc,aAAa,WAAW;AAAA,IACtC;AAAA,IACAE;AAAA,IACAF,EAAc;AAAA,IACdG;AAAA,EAAA,GAGF,OAAO;AAAA,IACLL;AAAA,IACAY,EAAgCV,EAAc,cAAcE,GAAkBF,EAAc,cAAcC,CAAU;AAAA,EAAA,GAGtHU;AAAA,IACEb;AAAA,IACAE,EAAc,aAAa,WAAW;AAAA,IACtCA,EAAc,aAAa,WAAW;AAAA,IACtCA,EAAc,aAAa,WAAW;AAAA,IACtCC;AAAA,EAAA,GAGFH,EAAS,OAAO;AAAA,IACd,OAAOH,IAAiCK,EAAc,aAAa;AAAA,IACnE,QAAQJ,IAAkCI,EAAc,aAAa;AAAA,EAAA,GAGhEF;AACT;"}
|
|
@@ -5,7 +5,7 @@ import { DotShape, LineType } from '../../components/AesSettings/types';
|
|
|
5
5
|
import { ScatterplotSettings } from '@milaboratories/miplots4';
|
|
6
6
|
export declare function getStatLayers(statisticsSettings: DiscreteStatisticsState): ChartLayerSettings[];
|
|
7
7
|
export declare function getDiscreteLayersSettings(layers: Layer[], layerSettings: LayersSettings, statisticsSettings: DiscreteStatisticsState, optionsState: DiscreteUIState, inputGuide: InputGuide<InputState>): ChartLayerSettings[];
|
|
8
|
-
export declare function getScatterplotLayersSettings(layers: Layer[], layerSettings: ReturnType<typeof getDefaultLayersSettings>, dataByColumns: PlotDataAndSettings['data']['byColumns'], optionsState: ScatterplotUIState, dataBindAes: ReactiveState['dataBindAes'], inputGuide: InputGuide<InputState>, groupingSchema?: ColumnNameSchema[], defaultDotSize?: number): ScatterplotSettings['layers'];
|
|
8
|
+
export declare function getScatterplotLayersSettings(layers: Layer[], layerSettings: ReturnType<typeof getDefaultLayersSettings>, dataByColumns: PlotDataAndSettings['data']['byColumns'], optionsState: ScatterplotUIState, dataBindAes: ReactiveState['dataBindAes'], inputGuide: InputGuide<InputState>, groupingSchema?: ColumnNameSchema[], defaultDotSize?: number, defaultPalette?: import('../../components/AesSettings/types').ContinuousPalette): ScatterplotSettings['layers'];
|
|
9
9
|
export type ChartLayerSettings = {
|
|
10
10
|
[key: string]: string | number | boolean | null | Record<string, string | DotShape | NumberRange | {
|
|
11
11
|
domain: number[];
|