@milaboratories/graph-maker 1.1.145 → 1.1.147

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 (27) hide show
  1. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.d.ts +1 -0
  2. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
  3. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js +155 -121
  4. package/dist/GraphMaker/components/AesSettings/AesDataMappingDiscrete.vue.js.map +1 -1
  5. package/dist/GraphMaker/dataBindAes.d.ts +1 -0
  6. package/dist/GraphMaker/dataBindAes.d.ts.map +1 -1
  7. package/dist/GraphMaker/dataBindAes.js +73 -66
  8. package/dist/GraphMaker/dataBindAes.js.map +1 -1
  9. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.d.ts.map +1 -1
  10. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +2 -0
  11. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  12. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.d.ts.map +1 -1
  13. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js +37 -36
  14. package/dist/GraphMaker/forms/LayersForm/AesSelector.vue.js.map +1 -1
  15. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  16. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js +31 -29
  17. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  18. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
  19. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js +6 -6
  20. package/dist/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  21. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js +102 -101
  22. package/dist/node_modules/@milaboratories/miplots4/dist/discrete/index.js.map +1 -1
  23. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js +135 -135
  24. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/ChartRenderer.js.map +1 -1
  25. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js +10 -2
  26. package/dist/node_modules/@milaboratories/miplots4/dist/utils/arraysAreDifferent.js.map +1 -1
  27. package/package.json +2 -2
@@ -1,4 +1,4 @@
1
- import { defineComponent as Q, computed as c, ref as b, watch as Z, createElementBlock as _, openBlock as y, Fragment as q, createElementVNode as O, createBlock as g, createCommentVNode as S, createVNode as R, withModifiers as ee, unref as te, withCtx as h, normalizeClass as le } from "vue";
1
+ import { defineComponent as Q, computed as c, ref as b, watch as Z, createElementBlock as _, openBlock as y, Fragment as q, createElementVNode as O, createBlock as g, createCommentVNode as S, createVNode as B, withModifiers as ee, unref as te, withCtx as R, normalizeClass as le } from "vue";
2
2
  import { PlDropdown as ae } from "@platforma-sdk/ui-vue";
3
3
  import { createDefaultMapping as oe, createContinuousMappingFromPalette as ue } from "../../dataBindAes.js";
4
4
  import { FIXED_COLORS as A, DEFAULT_LINE_TYPE as ie, DEFAULT_DOT_SHAPE as ne, FIXED_LINE_TYPES as se, FIXES_DOT_SHAPES as re, DEFAULT_CONTINUOUS_PALETTE as pe } from "../../constantsAesthetic.js";
@@ -12,7 +12,7 @@ import ye from "../../components/AesSettings/FixedLineTypeList.vue.js";
12
12
  import ge from "../../components/AesSettings/FormWrapper.vue.js";
13
13
  import Se from "../../components/AesSettings/AesDataMappingDiscrete.vue.js";
14
14
  import Te from "../../components/AesSettings/AesDataMappingContinuous.vue.js";
15
- const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
15
+ const Ee = { class: "aes-input-row" }, he = /* @__PURE__ */ Q({
16
16
  __name: "AesSelector",
17
17
  props: {
18
18
  label: {},
@@ -26,8 +26,8 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
26
26
  },
27
27
  emits: ["aes-update", "aes-selector-close"],
28
28
  setup(L, { emit: M }) {
29
- var N, P;
30
- const n = L, f = ve(), i = c(() => f.value.reactive.chartType), D = M, W = {
29
+ var h, N;
30
+ const n = L, f = ve(), u = c(() => f.value.reactive.chartType), D = M, W = {
31
31
  discrete: ["primaryGrouping", "secondaryGrouping"],
32
32
  scatterplot: ["grouping"],
33
33
  "scatterplot-umap": ["grouping"],
@@ -35,11 +35,11 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
35
35
  heatmap: [],
36
36
  histogram: ["grouping"],
37
37
  bubble: []
38
- }, H = n.possibleAesSourceInputs ?? W[i.value], Y = c(
38
+ }, H = n.possibleAesSourceInputs ?? W[u.value], Y = c(
39
39
  () => f.value.commonHelpersData.usedAesInMapping.value
40
40
  );
41
41
  function V(t) {
42
- return typeof t == "string" ? t : i.value === "scatterplot" ? `grouping_${t.value}` : i.value === "dendro" ? `${t.type}_${t.value}` : t.type;
42
+ return typeof t == "string" ? t : u.value === "scatterplot" ? `grouping_${t.value}` : u.value === "dendro" ? `${t.type}_${t.value}` : t.type;
43
43
  }
44
44
  const s = b(
45
45
  x(n.selected) ? V(n.selected) : "fix"
@@ -50,7 +50,7 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
50
50
  lineType: ie,
51
51
  size: ""
52
52
  // temporary
53
- }, X = c(() => f.value.inputGuide.value), K = c(() => f.value.uniqueValuesData.value), U = /* @__PURE__ */ new Set([
53
+ }, X = c(() => f.value.inputGuide.value), K = c(() => f.value.uniqueValuesData.value), w = /* @__PURE__ */ new Set([
54
54
  "scatterplot",
55
55
  "scatterplot-umap",
56
56
  "heatmap"
@@ -58,7 +58,7 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
58
58
  const t = {}, e = f.value.reactive.optionsState.components;
59
59
  function p(a, l) {
60
60
  const o = X.value.getSourceInfo(l), d = K.value[l], E = (d == null ? void 0 : d.list) ?? [], v = (d == null ? void 0 : d.labels) ?? {}, $ = V({ type: a, value: l });
61
- if (U.has(i.value) && o.type === "String" || !U.has(i.value)) {
61
+ if (w.has(u.value) && o.type === "String" || !w.has(u.value)) {
62
62
  const C = f.value.reactive.dataBindAes[l] ?? oe(E);
63
63
  t[$] = {
64
64
  type: "dataCategorical",
@@ -69,7 +69,7 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
69
69
  selectedSourceInfo: o,
70
70
  selectedSourceValues: E,
71
71
  labels: C.order.reduce(
72
- (B, k) => (B[k] = v[k] ?? String(k), B),
72
+ (P, k) => (P[k] = v[k] ?? String(k), P),
73
73
  {}
74
74
  )
75
75
  };
@@ -96,14 +96,14 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
96
96
  value: "fix",
97
97
  initialData: x(n.selected) ? z[n.type] : n.selected
98
98
  }), t;
99
- }), u = c(
99
+ }), i = c(
100
100
  () => r.value[s.value] ?? null
101
101
  );
102
102
  function j(t, e) {
103
103
  var p, a, l, o;
104
- return t.type === "fix" ? "Fixed" : e === t.value ? `${(p = t.selectedSourceInfo) == null ? void 0 : p.label}` : i.value === "discrete" ? `${t.value === "primaryGrouping" ? "Primary" : "Secondary"} grouping: ${(a = t.selectedSourceInfo) == null ? void 0 : a.label}` : i.value === "scatterplot" || i.value === "dendro" ? `Grouping: ${(l = t.selectedSourceInfo) == null ? void 0 : l.label}` : ((o = t.selectedSourceInfo) == null ? void 0 : o.label) ?? "";
104
+ return t.type === "fix" ? "Fixed" : e === t.value ? `${(p = t.selectedSourceInfo) == null ? void 0 : p.label}` : u.value === "discrete" ? `${t.value === "primaryGrouping" ? "Primary" : "Secondary"} grouping: ${(a = t.selectedSourceInfo) == null ? void 0 : a.label}` : u.value === "scatterplot" || u.value === "dendro" ? `Grouping: ${(l = t.selectedSourceInfo) == null ? void 0 : l.label}` : ((o = t.selectedSourceInfo) == null ? void 0 : o.label) ?? "";
105
105
  }
106
- const G = c(() => {
106
+ const U = c(() => {
107
107
  const t = [], e = f.value.reactive.optionsState.components;
108
108
  function p(a, l) {
109
109
  const o = V({
@@ -122,15 +122,15 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
122
122
  });
123
123
  }), !r.value[s.value]) {
124
124
  let a = "Not consistent (grouping)";
125
- i.value === "discrete" && (a = `${s.value === "primaryGrouping" ? "Primary" : "Secondary"} grouping (not selected)`), t.push({ text: a, value: s.value });
125
+ u.value === "discrete" && (a = `${s.value === "primaryGrouping" ? "Primary" : "Secondary"} grouping (not selected)`), t.push({ text: a, value: s.value });
126
126
  }
127
127
  return n.withoutFixed || t.push({ text: "Fixed", value: "fix" }), t;
128
128
  }), T = b(!1), m = b(
129
129
  r.value.fix ? r.value.fix.initialData : null
130
130
  ), F = b(
131
- ((N = u.value) == null ? void 0 : N.type) === "dataCategorical" ? u.value.initialData : null
131
+ ((h = i.value) == null ? void 0 : h.type) === "dataCategorical" ? i.value.initialData : null
132
132
  ), I = b(
133
- ((P = u.value) == null ? void 0 : P.type) === "dataContinuous" ? u.value.initialData : null
133
+ ((N = i.value) == null ? void 0 : N.type) === "dataContinuous" ? i.value.initialData : null
134
134
  );
135
135
  Z(
136
136
  () => s.value,
@@ -139,7 +139,7 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
139
139
  e.type === "fix" ? D("aes-update", m.value, e) : e.type === "dataCategorical" ? (F.value = e.initialData, D("aes-update", e.initialData, e)) : e.type === "dataContinuous" && (I.value = e.initialData, D("aes-update", e.initialData, e));
140
140
  }
141
141
  );
142
- const w = b(), J = c(() => {
142
+ const G = b(), J = c(() => {
143
143
  if (n.type === "lineType")
144
144
  return se.length * 32 + 16 * 2;
145
145
  if (n.type === "dotShape")
@@ -156,29 +156,29 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
156
156
  onClick: e[1] || (e[1] = ee(() => {
157
157
  }, ["stop"]))
158
158
  }, [
159
- R(te(ae), {
160
- disabled: t.disabled || G.value.length < 2,
159
+ B(te(ae), {
160
+ disabled: t.disabled || U.value.length < 2,
161
161
  label: t.label,
162
- options: G.value,
162
+ options: U.value,
163
163
  modelValue: s.value,
164
164
  "onUpdate:modelValue": e[0] || (e[0] = (l) => s.value = l)
165
165
  }, null, 8, ["disabled", "label", "options", "modelValue"])
166
166
  ]),
167
- R(de, {
167
+ B(de, {
168
168
  data: {
169
169
  type: s.value === "fix" ? t.type : "data",
170
170
  value: s.value === "fix" ? t.type === "size" ? Number(t.selected) : t.selected : null
171
171
  },
172
172
  onClick: e[2] || (e[2] = (l) => T.value = !T.value),
173
- onRef: e[3] || (e[3] = (l) => w.value = l)
173
+ onRef: e[3] || (e[3] = (l) => G.value = l)
174
174
  }, null, 8, ["data"]),
175
175
  s.value === "fix" && T.value && m.value ? (y(), g(fe, {
176
176
  key: 0,
177
177
  height: J.value,
178
- targetRef: w.value,
178
+ targetRef: G.value,
179
179
  "onPopup:close": e[10] || (e[10] = (l) => T.value = !1)
180
180
  }, {
181
- default: h(() => [
181
+ default: R(() => [
182
182
  O("div", {
183
183
  class: le(["fixed-aes-list", { "fixed-aes-list__rows": t.type === "lineType" }])
184
184
  }, [
@@ -212,34 +212,35 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
212
212
  _: 1
213
213
  }, 8, ["height", "targetRef"])) : S("", !0)
214
214
  ]),
215
- (((p = u.value) == null ? void 0 : p.type) === "dataCategorical" && F.value || ((a = u.value) == null ? void 0 : a.type) === "dataContinuous" && I.value) && T.value ? (y(), g(ge, {
215
+ (((p = i.value) == null ? void 0 : p.type) === "dataCategorical" && F.value || ((a = i.value) == null ? void 0 : a.type) === "dataContinuous" && I.value) && T.value ? (y(), g(ge, {
216
216
  key: 0,
217
217
  title: t.formTitle,
218
218
  "back-title": t.formBackTitle,
219
219
  "onForm:close": e[15] || (e[15] = (l) => T.value = !1)
220
220
  }, {
221
- default: h(() => {
221
+ default: R(() => {
222
222
  var l, o, d, E;
223
223
  return [
224
- ((l = u.value) == null ? void 0 : l.type) === "dataCategorical" && F.value ? (y(), g(Se, {
224
+ ((l = i.value) == null ? void 0 : l.type) === "dataCategorical" && F.value ? (y(), g(Se, {
225
225
  key: 0,
226
- "column-value-labels": u.value.labels,
227
- "data-column-label": ((o = u.value.selectedSourceInfo) == null ? void 0 : o.label) ?? "",
228
- "used-aes-in-mapping": Y.value[u.value.selectedSource],
229
- "allow-reordering": i.value === "discrete" || i.value === "histogram" || i.value === "scatterplot" || i.value === "scatterplot-umap",
226
+ "column-value-labels": i.value.labels,
227
+ "data-column-label": ((o = i.value.selectedSourceInfo) == null ? void 0 : o.label) ?? "",
228
+ "used-aes-in-mapping": Y.value[i.value.selectedSource],
229
+ "allow-hiding": u.value === "discrete",
230
+ "allow-reordering": u.value === "discrete" || u.value === "histogram" || u.value === "scatterplot" || u.value === "scatterplot-umap",
230
231
  modelValue: F.value,
231
232
  "onUpdate:modelValue": [
232
233
  e[11] || (e[11] = (v) => F.value = v),
233
- e[12] || (e[12] = (v) => t.$emit("aes-update", v, u.value))
234
+ e[12] || (e[12] = (v) => t.$emit("aes-update", v, i.value))
234
235
  ]
235
- }, null, 8, ["column-value-labels", "data-column-label", "used-aes-in-mapping", "allow-reordering", "modelValue"])) : S("", !0),
236
- ((d = u.value) == null ? void 0 : d.type) === "dataContinuous" && I.value ? (y(), g(Te, {
236
+ }, null, 8, ["column-value-labels", "data-column-label", "used-aes-in-mapping", "allow-hiding", "allow-reordering", "modelValue"])) : S("", !0),
237
+ ((d = i.value) == null ? void 0 : d.type) === "dataContinuous" && I.value ? (y(), g(Te, {
237
238
  key: 1,
238
- "data-column-label": ((E = u.value.selectedSourceInfo) == null ? void 0 : E.label) ?? "",
239
+ "data-column-label": ((E = i.value.selectedSourceInfo) == null ? void 0 : E.label) ?? "",
239
240
  modelValue: I.value,
240
241
  "onUpdate:modelValue": [
241
242
  e[13] || (e[13] = (v) => I.value = v),
242
- e[14] || (e[14] = (v) => t.$emit("aes-update", v, u.value))
243
+ e[14] || (e[14] = (v) => t.$emit("aes-update", v, i.value))
243
244
  ]
244
245
  }, null, 8, ["data-column-label", "modelValue"])) : S("", !0)
245
246
  ];
@@ -251,6 +252,6 @@ const Ee = { class: "aes-input-row" }, Ne = /* @__PURE__ */ Q({
251
252
  }
252
253
  });
253
254
  export {
254
- Ne as default
255
+ he as default
255
256
  };
256
257
  //# sourceMappingURL=AesSelector.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AesSelector.vue.js","sources":["../../../../src/GraphMaker/forms/LayersForm/AesSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport {\n AestheticMappingCategorical, AestheticMappingContinuous, createContinuousMappingFromPalette,\n createDefaultMapping\n} from '../../dataBindAes';\nimport {\n AesOption,\n DotShape,\n LineType\n} from '../../components/AesSettings/types';\nimport {\n DEFAULT_CONTINUOUS_PALETTE,\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n FIXED_COLORS,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES\n} from '../../constantsAesthetic';\nimport AesButton, { type AesButtonProps } from '../../components/AesButton.vue';\nimport { useStore } from '../../store';\nimport { AesType, isMappedAes, MappingLink } from '../../constantsCommon';\nimport Popup from '../../components/Popup.vue';\nimport FixedColorsList from '../../components/AesSettings/FixedColorsList.vue';\nimport FixedDotShapeList from '../../components/AesSettings/FixedDotShapeList.vue';\nimport FixedLineTypeList from '../../components/AesSettings/FixedLineTypeList.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport AesDataMappingDiscrete from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport AesDataMappingContinuous from '../../components/AesSettings/AesDataMappingContinuous.vue';\nimport { ChartType } from '@milaboratories/pf-plots';\n\nconst props = defineProps<{\n label: string;\n type: AesType;\n selected: string | MappingLink;\n formTitle: string;\n formBackTitle: string;\n possibleAesSourceInputs?: string[];\n withoutFixed?: boolean;\n disabled?: boolean;\n}>();\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n discrete: ['primaryGrouping', 'secondaryGrouping'],\n scatterplot: ['grouping'],\n 'scatterplot-umap': ['grouping'],\n dendro: [],\n heatmap: [],\n histogram: ['grouping'],\n bubble: []\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\nconst usedAesInMapping = computed(\n () => {\n const v = store.value.commonHelpersData.usedAesInMapping.value;\n return v;\n }\n);\n\nfunction getKeyFromSelectedType(value: MappingLink | string) {\n if (typeof value === 'string') {\n return value;\n }\n if (chartType.value === 'scatterplot') {\n return `grouping_${value.value}`;\n }\n if (chartType.value === 'dendro') {\n return `${value.type}_${value.value}`;\n }\n return value.type;\n}\n\nconst selectedType = ref(\n isMappedAes(props.selected) ? getKeyFromSelectedType(props.selected) : 'fix'\n);\nconst DEFAULT_BY_TYPES: Record<AesType, string | DotShape | LineType> = {\n fill: FIXED_COLORS[0].color,\n stroke: FIXED_COLORS[0].color,\n dotShape: DEFAULT_DOT_SHAPE,\n lineType: DEFAULT_LINE_TYPE,\n size: '' // temporary\n};\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst chartTypesWithContinuousColors = new Set<ChartType>([\n 'scatterplot', 'scatterplot-umap', 'heatmap'\n]);\n\nconst optionsInfo = computed(() => {\n const res: Record<string, AesOption> = {};\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addInfo(name: string, source: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(source);\n const uniqueValuesItem = labelsInfo.value[source];\n const uniqueValues = uniqueValuesItem?.list ?? [];\n const valueLabels = uniqueValuesItem?.labels ?? {};\n const key = getKeyFromSelectedType({ type: name, value: source });\n if (\n chartTypesWithContinuousColors.has(chartType.value) && selectedSourceInfo.type === 'String' ||\n !chartTypesWithContinuousColors.has(chartType.value)\n ) {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createDefaultMapping(uniqueValues)) as AestheticMappingCategorical;\n res[key] = {\n type: 'dataCategorical',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n labels: mapping.order.reduce(\n (res: Record<string, string>, v: string | number) => {\n res[v] = valueLabels[v] ?? String(v);\n return res;\n },\n {}\n )\n };\n } else {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createContinuousMappingFromPalette(DEFAULT_CONTINUOUS_PALETTE)) as AestheticMappingContinuous;\n res[key] = {\n type: 'dataContinuous',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues\n };\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addInfo(name, selectedSource);\n });\n }\n });\n\n if (!props.withoutFixed) {\n res['fix'] = {\n type: 'fix',\n value: 'fix',\n initialData: isMappedAes(props.selected)\n ? DEFAULT_BY_TYPES[props.type]\n : props.selected\n };\n }\n return res;\n});\n\nconst option = computed<AesOption | null>(\n () => optionsInfo.value[selectedType.value] ?? null\n);\n\nfunction getTitle(option: AesOption, selected: string) {\n if (option.type === 'fix') {\n return 'Fixed';\n }\n if (selected === option.value) {\n return `${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'discrete') {\n return `${\n option.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping: ${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${option.selectedSourceInfo?.label}`;\n }\n return option.selectedSourceInfo?.label ?? '';\n}\n\nconst typeOptions = computed(() => {\n const options = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addOption(name: string, source: string) {\n const key = getKeyFromSelectedType({\n type: name === 'shape' ? 'grouping' : name,\n value: source\n });\n if (optionsInfo.value[key]) {\n options.push({\n text: getTitle(optionsInfo.value[key], selectedType.value),\n value: key\n });\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addOption(name, selectedSource);\n });\n }\n });\n if (!optionsInfo.value[selectedType.value]) {\n let text = 'Not consistent (grouping)';\n if (chartType.value === 'discrete') {\n text = `${\n selectedType.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping (not selected)`;\n }\n options.push({ text, value: selectedType.value });\n }\n if (!props.withoutFixed) {\n options.push({ text: 'Fixed', value: 'fix' });\n }\n return options;\n});\n\nconst openForm = ref(false);\n\nconst defaultFixed = ref(\n optionsInfo.value['fix']\n ? (optionsInfo.value['fix'].initialData as string)\n : null\n);\nconst defaultMappingCategorical = ref(\n option.value?.type === 'dataCategorical'\n ? (option.value.initialData as AestheticMappingCategorical)\n : null\n);\n\nconst defaultMappingContinuous = ref(\n option.value?.type === 'dataContinuous'\n ? (option.value.initialData as AestheticMappingContinuous)\n : null\n);\nwatch(\n () => selectedType.value,\n (value) => {\n const option = optionsInfo.value[value];\n if (option.type === 'fix') {\n emit('aes-update', defaultFixed.value, option);\n } else if (option.type === 'dataCategorical') {\n defaultMappingCategorical.value = option.initialData;\n emit('aes-update', option.initialData, option);\n } else if (option.type === 'dataContinuous') {\n defaultMappingContinuous.value = option.initialData;\n emit('aes-update', option.initialData, option);\n }\n }\n);\n\nconst aesButtonRef = ref();\n\n//TODO: move to utils\nconst popupHeight = computed(() => {\n if (props.type === 'lineType') {\n const ROW_HEIGHT = 32;\n const OFFSET = 16;\n return FIXED_LINE_TYPES.length * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'dotShape') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXES_DOT_SHAPES.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'fill' || props.type === 'stroke') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXED_COLORS.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n});\n\n</script>\n\n<template>\n <div class=\"aes-input-row\">\n <div class=\"aes-input-select\" @click.stop>\n <pl-dropdown\n :disabled=\"disabled || typeOptions.length < 2\"\n :label=\"label\"\n :options=\"typeOptions\"\n v-model=\"selectedType\"\n />\n </div>\n <aes-button\n :data=\"{\n type: selectedType === 'fix' ? type : 'data',\n value: selectedType === 'fix' ? type === 'size' ? Number(selected) : selected as string : null\n } as AesButtonProps['data']\"\n @click=\"openForm = !openForm\"\n @ref=\"(el:Element) => (aesButtonRef = el)\"\n />\n <popup\n v-if=\"selectedType === 'fix' && openForm && defaultFixed\"\n :height=\"popupHeight\"\n :targetRef=\"aesButtonRef\"\n @popup:close=\"openForm = false\"\n >\n <div\n class=\"fixed-aes-list\"\n :class=\"{ 'fixed-aes-list__rows': type === 'lineType' }\"\n >\n <fixed-colors-list\n v-if=\"type === 'fill' || type === 'stroke'\"\n :color-using=\"type\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:string) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <fixed-dot-shape-list\n v-if=\"type === 'dotShape'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:DotShape) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <fixed-line-type-list\n v-if=\"type === 'lineType'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:LineType) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n </div>\n </popup>\n </div>\n <template v-if=\"(\n (option?.type === 'dataCategorical' && defaultMappingCategorical) ||\n (option?.type === 'dataContinuous' && defaultMappingContinuous)) && openForm\">\n <form-wrapper\n :title=\"formTitle\"\n :back-title=\"formBackTitle\"\n @form:close=\"openForm = false\"\n >\n <aes-data-mapping-discrete\n v-if=\"option?.type === 'dataCategorical' && defaultMappingCategorical\"\n :column-value-labels=\"option.labels\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[option.selectedSource]\"\n :allow-reordering=\"chartType === 'discrete' || chartType === 'histogram' || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n v-model=\"defaultMappingCategorical\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => $emit('aes-update', value, option)\"\n />\n <aes-data-mapping-continuous\n v-if=\"option?.type === 'dataContinuous' && defaultMappingContinuous\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n v-model=\"defaultMappingContinuous\"\n @update:modelValue=\"(value:AestheticMappingContinuous) => $emit('aes-update', value, option)\"\n />\n </form-wrapper>\n </template>\n</template>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","usedAesInMapping","getKeyFromSelectedType","value","selectedType","ref","isMappedAes","DEFAULT_BY_TYPES","FIXED_COLORS","DEFAULT_DOT_SHAPE","DEFAULT_LINE_TYPE","inputGuide","labelsInfo","chartTypesWithContinuousColors","optionsInfo","res","inputStateMap","addInfo","name","source","selectedSourceInfo","uniqueValuesItem","uniqueValues","valueLabels","key","mapping","createDefaultMapping","v","createContinuousMappingFromPalette","DEFAULT_CONTINUOUS_PALETTE","_a","selectedSource","option","getTitle","selected","typeOptions","options","addOption","text","openForm","defaultFixed","defaultMappingCategorical","defaultMappingContinuous","_b","watch","aesButtonRef","popupHeight","FIXED_LINE_TYPES","FIXES_DOT_SHAPES"],"mappings":"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"}
1
+ {"version":3,"file":"AesSelector.vue.js","sources":["../../../../src/GraphMaker/forms/LayersForm/AesSelector.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ref, computed, watch } from 'vue';\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport {\n AestheticMappingCategorical, AestheticMappingContinuous, createContinuousMappingFromPalette,\n createDefaultMapping\n} from '../../dataBindAes';\nimport {\n AesOption,\n DotShape,\n LineType\n} from '../../components/AesSettings/types';\nimport {\n DEFAULT_CONTINUOUS_PALETTE,\n DEFAULT_DOT_SHAPE,\n DEFAULT_LINE_TYPE,\n FIXED_COLORS,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES\n} from '../../constantsAesthetic';\nimport AesButton, { type AesButtonProps } from '../../components/AesButton.vue';\nimport { useStore } from '../../store';\nimport { AesType, isMappedAes, MappingLink } from '../../constantsCommon';\nimport Popup from '../../components/Popup.vue';\nimport FixedColorsList from '../../components/AesSettings/FixedColorsList.vue';\nimport FixedDotShapeList from '../../components/AesSettings/FixedDotShapeList.vue';\nimport FixedLineTypeList from '../../components/AesSettings/FixedLineTypeList.vue';\nimport FormWrapper from '../../components/AesSettings/FormWrapper.vue';\nimport AesDataMappingDiscrete from '../../components/AesSettings/AesDataMappingDiscrete.vue';\nimport AesDataMappingContinuous from '../../components/AesSettings/AesDataMappingContinuous.vue';\nimport { ChartType } from '@milaboratories/pf-plots';\n\nconst props = defineProps<{\n label: string;\n type: AesType;\n selected: string | MappingLink;\n formTitle: string;\n formBackTitle: string;\n possibleAesSourceInputs?: string[];\n withoutFixed?: boolean;\n disabled?: boolean;\n}>();\n\nconst store = useStore();\nconst chartType = computed(() => store.value.reactive.chartType);\nconst emit = defineEmits(['aes-update', 'aes-selector-close']);\n\nconst DEFAULT_AES_INPUTS: Record<ChartType, string[]> = {\n discrete: ['primaryGrouping', 'secondaryGrouping'],\n scatterplot: ['grouping'],\n 'scatterplot-umap': ['grouping'],\n dendro: [],\n heatmap: [],\n histogram: ['grouping'],\n bubble: []\n};\nconst possibleAesSourceInputs = props.possibleAesSourceInputs ?? DEFAULT_AES_INPUTS[chartType.value];\nconst usedAesInMapping = computed(\n () => {\n const v = store.value.commonHelpersData.usedAesInMapping.value;\n return v;\n }\n);\n\nfunction getKeyFromSelectedType(value: MappingLink | string) {\n if (typeof value === 'string') {\n return value;\n }\n if (chartType.value === 'scatterplot') {\n return `grouping_${value.value}`;\n }\n if (chartType.value === 'dendro') {\n return `${value.type}_${value.value}`;\n }\n return value.type;\n}\n\nconst selectedType = ref(\n isMappedAes(props.selected) ? getKeyFromSelectedType(props.selected) : 'fix'\n);\nconst DEFAULT_BY_TYPES: Record<AesType, string | DotShape | LineType> = {\n fill: FIXED_COLORS[0].color,\n stroke: FIXED_COLORS[0].color,\n dotShape: DEFAULT_DOT_SHAPE,\n lineType: DEFAULT_LINE_TYPE,\n size: '' // temporary\n};\n\nconst inputGuide = computed(() => store.value.inputGuide.value);\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\nconst chartTypesWithContinuousColors = new Set<ChartType>([\n 'scatterplot', 'scatterplot-umap', 'heatmap'\n]);\n\nconst optionsInfo = computed(() => {\n const res: Record<string, AesOption> = {};\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addInfo(name: string, source: string) {\n const selectedSourceInfo = inputGuide.value.getSourceInfo(source);\n const uniqueValuesItem = labelsInfo.value[source];\n const uniqueValues = uniqueValuesItem?.list ?? [];\n const valueLabels = uniqueValuesItem?.labels ?? {};\n const key = getKeyFromSelectedType({ type: name, value: source });\n if (\n chartTypesWithContinuousColors.has(chartType.value) && selectedSourceInfo.type === 'String' ||\n !chartTypesWithContinuousColors.has(chartType.value)\n ) {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createDefaultMapping(uniqueValues)) as AestheticMappingCategorical;\n res[key] = {\n type: 'dataCategorical',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues,\n labels: mapping.order.reduce(\n (res: Record<string, string>, v: string | number) => {\n res[v] = valueLabels[v] ?? String(v);\n return res;\n },\n {}\n )\n };\n } else {\n const mapping = (store.value.reactive.dataBindAes[source] ?? createContinuousMappingFromPalette(DEFAULT_CONTINUOUS_PALETTE)) as AestheticMappingContinuous;\n res[key] = {\n type: 'dataContinuous',\n value: key,\n initialData: mapping,\n inputName: name,\n selectedSource: source,\n selectedSourceInfo,\n selectedSourceValues: uniqueValues\n };\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addInfo(name, selectedSource);\n });\n }\n });\n\n if (!props.withoutFixed) {\n res['fix'] = {\n type: 'fix',\n value: 'fix',\n initialData: isMappedAes(props.selected)\n ? DEFAULT_BY_TYPES[props.type]\n : props.selected\n };\n }\n return res;\n});\n\nconst option = computed<AesOption | null>(\n () => optionsInfo.value[selectedType.value] ?? null\n);\n\nfunction getTitle(option: AesOption, selected: string) {\n if (option.type === 'fix') {\n return 'Fixed';\n }\n if (selected === option.value) {\n return `${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'discrete') {\n return `${\n option.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping: ${option.selectedSourceInfo?.label}`;\n }\n if (chartType.value === 'scatterplot' || chartType.value === 'dendro') {\n return `Grouping: ${option.selectedSourceInfo?.label}`;\n }\n return option.selectedSourceInfo?.label ?? '';\n}\n\nconst typeOptions = computed(() => {\n const options = [];\n const inputStateMap = store.value.reactive.optionsState.components;\n\n function addOption(name: string, source: string) {\n const key = getKeyFromSelectedType({\n type: name === 'shape' ? 'grouping' : name,\n value: source\n });\n if (optionsInfo.value[key]) {\n options.push({\n text: getTitle(optionsInfo.value[key], selectedType.value),\n value: key\n });\n }\n }\n\n possibleAesSourceInputs.forEach((name) => {\n if (inputStateMap?.[name]?.selectorStates.length) {\n inputStateMap[name].selectorStates.forEach(({ selectedSource }) => {\n addOption(name, selectedSource);\n });\n }\n });\n if (!optionsInfo.value[selectedType.value]) {\n let text = 'Not consistent (grouping)';\n if (chartType.value === 'discrete') {\n text = `${\n selectedType.value === 'primaryGrouping' ? 'Primary' : 'Secondary'\n } grouping (not selected)`;\n }\n options.push({ text, value: selectedType.value });\n }\n if (!props.withoutFixed) {\n options.push({ text: 'Fixed', value: 'fix' });\n }\n return options;\n});\n\nconst openForm = ref(false);\n\nconst defaultFixed = ref(\n optionsInfo.value['fix']\n ? (optionsInfo.value['fix'].initialData as string)\n : null\n);\nconst defaultMappingCategorical = ref(\n option.value?.type === 'dataCategorical'\n ? (option.value.initialData as AestheticMappingCategorical)\n : null\n);\n\nconst defaultMappingContinuous = ref(\n option.value?.type === 'dataContinuous'\n ? (option.value.initialData as AestheticMappingContinuous)\n : null\n);\nwatch(\n () => selectedType.value,\n (value) => {\n const option = optionsInfo.value[value];\n if (option.type === 'fix') {\n emit('aes-update', defaultFixed.value, option);\n } else if (option.type === 'dataCategorical') {\n defaultMappingCategorical.value = option.initialData;\n emit('aes-update', option.initialData, option);\n } else if (option.type === 'dataContinuous') {\n defaultMappingContinuous.value = option.initialData;\n emit('aes-update', option.initialData, option);\n }\n }\n);\n\nconst aesButtonRef = ref();\n\n//TODO: move to utils\nconst popupHeight = computed(() => {\n if (props.type === 'lineType') {\n const ROW_HEIGHT = 32;\n const OFFSET = 16;\n return FIXED_LINE_TYPES.length * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'dotShape') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXES_DOT_SHAPES.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n if (props.type === 'fill' || props.type === 'stroke') {\n const ROW_HEIGHT = 36;\n const OFFSET = 20;\n return Math.ceil(FIXED_COLORS.length / 6) * ROW_HEIGHT + OFFSET * 2;\n }\n});\n\n</script>\n\n<template>\n <div class=\"aes-input-row\">\n <div class=\"aes-input-select\" @click.stop>\n <pl-dropdown\n :disabled=\"disabled || typeOptions.length < 2\"\n :label=\"label\"\n :options=\"typeOptions\"\n v-model=\"selectedType\"\n />\n </div>\n <aes-button\n :data=\"{\n type: selectedType === 'fix' ? type : 'data',\n value: selectedType === 'fix' ? type === 'size' ? Number(selected) : selected as string : null\n } as AesButtonProps['data']\"\n @click=\"openForm = !openForm\"\n @ref=\"(el:Element) => (aesButtonRef = el)\"\n />\n <popup\n v-if=\"selectedType === 'fix' && openForm && defaultFixed\"\n :height=\"popupHeight\"\n :targetRef=\"aesButtonRef\"\n @popup:close=\"openForm = false\"\n >\n <div\n class=\"fixed-aes-list\"\n :class=\"{ 'fixed-aes-list__rows': type === 'lineType' }\"\n >\n <fixed-colors-list\n v-if=\"type === 'fill' || type === 'stroke'\"\n :color-using=\"type\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:string) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <fixed-dot-shape-list\n v-if=\"type === 'dotShape'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:DotShape) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n <fixed-line-type-list\n v-if=\"type === 'lineType'\"\n v-model=\"defaultFixed\"\n @update:modelValue=\"\n (value:LineType) => $emit('aes-update', value, optionsInfo['fix'])\n \"\n />\n </div>\n </popup>\n </div>\n <template v-if=\"(\n (option?.type === 'dataCategorical' && defaultMappingCategorical) ||\n (option?.type === 'dataContinuous' && defaultMappingContinuous)) && openForm\">\n <form-wrapper\n :title=\"formTitle\"\n :back-title=\"formBackTitle\"\n @form:close=\"openForm = false\"\n >\n <aes-data-mapping-discrete\n v-if=\"option?.type === 'dataCategorical' && defaultMappingCategorical\"\n :column-value-labels=\"option.labels\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n :used-aes-in-mapping=\"usedAesInMapping[option.selectedSource]\"\n :allow-hiding=\"chartType === 'discrete'\"\n :allow-reordering=\"chartType === 'discrete' || chartType === 'histogram' || chartType === 'scatterplot' || chartType === 'scatterplot-umap'\"\n v-model=\"defaultMappingCategorical\"\n @update:modelValue=\"(value:AestheticMappingCategorical) => $emit('aes-update', value, option)\"\n />\n <aes-data-mapping-continuous\n v-if=\"option?.type === 'dataContinuous' && defaultMappingContinuous\"\n :data-column-label=\"option.selectedSourceInfo?.label ?? ''\"\n v-model=\"defaultMappingContinuous\"\n @update:modelValue=\"(value:AestheticMappingContinuous) => $emit('aes-update', value, option)\"\n />\n </form-wrapper>\n </template>\n</template>\n"],"names":["props","__props","store","useStore","chartType","computed","emit","__emit","DEFAULT_AES_INPUTS","possibleAesSourceInputs","usedAesInMapping","getKeyFromSelectedType","value","selectedType","ref","isMappedAes","DEFAULT_BY_TYPES","FIXED_COLORS","DEFAULT_DOT_SHAPE","DEFAULT_LINE_TYPE","inputGuide","labelsInfo","chartTypesWithContinuousColors","optionsInfo","res","inputStateMap","addInfo","name","source","selectedSourceInfo","uniqueValuesItem","uniqueValues","valueLabels","key","mapping","createDefaultMapping","v","createContinuousMappingFromPalette","DEFAULT_CONTINUOUS_PALETTE","_a","selectedSource","option","getTitle","selected","typeOptions","options","addOption","text","openForm","defaultFixed","defaultMappingCategorical","defaultMappingContinuous","_b","watch","aesButtonRef","popupHeight","FIXED_LINE_TYPES","FIXES_DOT_SHAPES"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"composeDiscreteSettings.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"composeDiscreteSettings.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.ts"],"names":[],"mappings":"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"}
@@ -1,68 +1,70 @@
1
- import { DEFAULT_WHITE as m, DEFAULT_BLACK as G } from "../../constantsAesthetic.js";
1
+ import { DEFAULT_WHITE as d, DEFAULT_BLACK as s } from "../../constantsAesthetic.js";
2
2
  import { DISCRETE_TEMPLATES_MAP as g } from "../../constantsCommon.js";
3
- import { getChartSettingsInheritedAes as a, DEFAULT_LINE_WIDTH as A, DEFAULT_DOT_SIZE as t, DEFAULT_DOT_SHAPE as f } from "../../dataBindAes.js";
4
- import { getUsedAesInMapping as E } from "../getUsedAesInMapping.js";
5
- import { getDiscreteLayersSettings as T } from "./getLayersDataFromForms.js";
6
- import { getAxesDataFromForms as S } from "./getAxesDataFromForms.js";
3
+ import { getChartSettingsInheritedAes as m, DEFAULT_LINE_WIDTH as A, DEFAULT_DOT_SIZE as f, DEFAULT_DOT_SHAPE as E } from "../../dataBindAes.js";
4
+ import { getUsedAesInMapping as T } from "../getUsedAesInMapping.js";
5
+ import { getDiscreteLayersSettings as S } from "./getLayersDataFromForms.js";
6
+ import { getAxesDataFromForms as _ } from "./getAxesDataFromForms.js";
7
7
  import "../../../node_modules/@milaboratories/pf-plots/dist/index.js";
8
8
  import "vue";
9
- const d = {
10
- fillColor: m,
11
- lineColor: G,
12
- dotFill: m,
13
- dotShape: f,
14
- dotSize: t,
9
+ const y = {
10
+ fillColor: d,
11
+ lineColor: s,
12
+ dotFill: d,
13
+ dotShape: E,
14
+ dotSize: f,
15
15
  lineWidth: A
16
16
  };
17
- function x(r, o, i, e) {
18
- var u;
19
- const y = T(
17
+ function U(r, o, i, a) {
18
+ var l;
19
+ const G = S(
20
20
  g[o.template],
21
21
  o.layersSettings,
22
22
  o.statisticsSettings,
23
23
  o.optionsState,
24
- e
25
- ), l = E(
24
+ a
25
+ ), e = T(
26
26
  o.chartType,
27
27
  o.template,
28
28
  o.layersSettings,
29
29
  o.statisticsSettings,
30
30
  o.optionsState,
31
- e
31
+ a
32
32
  );
33
- r.layers = y;
33
+ r.layers = G;
34
34
  const n = o.optionsState.components;
35
35
  if (n.primaryGrouping.selectorStates.length && r.primaryGrouping) {
36
- const p = n.primaryGrouping.selectorStates[0].selectedSource, s = l[p];
36
+ r.primaryGrouping = { ...r.primaryGrouping }, r.primaryGrouping.order && (r.primaryGrouping.order = [...r.primaryGrouping.order]);
37
+ const p = n.primaryGrouping.selectorStates[0].selectedSource, u = e[p];
37
38
  Object.assign(
38
39
  r.primaryGrouping,
39
- a(
40
+ m(
40
41
  i,
41
42
  o.dataBindAes[p],
42
43
  p,
43
- s
44
+ u
44
45
  )
45
- ), o.axesSettings.axisX.allowNullPrimaryGroups && (r.primaryGrouping.allowNullGroup = !0, r.primaryGrouping.order && (r.primaryGrouping.order = [...r.primaryGrouping.order, "null"]), r.primaryGrouping.inheritedAes && (r.primaryGrouping.inheritedAes.null = d));
46
+ ), o.axesSettings.axisX.allowNullPrimaryGroups && (r.primaryGrouping.allowNullGroup = !0, r.primaryGrouping.order && (r.primaryGrouping.order = [...r.primaryGrouping.order, "null"]), r.primaryGrouping.inheritedAes && (r.primaryGrouping.inheritedAes.null = y));
46
47
  }
47
48
  if (n.secondaryGrouping.selectorStates && r.secondaryGrouping) {
48
- const p = n.secondaryGrouping.selectorStates[0].selectedSource, s = l[p];
49
+ r.secondaryGrouping = { ...r.secondaryGrouping }, r.secondaryGrouping.order && (r.secondaryGrouping.order = [...r.secondaryGrouping.order]);
50
+ const p = n.secondaryGrouping.selectorStates[0].selectedSource, u = e[p];
49
51
  Object.assign(
50
52
  r.secondaryGrouping,
51
- a(
53
+ m(
52
54
  i,
53
55
  o.dataBindAes[p],
54
56
  p,
55
- s
57
+ u
56
58
  )
57
- ), o.axesSettings.axisX.allowNullSecondaryGroups && (r.secondaryGrouping.allowNullGroup = !0, r.secondaryGrouping.order && (r.secondaryGrouping.order = [...r.secondaryGrouping.order, "null"]), r.secondaryGrouping.inheritedAes && (r.secondaryGrouping.inheritedAes.null = d));
59
+ ), o.axesSettings.axisX.allowNullSecondaryGroups && (r.secondaryGrouping.allowNullGroup = !0, r.secondaryGrouping.order && (r.secondaryGrouping.order = [...r.secondaryGrouping.order, "null"]), r.secondaryGrouping.inheritedAes && (r.secondaryGrouping.inheritedAes.null = y));
58
60
  }
59
- const c = r.primaryGrouping ? (u = i[r.primaryGrouping.columnName.value]) == null ? void 0 : u.options : [];
61
+ const c = r.primaryGrouping ? (l = i[r.primaryGrouping.columnName.value]) == null ? void 0 : l.options : [];
60
62
  return Object.assign(
61
63
  r,
62
- S(o.axesSettings, o.chartType, c)
64
+ _(o.axesSettings, o.chartType, c)
63
65
  ), r;
64
66
  }
65
67
  export {
66
- x as composeDiscreteSettings
68
+ U as composeDiscreteSettings
67
69
  };
68
70
  //# sourceMappingURL=composeDiscreteSettings.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"composeDiscreteSettings.js","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.ts"],"sourcesContent":["import { DiscreteSettings } from '@milaboratories/miplots4';\nimport { DiscreteUIState, InputGuide, InputState } from '@milaboratories/pf-plots';\nimport { DEFAULT_BLACK, DEFAULT_WHITE } from '../../constantsAesthetic';\nimport { DISCRETE_TEMPLATES_MAP, DiscreteStatisticsState } from '../../constantsCommon';\nimport {\n DEFAULT_DOT_SHAPE,\n DEFAULT_DOT_SIZE,\n DEFAULT_LINE_WIDTH,\n getChartSettingsInheritedAes\n} from '../../dataBindAes';\nimport {\n DiscreteLayersTemplate,\n ReactiveState,\n UniqueValuesBySourceMap\n} from '../../types';\nimport { getUsedAesInMapping } from '../getUsedAesInMapping';\nimport { getAxesDataFromForms, getDiscreteLayersSettings } from '../index';\n\nconst NULL_DISCRETE_AES = {\n fillColor: DEFAULT_WHITE,\n lineColor: DEFAULT_BLACK,\n dotFill: DEFAULT_WHITE,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\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 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 if (reactiveState.axesSettings.axisX.allowNullPrimaryGroups) {\n settings.primaryGrouping.allowNullGroup = true;\n if (settings.primaryGrouping.order) {\n settings.primaryGrouping.order = [...settings.primaryGrouping.order, 'null'];\n }\n if (settings.primaryGrouping.inheritedAes) {\n settings.primaryGrouping.inheritedAes['null'] = NULL_DISCRETE_AES;\n }\n }\n }\n if (inputStateMap.secondaryGrouping.selectorStates && settings.secondaryGrouping) {\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 if (reactiveState.axesSettings.axisX.allowNullSecondaryGroups) {\n settings.secondaryGrouping.allowNullGroup = true;\n if (settings.secondaryGrouping.order) {\n settings.secondaryGrouping.order = [...settings.secondaryGrouping.order, 'null'];\n }\n if (settings.secondaryGrouping.inheritedAes) {\n settings.secondaryGrouping.inheritedAes['null'] = NULL_DISCRETE_AES;\n }\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}"],"names":["NULL_DISCRETE_AES","DEFAULT_WHITE","DEFAULT_BLACK","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_LINE_WIDTH","composeDiscreteSettings","settings","reactiveState","uniqueValuesData","inputGuide","layers","getDiscreteLayersSettings","DISCRETE_TEMPLATES_MAP","usedAesInMappingsMap","getUsedAesInMapping","inputStateMap","columnName","usedAesInMapping","getChartSettingsInheritedAes","primaryGroups","_a","getAxesDataFromForms"],"mappings":";;;;;;;;AAkBA,MAAMA,IAAoB;AAAA,EACxB,WAAWC;AAAA,EACX,WAAWC;AAAA,EACX,SAASD;AAAA,EACT,UAAUE;AAAA,EACV,SAASC;AAAA,EACT,WAAWC;AACb;AACO,SAASC,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,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,GAEEV,EAAc,aAAa,MAAM,2BACnCD,EAAS,gBAAgB,iBAAiB,IACtCA,EAAS,gBAAgB,UAC3BA,EAAS,gBAAgB,QAAQ,CAAC,GAAGA,EAAS,gBAAgB,OAAO,MAAM,IAEzEA,EAAS,gBAAgB,iBAC3BA,EAAS,gBAAgB,aAAa,OAAUP;AAAA,EAGtD;AACA,MAAIgB,EAAc,kBAAkB,kBAAkBT,EAAS,mBAAmB;AAChF,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,GAEEV,EAAc,aAAa,MAAM,6BACnCD,EAAS,kBAAkB,iBAAiB,IACxCA,EAAS,kBAAkB,UAC7BA,EAAS,kBAAkB,QAAQ,CAAC,GAAGA,EAAS,kBAAkB,OAAO,MAAM,IAE7EA,EAAS,kBAAkB,iBAC7BA,EAAS,kBAAkB,aAAa,OAAUP;AAAA,EAGxD;AAEA,QAAMoB,IAAgBb,EAAS,mBAAkBc,IAAAZ,EAAiBF,EAAS,gBAAgB,WAAW,KAAK,MAA1D,gBAAAc,EAA6D,UAAU,CAAA;AAExH,gBAAO;AAAA,IACLd;AAAA,IACAe,EAAqBd,EAAc,cAAcA,EAAc,WAAWY,CAAa;AAAA,EAAA,GAGlFb;AACT;"}
1
+ {"version":3,"file":"composeDiscreteSettings.js","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.ts"],"sourcesContent":["import { DiscreteSettings } from '@milaboratories/miplots4';\nimport { DiscreteUIState, InputGuide, InputState } from '@milaboratories/pf-plots';\nimport { DEFAULT_BLACK, DEFAULT_WHITE } from '../../constantsAesthetic';\nimport { DISCRETE_TEMPLATES_MAP, DiscreteStatisticsState } from '../../constantsCommon';\nimport {\n DEFAULT_DOT_SHAPE,\n DEFAULT_DOT_SIZE,\n DEFAULT_LINE_WIDTH,\n getChartSettingsInheritedAes\n} from '../../dataBindAes';\nimport {\n DiscreteLayersTemplate,\n ReactiveState,\n UniqueValuesBySourceMap\n} from '../../types';\nimport { getUsedAesInMapping } from '../getUsedAesInMapping';\nimport { getAxesDataFromForms, getDiscreteLayersSettings } from '../index';\n\nconst NULL_DISCRETE_AES = {\n fillColor: DEFAULT_WHITE,\n lineColor: DEFAULT_BLACK,\n dotFill: DEFAULT_WHITE,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\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 if (reactiveState.axesSettings.axisX.allowNullPrimaryGroups) {\n settings.primaryGrouping.allowNullGroup = true;\n if (settings.primaryGrouping.order) {\n settings.primaryGrouping.order = [...settings.primaryGrouping.order, 'null'];\n }\n if (settings.primaryGrouping.inheritedAes) {\n settings.primaryGrouping.inheritedAes['null'] = NULL_DISCRETE_AES;\n }\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 if (reactiveState.axesSettings.axisX.allowNullSecondaryGroups) {\n settings.secondaryGrouping.allowNullGroup = true;\n if (settings.secondaryGrouping.order) {\n settings.secondaryGrouping.order = [...settings.secondaryGrouping.order, 'null'];\n }\n if (settings.secondaryGrouping.inheritedAes) {\n settings.secondaryGrouping.inheritedAes['null'] = NULL_DISCRETE_AES;\n }\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}"],"names":["NULL_DISCRETE_AES","DEFAULT_WHITE","DEFAULT_BLACK","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_LINE_WIDTH","composeDiscreteSettings","settings","reactiveState","uniqueValuesData","inputGuide","layers","getDiscreteLayersSettings","DISCRETE_TEMPLATES_MAP","usedAesInMappingsMap","getUsedAesInMapping","inputStateMap","columnName","usedAesInMapping","getChartSettingsInheritedAes","primaryGroups","_a","getAxesDataFromForms"],"mappings":";;;;;;;;AAkBA,MAAMA,IAAoB;AAAA,EACxB,WAAWC;AAAA,EACX,WAAWC;AAAA,EACX,SAASD;AAAA,EACT,UAAUE;AAAA,EACV,SAASC;AAAA,EACT,WAAWC;AACb;AACO,SAASC,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,EAAC,GAAGA,EAAS,gBAAA,GACpCA,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,GAEEV,EAAc,aAAa,MAAM,2BACnCD,EAAS,gBAAgB,iBAAiB,IACtCA,EAAS,gBAAgB,UAC3BA,EAAS,gBAAgB,QAAQ,CAAC,GAAGA,EAAS,gBAAgB,OAAO,MAAM,IAEzEA,EAAS,gBAAgB,iBAC3BA,EAAS,gBAAgB,aAAa,OAAUP;AAAA,EAGtD;AACA,MAAIgB,EAAc,kBAAkB,kBAAkBT,EAAS,mBAAmB;AAChF,IAAAA,EAAS,oBAAoB,EAAC,GAAGA,EAAS,kBAAA,GACtCA,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,GAEEV,EAAc,aAAa,MAAM,6BACnCD,EAAS,kBAAkB,iBAAiB,IACxCA,EAAS,kBAAkB,UAC7BA,EAAS,kBAAkB,QAAQ,CAAC,GAAGA,EAAS,kBAAkB,OAAO,MAAM,IAE7EA,EAAS,kBAAkB,iBAC7BA,EAAS,kBAAkB,aAAa,OAAUP;AAAA,EAGxD;AAEA,QAAMoB,IAAgBb,EAAS,mBAAkBc,IAAAZ,EAAiBF,EAAS,gBAAgB,WAAW,KAAK,MAA1D,gBAAAc,EAA6D,UAAU,CAAA;AAExH,gBAAO;AAAA,IACLd;AAAA,IACAe,EAAqBd,EAAc,cAAcA,EAAc,WAAWY,CAAa;AAAA,EAAA,GAGlFb;AACT;"}
@@ -1 +1 @@
1
- {"version":3,"file":"getAxesDataFromForms.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC;IACF,iBAAiB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC;CACrD,CAAA;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,EAAE,cAAc,GAAE,gBAAgB,CAAC,SAAS,CAAM,kBAWvH;AAED,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,SAAS,EACxB,YAAY,EAAE,uBAAuB,EACrC,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GACjC,YAAY,CAmFd;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,GAAE,gBAAgB,CAAC,SAAS,CAAM,GAAG,YAAY,CAkDnJ"}
1
+ {"version":3,"file":"getAxesDataFromForms.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,uBAAuB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACvG,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAChE,OAAO,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAE3D,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,KAAK,EAAE,oBAAoB,GAAG,sBAAsB,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;IAChF,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;IACxB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC/B,aAAa,EAAE;QACb,KAAK,EAAE,MAAM,CAAA;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,OAAO,CAAC,EAAE,OAAO,CAAA;KAClB,CAAC;IACF,iBAAiB,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,CAAC;IAC5D,aAAa,CAAC,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC,eAAe,CAAC,CAAC;CACrD,CAAA;AAKD,wBAAgB,yBAAyB,CAAC,KAAK,EAAE,cAAc,GAAG,IAAI,EAAE,cAAc,GAAE,gBAAgB,CAAC,SAAS,CAAM,kBAWvH;AAED,wBAAgB,+BAA+B,CAC7C,aAAa,EAAE,SAAS,EACxB,YAAY,EAAE,uBAAuB,EACrC,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GACjC,YAAY,CAiFd;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,cAAc,GAAE,gBAAgB,CAAC,SAAS,CAAM,GAAG,YAAY,CAkDnJ"}
@@ -2,19 +2,19 @@ function E(e, l = []) {
2
2
  return e !== null ? e : l.length > 6 && l.some(({ label: c }) => c.length > 5) ? "45deg" : "center";
3
3
  }
4
4
  function H(e, l, c, n) {
5
- var y, p, k, x, M, _, T, w, C, R, B, O;
5
+ var A, Y, y, p, k, x, M, _, T, w, C, R;
6
6
  let i = {}, t = {};
7
7
  i.showGrid = e.axisX.gridlines, i.showTicks = e.axisX.ticks, t.showGrid = e.axisY.gridlines, t.showTicks = e.axisY.ticks;
8
- const o = ((y = c.components.x.selectorStates) == null ? void 0 : y[0].selectedSource) ?? null, g = ((p = c.components.y.selectorStates) == null ? void 0 : p[0].selectedSource) ?? null, b = o ? n.getSourceInfo(o) : null, h = g ? n.getSourceInfo(g) : null, A = (b == null ? void 0 : b.type) === "String", Y = (h == null ? void 0 : h.type) === "String";
9
- if (console.log("isDiscreteX", A, b), console.log("isDiscreteY", Y, h), A) {
8
+ const o = ((A = c.components.x.selectorStates) == null ? void 0 : A[0].selectedSource) ?? null, u = ((Y = c.components.y.selectorStates) == null ? void 0 : Y[0].selectedSource) ?? null, X = o ? n.getSourceInfo(o) : null, h = u ? n.getSourceInfo(u) : null, B = (X == null ? void 0 : X.type) === "String", O = (h == null ? void 0 : h.type) === "String";
9
+ if (B) {
10
10
  i = i, i.scale = "discrete", i.labelsPosition = e.axisX.labelsRotation ?? "center";
11
- const u = ((k = e.axisX.order) == null ? void 0 : k.source) === o, r = (x = l[o]) == null ? void 0 : x.list, d = (M = l[o]) == null ? void 0 : M.labels, f = u ? ((_ = e.axisX.order) == null ? void 0 : _.options.map((s) => s.value)) ?? r : r, S = u ? ((T = e.axisX.order) == null ? void 0 : T.options.reduce((s, X) => (s[X.value] = X.label, s), {})) ?? d : d;
11
+ const g = ((y = e.axisX.order) == null ? void 0 : y.source) === o, r = (p = l[o]) == null ? void 0 : p.list, d = (k = l[o]) == null ? void 0 : k.labels, f = g ? ((x = e.axisX.order) == null ? void 0 : x.options.map((s) => s.value)) ?? r : r, S = g ? ((M = e.axisX.order) == null ? void 0 : M.options.reduce((s, b) => (s[b.value] = b.label, s), {})) ?? d : d;
12
12
  f && S && (i.keys = f, i.labels = S);
13
13
  } else
14
14
  i = i, i.scale = e.axisX.scale, i.significantLinesStyle = e.axisX.significantLinesStyle;
15
- if (Y) {
15
+ if (O) {
16
16
  t = t, t.scale = "discrete", t.labelsPosition = e.axisY.labelsRotation ?? "center";
17
- const u = (w = l[g]) == null ? void 0 : w.list, r = (C = l[g]) == null ? void 0 : C.labels, d = ((R = e.axisY.order) == null ? void 0 : R.source) === g, f = d ? ((B = e.axisY.order) == null ? void 0 : B.options.map((s) => s.value)) ?? u : u, S = d ? ((O = e.axisY.order) == null ? void 0 : O.options.reduce((s, X) => (s[X.value] = X.label, s), {})) ?? r : r;
17
+ const g = (_ = l[u]) == null ? void 0 : _.list, r = (T = l[u]) == null ? void 0 : T.labels, d = ((w = e.axisY.order) == null ? void 0 : w.source) === u, f = d ? ((C = e.axisY.order) == null ? void 0 : C.options.map((s) => s.value)) ?? g : g, S = d ? ((R = e.axisY.order) == null ? void 0 : R.options.reduce((s, b) => (s[b.value] = b.label, s), {})) ?? r : r;
18
18
  f && S && (t.keys = f, t.labels = S);
19
19
  } else
20
20
  t = t, t.scale = e.axisY.scale, t.significantLinesStyle = e.axisY.significantLinesStyle;
@@ -1 +1 @@
1
- {"version":3,"file":"getAxesDataFromForms.js","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.ts"],"sourcesContent":["import { AxesState } from '../../constantsCommon';\nimport { ChartType, InputGuide, InputState } from \"@milaboratories/pf-plots\";\nimport { LabelsRotation, ReactiveState, UniqueValuesBySourceMap, UniqueValuesData } from '../../types';\nimport { AxisSettingsContinuous } from '@milaboratories/miplots4';\nimport { AxisSettingsDiscrete } from '@milaboratories/miplots4';\nimport { HeatmapSettings } from '@milaboratories/miplots4';\n\ntype AxesSettings = {\n xAxis: AxisSettingsDiscrete | AxisSettingsContinuous | HeatmapSettings['xAxis'];\n yAxis: AxisSettingsDiscrete | AxisSettingsContinuous | HeatmapSettings['yAxis'];\n frame: { type: string };\n orientation?: string;\n title?: Record<string, string>;\n facetSettings: {\n nCols: number\n sharedX?: boolean,\n sharedY?: boolean\n };\n groupingDirection?: AxesState['other']['groupingDirection'];\n groupingStack?: AxesState['other']['groupingStack'];\n}\n\nconst HORIZONTAL_CAPTURES_MAX_COUNT = 6;\nconst SHORT_LABEL_MAX_LENGTH = 5;\n\nexport function getDiscreteLabelsRotation(value: LabelsRotation | null, discreteGroups: UniqueValuesData['options'] = []) {\n if (value !== null) {\n return value;\n }\n if (\n discreteGroups.length > HORIZONTAL_CAPTURES_MAX_COUNT &&\n discreteGroups.some(({ label }) => label.length > SHORT_LABEL_MAX_LENGTH)\n ) {\n return '45deg';\n }\n return 'center';\n}\n\nexport function getAxesDataFromFormsScatterplot(\n axesFormsData: AxesState,\n uniqueValues: UniqueValuesBySourceMap,\n optionsState: ReactiveState['optionsState'],\n inputGuide: InputGuide<InputState>,\n): AxesSettings {\n let xAxis: AxisSettingsContinuous | AxisSettingsDiscrete = {};\n let yAxis: AxisSettingsContinuous | AxisSettingsDiscrete = {};\n xAxis.showGrid = axesFormsData.axisX.gridlines;\n xAxis.showTicks = axesFormsData.axisX.ticks;\n yAxis.showGrid = axesFormsData.axisY.gridlines;\n yAxis.showTicks = axesFormsData.axisY.ticks;\n\n const xSource = optionsState.components.x.selectorStates?.[0].selectedSource ?? null;\n const ySource = optionsState.components.y.selectorStates?.[0].selectedSource ?? null;\n const infoX = xSource ? inputGuide.getSourceInfo(xSource) : null;\n const infoY = ySource ? inputGuide.getSourceInfo(ySource) : null;\n\n const isDiscreteX = infoX?.type === 'String';\n const isDiscreteY = infoY?.type === 'String';\n\n console.log('isDiscreteX', isDiscreteX, infoX);\n console.log('isDiscreteY', isDiscreteY, infoY);\n if (isDiscreteX) {\n xAxis = xAxis as AxisSettingsDiscrete;\n xAxis.scale = 'discrete';\n xAxis.labelsPosition = axesFormsData.axisX.labelsRotation ?? 'center';\n\n const saved = axesFormsData.axisX.order?.source === xSource;\n const uniqueList = uniqueValues[xSource]?.list;\n const uniqueLabels = uniqueValues[xSource]?.labels;\n const keys = saved ? axesFormsData.axisX.order?.options.map((v) => v.value) ?? uniqueList : uniqueList;\n const labels = saved ? axesFormsData.axisX.order?.options.reduce((res, v) => {\n res[v.value] = v.label;\n return res;\n }, {} as Record<string, string>) ?? uniqueLabels : uniqueLabels;\n if (keys && labels) {\n xAxis.keys = keys;\n xAxis.labels = labels;\n };\n } else {\n xAxis = xAxis as AxisSettingsContinuous;\n xAxis.scale = axesFormsData.axisX.scale;\n xAxis.significantLinesStyle = axesFormsData.axisX.significantLinesStyle;\n }\n\n if (isDiscreteY) {\n yAxis = yAxis as AxisSettingsDiscrete;\n yAxis.scale = 'discrete';\n yAxis.labelsPosition = axesFormsData.axisY.labelsRotation ?? 'center';\n\n const uniqueList = uniqueValues[ySource]?.list;\n const uniqueLabels = uniqueValues[ySource]?.labels;\n const saved = axesFormsData.axisY.order?.source === ySource;\n const keys = saved ? axesFormsData.axisY.order?.options.map((v) => v.value) ?? uniqueList : uniqueList;\n const labels = saved ? axesFormsData.axisY.order?.options.reduce((res, v) => {\n res[v.value] = v.label;\n return res;\n }, {} as Record<string, string>) ?? uniqueLabels : uniqueLabels;\n if (keys && labels) {\n yAxis.keys = keys;\n yAxis.labels = labels;\n };\n } else {\n yAxis = yAxis as AxisSettingsContinuous;\n yAxis.scale = axesFormsData.axisY.scale;\n yAxis.significantLinesStyle = axesFormsData.axisY.significantLinesStyle;\n }\n\n if (axesFormsData.axisY.titleMode !== 'auto') {\n yAxis.title = axesFormsData.axisY.titleMode === 'custom' ? axesFormsData.axisY.customTitle : ''\n }\n if (axesFormsData.axisX.titleMode !== 'auto') {\n xAxis.title = axesFormsData.axisX.titleMode === 'custom' ? axesFormsData.axisX.customTitle : ''\n }\n\n const result: AxesSettings = {\n xAxis,\n yAxis,\n frame: { type: axesFormsData.other.frame },\n facetSettings: {\n nCols: axesFormsData.other.facetColumns\n }\n };\n result.facetSettings.sharedX = (['x', 'xy']).includes(axesFormsData.other.facetSharedBy);\n result.facetSettings.sharedY = (['y', 'xy']).includes(axesFormsData.other.facetSharedBy);\n\n return result;\n}\n\nexport function getAxesDataFromForms(axesFormsData: AxesState, chartType: ChartType, discreteGroups: UniqueValuesData['options'] = []): AxesSettings {\n let xAxis: AxesSettings['xAxis'] = {};\n let yAxis: AxesSettings['yAxis'] = {};\n if (chartType === 'discrete') {\n (xAxis as AxisSettingsDiscrete)!.labelsPosition = getDiscreteLabelsRotation(axesFormsData.axisX.labelsRotation, discreteGroups);\n (xAxis as AxisSettingsDiscrete)!.linesBetweenCategories = axesFormsData.axisX.linesBetweenCategories;\n (yAxis as AxisSettingsContinuous)!.scale = axesFormsData.axisY.scale;\n (xAxis as AxisSettingsDiscrete)!.showGrid = axesFormsData.axisX.gridlines;\n (xAxis as AxisSettingsDiscrete)!.showTicks = axesFormsData.axisX.ticks;\n (yAxis as AxisSettingsContinuous)!.showGrid = axesFormsData.axisY.gridlines;\n (yAxis as AxisSettingsContinuous).showTicks = axesFormsData.axisY.ticks;\n }\n if (chartType === 'histogram') {\n (xAxis as AxisSettingsContinuous).scale = axesFormsData.axisX.scale;\n (yAxis as AxisSettingsContinuous).scale = axesFormsData.axisY.scale;\n }\n if (chartType === 'heatmap' || chartType === 'bubble') {\n (xAxis as HeatmapSettings['xAxis'])!.axisLabelsAngle = axesFormsData.axisX.axisLabelsAngle;\n (xAxis as HeatmapSettings['xAxis'])!.groupLabelsAngle = axesFormsData.axisX.groupLabelsAngle;\n (yAxis as HeatmapSettings['yAxis'])!.axisLabelsAngle = axesFormsData.axisY.axisLabelsAngle;\n (yAxis as HeatmapSettings['yAxis'])!.groupLabelsAngle = axesFormsData.axisY.groupLabelsAngle;\n (xAxis as HeatmapSettings['xAxis'])!.sorting = axesFormsData.axisX.sorting;\n (yAxis as HeatmapSettings['yAxis'])!.sorting = axesFormsData.axisY.sorting;\n }\n if (axesFormsData.axisY.titleMode !== 'auto') {\n yAxis!.title = axesFormsData.axisY.titleMode === 'custom' ? axesFormsData.axisY.customTitle : ''\n }\n if (axesFormsData.axisX.titleMode !== 'auto') {\n xAxis!.title = axesFormsData.axisX.titleMode === 'custom' ? axesFormsData.axisX.customTitle : ''\n }\n\n const result: AxesSettings = {\n xAxis,\n yAxis,\n frame: { type: axesFormsData.other.frame },\n facetSettings: {\n nCols: axesFormsData.other.facetColumns\n }\n };\n\n if (chartType === 'discrete' || chartType === 'scatterplot' || chartType === 'heatmap') {\n result.orientation = axesFormsData.other.reverse ? 'horizontal' : 'vertical';\n result.facetSettings.sharedX = (['x', 'xy']).includes(axesFormsData.other.facetSharedBy);\n result.facetSettings.sharedY = (['y', 'xy']).includes(axesFormsData.other.facetSharedBy);\n }\n if (chartType === 'histogram') {\n result.groupingDirection = axesFormsData.other.groupingDirection;\n result.groupingStack = axesFormsData.other.groupingStack;\n }\n return result;\n}\n"],"names":["getDiscreteLabelsRotation","value","discreteGroups","label","getAxesDataFromFormsScatterplot","axesFormsData","uniqueValues","optionsState","inputGuide","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","xAxis","yAxis","xSource","ySource","infoX","infoY","isDiscreteX","isDiscreteY","saved","uniqueList","uniqueLabels","keys","v","labels","res","result","getAxesDataFromForms","chartType"],"mappings":"AAyBO,SAASA,EAA0BC,GAA8BC,IAA8C,IAAI;AACxH,SAAID,MAAU,OACLA,IAGPC,EAAe,SAAS,KACxBA,EAAe,KAAK,CAAC,EAAE,OAAAC,QAAYA,EAAM,SAAS,CAAsB,IAEjE,UAEF;AACT;AAEO,SAASC,EACdC,GACAC,GACAC,GACAC,GACc;AArBhB,MAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC;AAsBE,MAAIC,IAAuD,CAAA,GACvDC,IAAuD,CAAA;AAC3D,EAAAD,EAAM,WAAWhB,EAAc,MAAM,WACrCgB,EAAM,YAAYhB,EAAc,MAAM,OACtCiB,EAAM,WAAWjB,EAAc,MAAM,WACrCiB,EAAM,YAAYjB,EAAc,MAAM;AAEtC,QAAMkB,MAAUd,IAAAF,EAAa,WAAW,EAAE,mBAA1B,gBAAAE,EAA2C,GAAG,mBAAkB,MAC1Ee,MAAUd,IAAAH,EAAa,WAAW,EAAE,mBAA1B,gBAAAG,EAA2C,GAAG,mBAAkB,MAC1Ee,IAAQF,IAAUf,EAAW,cAAce,CAAO,IAAI,MACtDG,IAAQF,IAAUhB,EAAW,cAAcgB,CAAO,IAAI,MAEtDG,KAAcF,KAAA,gBAAAA,EAAO,UAAS,UAC9BG,KAAcF,KAAA,gBAAAA,EAAO,UAAS;AAIpC,MAFA,QAAQ,IAAI,eAAeC,GAAaF,CAAK,GAC7C,QAAQ,IAAI,eAAeG,GAAaF,CAAK,GACzCC,GAAa;AACf,IAAAN,IAAQA,GACRA,EAAM,QAAQ,YACdA,EAAM,iBAAiBhB,EAAc,MAAM,kBAAkB;AAE7D,UAAMwB,MAAQlB,IAAAN,EAAc,MAAM,UAApB,gBAAAM,EAA2B,YAAWY,GAC9CO,KAAalB,IAAAN,EAAaiB,CAAO,MAApB,gBAAAX,EAAuB,MACpCmB,KAAelB,IAAAP,EAAaiB,CAAO,MAApB,gBAAAV,EAAuB,QACtCmB,IAAOH,MAASf,IAAAT,EAAc,MAAM,UAApB,gBAAAS,EAA2B,QAAQ,IAAI,CAACmB,MAAMA,EAAE,WAAUH,IAAaA,GACvFI,IAASL,MAAQd,IAAAV,EAAc,MAAM,UAApB,gBAAAU,EAA2B,QAAQ,OAAO,CAACoB,GAAKF,OACrEE,EAAIF,EAAE,KAAK,IAAIA,EAAE,OACVE,IACN,CAAA,OAAiCJ,IAAeA;AACnD,IAAIC,KAAQE,MACRb,EAAM,OAAOW,GACbX,EAAM,SAASa;AAAA,EAErB;AACE,IAAAb,IAAQA,GACRA,EAAM,QAAQhB,EAAc,MAAM,OAClCgB,EAAM,wBAAwBhB,EAAc,MAAM;AAGpD,MAAIuB,GAAa;AACf,IAAAN,IAAQA,GACRA,EAAM,QAAQ,YACdA,EAAM,iBAAiBjB,EAAc,MAAM,kBAAkB;AAE7D,UAAMyB,KAAad,IAAAV,EAAakB,CAAO,MAApB,gBAAAR,EAAuB,MACpCe,KAAed,IAAAX,EAAakB,CAAO,MAApB,gBAAAP,EAAuB,QACtCY,MAAQX,IAAAb,EAAc,MAAM,UAApB,gBAAAa,EAA2B,YAAWM,GAC9CQ,IAAOH,MAAQV,IAAAd,EAAc,MAAM,UAApB,gBAAAc,EAA2B,QAAQ,IAAI,CAACc,MAAMA,EAAE,WAAUH,IAAaA,GACtFI,IAASL,MAAQT,IAAAf,EAAc,MAAM,UAApB,gBAAAe,EAA2B,QAAQ,OAAO,CAACe,GAAKF,OACrEE,EAAIF,EAAE,KAAK,IAAIA,EAAE,OACVE,IACN,CAAA,OAAiCJ,IAAeA;AACnD,IAAIC,KAAQE,MACRZ,EAAM,OAAOU,GACbV,EAAM,SAASY;AAAA,EAErB;AACE,IAAAZ,IAAQA,GACRA,EAAM,QAAQjB,EAAc,MAAM,OAClCiB,EAAM,wBAAwBjB,EAAc,MAAM;AAGpD,EAAIA,EAAc,MAAM,cAAc,WACpCiB,EAAM,QAAQjB,EAAc,MAAM,cAAc,WAAWA,EAAc,MAAM,cAAc,KAE3FA,EAAc,MAAM,cAAc,WACpCgB,EAAM,QAAQhB,EAAc,MAAM,cAAc,WAAWA,EAAc,MAAM,cAAc;AAG/F,QAAM+B,IAAuB;AAAA,IAC3B,OAAAf;AAAA,IACA,OAAAC;AAAA,IACA,OAAO,EAAE,MAAMjB,EAAc,MAAM,MAAA;AAAA,IACnC,eAAe;AAAA,MACb,OAAOA,EAAc,MAAM;AAAA,IAAA;AAAA,EAC7B;AAEF,SAAA+B,EAAO,cAAc,UAAW,CAAC,KAAK,IAAI,EAAG,SAAS/B,EAAc,MAAM,aAAa,GACvF+B,EAAO,cAAc,UAAW,CAAC,KAAK,IAAI,EAAG,SAAS/B,EAAc,MAAM,aAAa,GAEhF+B;AACT;AAEO,SAASC,EAAqBhC,GAA0BiC,GAAsBpC,IAA8C,CAAA,GAAkB;AACnJ,MAAImB,IAA+B,CAAA,GAC/BC,IAA+B,CAAA;AACnC,EAAIgB,MAAc,eACfjB,EAAgC,iBAAiBrB,EAA0BK,EAAc,MAAM,gBAAgBH,CAAc,GAC7HmB,EAAgC,yBAAyBhB,EAAc,MAAM,wBAC7EiB,EAAkC,QAAQjB,EAAc,MAAM,OAC9DgB,EAAgC,WAAWhB,EAAc,MAAM,WAC/DgB,EAAgC,YAAYhB,EAAc,MAAM,OAChEiB,EAAkC,WAAWjB,EAAc,MAAM,WACjEiB,EAAiC,YAAYjB,EAAc,MAAM,QAEhEiC,MAAc,gBACfjB,EAAiC,QAAQhB,EAAc,MAAM,OAC7DiB,EAAiC,QAAQjB,EAAc,MAAM,SAE5DiC,MAAc,aAAaA,MAAc,cAC1CjB,EAAoC,kBAAkBhB,EAAc,MAAM,iBAC1EgB,EAAoC,mBAAmBhB,EAAc,MAAM,kBAC3EiB,EAAoC,kBAAkBjB,EAAc,MAAM,iBAC1EiB,EAAoC,mBAAmBjB,EAAc,MAAM,kBAC3EgB,EAAoC,UAAUhB,EAAc,MAAM,SAClEiB,EAAoC,UAAUjB,EAAc,MAAM,UAEjEA,EAAc,MAAM,cAAc,WACpCiB,EAAO,QAAQjB,EAAc,MAAM,cAAc,WAAWA,EAAc,MAAM,cAAc,KAE5FA,EAAc,MAAM,cAAc,WACpCgB,EAAO,QAAQhB,EAAc,MAAM,cAAc,WAAWA,EAAc,MAAM,cAAc;AAGhG,QAAM+B,IAAuB;AAAA,IAC3B,OAAAf;AAAA,IACA,OAAAC;AAAA,IACA,OAAO,EAAE,MAAMjB,EAAc,MAAM,MAAA;AAAA,IACnC,eAAe;AAAA,MACb,OAAOA,EAAc,MAAM;AAAA,IAAA;AAAA,EAC7B;AAGF,UAAIiC,MAAc,cAAcA,MAAc,iBAAiBA,MAAc,eAC3EF,EAAO,cAAc/B,EAAc,MAAM,UAAU,eAAe,YAClE+B,EAAO,cAAc,UAAW,CAAC,KAAK,IAAI,EAAG,SAAS/B,EAAc,MAAM,aAAa,GACvF+B,EAAO,cAAc,UAAW,CAAC,KAAK,IAAI,EAAG,SAAS/B,EAAc,MAAM,aAAa,IAErFiC,MAAc,gBAChBF,EAAO,oBAAoB/B,EAAc,MAAM,mBAC/C+B,EAAO,gBAAgB/B,EAAc,MAAM,gBAEtC+B;AACT;"}
1
+ {"version":3,"file":"getAxesDataFromForms.js","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getAxesDataFromForms.ts"],"sourcesContent":["import { AxesState } from '../../constantsCommon';\nimport { ChartType, InputGuide, InputState } from \"@milaboratories/pf-plots\";\nimport { LabelsRotation, ReactiveState, UniqueValuesBySourceMap, UniqueValuesData } from '../../types';\nimport { AxisSettingsContinuous } from '@milaboratories/miplots4';\nimport { AxisSettingsDiscrete } from '@milaboratories/miplots4';\nimport { HeatmapSettings } from '@milaboratories/miplots4';\n\ntype AxesSettings = {\n xAxis: AxisSettingsDiscrete | AxisSettingsContinuous | HeatmapSettings['xAxis'];\n yAxis: AxisSettingsDiscrete | AxisSettingsContinuous | HeatmapSettings['yAxis'];\n frame: { type: string };\n orientation?: string;\n title?: Record<string, string>;\n facetSettings: {\n nCols: number\n sharedX?: boolean,\n sharedY?: boolean\n };\n groupingDirection?: AxesState['other']['groupingDirection'];\n groupingStack?: AxesState['other']['groupingStack'];\n}\n\nconst HORIZONTAL_CAPTURES_MAX_COUNT = 6;\nconst SHORT_LABEL_MAX_LENGTH = 5;\n\nexport function getDiscreteLabelsRotation(value: LabelsRotation | null, discreteGroups: UniqueValuesData['options'] = []) {\n if (value !== null) {\n return value;\n }\n if (\n discreteGroups.length > HORIZONTAL_CAPTURES_MAX_COUNT &&\n discreteGroups.some(({ label }) => label.length > SHORT_LABEL_MAX_LENGTH)\n ) {\n return '45deg';\n }\n return 'center';\n}\n\nexport function getAxesDataFromFormsScatterplot(\n axesFormsData: AxesState,\n uniqueValues: UniqueValuesBySourceMap,\n optionsState: ReactiveState['optionsState'],\n inputGuide: InputGuide<InputState>,\n): AxesSettings {\n let xAxis: AxisSettingsContinuous | AxisSettingsDiscrete = {};\n let yAxis: AxisSettingsContinuous | AxisSettingsDiscrete = {};\n xAxis.showGrid = axesFormsData.axisX.gridlines;\n xAxis.showTicks = axesFormsData.axisX.ticks;\n yAxis.showGrid = axesFormsData.axisY.gridlines;\n yAxis.showTicks = axesFormsData.axisY.ticks;\n\n const xSource = optionsState.components.x.selectorStates?.[0].selectedSource ?? null;\n const ySource = optionsState.components.y.selectorStates?.[0].selectedSource ?? null;\n const infoX = xSource ? inputGuide.getSourceInfo(xSource) : null;\n const infoY = ySource ? inputGuide.getSourceInfo(ySource) : null;\n\n const isDiscreteX = infoX?.type === 'String';\n const isDiscreteY = infoY?.type === 'String';\n\n if (isDiscreteX) {\n xAxis = xAxis as AxisSettingsDiscrete;\n xAxis.scale = 'discrete';\n xAxis.labelsPosition = axesFormsData.axisX.labelsRotation ?? 'center';\n\n const saved = axesFormsData.axisX.order?.source === xSource;\n const uniqueList = uniqueValues[xSource]?.list;\n const uniqueLabels = uniqueValues[xSource]?.labels;\n const keys = saved ? axesFormsData.axisX.order?.options.map((v) => v.value) ?? uniqueList : uniqueList;\n const labels = saved ? axesFormsData.axisX.order?.options.reduce((res, v) => {\n res[v.value] = v.label;\n return res;\n }, {} as Record<string, string>) ?? uniqueLabels : uniqueLabels;\n if (keys && labels) {\n xAxis.keys = keys;\n xAxis.labels = labels;\n };\n } else {\n xAxis = xAxis as AxisSettingsContinuous;\n xAxis.scale = axesFormsData.axisX.scale;\n xAxis.significantLinesStyle = axesFormsData.axisX.significantLinesStyle;\n }\n\n if (isDiscreteY) {\n yAxis = yAxis as AxisSettingsDiscrete;\n yAxis.scale = 'discrete';\n yAxis.labelsPosition = axesFormsData.axisY.labelsRotation ?? 'center';\n\n const uniqueList = uniqueValues[ySource]?.list;\n const uniqueLabels = uniqueValues[ySource]?.labels;\n const saved = axesFormsData.axisY.order?.source === ySource;\n const keys = saved ? axesFormsData.axisY.order?.options.map((v) => v.value) ?? uniqueList : uniqueList;\n const labels = saved ? axesFormsData.axisY.order?.options.reduce((res, v) => {\n res[v.value] = v.label;\n return res;\n }, {} as Record<string, string>) ?? uniqueLabels : uniqueLabels;\n if (keys && labels) {\n yAxis.keys = keys;\n yAxis.labels = labels;\n };\n } else {\n yAxis = yAxis as AxisSettingsContinuous;\n yAxis.scale = axesFormsData.axisY.scale;\n yAxis.significantLinesStyle = axesFormsData.axisY.significantLinesStyle;\n }\n\n if (axesFormsData.axisY.titleMode !== 'auto') {\n yAxis.title = axesFormsData.axisY.titleMode === 'custom' ? axesFormsData.axisY.customTitle : ''\n }\n if (axesFormsData.axisX.titleMode !== 'auto') {\n xAxis.title = axesFormsData.axisX.titleMode === 'custom' ? axesFormsData.axisX.customTitle : ''\n }\n\n const result: AxesSettings = {\n xAxis,\n yAxis,\n frame: { type: axesFormsData.other.frame },\n facetSettings: {\n nCols: axesFormsData.other.facetColumns\n }\n };\n result.facetSettings.sharedX = (['x', 'xy']).includes(axesFormsData.other.facetSharedBy);\n result.facetSettings.sharedY = (['y', 'xy']).includes(axesFormsData.other.facetSharedBy);\n\n return result;\n}\n\nexport function getAxesDataFromForms(axesFormsData: AxesState, chartType: ChartType, discreteGroups: UniqueValuesData['options'] = []): AxesSettings {\n let xAxis: AxesSettings['xAxis'] = {};\n let yAxis: AxesSettings['yAxis'] = {};\n if (chartType === 'discrete') {\n (xAxis as AxisSettingsDiscrete)!.labelsPosition = getDiscreteLabelsRotation(axesFormsData.axisX.labelsRotation, discreteGroups);\n (xAxis as AxisSettingsDiscrete)!.linesBetweenCategories = axesFormsData.axisX.linesBetweenCategories;\n (yAxis as AxisSettingsContinuous)!.scale = axesFormsData.axisY.scale;\n (xAxis as AxisSettingsDiscrete)!.showGrid = axesFormsData.axisX.gridlines;\n (xAxis as AxisSettingsDiscrete)!.showTicks = axesFormsData.axisX.ticks;\n (yAxis as AxisSettingsContinuous)!.showGrid = axesFormsData.axisY.gridlines;\n (yAxis as AxisSettingsContinuous).showTicks = axesFormsData.axisY.ticks;\n }\n if (chartType === 'histogram') {\n (xAxis as AxisSettingsContinuous).scale = axesFormsData.axisX.scale;\n (yAxis as AxisSettingsContinuous).scale = axesFormsData.axisY.scale;\n }\n if (chartType === 'heatmap' || chartType === 'bubble') {\n (xAxis as HeatmapSettings['xAxis'])!.axisLabelsAngle = axesFormsData.axisX.axisLabelsAngle;\n (xAxis as HeatmapSettings['xAxis'])!.groupLabelsAngle = axesFormsData.axisX.groupLabelsAngle;\n (yAxis as HeatmapSettings['yAxis'])!.axisLabelsAngle = axesFormsData.axisY.axisLabelsAngle;\n (yAxis as HeatmapSettings['yAxis'])!.groupLabelsAngle = axesFormsData.axisY.groupLabelsAngle;\n (xAxis as HeatmapSettings['xAxis'])!.sorting = axesFormsData.axisX.sorting;\n (yAxis as HeatmapSettings['yAxis'])!.sorting = axesFormsData.axisY.sorting;\n }\n if (axesFormsData.axisY.titleMode !== 'auto') {\n yAxis!.title = axesFormsData.axisY.titleMode === 'custom' ? axesFormsData.axisY.customTitle : ''\n }\n if (axesFormsData.axisX.titleMode !== 'auto') {\n xAxis!.title = axesFormsData.axisX.titleMode === 'custom' ? axesFormsData.axisX.customTitle : ''\n }\n\n const result: AxesSettings = {\n xAxis,\n yAxis,\n frame: { type: axesFormsData.other.frame },\n facetSettings: {\n nCols: axesFormsData.other.facetColumns\n }\n };\n\n if (chartType === 'discrete' || chartType === 'scatterplot' || chartType === 'heatmap') {\n result.orientation = axesFormsData.other.reverse ? 'horizontal' : 'vertical';\n result.facetSettings.sharedX = (['x', 'xy']).includes(axesFormsData.other.facetSharedBy);\n result.facetSettings.sharedY = (['y', 'xy']).includes(axesFormsData.other.facetSharedBy);\n }\n if (chartType === 'histogram') {\n result.groupingDirection = axesFormsData.other.groupingDirection;\n result.groupingStack = axesFormsData.other.groupingStack;\n }\n return result;\n}\n"],"names":["getDiscreteLabelsRotation","value","discreteGroups","label","getAxesDataFromFormsScatterplot","axesFormsData","uniqueValues","optionsState","inputGuide","_a","_b","_c","_d","_e","_f","_g","_h","_i","_j","_k","_l","xAxis","yAxis","xSource","ySource","infoX","infoY","isDiscreteX","isDiscreteY","saved","uniqueList","uniqueLabels","keys","v","labels","res","result","getAxesDataFromForms","chartType"],"mappings":"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"}