@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.
Files changed (58) hide show
  1. package/dist/constantsAesthetic.d.ts +0 -1
  2. package/dist/constantsAesthetic.js +16 -17
  3. package/dist/constantsAesthetic.js.map +1 -1
  4. package/dist/constantsCommon.d.ts +4 -0
  5. package/dist/constantsCommon.js +21 -17
  6. package/dist/constantsCommon.js.map +1 -1
  7. package/dist/dataBindAes.d.ts +5 -5
  8. package/dist/dataBindAes.js +110 -110
  9. package/dist/dataBindAes.js.map +1 -1
  10. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +154 -144
  11. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  12. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +263 -193
  13. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  14. package/dist/forms/LayersForm/AesSelector.vue.js +59 -59
  15. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  16. package/dist/forms/LayersForm/Layer/Bubble.vue.js +41 -41
  17. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  18. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +35 -35
  19. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  20. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +31 -31
  21. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
  22. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +35 -35
  23. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  24. package/dist/index.vue.js +94 -90
  25. package/dist/index.vue.js.map +1 -1
  26. package/dist/store.d.ts +8 -3
  27. package/dist/store.js +129 -123
  28. package/dist/store.js.map +1 -1
  29. package/dist/types.d.ts +9 -0
  30. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +2 -2
  31. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +11 -11
  32. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  33. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +2 -2
  34. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +28 -28
  35. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  36. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +23 -20
  37. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  38. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +2 -2
  39. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +20 -18
  40. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  41. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +2 -2
  42. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +28 -28
  43. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  44. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +2 -2
  45. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +11 -10
  46. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  47. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +3 -3
  48. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +71 -68
  49. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  50. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +2 -2
  51. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +19 -18
  52. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  53. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +27 -27
  54. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  55. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts +1 -1
  56. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js +37 -37
  57. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  58. 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 n, DEFAULT_BLACK as t, DEFAULT_CONTINUOUS_PALETTE as p } from "../../constantsAesthetic.js";
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 A } from "./getAxesDataFromForms.js";
4
+ import { getAxesDataFromForms as c } from "./getAxesDataFromForms.js";
5
5
  import "@milaboratories/pf-plots";
6
6
  import "@platforma-sdk/model";
7
- const e = 40, c = e / 2 - 2, g = 3;
8
- function _(o, a) {
7
+ const e = 40, g = e / 2 - 2, u = 3;
8
+ function E(o, a, n) {
9
9
  var l;
10
- const m = a.template, r = a.layersSettings[m], i = (l = a.dataBindAes[o.valueColor.value]) == null ? void 0 : l.palette;
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 ?? t,
13
- colorsList: n[i ?? p].colors,
14
- maxRadius: c * (a.chartScale / 100),
15
- minRadius: g
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
- A(a.axesSettings, a.chartType)
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
- _ as composeBubbleSettings
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 DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP,\n} from '../../constantsAesthetic';\nimport type { BubbleLayer, 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) {\n const template = reactiveState.template as BubbleLayer;\n const layerSettings = reactiveState.layersSettings[template];\n const palette = reactiveState.dataBindAes[settings.valueColor.value]?.palette;\n settings.aes = {\n cellStrokeColor: layerSettings.strokeColor ?? DEFAULT_BLACK,\n colorsList: PALETTE_MAP[palette ?? DEFAULT_CONTINUOUS_PALETTE].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","template","layerSettings","palette","_a","DEFAULT_BLACK","PALETTE_MAP","DEFAULT_CONTINUOUS_PALETTE","getAxesDataFromForms"],"mappings":";;;;;;AASA,MAAMA,IAAoB,IACpBC,IAAgBD,IAAoB,IAAI,GACxCE,IAAgB;AACf,SAASC,EACdC,GACAC,GACA;;AACA,QAAMC,IAAWD,EAAc,UACzBE,IAAgBF,EAAc,eAAeC,CAAQ,GACrDE,KAAUC,IAAAJ,EAAc,YAAYD,EAAS,WAAW,KAAK,MAAnD,gBAAAK,EAAsD;AACtE,SAAAL,EAAS,MAAM;AAAA,IACb,iBAAiBG,EAAc,eAAeG;AAAA,IAC9C,YAAYC,EAAYH,KAAWI,CAA0B,EAAE;AAAA,IAC/D,WAAWX,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,YAAYG,EAAc,WAC/BA,EAAc,2BAChBH,EAAS,gBAAgB;AAAA,IACvB,QAAQG,EAAc;AAAA,IACtB,WAAWA,EAAc;AAAA,EAAA,KAIzBA,EAAc,gBAAgBA,EAAc,kBAC9CH,EAAS,cAAc;AAAA,IACrB,GAAGG,EAAc,gBAAgBH,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,GAAGG,EAAc,gBAAgBH,EAAS,YAAYA,EAAS,SAAS,SAAS;AAAA,IACjF,QAAQG,EAAc;AAAA,EAAA,IAInBH;AACT;"}
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 a } from "@milaboratories/pf-plots";
2
- import { addFixedOptionsToState as T } from "../addFixedOptionsToState.js";
3
- import { DEFAULT_HEIGHT_SMALL as g, DEFAULT_HEIGHT as y, DEFAULT_WIDTH_SMALL as b, DEFAULT_WIDTH as w } from "../../constantsCommon.js";
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 ? g : y) * (s / 100)
14
+ height: (n > 0 ? y : a) * (s / 100)
15
15
  };
16
16
  }
17
- function B(s, n, r, m) {
18
- var o, t;
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 (m.title.mode === "hidden")
21
+ if (i.title.mode === "hidden")
22
22
  return { name: "", show: !1 };
23
- if (m.title.mode === "custom")
24
- return { name: m.title.value, show: !0, position: m.title.position };
25
- if (m.title.mode === "auto") {
26
- const e = [], i = ((o = n.components) == null ? void 0 : o.tabBy.selectorStates) ?? [], f = (((t = n.components) == null ? void 0 : t.filters.selectorStates) ?? []).filter((l) => !i.some((p) => p.selectedSource === l.selectedSource));
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
- ...i,
29
- ...f
30
- ].forEach(({ type: l, selectedSource: p, selectedFilterValues: u }) => {
31
- if ((!l || l === "equals") && u && r[p]) {
32
- const { value: h, label: d } = r[p];
33
- e.push(...u.map((c) => h === c ? d : String(c)));
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: e.join(", "), show: !0, position: m.title.position };
35
+ }), { name: t.join(", "), show: !0, position: i.title.position };
36
36
  }
37
37
  return { name: "", show: !1 };
38
38
  }
39
- async function K(s, n, r, m) {
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 = a(n.chartType), t = await T(
43
+ const o = d(n.chartType), m = await g(
44
44
  n.optionsState,
45
45
  r,
46
- m
46
+ i
47
47
  );
48
48
  return o.createDataForPlot(
49
49
  r,
50
- t
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 N(s, n, r, m, o) {
57
- var i;
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 e = s.data.byColumns;
62
- return t.title = B(o.chartType, o.optionsState, m, o.axesSettings), t.size = _(o.chartScale, ((i = o.optionsState.components) == null ? void 0 : i.facetBy.selectorStates.length) || 0), o.chartType === "discrete" && (t = C(t, o, r, n)), o.chartType === "scatterplot" && (t = H(t, e, o, n, r)), o.chartType === "scatterplot-umap" && (t = D(t, e, o, n, r)), o.chartType === "heatmap" && (t = E(t, o)), o.chartType === "dendro" && (t = F(t, e, o, n, r)), o.chartType === "histogram" && (t = A(t, o, r)), o.chartType === "bubble" && (t = L(t, o)), {
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
- N as composeChartSettings,
69
- K as loadDataForPlot
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":"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"}
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 g, DEFAULT_DOT_RANGE as T } from "../../dataBindAes.js";
2
- import { DEFAULT_BLACK as F, PALETTE_MAP as p } from "../../constantsAesthetic.js";
3
- import { DEFAULT_HEIGHT as _, DEFAULT_WIDTH as D, isNumberRange as M } from "../../constantsCommon.js";
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 x(o, z, r, C, d) {
6
- var h, f, m, u, y;
7
- o.rootPosition = "left", o.size = { width: D, height: _ };
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 = (h = n.nodeShape.selectorStates[0]) == null ? void 0 : h.selectedSource, l = 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 = g;
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 = (f = n.nodeColor.selectorStates[0]) == null ? void 0 : f.selectedSource, l = 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 = (m = n.nodeSize.selectorStates[0]) == null ? void 0 : m.selectedSource;
30
+ const s = (u = n.nodeSize.selectorStates[0]) == null ? void 0 : u.selectedSource;
29
31
  let [l, c] = [1 / 0, -1 / 0];
30
- z.values[s].forEach((i) => {
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 = M(t.dotSize) ? [t.dotSize.min, t.dotSize.max] : [T.min, T.max];
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 = (u = n.lineColor.selectorStates[0]) == null ? void 0 : u.selectedSource;
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 = C.getSourceInfo(s), c = l.type === "Double" || l.type === "Float" || l.type === "Int" || l.type === "Long" ? "continuous" : "discrete", i = p.bright.colors;
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 A = (y = d[s]) == null ? void 0 : y.list;
53
- A && (a = A.reduce((b, L, E) => (b[L] = i[E % i.length], b), {})), o.heatmapSettings = {
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
- x as composeDendroSettings
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":"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"}
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 y } from "../../dataBindAes.js";
3
- import { getUsedAesInMapping as c } from "../getUsedAesInMapping.js";
4
- import { getDiscreteLayersSettings as g } from "./getLayersDataFromForms.js";
5
- import { getAxesDataFromForms as f } from "./getAxesDataFromForms.js";
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 T(r, o, i, l) {
11
- var s;
12
- const d = g(
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
- ), m = c(
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 = d;
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 = m[p];
30
+ const p = n.primaryGrouping.selectorStates[0].selectedSource, a = s[p];
31
31
  Object.assign(
32
32
  r.primaryGrouping,
33
- y(
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 = m[p];
44
+ const p = n.secondaryGrouping.selectorStates[0].selectedSource, a = s[p];
44
45
  Object.assign(
45
46
  r.secondaryGrouping,
46
- y(
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 G = r.primaryGrouping ? (s = i[r.primaryGrouping.columnName.value]) == null ? void 0 : s.options : [];
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
- f(o.axesSettings, o.chartType, G)
59
+ x(o.axesSettings, o.chartType, c)
58
60
  ), r;
59
61
  }
60
62
  export {
61
- T as composeDiscreteSettings
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":";;;;;;;;;AAeO,SAASA,EACdC,GACAC,GACAC,GACAC,GACA;;AACA,QAAMC,IAASC;AAAA,IACbC,EAAuBL,EAAc,QAAkC;AAAA,IACvEA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdE;AAAA,EAAA,GAEII,IAAuBC;AAAA,IAC3BP,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdA,EAAc;AAAA,IACdE;AAAA,EAAA;AAEF,EAAAH,EAAS,SAASI;AAElB,QAAMK,IAAgBR,EAAc,aAAa;AAEjD,MAAIQ,EAAc,gBAAgB,eAAe,UAAUT,EAAS,iBAAiB;AACnF,IAAAA,EAAS,kBAAkB,EAAE,GAAGA,EAAS,gBAAA,GACrCA,EAAS,gBAAgB,UAC3BA,EAAS,gBAAgB,QAAQ,CAAC,GAAGA,EAAS,gBAAgB,KAAK;AAErE,UAAMU,IAAaD,EAAc,gBAAgB,eAAe,CAAC,EAAE,gBAC7DE,IAAmBJ,EAAqBG,CAAU;AACxD,WAAO;AAAA,MACLV,EAAS;AAAA,MACTY;AAAA,QACEV;AAAA,QACAD,EAAc,YAAYS,CAAU;AAAA,QACpCA;AAAA,QACAC;AAAA,MAAA;AAAA,IACF,GAEFX,EAAS,gBAAgB,iBAAiBC,EAAc,aAAa,MAAM,wBACvE,CAACA,EAAc,aAAa,MAAM,0BAA0BD,EAAS,gBAAgB,UACvFA,EAAS,gBAAgB,QAAQA,EAAS,gBAAgB,MAAM,OAAO,CAACa,MAAMA,MAAM,MAAM;AAAA,EAE9F;AACA,MAAIJ,EAAc,kBAAkB,kBAAkBT,EAAS,mBAAmB;AAChF,IAAAA,EAAS,oBAAoB,EAAE,GAAGA,EAAS,kBAAA,GACvCA,EAAS,kBAAkB,UAC7BA,EAAS,kBAAkB,QAAQ,CAAC,GAAGA,EAAS,kBAAkB,KAAK;AAEzE,UAAMU,IAAaD,EAAc,kBAAkB,eAAe,CAAC,EAAE,gBAC/DE,IAAmBJ,EAAqBG,CAAU;AACxD,WAAO;AAAA,MACLV,EAAS;AAAA,MACTY;AAAA,QACEV;AAAA,QACAD,EAAc,YAAYS,CAAU;AAAA,QACpCA;AAAA,QACAC;AAAA,MAAA;AAAA,IACF,GAEFX,EAAS,kBAAkB,iBAAiBC,EAAc,aAAa,MAAM,0BACzE,CAACA,EAAc,aAAa,MAAM,0BAA0BD,EAAS,kBAAkB,UACzFA,EAAS,kBAAkB,QAAQA,EAAS,kBAAkB,MAAM,OAAO,CAACa,MAAMA,MAAM,MAAM;AAAA,EAElG;AAEA,QAAMC,IAAgBd,EAAS,mBAAkBe,IAAAb,EAAiBF,EAAS,gBAAgB,WAAW,KAAK,MAA1D,gBAAAe,EAA6D,UAAU,CAAA;AAExH,gBAAO;AAAA,IACLf;AAAA,IACAgB,EAAqBf,EAAc,cAAcA,EAAc,WAAWa,CAAa;AAAA,EAAA,GAGlFd;AACT;"}
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;