@milaboratories/graph-maker 1.1.171 → 1.1.172

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.
@@ -5,7 +5,7 @@ import { createContinuousMappingFromPalette as S } from "../../dataBindAes.js";
5
5
  import U from "./FormWrapper.vue.js";
6
6
  import $ from "./PalettesForm.vue.js";
7
7
  import w from "../MultiselectButton.vue.js";
8
- const F = { class: "aes-mapping-block" }, G = { style: { margin: "0 24px" } }, D = { class: "section-title" }, R = { style: { margin: "24px 0" } }, j = { style: { margin: "24px 0" } }, q = { style: { margin: "24px 0" } }, z = { style: { display: "flex", marginTop: "16px", gap: "8px" } }, Z = /* @__PURE__ */ N({
8
+ const F = { class: "aes-mapping-block" }, G = { style: { margin: "0 24px" } }, D = { class: "section-title" }, R = { style: { margin: "24px 0" } }, W = { style: { margin: "24px 0" } }, j = { style: { margin: "24px 0" } }, q = { style: { display: "flex", marginTop: "16px", gap: "8px" } }, Z = /* @__PURE__ */ N({
9
9
  __name: "AesDataMappingContinuous",
10
10
  props: {
11
11
  dataColumnLabel: {},
@@ -65,14 +65,14 @@ const F = { class: "aes-mapping-block" }, G = { style: { margin: "0 24px" } }, D
65
65
  })
66
66
  }, null, 8, ["title", "palette"])
67
67
  ]),
68
- n("div", j, [
68
+ n("div", W, [
69
69
  s(m(P), {
70
70
  options: L,
71
71
  modelValue: g.value,
72
72
  "onUpdate:modelValue": a[1] || (a[1] = (t) => g.value = t)
73
73
  }, null, 8, ["modelValue"])
74
74
  ]),
75
- n("div", q, [
75
+ n("div", j, [
76
76
  s(m(P), {
77
77
  label: "Gradient range",
78
78
  options: B,
@@ -80,7 +80,7 @@ const F = { class: "aes-mapping-block" }, G = { style: { margin: "0 24px" } }, D
80
80
  "onUpdate:modelValue": a[2] || (a[2] = (t) => d.value = t)
81
81
  }, null, 8, ["modelValue"])
82
82
  ]),
83
- n("div", z, [
83
+ n("div", q, [
84
84
  d.value === "custom" ? (c(), O(m(C), {
85
85
  key: 0,
86
86
  label: "From",
@@ -93,7 +93,7 @@ const F = { class: "aes-mapping-block" }, G = { style: { margin: "0 24px" } }, D
93
93
  label: "Mid point",
94
94
  updateOnEnterOrClickOutside: !0,
95
95
  useIncrementButtons: !1,
96
- style: { flexGrow: 1 },
96
+ style: { flexGrow: 1, maxWidth: "50%" },
97
97
  modelValue: f.value,
98
98
  "onUpdate:modelValue": a[4] || (a[4] = (t) => f.value = t)
99
99
  }, null, 8, ["modelValue"]),
@@ -1 +1 @@
1
- {"version":3,"file":"AesDataMappingContinuous.vue.js","sources":["../../../../src/GraphMaker/components/AesSettings/AesDataMappingContinuous.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlBtnGroup, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { ref, watch } from 'vue';\nimport { ContinuousPalette, Palette } from './types';\nimport { PALETTE_MAP } from '../../constantsAesthetic';\nimport { AestheticMappingContinuous, createContinuousMappingFromPalette } from '../../dataBindAes';\nimport FormWrapper from './FormWrapper.vue';\nimport PalettesForm from './PalettesForm.vue';\nimport MultiselectButton from '../MultiselectButton.vue';\n\nconst props = defineProps<{\n dataColumnLabel: string;\n modelValue: AestheticMappingContinuous;\n}>();\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst palettesOpen = ref(false);\nconst palette = ref<Palette>(props.modelValue.palette);\n\nfunction onPaletteSelect(value: Palette) {\n palette.value = value;\n palettesOpen.value = false;\n emit(\n 'update:modelValue',\n createContinuousMappingFromPalette(value as ContinuousPalette)\n );\n}\n\nconst MODE_OPTIONS = [{ value: 'auto', label: 'Auto' }, { value: 'custom', label: 'Custom' }];\nconst mode = ref<'auto' | 'custom'>(props.modelValue.range ? 'custom' : 'auto');\n\nconst LOG_LINEAR_OPTIONS = [{ value: 'linear', label: 'Linear' }, { value: 'log', label: 'Log' }];\nconst logOrLinear = ref<'linear' | 'log'>(props.modelValue.log ? 'log' : 'linear');\n\nconst lowerValue = ref<number | undefined>(props.modelValue.range?.minValue ?? undefined);\nconst upperValue = ref<number | undefined>(props.modelValue.range?.maxValue ?? undefined);\n\nconst midPoint = ref<number | undefined>(props.modelValue.midPoint ?? undefined);\n\nwatch(() => mode.value, (v) => {\n if (v === 'custom') {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: { minValue: lowerValue.value ?? null, maxValue: upperValue.value ?? null } }\n );\n }\n if (v === 'auto') {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: null }\n );\n }\n});\nwatch(() => lowerValue.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: { ...props.modelValue.range, minValue: v } }\n );\n});\nwatch(() => upperValue.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: { ...props.modelValue.range, maxValue: v } }\n );\n});\nwatch(() => midPoint.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, midPoint: v ?? null }\n );\n});\nwatch(() => logOrLinear.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, log: v === 'log' }\n );\n});\n\n</script>\n\n<template>\n <div class=\"aes-mapping-block\">\n <div style=\"margin: 0 24px\">\n <div class=\"section-title\">\n <span>{{ dataColumnLabel }}</span>\n </div>\n <div style=\"margin: 24px 0\">\n <multiselect-button\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n </div>\n <div style=\"margin: 24px 0\">\n <pl-btn-group\n :options=\"LOG_LINEAR_OPTIONS\"\n v-model=\"logOrLinear\"\n />\n </div>\n <div style=\"margin: 24px 0\">\n <pl-btn-group\n label=\"Gradient range\"\n :options=\"MODE_OPTIONS\"\n v-model=\"mode\"\n />\n </div>\n <div :style=\"{display: 'flex', marginTop: '16px', gap: '8px'}\">\n <pl-number-field\n v-if=\"mode === 'custom'\"\n label=\"From\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n v-model=\"lowerValue\"\n />\n <pl-number-field\n label=\"Mid point\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n :style=\"{flexGrow: 1}\"\n v-model=\"midPoint\"\n />\n <pl-number-field\n v-if=\"mode === 'custom'\"\n label=\"To\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n v-model=\"upperValue\"\n />\n </div>\n <form-wrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <palettes-form :selected=\"palette\" :categorical=\"false\" @select=\"onPaletteSelect\" />\n </form-wrapper>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","MODE_OPTIONS","mode","LOG_LINEAR_OPTIONS","logOrLinear","lowerValue","_a","upperValue","_b","midPoint","watch","v"],"mappings":";;;;;;;;;;;;;;;;AAUA,UAAMA,IAAQC,GAKRC,IAAOC,GAEPC,IAAeC,EAAI,EAAK,GACxBC,IAAUD,EAAaL,EAAM,WAAW,OAAO;AAErD,aAASO,EAAgBC,GAAgB;AACvC,MAAAF,EAAQ,QAAQE,GAChBJ,EAAa,QAAQ,IACrBF;AAAA,QACE;AAAA,QACAO,EAAmCD,CAA0B;AAAA,MAAA;AAAA,IAEjE;AAEA,UAAME,IAAe,CAAC,EAAE,OAAO,QAAQ,OAAO,OAAA,GAAU,EAAE,OAAO,UAAU,OAAO,UAAU,GACtFC,IAAON,EAAuBL,EAAM,WAAW,QAAQ,WAAW,MAAM,GAExEY,IAAqB,CAAC,EAAE,OAAO,UAAU,OAAO,SAAA,GAAY,EAAE,OAAO,OAAO,OAAO,OAAO,GAC1FC,IAAcR,EAAsBL,EAAM,WAAW,MAAM,QAAQ,QAAQ,GAE3Ec,IAAaT,IAAwBU,IAAAf,EAAM,WAAW,UAAjB,gBAAAe,EAAwB,aAAY,MAAS,GAClFC,IAAaX,IAAwBY,IAAAjB,EAAM,WAAW,UAAjB,gBAAAiB,EAAwB,aAAY,MAAS,GAElFC,IAAWb,EAAwBL,EAAM,WAAW,YAAY,MAAS;AAE/E,WAAAmB,EAAM,MAAMR,EAAK,OAAO,CAACS,MAAM;AAC7B,MAAIA,MAAM,YACRlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,EAAE,UAAUc,EAAW,SAAS,MAAM,UAAUE,EAAW,SAAS,OAAK;AAAA,MAAE,GAGzGI,MAAM,UACRlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,KAAA;AAAA,MAAK;AAAA,IAGzC,CAAC,GACDmB,EAAM,MAAML,EAAW,OAAO,CAACM,MAAM;AACnC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,EAAE,GAAGA,EAAM,WAAW,OAAO,UAAUoB,EAAA,EAAE;AAAA,MAAE;AAAA,IAE7E,CAAC,GACDD,EAAM,MAAMH,EAAW,OAAO,CAACI,MAAM;AACnC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,EAAE,GAAGA,EAAM,WAAW,OAAO,UAAUoB,EAAA,EAAE;AAAA,MAAE;AAAA,IAE7E,CAAC,GACDD,EAAM,MAAMD,EAAS,OAAO,CAACE,MAAM;AACjC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,UAAUoB,KAAK,KAAA;AAAA,MAAK;AAAA,IAE/C,CAAC,GACDD,EAAM,MAAMN,EAAY,OAAO,CAACO,MAAM;AACpC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,KAAKoB,MAAM,MAAA;AAAA,MAAM;AAAA,IAE5C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"AesDataMappingContinuous.vue.js","sources":["../../../../src/GraphMaker/components/AesSettings/AesDataMappingContinuous.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlBtnGroup, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { ref, watch } from 'vue';\nimport { ContinuousPalette, Palette } from './types';\nimport { PALETTE_MAP } from '../../constantsAesthetic';\nimport { AestheticMappingContinuous, createContinuousMappingFromPalette } from '../../dataBindAes';\nimport FormWrapper from './FormWrapper.vue';\nimport PalettesForm from './PalettesForm.vue';\nimport MultiselectButton from '../MultiselectButton.vue';\n\nconst props = defineProps<{\n dataColumnLabel: string;\n modelValue: AestheticMappingContinuous;\n}>();\n\nconst emit = defineEmits(['update:modelValue']);\n\nconst palettesOpen = ref(false);\nconst palette = ref<Palette>(props.modelValue.palette);\n\nfunction onPaletteSelect(value: Palette) {\n palette.value = value;\n palettesOpen.value = false;\n emit(\n 'update:modelValue',\n createContinuousMappingFromPalette(value as ContinuousPalette)\n );\n}\n\nconst MODE_OPTIONS = [{ value: 'auto', label: 'Auto' }, { value: 'custom', label: 'Custom' }];\nconst mode = ref<'auto' | 'custom'>(props.modelValue.range ? 'custom' : 'auto');\n\nconst LOG_LINEAR_OPTIONS = [{ value: 'linear', label: 'Linear' }, { value: 'log', label: 'Log' }];\nconst logOrLinear = ref<'linear' | 'log'>(props.modelValue.log ? 'log' : 'linear');\n\nconst lowerValue = ref<number | undefined>(props.modelValue.range?.minValue ?? undefined);\nconst upperValue = ref<number | undefined>(props.modelValue.range?.maxValue ?? undefined);\n\nconst midPoint = ref<number | undefined>(props.modelValue.midPoint ?? undefined);\n\nwatch(() => mode.value, (v) => {\n if (v === 'custom') {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: { minValue: lowerValue.value ?? null, maxValue: upperValue.value ?? null } }\n );\n }\n if (v === 'auto') {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: null }\n );\n }\n});\nwatch(() => lowerValue.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: { ...props.modelValue.range, minValue: v } }\n );\n});\nwatch(() => upperValue.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, range: { ...props.modelValue.range, maxValue: v } }\n );\n});\nwatch(() => midPoint.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, midPoint: v ?? null }\n );\n});\nwatch(() => logOrLinear.value, (v) => {\n emit(\n 'update:modelValue',\n { ...props.modelValue, log: v === 'log' }\n );\n});\n\n</script>\n\n<template>\n <div class=\"aes-mapping-block\">\n <div style=\"margin: 0 24px\">\n <div class=\"section-title\">\n <span>{{ dataColumnLabel }}</span>\n </div>\n <div style=\"margin: 24px 0\">\n <multiselect-button\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n </div>\n <div style=\"margin: 24px 0\">\n <pl-btn-group\n :options=\"LOG_LINEAR_OPTIONS\"\n v-model=\"logOrLinear\"\n />\n </div>\n <div style=\"margin: 24px 0\">\n <pl-btn-group\n label=\"Gradient range\"\n :options=\"MODE_OPTIONS\"\n v-model=\"mode\"\n />\n </div>\n <div :style=\"{display: 'flex', marginTop: '16px', gap: '8px'}\">\n <pl-number-field\n v-if=\"mode === 'custom'\"\n label=\"From\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n v-model=\"lowerValue\"\n />\n <pl-number-field\n label=\"Mid point\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n :style=\"{flexGrow: 1, maxWidth: '50%'}\"\n v-model=\"midPoint\"\n />\n <pl-number-field\n v-if=\"mode === 'custom'\"\n label=\"To\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n v-model=\"upperValue\"\n />\n </div>\n <form-wrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <palettes-form :selected=\"palette\" :categorical=\"false\" @select=\"onPaletteSelect\" />\n </form-wrapper>\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","MODE_OPTIONS","mode","LOG_LINEAR_OPTIONS","logOrLinear","lowerValue","_a","upperValue","_b","midPoint","watch","v"],"mappings":";;;;;;;;;;;;;;;;AAUA,UAAMA,IAAQC,GAKRC,IAAOC,GAEPC,IAAeC,EAAI,EAAK,GACxBC,IAAUD,EAAaL,EAAM,WAAW,OAAO;AAErD,aAASO,EAAgBC,GAAgB;AACvC,MAAAF,EAAQ,QAAQE,GAChBJ,EAAa,QAAQ,IACrBF;AAAA,QACE;AAAA,QACAO,EAAmCD,CAA0B;AAAA,MAAA;AAAA,IAEjE;AAEA,UAAME,IAAe,CAAC,EAAE,OAAO,QAAQ,OAAO,OAAA,GAAU,EAAE,OAAO,UAAU,OAAO,UAAU,GACtFC,IAAON,EAAuBL,EAAM,WAAW,QAAQ,WAAW,MAAM,GAExEY,IAAqB,CAAC,EAAE,OAAO,UAAU,OAAO,SAAA,GAAY,EAAE,OAAO,OAAO,OAAO,OAAO,GAC1FC,IAAcR,EAAsBL,EAAM,WAAW,MAAM,QAAQ,QAAQ,GAE3Ec,IAAaT,IAAwBU,IAAAf,EAAM,WAAW,UAAjB,gBAAAe,EAAwB,aAAY,MAAS,GAClFC,IAAaX,IAAwBY,IAAAjB,EAAM,WAAW,UAAjB,gBAAAiB,EAAwB,aAAY,MAAS,GAElFC,IAAWb,EAAwBL,EAAM,WAAW,YAAY,MAAS;AAE/E,WAAAmB,EAAM,MAAMR,EAAK,OAAO,CAACS,MAAM;AAC7B,MAAIA,MAAM,YACRlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,EAAE,UAAUc,EAAW,SAAS,MAAM,UAAUE,EAAW,SAAS,OAAK;AAAA,MAAE,GAGzGI,MAAM,UACRlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,KAAA;AAAA,MAAK;AAAA,IAGzC,CAAC,GACDmB,EAAM,MAAML,EAAW,OAAO,CAACM,MAAM;AACnC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,EAAE,GAAGA,EAAM,WAAW,OAAO,UAAUoB,EAAA,EAAE;AAAA,MAAE;AAAA,IAE7E,CAAC,GACDD,EAAM,MAAMH,EAAW,OAAO,CAACI,MAAM;AACnC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,OAAO,EAAE,GAAGA,EAAM,WAAW,OAAO,UAAUoB,EAAA,EAAE;AAAA,MAAE;AAAA,IAE7E,CAAC,GACDD,EAAM,MAAMD,EAAS,OAAO,CAACE,MAAM;AACjC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,UAAUoB,KAAK,KAAA;AAAA,MAAK;AAAA,IAE/C,CAAC,GACDD,EAAM,MAAMN,EAAY,OAAO,CAACO,MAAM;AACpC,MAAAlB;AAAA,QACE;AAAA,QACA,EAAE,GAAGF,EAAM,YAAY,KAAKoB,MAAM,MAAA;AAAA,MAAM;AAAA,IAE5C,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataBindAes.d.ts","sourceRoot":"","sources":["../../src/GraphMaker/dataBindAes.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataBindAes.d.ts","sourceRoot":"","sources":["../../src/GraphMaker/dataBindAes.ts"],"names":[],"mappings":"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"}
@@ -1,37 +1,37 @@
1
- import { PALETTE_MAP as _, FIXES_DOT_SHAPES as u, FIXED_LINE_TYPES as g, isCategorical as F, DEFAULT_BLACK as S } from "./constantsAesthetic.js";
2
- import y from "../node_modules/d3-scale/src/linear.js";
3
- function P(t) {
1
+ import { PALETTE_MAP as _, FIXES_DOT_SHAPES as u, FIXED_LINE_TYPES as g, isCategorical as F, DEFAULT_BLACK as E } from "./constantsAesthetic.js";
2
+ import P from "../node_modules/d3-scale/src/linear.js";
3
+ function y(t) {
4
4
  return t !== null && typeof t == "object" && "palette" in t && "type" in t && t.type === "continuous";
5
5
  }
6
6
  function f(t) {
7
7
  return t !== null && typeof t == "object" && "palette" in t && "type" in t && t.type === "categorical";
8
8
  }
9
- function b(t) {
10
- return f(t) || P(t);
9
+ function W(t) {
10
+ return f(t) || y(t);
11
11
  }
12
- const j = "#110529", I = "solid", m = 1, T = "21", D = 3, q = 2, k = { min: 3, max: 10 }, C = {
12
+ const M = "#110529", I = "solid", m = 1, T = "21", D = 3, b = 2, j = { min: 3, max: 10 }, C = {
13
13
  color: "#ccc",
14
14
  lineShape: I,
15
15
  dotShape: T
16
16
  }, N = "light";
17
- function O(t) {
18
- const r = 1 / (t.length - 1);
19
- return y().domain(t.map((a, o) => o * r)).range(t);
17
+ function U(t) {
18
+ const c = 1 / (t.length - 1);
19
+ return P().domain(t.map((a, e) => e * c)).range(t);
20
20
  }
21
- function U(t, r) {
22
- const a = _[t].colors, o = r.length > 1 ? 1 / (r.length - 1) : 0, s = O(a), i = F(t), l = r.reduce((n, e, c) => (n[e] = {
23
- colorIdx: i ? c : c * o,
21
+ function O(t, c) {
22
+ const a = _[t].colors, e = c.length > 1 ? 1 / (c.length - 1) : 0, s = U(a), r = F(t), l = c.reduce((o, n, i) => (o[n] = {
23
+ colorIdx: r ? i : i * e,
24
24
  aes: {
25
- color: i ? a[c % a.length] : s(c * o),
26
- lineShape: g[c % g.length],
27
- dotShape: u[c % u.length]
25
+ color: r ? a[i % a.length] : s(i * e),
26
+ lineShape: g[i % g.length],
27
+ dotShape: u[i % u.length]
28
28
  }
29
- }, n), {});
29
+ }, o), {});
30
30
  return {
31
31
  type: "categorical",
32
32
  palette: t,
33
33
  naAes: C,
34
- order: r,
34
+ order: c,
35
35
  hidden: {},
36
36
  mapping: l
37
37
  };
@@ -49,38 +49,36 @@ const V = [
49
49
  "heatmapAnnotation"
50
50
  // dendro
51
51
  ];
52
- function w(t, r, a) {
53
- V.forEach((o) => {
54
- var i;
55
- const s = (i = t.components[o]) == null ? void 0 : i.selectorStates;
52
+ function w(t, c, a) {
53
+ V.forEach((e) => {
54
+ var r;
55
+ const s = (r = t.components[e]) == null ? void 0 : r.selectorStates;
56
56
  s == null || s.forEach(({ selectedSource: l }) => {
57
- var c;
58
- const n = r[l], e = (c = a[l]) == null ? void 0 : c.list;
59
- n && e && f(n) && (r[l] = H(e, n));
57
+ var i;
58
+ const o = c[l], n = (i = a[l]) == null ? void 0 : i.list;
59
+ o && n && f(o) && (c[l] = H(n, o));
60
60
  });
61
- }), Object.keys(r).forEach((o) => {
62
- a[o] || delete r[o];
63
61
  });
64
62
  }
65
- function H(t, r) {
66
- const { palette: a, order: o, mapping: s } = r, i = new Set(t), l = new Set(o), n = t.filter((p) => !l.has(p)), e = o.filter((p) => !i.has(p));
67
- if (!n.length && !e.length)
68
- return r;
69
- let c = [...t];
70
- const h = { ...s }, E = _[a].colors;
71
- return n.forEach((p, L) => {
72
- const d = L + (o.length ? s[o[o.length - 1]].colorIdx + 1 : 0);
63
+ function H(t, c) {
64
+ const { palette: a, order: e, mapping: s } = c, r = new Set(t), l = new Set(e), o = t.filter((p) => !l.has(p)), n = e.filter((p) => !r.has(p));
65
+ if (!o.length && !n.length)
66
+ return c;
67
+ let i = [...t];
68
+ const h = { ...s }, S = _[a].colors;
69
+ return o.forEach((p, L) => {
70
+ const d = L + (e.length ? s[e[e.length - 1]].colorIdx + 1 : 0);
73
71
  h[p] = {
74
72
  colorIdx: d,
75
73
  aes: {
76
- color: E[d % E.length],
74
+ color: S[d % S.length],
77
75
  lineShape: g[d % g.length],
78
76
  dotShape: u[d % u.length]
79
77
  }
80
78
  };
81
- }), e.forEach((p) => {
79
+ }), n.forEach((p) => {
82
80
  h[p] && delete h[p];
83
- }), { ...r, order: c, mapping: h };
81
+ }), { ...c, order: i, mapping: h };
84
82
  }
85
83
  function z(t) {
86
84
  return {
@@ -93,99 +91,99 @@ function z(t) {
93
91
  };
94
92
  }
95
93
  function A(t) {
96
- return U(N, t);
94
+ return O(N, t);
97
95
  }
98
- function M(t, r, a, o) {
96
+ function R(t, c, a, e) {
99
97
  var l;
100
- if ((r == null ? void 0 : r.type) === "continuous")
98
+ if ((c == null ? void 0 : c.type) === "continuous")
101
99
  return { inheritedAes: {} };
102
- const s = a ? ((l = t[a]) == null ? void 0 : l.list) ?? [] : [], i = r ?? A(s);
103
- return i.order.length ? {
104
- order: i.order.filter((n) => {
105
- var e;
106
- return !((e = i.hidden) != null && e[n]);
100
+ const s = a ? ((l = t[a]) == null ? void 0 : l.list) ?? [] : [], r = c ?? A(s);
101
+ return r.order.length ? {
102
+ order: r.order.filter((o) => {
103
+ var n;
104
+ return !((n = r.hidden) != null && n[o]);
107
105
  }),
108
- inheritedAes: i.order.reduce((n, e) => {
109
- const c = i.mapping[e].aes;
110
- return n[e] = {}, o.fill && (n[e].fillColor = c.color, n[e].dotFill = c.color), o.stroke && (n[e].lineColor = c.color), o.dotShape && (n[e].dotShape = c.dotShape), o.lineType && (n[e].lineShape = c.lineShape), n;
106
+ inheritedAes: r.order.reduce((o, n) => {
107
+ const i = r.mapping[n].aes;
108
+ return o[n] = {}, e.fill && (o[n].fillColor = i.color, o[n].dotFill = i.color), e.stroke && (o[n].lineColor = i.color), e.dotShape && (o[n].dotShape = i.dotShape), e.lineType && (o[n].lineShape = i.lineShape), o;
111
109
  }, {})
112
110
  } : { inheritedAes: {} };
113
111
  }
114
- function R(t, r, a) {
112
+ function X(t, c, a) {
115
113
  var l;
116
- const o = a[t];
117
- if (o && !f(o))
114
+ const e = a[t];
115
+ if (e && !f(e))
118
116
  return { order: [], inheritedAes: {} };
119
- const s = ((l = r[t]) == null ? void 0 : l.list) ?? [], i = o ?? A(s);
117
+ const s = ((l = c[t]) == null ? void 0 : l.list) ?? [], r = e ?? A(s);
120
118
  return {
121
- order: i.order,
122
- inheritedAes: i.order.reduce((n, e) => {
123
- const c = i.mapping[e].aes;
124
- return n[e] = {
125
- fillColor: c.color,
126
- lineColor: c.color,
127
- dotFill: c.color,
128
- dotShape: c.dotShape,
119
+ order: r.order,
120
+ inheritedAes: r.order.reduce((o, n) => {
121
+ const i = r.mapping[n].aes;
122
+ return o[n] = {
123
+ fillColor: i.color,
124
+ lineColor: i.color,
125
+ dotFill: i.color,
126
+ dotShape: i.dotShape,
129
127
  dotSize: D,
130
128
  lineWidth: m
131
- }, n;
129
+ }, o;
132
130
  }, {})
133
131
  };
134
132
  }
135
- function X(t, r, a) {
133
+ function Z(t, c, a) {
136
134
  var l;
137
- const o = a[t];
138
- if (o && !f(o))
135
+ const e = a[t];
136
+ if (e && !f(e))
139
137
  return {};
140
- const s = ((l = r[t]) == null ? void 0 : l.list) ?? [], i = o ?? A(s);
141
- return i.order.length ? {
142
- order: i.order.filter((n) => {
143
- var e;
144
- return !((e = i.hidden) != null && e[n]);
138
+ const s = ((l = c[t]) == null ? void 0 : l.list) ?? [], r = e ?? A(s);
139
+ return r.order.length ? {
140
+ order: r.order.filter((o) => {
141
+ var n;
142
+ return !((n = r.hidden) != null && n[o]);
145
143
  }),
146
- inheritedAes: i.order.reduce((n, e) => {
147
- const c = i.mapping[e].aes;
148
- return n[e] = {
149
- fillColor: c.color,
150
- lineColor: S,
151
- dotFill: S,
144
+ inheritedAes: r.order.reduce((o, n) => {
145
+ const i = r.mapping[n].aes;
146
+ return o[n] = {
147
+ fillColor: i.color,
148
+ lineColor: E,
149
+ dotFill: E,
152
150
  dotShape: T,
153
151
  dotSize: D,
154
152
  lineWidth: m
155
- }, n;
153
+ }, o;
156
154
  }, {})
157
155
  } : { order: [], inheritedAes: {} };
158
156
  }
159
- function Z(t, r, a, o) {
157
+ function k(t, c, a, e) {
160
158
  var l;
161
- const s = ((l = r[t]) == null ? void 0 : l.list) ?? [], i = a[t] ?? A(s);
162
- return i.order.reduce(
163
- (n, e) => {
164
- const c = i.mapping[e].aes;
165
- return n[e] = c[o], n;
159
+ const s = ((l = c[t]) == null ? void 0 : l.list) ?? [], r = a[t] ?? A(s);
160
+ return r.order.reduce(
161
+ (o, n) => {
162
+ const i = r.mapping[n].aes;
163
+ return o[n] = i[e], o;
166
164
  },
167
165
  {}
168
166
  );
169
167
  }
170
168
  export {
171
- k as DEFAULT_DOT_RANGE,
169
+ j as DEFAULT_DOT_RANGE,
172
170
  T as DEFAULT_DOT_SHAPE,
173
171
  D as DEFAULT_DOT_SIZE,
174
- q as DEFAULT_DOT_SIZE_CANVAS,
175
- j as DEFAULT_LINE_COLOR,
172
+ b as DEFAULT_DOT_SIZE_CANVAS,
173
+ M as DEFAULT_LINE_COLOR,
176
174
  I as DEFAULT_LINE_SHAPE,
177
175
  m as DEFAULT_LINE_WIDTH,
178
176
  C as DEFAULT_NA_AES,
179
- U as createCategoricalMappingFromPalette,
177
+ O as createCategoricalMappingFromPalette,
180
178
  z as createContinuousMappingFromPalette,
181
179
  A as createDefaultMapping,
182
- M as getChartSettingsInheritedAes,
183
- Z as getDendroAes,
184
- X as getHistogramAes,
185
- R as getScatterplotAes,
186
- b as isAestheticMapping,
180
+ R as getChartSettingsInheritedAes,
181
+ k as getDendroAes,
182
+ Z as getHistogramAes,
183
+ X as getScatterplotAes,
184
+ W as isAestheticMapping,
187
185
  f as isAestheticMappingCategorical,
188
- P as isAestheticMappingContinuous,
186
+ y as isAestheticMappingContinuous,
189
187
  H as updateCategoricalMapping,
190
188
  w as updateDataBindAes
191
189
  };
@@ -1 +1 @@
1
- {"version":3,"file":"dataBindAes.js","sources":["../../src/GraphMaker/dataBindAes.ts"],"sourcesContent":["import { InputState } from '@milaboratories/pf-plots';\nimport { scaleLinear } from 'd3-scale';\nimport {\n ContinuousPalette,\n DotShape,\n LineType,\n Palette,\n} from './components/AesSettings/types';\nimport {\n DEFAULT_BLACK,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n isCategorical,\n PALETTE_MAP\n} from './constantsAesthetic';\nimport { AesType, ContinuousDataMappingSize, NumberRange } from './constantsCommon';\nimport { UniqueValuesBySourceMap } from './types';\n\nexport type AestheticMappingState = Record<string, AestheticMapping>;\nexport type AestheticMapping =\n | AestheticMappingContinuous\n | AestheticMappingCategorical;\n\ninterface MappingRange {\n maxValue: number | null;\n minValue: number | null;\n}\n\n/** Mapping for continuous axes (numerical axes) */\nexport interface AestheticMappingContinuous {\n type: 'continuous';\n palette: ContinuousPalette;\n range: MappingRange | null;\n midPoint: number | null;\n log: boolean;\n naAes: AestheticValues;\n}\n\nexport function isAestheticMappingContinuous(v:unknown | AestheticMappingContinuous): v is AestheticMappingContinuous {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'continuous';\n}\n\n/** Mapping for categorical axes (string axes) */\nexport interface AestheticMappingCategorical {\n type: 'categorical';\n palette: Palette;\n naAes: AestheticValues;\n order: string[];\n hidden?: Record<string, boolean>;\n mapping: AestheticMappingRecord;\n}\n\nexport function isAestheticMappingCategorical(v:unknown | AestheticMappingCategorical): v is AestheticMappingCategorical {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'categorical';\n}\n\nexport function isAestheticMapping(v:unknown | AestheticMappingContinuous | AestheticMappingCategorical):v is AestheticMapping {\n return isAestheticMappingCategorical(v) || isAestheticMappingContinuous(v);\n}\n\n// key - column value, colorIdx - idx of color (if palette is categorical) of percent value of colors gradient (if palette is continuous)\ntype AestheticMappingRecord = Record<\n string | number,\n {\n aes: Partial<AestheticValues>;\n colorIdx: number;\n }\n>;\n\ninterface AestheticValues {\n /** Number to retrieve the color from pallet, string to represent specific color as hex */\n color: string;\n lineShape: LineType;\n dotShape: DotShape;\n}\n\nexport const DEFAULT_LINE_COLOR = '#110529';\nexport const DEFAULT_LINE_SHAPE:LineType = 'solid';\nexport const DEFAULT_LINE_WIDTH = 1;\nexport const DEFAULT_DOT_SHAPE:DotShape = '21'; // colored circle, shape number as in R\nexport const DEFAULT_DOT_SIZE = 3; // radius;\nexport const DEFAULT_DOT_SIZE_CANVAS = 2;\nexport const DEFAULT_DOT_RANGE:NumberRange = { min: 3, max: 10 }; // radius;\n\nexport const DEFAULT_NA_AES = {\n color: '#ccc',\n lineShape: DEFAULT_LINE_SHAPE as LineType,\n dotShape: DEFAULT_DOT_SHAPE as DotShape,\n};\nconst DEFAULT_PALETTE: Palette = 'light';\n\nfunction getColorScale(colors: string[]) {\n const colorStep = 1 / (colors.length - 1);\n return scaleLinear<string, string>()\n .domain(colors.map((_c, idx) => idx * colorStep))\n .range(colors);\n}\n\nexport function createCategoricalMappingFromPalette(\n palette: Palette,\n values: string[],\n): AestheticMappingCategorical {\n const colors = PALETTE_MAP[palette].colors;\n const step = values.length > 1 ? 1 / (values.length - 1) : 0;\n const colorScale = getColorScale(colors);\n\n const categorical = isCategorical(palette);\n const mapping = values.reduce((res: AestheticMappingRecord, value, idx) => {\n res[value] = {\n colorIdx: categorical ? idx : idx * step,\n aes: {\n color: categorical\n ? colors[idx % colors.length]\n : colorScale(idx * step),\n lineShape: FIXED_LINE_TYPES[idx % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[idx % FIXES_DOT_SHAPES.length],\n },\n };\n return res;\n }, {});\n return {\n type: 'categorical',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n order: values,\n hidden: {},\n mapping,\n };\n}\n\nconst INPUTS_WITH_AES_MAPPINGS = [\n 'primaryGrouping', 'secondaryGrouping', // discrete charts\n 'grouping', 'shape', // scatterplot\n 'nodeColor', 'nodeShape', 'lineColor', 'heatmapAnnotation', // dendro\n];\nexport function updateDataBindAes(\n optionsState: InputState,\n dataBindAes: Record<string, AestheticMapping>,\n uniqueValuesMap: UniqueValuesBySourceMap\n) {\n INPUTS_WITH_AES_MAPPINGS.forEach((inputName) => {\n const selectorStates = optionsState.components[inputName as keyof InputState]?.selectorStates;\n selectorStates?.forEach(({selectedSource}) => {\n const savedMapping = dataBindAes[selectedSource];\n const uniqueValues = uniqueValuesMap[selectedSource]?.list;\n if (savedMapping && uniqueValues && isAestheticMappingCategorical(savedMapping)) {\n dataBindAes[selectedSource] = updateCategoricalMapping(uniqueValues, savedMapping);\n }\n })\n });\n Object.keys(dataBindAes).forEach((selectedSource) => {\n if (!uniqueValuesMap[selectedSource]) {\n delete dataBindAes[selectedSource];\n }\n })\n}\n\nexport function updateCategoricalMapping(\n newUniqueValues: string[],\n currentMapping: AestheticMappingCategorical,\n): AestheticMappingCategorical {\n const {palette, order, mapping} = currentMapping;\n const uniqueValuesSet = new Set(newUniqueValues);\n const orderValuesSet = new Set(order);\n const addedValues:string[] = newUniqueValues.filter(v => !orderValuesSet.has(v));\n const removedValues:string[] = order.filter(v => !uniqueValuesSet.has(v as string));\n if (!addedValues.length && !removedValues.length) {\n return currentMapping;\n }\n let newOrder = [...newUniqueValues];\n const newMapping = {...mapping};\n const colors = PALETTE_MAP[palette].colors;\n addedValues.forEach((v, idx) => {\n const index = idx + (order.length ? mapping[order[order.length - 1]].colorIdx + 1 : 0);\n newMapping[v] = {\n colorIdx: index,\n aes: {\n color: colors[index % colors.length],\n lineShape: FIXED_LINE_TYPES[index % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[index % FIXES_DOT_SHAPES.length],\n }\n }\n });\n removedValues.forEach((v) => {\n if (newMapping[v]) {\n delete newMapping[v];\n }\n });\n\n return {...currentMapping, order: newOrder, mapping: newMapping} as AestheticMappingCategorical;\n}\nexport function createContinuousMappingFromPalette(palette: ContinuousPalette):AestheticMappingContinuous {\n return {\n type: 'continuous',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n range: null,\n midPoint: null,\n log: false\n }\n}\n\nexport function createDefaultMapping(\n values: string[],\n): AestheticMappingCategorical {\n return createCategoricalMappingFromPalette(DEFAULT_PALETTE, values);\n}\n\nexport function createDefaultContinuousMapping(columnId: string):ContinuousDataMappingSize {\n return {\n column: columnId,\n range: DEFAULT_DOT_RANGE\n }\n}\n\nexport function getChartSettingsInheritedAes(\n uniqueValuesData: UniqueValuesBySourceMap,\n savedMapping: AestheticMapping | undefined,\n sourceId: string | null,\n usedAesInMapping: Record<AesType, boolean>,\n) {\n if (savedMapping?.type === 'continuous') {\n return { inheritedAes: {} };\n }\n const uniqueValues = sourceId ? uniqueValuesData[sourceId]?.list ?? [] : [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n if (!mapping.order.length) {\n return {inheritedAes: {}};\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = {};\n if (usedAesInMapping.fill) {\n res[value].fillColor = aes.color;\n res[value].dotFill = aes.color;\n }\n if (usedAesInMapping.stroke) {\n res[value].lineColor = aes.color;\n }\n if (usedAesInMapping.dotShape) {\n res[value].dotShape = aes.dotShape;\n }\n if (usedAesInMapping.lineType) {\n res[value].lineShape = aes.lineShape;\n }\n return res;\n }, {}),\n };\n}\n\nexport function getScatterplotAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return {order: [], inheritedAes: {}};\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n return {\n order: mapping.order,\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: aes.color,\n dotFill: aes.color,\n dotShape: aes.dotShape,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {})\n }\n}\n\nexport function getHistogramAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return {};\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n if (!mapping.order.length) {\n return {order: [], inheritedAes: {}};\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: DEFAULT_BLACK,\n dotFill: DEFAULT_BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {})\n };\n}\n\nexport function getDendroAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n field: keyof AestheticValues,\n): Record<string, AestheticValues[keyof AestheticValues]> {\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping =\n dataBindAes[selectedSource] as AestheticMappingCategorical ??\n createDefaultMapping(uniqueValues);\n return mapping.order.reduce(\n (res: Record<string, AestheticValues[keyof AestheticValues]>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = aes[field] as string;\n return res;\n },\n {},\n );\n}\n"],"names":["isAestheticMappingContinuous","v","isAestheticMappingCategorical","isAestheticMapping","DEFAULT_LINE_COLOR","DEFAULT_LINE_SHAPE","DEFAULT_LINE_WIDTH","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_DOT_SIZE_CANVAS","DEFAULT_DOT_RANGE","DEFAULT_NA_AES","DEFAULT_PALETTE","getColorScale","colors","colorStep","scaleLinear","_c","idx","createCategoricalMappingFromPalette","palette","values","PALETTE_MAP","step","colorScale","categorical","isCategorical","mapping","res","value","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","INPUTS_WITH_AES_MAPPINGS","updateDataBindAes","optionsState","dataBindAes","uniqueValuesMap","inputName","selectorStates","_a","selectedSource","savedMapping","uniqueValues","updateCategoricalMapping","newUniqueValues","currentMapping","order","uniqueValuesSet","orderValuesSet","addedValues","removedValues","newOrder","newMapping","index","createContinuousMappingFromPalette","createDefaultMapping","getChartSettingsInheritedAes","uniqueValuesData","sourceId","usedAesInMapping","aes","getScatterplotAes","getHistogramAes","DEFAULT_BLACK","getDendroAes","field"],"mappings":"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"}
1
+ {"version":3,"file":"dataBindAes.js","sources":["../../src/GraphMaker/dataBindAes.ts"],"sourcesContent":["import { InputState } from '@milaboratories/pf-plots';\nimport { scaleLinear } from 'd3-scale';\nimport {\n ContinuousPalette,\n DotShape,\n LineType,\n Palette,\n} from './components/AesSettings/types';\nimport {\n DEFAULT_BLACK,\n FIXED_LINE_TYPES,\n FIXES_DOT_SHAPES,\n isCategorical,\n PALETTE_MAP\n} from './constantsAesthetic';\nimport { AesType, ContinuousDataMappingSize, NumberRange } from './constantsCommon';\nimport { UniqueValuesBySourceMap } from './types';\n\nexport type AestheticMappingState = Record<string, AestheticMapping>;\nexport type AestheticMapping =\n | AestheticMappingContinuous\n | AestheticMappingCategorical;\n\ninterface MappingRange {\n maxValue: number | null;\n minValue: number | null;\n}\n\n/** Mapping for continuous axes (numerical axes) */\nexport interface AestheticMappingContinuous {\n type: 'continuous';\n palette: ContinuousPalette;\n range: MappingRange | null;\n midPoint: number | null;\n log: boolean;\n naAes: AestheticValues;\n}\n\nexport function isAestheticMappingContinuous(v:unknown | AestheticMappingContinuous): v is AestheticMappingContinuous {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'continuous';\n}\n\n/** Mapping for categorical axes (string axes) */\nexport interface AestheticMappingCategorical {\n type: 'categorical';\n palette: Palette;\n naAes: AestheticValues;\n order: string[];\n hidden?: Record<string, boolean>;\n mapping: AestheticMappingRecord;\n}\n\nexport function isAestheticMappingCategorical(v:unknown | AestheticMappingCategorical): v is AestheticMappingCategorical {\n return v !== null && typeof v === 'object' && 'palette' in v && 'type' in v && v.type === 'categorical';\n}\n\nexport function isAestheticMapping(v:unknown | AestheticMappingContinuous | AestheticMappingCategorical):v is AestheticMapping {\n return isAestheticMappingCategorical(v) || isAestheticMappingContinuous(v);\n}\n\n// key - column value, colorIdx - idx of color (if palette is categorical) of percent value of colors gradient (if palette is continuous)\ntype AestheticMappingRecord = Record<\n string | number,\n {\n aes: Partial<AestheticValues>;\n colorIdx: number;\n }\n>;\n\ninterface AestheticValues {\n /** Number to retrieve the color from pallet, string to represent specific color as hex */\n color: string;\n lineShape: LineType;\n dotShape: DotShape;\n}\n\nexport const DEFAULT_LINE_COLOR = '#110529';\nexport const DEFAULT_LINE_SHAPE:LineType = 'solid';\nexport const DEFAULT_LINE_WIDTH = 1;\nexport const DEFAULT_DOT_SHAPE:DotShape = '21'; // colored circle, shape number as in R\nexport const DEFAULT_DOT_SIZE = 3; // radius;\nexport const DEFAULT_DOT_SIZE_CANVAS = 2;\nexport const DEFAULT_DOT_RANGE:NumberRange = { min: 3, max: 10 }; // radius;\n\nexport const DEFAULT_NA_AES = {\n color: '#ccc',\n lineShape: DEFAULT_LINE_SHAPE as LineType,\n dotShape: DEFAULT_DOT_SHAPE as DotShape,\n};\nconst DEFAULT_PALETTE: Palette = 'light';\n\nfunction getColorScale(colors: string[]) {\n const colorStep = 1 / (colors.length - 1);\n return scaleLinear<string, string>()\n .domain(colors.map((_c, idx) => idx * colorStep))\n .range(colors);\n}\n\nexport function createCategoricalMappingFromPalette(\n palette: Palette,\n values: string[],\n): AestheticMappingCategorical {\n const colors = PALETTE_MAP[palette].colors;\n const step = values.length > 1 ? 1 / (values.length - 1) : 0;\n const colorScale = getColorScale(colors);\n\n const categorical = isCategorical(palette);\n const mapping = values.reduce((res: AestheticMappingRecord, value, idx) => {\n res[value] = {\n colorIdx: categorical ? idx : idx * step,\n aes: {\n color: categorical\n ? colors[idx % colors.length]\n : colorScale(idx * step),\n lineShape: FIXED_LINE_TYPES[idx % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[idx % FIXES_DOT_SHAPES.length],\n },\n };\n return res;\n }, {});\n return {\n type: 'categorical',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n order: values,\n hidden: {},\n mapping,\n };\n}\n\nconst INPUTS_WITH_AES_MAPPINGS = [\n 'primaryGrouping', 'secondaryGrouping', // discrete charts\n 'grouping', 'shape', // scatterplot\n 'nodeColor', 'nodeShape', 'lineColor', 'heatmapAnnotation', // dendro\n];\nexport function updateDataBindAes(\n optionsState: InputState,\n dataBindAes: Record<string, AestheticMapping>,\n uniqueValuesMap: UniqueValuesBySourceMap\n) {\n INPUTS_WITH_AES_MAPPINGS.forEach((inputName) => {\n const selectorStates = optionsState.components[inputName as keyof InputState]?.selectorStates;\n selectorStates?.forEach(({selectedSource}) => {\n const savedMapping = dataBindAes[selectedSource];\n const uniqueValues = uniqueValuesMap[selectedSource]?.list;\n if (savedMapping && uniqueValues && isAestheticMappingCategorical(savedMapping)) {\n dataBindAes[selectedSource] = updateCategoricalMapping(uniqueValues, savedMapping);\n }\n })\n });\n}\n\nexport function updateCategoricalMapping(\n newUniqueValues: string[],\n currentMapping: AestheticMappingCategorical,\n): AestheticMappingCategorical {\n const {palette, order, mapping} = currentMapping;\n const uniqueValuesSet = new Set(newUniqueValues);\n const orderValuesSet = new Set(order);\n const addedValues:string[] = newUniqueValues.filter(v => !orderValuesSet.has(v));\n const removedValues:string[] = order.filter(v => !uniqueValuesSet.has(v as string));\n if (!addedValues.length && !removedValues.length) {\n return currentMapping;\n }\n let newOrder = [...newUniqueValues];\n const newMapping = {...mapping};\n const colors = PALETTE_MAP[palette].colors;\n addedValues.forEach((v, idx) => {\n const index = idx + (order.length ? mapping[order[order.length - 1]].colorIdx + 1 : 0);\n newMapping[v] = {\n colorIdx: index,\n aes: {\n color: colors[index % colors.length],\n lineShape: FIXED_LINE_TYPES[index % FIXED_LINE_TYPES.length],\n dotShape: FIXES_DOT_SHAPES[index % FIXES_DOT_SHAPES.length],\n }\n }\n });\n removedValues.forEach((v) => {\n if (newMapping[v]) {\n delete newMapping[v];\n }\n });\n\n return {...currentMapping, order: newOrder, mapping: newMapping} as AestheticMappingCategorical;\n}\nexport function createContinuousMappingFromPalette(palette: ContinuousPalette):AestheticMappingContinuous {\n return {\n type: 'continuous',\n palette: palette,\n naAes: DEFAULT_NA_AES,\n range: null,\n midPoint: null,\n log: false\n }\n}\n\nexport function createDefaultMapping(\n values: string[],\n): AestheticMappingCategorical {\n return createCategoricalMappingFromPalette(DEFAULT_PALETTE, values);\n}\n\nexport function createDefaultContinuousMapping(columnId: string):ContinuousDataMappingSize {\n return {\n column: columnId,\n range: DEFAULT_DOT_RANGE\n }\n}\n\nexport function getChartSettingsInheritedAes(\n uniqueValuesData: UniqueValuesBySourceMap,\n savedMapping: AestheticMapping | undefined,\n sourceId: string | null,\n usedAesInMapping: Record<AesType, boolean>,\n) {\n if (savedMapping?.type === 'continuous') {\n return { inheritedAes: {} };\n }\n const uniqueValues = sourceId ? uniqueValuesData[sourceId]?.list ?? [] : [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n if (!mapping.order.length) {\n return {inheritedAes: {}};\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = {};\n if (usedAesInMapping.fill) {\n res[value].fillColor = aes.color;\n res[value].dotFill = aes.color;\n }\n if (usedAesInMapping.stroke) {\n res[value].lineColor = aes.color;\n }\n if (usedAesInMapping.dotShape) {\n res[value].dotShape = aes.dotShape;\n }\n if (usedAesInMapping.lineType) {\n res[value].lineShape = aes.lineShape;\n }\n return res;\n }, {}),\n };\n}\n\nexport function getScatterplotAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return {order: [], inheritedAes: {}};\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n return {\n order: mapping.order,\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: aes.color,\n dotFill: aes.color,\n dotShape: aes.dotShape,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {})\n }\n}\n\nexport function getHistogramAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n) {\n const savedMapping = dataBindAes[selectedSource];\n if (savedMapping && !isAestheticMappingCategorical(savedMapping)) {\n return {};\n }\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping = savedMapping ?? createDefaultMapping(uniqueValues);\n if (!mapping.order.length) {\n return {order: [], inheritedAes: {}};\n }\n return {\n order: mapping.order.filter((v) => !mapping.hidden?.[v]),\n inheritedAes: mapping.order.reduce((res: Record<string, any>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = {\n fillColor: aes.color,\n lineColor: DEFAULT_BLACK,\n dotFill: DEFAULT_BLACK,\n dotShape: DEFAULT_DOT_SHAPE,\n dotSize: DEFAULT_DOT_SIZE,\n lineWidth: DEFAULT_LINE_WIDTH,\n };\n return res;\n }, {})\n };\n}\n\nexport function getDendroAes(\n selectedSource: string,\n uniqueValuesData: UniqueValuesBySourceMap,\n dataBindAes: AestheticMappingState,\n field: keyof AestheticValues,\n): Record<string, AestheticValues[keyof AestheticValues]> {\n const uniqueValues = uniqueValuesData[selectedSource]?.list ?? [];\n const mapping =\n dataBindAes[selectedSource] as AestheticMappingCategorical ??\n createDefaultMapping(uniqueValues);\n return mapping.order.reduce(\n (res: Record<string, AestheticValues[keyof AestheticValues]>, value) => {\n const aes = mapping.mapping[value].aes;\n res[value] = aes[field] as string;\n return res;\n },\n {},\n );\n}\n"],"names":["isAestheticMappingContinuous","v","isAestheticMappingCategorical","isAestheticMapping","DEFAULT_LINE_COLOR","DEFAULT_LINE_SHAPE","DEFAULT_LINE_WIDTH","DEFAULT_DOT_SHAPE","DEFAULT_DOT_SIZE","DEFAULT_DOT_SIZE_CANVAS","DEFAULT_DOT_RANGE","DEFAULT_NA_AES","DEFAULT_PALETTE","getColorScale","colors","colorStep","scaleLinear","_c","idx","createCategoricalMappingFromPalette","palette","values","PALETTE_MAP","step","colorScale","categorical","isCategorical","mapping","res","value","FIXED_LINE_TYPES","FIXES_DOT_SHAPES","INPUTS_WITH_AES_MAPPINGS","updateDataBindAes","optionsState","dataBindAes","uniqueValuesMap","inputName","selectorStates","_a","selectedSource","savedMapping","uniqueValues","updateCategoricalMapping","newUniqueValues","currentMapping","order","uniqueValuesSet","orderValuesSet","addedValues","removedValues","newOrder","newMapping","index","createContinuousMappingFromPalette","createDefaultMapping","getChartSettingsInheritedAes","uniqueValuesData","sourceId","usedAesInMapping","aes","getScatterplotAes","getHistogramAes","DEFAULT_BLACK","getDendroAes","field"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"getLayersDataFromForms.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,WAAW,EACX,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAIjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAaxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,wBAAgB,aAAa,CAAC,kBAAkB,EAAE,uBAAuB,wBAiDxE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,cAAc,EAC7B,kBAAkB,EAAE,uBAAuB,EAC3C,YAAY,EAAE,eAAe,EAC7B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GACjC,kBAAkB,EAAE,CAoLtB;AAsED,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EAC1D,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EACvD,YAAY,EAAE,kBAAkB,EAChC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,EACzC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAClC,cAAc,GAAE,gBAAgB,EAAO,EACvC,cAAc,SAAmB,GAChC,mBAAmB,CAAC,QAAQ,CAAC,CA8D/B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG;QACjG,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAA;KAChB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG;QACrD,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAA;KAChB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACzE,CAAA"}
1
+ {"version":3,"file":"getLayersDataFromForms.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACxB,WAAW,EACX,cAAc,EACd,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAIjB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EACL,KAAK,EACL,aAAa,EACd,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,eAAe,EAAE,UAAU,EAC3B,UAAU,EACV,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,oCAAoC,CAAC;AAaxE,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAG/D,wBAAgB,aAAa,CAAC,kBAAkB,EAAE,uBAAuB,wBAiDxE;AAED,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,cAAc,EAC7B,kBAAkB,EAAE,uBAAuB,EAC3C,YAAY,EAAE,eAAe,EAC7B,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,GACjC,kBAAkB,EAAE,CAoLtB;AA2FD,wBAAgB,4BAA4B,CAC1C,MAAM,EAAE,KAAK,EAAE,EACf,aAAa,EAAE,UAAU,CAAC,OAAO,wBAAwB,CAAC,EAC1D,aAAa,EAAE,mBAAmB,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,EACvD,YAAY,EAAE,kBAAkB,EAChC,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,EACzC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,EAClC,cAAc,GAAE,gBAAgB,EAAO,EACvC,cAAc,SAAmB,GAChC,mBAAmB,CAAC,QAAQ,CAAC,CA8D/B;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG;QACjG,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAA;KAChB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;IACpF,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,QAAQ,GAAG,WAAW,GAAG;QACrD,MAAM,EAAE,MAAM,EAAE,CAAC;QACjB,KAAK,EAAE,MAAM,EAAE,CAAA;KAChB,GAAG,QAAQ,GAAG,OAAO,GAAG,MAAM,GAAG,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;CACzE,CAAA"}
@@ -1,45 +1,45 @@
1
- import { isContinuousDataMapping as T } from "../../constantsCommon.js";
2
- import { AMINOACID_COLOR_MAPPING as L, NUCLEOTIDE_COLOR_MAPPING as A, PALETTE_MAP as b, DEFAULT_BLACK as y, DEFAULT_CONTINUOUS_PALETTE as F, DEFAULT_DOT_SHAPE as I } from "../../constantsAesthetic.js";
1
+ import { isContinuousDataMapping as w } from "../../constantsCommon.js";
2
+ import { AMINOACID_COLOR_MAPPING as L, NUCLEOTIDE_COLOR_MAPPING as b, PALETTE_MAP as A, DEFAULT_BLACK as M, DEFAULT_CONTINUOUS_PALETTE as F, DEFAULT_DOT_SHAPE as I } from "../../constantsAesthetic.js";
3
3
  import { DEFAULT_DOT_SIZE as V, DEFAULT_DOT_RANGE as _, isAestheticMappingContinuous as P, createContinuousMappingFromPalette as N } from "../../dataBindAes.js";
4
- function x(r) {
5
- const l = [];
6
- if (r.overall.data.testMethod && r.overall.validity.testMethod && l.push({
4
+ function x(t) {
5
+ const r = [];
6
+ if (t.overall.data.testMethod && t.overall.validity.testMethod && r.push({
7
7
  type: "stat",
8
8
  statType: "overall",
9
- testMethod: r.overall.data.testMethod
10
- }), r.referenceGroup.data.testMethod && r.referenceGroup.validity.testMethod && r.referenceGroup.validity.referenceGroup) {
11
- const p = {
9
+ testMethod: t.overall.data.testMethod
10
+ }), t.referenceGroup.data.testMethod && t.referenceGroup.validity.testMethod && t.referenceGroup.validity.referenceGroup) {
11
+ const c = {
12
12
  type: "stat",
13
13
  statType: "referenceGroup",
14
- testMethod: r.referenceGroup.data.testMethod,
15
- referenceGroup: r.referenceGroup.data.referenceGroup,
16
- format: r.referenceGroup.data.format,
17
- ns: r.referenceGroup.data.ns
14
+ testMethod: t.referenceGroup.data.testMethod,
15
+ referenceGroup: t.referenceGroup.data.referenceGroup,
16
+ format: t.referenceGroup.data.format,
17
+ ns: t.referenceGroup.data.ns
18
18
  };
19
- r.referenceGroup.data.correctionMethod !== "none" && (p.correctionMethod = r.referenceGroup.data.correctionMethod), l.push(p);
19
+ t.referenceGroup.data.correctionMethod !== "none" && (c.correctionMethod = t.referenceGroup.data.correctionMethod), r.push(c);
20
20
  }
21
- if (r.pairwise.data.testMethod && r.pairwise.validity.testMethod) {
22
- const p = {
21
+ if (t.pairwise.data.testMethod && t.pairwise.validity.testMethod) {
22
+ const c = {
23
23
  type: "stat",
24
24
  statType: "pairwise",
25
- testMethod: r.pairwise.data.testMethod,
26
- format: r.pairwise.data.format,
27
- ns: r.pairwise.data.ns
25
+ testMethod: t.pairwise.data.testMethod,
26
+ format: t.pairwise.data.format,
27
+ ns: t.pairwise.data.ns
28
28
  };
29
- r.referenceGroup.data.correctionMethod !== "none" && (p.correctionMethod = r.referenceGroup.data.correctionMethod), l.push(p);
29
+ t.referenceGroup.data.correctionMethod !== "none" && (c.correctionMethod = t.referenceGroup.data.correctionMethod), r.push(c);
30
30
  }
31
- return l;
31
+ return r;
32
32
  }
33
- function B(r, l, p, u, d) {
34
- const o = [], n = u.components.primaryGrouping.selectorStates.length > 0, c = u.components.secondaryGrouping.selectorStates.length > 0;
35
- function i(t, f = !1) {
36
- return t === null ? c ? { type: "secondaryGrouping" } : n && !f ? { type: "primaryGrouping" } : { type: "secondaryGrouping" } : t;
33
+ function B(t, r, c, d, f) {
34
+ const n = [], h = d.components.primaryGrouping.selectorStates.length > 0, p = d.components.secondaryGrouping.selectorStates.length > 0;
35
+ function i(o, l = !1) {
36
+ return o === null ? p ? { type: "secondaryGrouping" } : h && !l ? { type: "primaryGrouping" } : { type: "secondaryGrouping" } : o;
37
37
  }
38
- return r.forEach((t) => {
39
- var f;
40
- if (t === "box") {
41
- const e = l[t];
42
- o.push({
38
+ return t.forEach((o) => {
39
+ var l;
40
+ if (o === "box") {
41
+ const e = r[o];
42
+ n.push({
43
43
  type: "box",
44
44
  aes: {
45
45
  showOutliers: e.showOutliers,
@@ -51,9 +51,9 @@ function B(r, l, p, u, d) {
51
51
  }
52
52
  });
53
53
  }
54
- if (t === "binnedDots") {
55
- const e = l[t];
56
- o.push({
54
+ if (o === "binnedDots") {
55
+ const e = r[o];
56
+ n.push({
57
57
  type: "binnedDots",
58
58
  aes: {
59
59
  showOutliers: e.showOutliers,
@@ -63,9 +63,9 @@ function B(r, l, p, u, d) {
63
63
  }
64
64
  });
65
65
  }
66
- if (t === "jitteredDots") {
67
- const e = l[t];
68
- o.push({
66
+ if (o === "jitteredDots") {
67
+ const e = r[o];
68
+ n.push({
69
69
  type: "dot",
70
70
  aes: {
71
71
  showOutliers: e.showOutliers,
@@ -76,9 +76,9 @@ function B(r, l, p, u, d) {
76
76
  }
77
77
  });
78
78
  }
79
- if (t === "violin") {
80
- const e = l[t];
81
- o.push({
79
+ if (o === "violin") {
80
+ const e = r[o];
81
+ n.push({
82
82
  type: "violin",
83
83
  stat: {
84
84
  trim: e.trim
@@ -94,9 +94,9 @@ function B(r, l, p, u, d) {
94
94
  }
95
95
  });
96
96
  }
97
- if (t === "bar") {
98
- const e = l[t];
99
- o.push({
97
+ if (o === "bar") {
98
+ const e = r[o];
99
+ n.push({
100
100
  type: "bar",
101
101
  height: e.height,
102
102
  aes: {
@@ -106,9 +106,9 @@ function B(r, l, p, u, d) {
106
106
  }
107
107
  });
108
108
  }
109
- if (t === "stackedBar") {
110
- const e = l[t];
111
- o.push({
109
+ if (o === "stackedBar") {
110
+ const e = r[o];
111
+ n.push({
112
112
  type: "stackedBar",
113
113
  normalize: e.normalize,
114
114
  height: e.height,
@@ -119,9 +119,9 @@ function B(r, l, p, u, d) {
119
119
  }
120
120
  });
121
121
  }
122
- if (t === "stackedArea") {
123
- const e = l[t];
124
- o.push({
122
+ if (o === "stackedArea") {
123
+ const e = r[o];
124
+ n.push({
125
125
  type: "stackedArea",
126
126
  normalize: e.normalize,
127
127
  showBars: e.showBars,
@@ -134,9 +134,9 @@ function B(r, l, p, u, d) {
134
134
  }
135
135
  });
136
136
  }
137
- if (t === "line") {
138
- const e = l[t];
139
- o.push({
137
+ if (o === "line") {
138
+ const e = r[o];
139
+ n.push({
140
140
  type: "line",
141
141
  pointsValues: e.pointsValues,
142
142
  emptyGroupValue: e.emptyGroupValue ?? 0,
@@ -149,9 +149,9 @@ function B(r, l, p, u, d) {
149
149
  }
150
150
  });
151
151
  }
152
- if (t === "errorbar") {
153
- const e = l[t];
154
- o.push({
152
+ if (o === "errorbar") {
153
+ const e = r[o];
154
+ n.push({
155
155
  type: "errorbar",
156
156
  pointsValues: e.pointsValues,
157
157
  interval: e.interval,
@@ -163,9 +163,9 @@ function B(r, l, p, u, d) {
163
163
  }
164
164
  });
165
165
  }
166
- if (t === "sina") {
167
- const e = l[t];
168
- o.push({
166
+ if (o === "sina") {
167
+ const e = r[o];
168
+ n.push({
169
169
  type: "sina",
170
170
  aes: {
171
171
  showOutliers: e.showOutliers,
@@ -174,81 +174,88 @@ function B(r, l, p, u, d) {
174
174
  }
175
175
  });
176
176
  }
177
- if (t === "logo" && c) {
178
- const e = l[t], m = ((f = d.getSourceInfo(u.components.secondaryGrouping.selectorStates[0].selectedSource).spec.domain) == null ? void 0 : f["pl7.app/alphabet"]) === "aminoacid";
179
- o.push({
177
+ if (o === "logo" && p) {
178
+ const e = r[o], y = ((l = f.getSourceInfo(d.components.secondaryGrouping.selectorStates[0].selectedSource).spec.domain) == null ? void 0 : l["pl7.app/alphabet"]) === "aminoacid";
179
+ n.push({
180
180
  type: "logo",
181
181
  normalize: e.normalize,
182
182
  aes: {
183
183
  opacity: e.opacity,
184
- dotFill: m ? L : A
184
+ dotFill: y ? L : b
185
185
  }
186
186
  });
187
187
  }
188
- }), n && !c && o.push(...x(p)), o;
188
+ }), h && !p && n.push(...x(c)), n;
189
189
  }
190
- function z(r, l, p, u) {
191
- if (r) {
192
- const d = T(l) ? l : { column: r.value, range: _ }, o = [1 / 0, -1 / 0];
193
- return p.values[r.value].forEach((n) => {
194
- const c = Number(n);
195
- c < o[0] && (o[0] = c), c > o[1] && (o[1] = c);
196
- }), { columnName: r, domain: o, range: [d.range.min, d.range.max] };
190
+ function z(t, r, c, d) {
191
+ if (t) {
192
+ const f = w(r) ? r : { column: t.value, range: _ }, n = [1 / 0, -1 / 0];
193
+ return c.values[t.value].forEach((h) => {
194
+ const p = Number(h);
195
+ p < n[0] && (n[0] = p), p > n[1] && (n[1] = p);
196
+ }), { columnName: t, domain: n, range: [f.range.min, f.range.max] };
197
197
  }
198
- return T(l) ? u : l ?? u;
198
+ return w(r) ? d : r ?? d;
199
199
  }
200
- function w(r, l, p, u) {
201
- const d = p.find((n) => n.value === r);
202
- let o = [1 / 0, -1 / 0];
203
- if (d) {
204
- const { range: n, palette: c, midPoint: i, log: t } = l, f = (n == null ? void 0 : n.minValue) === null || (n == null ? void 0 : n.minValue) === void 0, e = (n == null ? void 0 : n.maxValue) === null || (n == null ? void 0 : n.maxValue) === void 0;
205
- if ((f || e) && u.values[d.value].forEach((h) => {
206
- const m = Number(h);
207
- f && m < o[0] && (o[0] = m), e && m > o[1] && (o[1] = m);
208
- }), f || (o[0] = n == null ? void 0 : n.minValue), e || (o[1] = n == null ? void 0 : n.maxValue), i != null) {
209
- const h = Math.max(Math.abs(i - o[0]), Math.abs(i - o[1]));
210
- o[0] = i - h, o[1] = i + h;
200
+ function D(t, r, c, d) {
201
+ const f = c.find((n) => n.value === t);
202
+ if (f) {
203
+ console.log("column", f), console.log("value", r);
204
+ const { range: n, palette: h, midPoint: p, log: i } = r;
205
+ let { minValue: o, maxValue: l } = n ?? {}, e = !1;
206
+ const m = o == null, y = l == null;
207
+ console.log("minValueMissed", m), console.log("maxValueMissed", y);
208
+ const u = [1 / 0, -1 / 0];
209
+ (m || y) && (d.values[f.value].forEach((s) => {
210
+ const g = Number(s);
211
+ g < u[0] && (u[0] = g), g > u[1] && (u[1] = g);
212
+ }), console.log("bounds", u)), m && y ? (o = u[0], l = u[1]) : m ? o = l > u[0] ? u[0] : u[1] : y && (l = o < u[1] ? u[1] : u[0]), console.log("minValue", o, "maxValue", l), o != null && l !== null && l !== void 0 && o > l && (e = !0, [o, l] = [l, o]);
213
+ const C = [o, l];
214
+ if (p != null) {
215
+ const s = Math.max(Math.abs(p - o), Math.abs(p - l));
216
+ C[0] = p - s, C[1] = p + s;
211
217
  }
212
- return {
213
- columnName: d,
214
- domain: o,
215
- range: b[c].colors,
216
- type: t ? "log" : "linear"
218
+ const a = [...A[h].colors];
219
+ return e && a.reverse(), {
220
+ columnName: f,
221
+ domain: C,
222
+ range: a,
223
+ type: i ? "log" : "linear"
217
224
  };
218
225
  }
219
- return y;
226
+ return M;
220
227
  }
221
- function R(r, l, p, u, d, o, n = [], c = V) {
222
- var C, M;
228
+ function R(t, r, c, d, f, n, h = [], p = V) {
229
+ var u, C;
223
230
  const i = [];
224
- function t(a, s, D, G = !1) {
225
- var v;
231
+ function o(a, s, g, v = !1) {
232
+ var G;
226
233
  if (s.length) {
227
- const O = s.length ? (v = o.getSourceInfo(s[0])) == null ? void 0 : v.type : void 0, E = O === "String" || !G ? { type: "grouping", value: s[0] } : w(s[0], N(F), n, p), g = d[s[0]];
228
- return a === null || O === "String" || !G || !P(g) ? E : w(s[0], g, n, p);
234
+ const O = s.length ? (G = n.getSourceInfo(s[0])) == null ? void 0 : G.type : void 0, E = O === "String" || !v ? { type: "grouping", value: s[0] } : D(s[0], N(F), h, c), T = f[s[0]];
235
+ return a === null || O === "String" || !v || !P(T) ? E : D(s[0], T, h, c);
229
236
  }
230
- return typeof a == "object" ? D : a;
237
+ return typeof a == "object" ? g : a;
231
238
  }
232
- const f = u.components.grouping.selectorStates.map((a) => a.selectedSource), e = ((C = u.components.shape) == null ? void 0 : C.selectorStates.map((a) => a.selectedSource)) ?? [], h = (M = u.components.size) == null ? void 0 : M.selectorStates.map((a) => a.selectedSource)[0], m = h ? n.find((a) => a.value === h) : void 0;
233
- return r.forEach((a) => {
239
+ const l = d.components.grouping.selectorStates.map((a) => a.selectedSource), e = ((u = d.components.shape) == null ? void 0 : u.selectorStates.map((a) => a.selectedSource)) ?? [], m = (C = d.components.size) == null ? void 0 : C.selectorStates.map((a) => a.selectedSource)[0], y = m ? h.find((a) => a.value === m) : void 0;
240
+ return t.forEach((a) => {
234
241
  if (a === "dots") {
235
- const s = l[a];
242
+ const s = r[a];
236
243
  i.push({
237
244
  type: "dots",
238
245
  aes: {
239
- dotFill: t(s.dotFill, f, y, !0),
240
- dotShape: t(s.dotShape, e, I),
241
- dotSize: z(m, s.dotSize, p, c)
246
+ dotFill: o(s.dotFill, l, M, !0),
247
+ dotShape: o(s.dotShape, e, I),
248
+ dotSize: z(y, s.dotSize, c, p)
242
249
  }
243
250
  });
244
251
  }
245
252
  if (a === "curve") {
246
- const s = l[a];
253
+ const s = r[a];
247
254
  i.push({
248
255
  type: "curve",
249
256
  smoothing: s.smoothing,
250
257
  aes: {
251
- lineColor: t(s.lineColor, f, y, !0)
258
+ lineColor: o(s.lineColor, l, M, !0)
252
259
  }
253
260
  });
254
261
  }
@@ -1 +1 @@
1
- {"version":3,"file":"getLayersDataFromForms.js","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.ts"],"sourcesContent":["import {\n ColorAes,\n getDefaultLayersSettings,\n NumberRange,\n LayersSettings,\n MappingLink,\n DiscreteStatisticsState,\n ColumnNameSchema,\n ContinuousDataMappingSize,\n isContinuousDataMapping,\n ContinuousDataMappingForGraph\n} from '../../constantsCommon';\nimport {\n Layer,\n ReactiveState\n} from '../../types';\nimport {\n DiscreteUIState, InputGuide,\n InputState,\n PlotDataAndSettings,\n ScatterplotUIState\n} from '@milaboratories/pf-plots';\nimport { DotShape, LineType } from '../../components/AesSettings/types';\nimport {\n AMINOACID_COLOR_MAPPING,\n DEFAULT_BLACK,\n DEFAULT_CONTINUOUS_PALETTE,\n DEFAULT_DOT_SHAPE, NUCLEOTIDE_COLOR_MAPPING,\n PALETTE_MAP\n} from '../../constantsAesthetic';\nimport {\n AestheticMappingContinuous, createContinuousMappingFromPalette,\n DEFAULT_DOT_RANGE,\n DEFAULT_DOT_SIZE\n} from '../../dataBindAes';\nimport { ScatterplotSettings } from '@milaboratories/miplots4';\nimport { isAestheticMappingContinuous } from '../../dataBindAes';\n\nexport function getStatLayers(statisticsSettings: DiscreteStatisticsState) {\n const layers: ChartLayerSettings[] = [];\n if (\n statisticsSettings.overall.data.testMethod &&\n statisticsSettings.overall.validity.testMethod\n ) {\n layers.push({\n type: 'stat',\n statType: 'overall',\n testMethod: statisticsSettings.overall.data.testMethod\n });\n }\n if (\n statisticsSettings.referenceGroup.data.testMethod &&\n statisticsSettings.referenceGroup.validity.testMethod &&\n statisticsSettings.referenceGroup.validity.referenceGroup\n ) {\n const layer: ChartLayerSettings = {\n type: 'stat',\n statType: 'referenceGroup',\n testMethod: statisticsSettings.referenceGroup.data.testMethod,\n referenceGroup: statisticsSettings.referenceGroup.data.referenceGroup,\n format: statisticsSettings.referenceGroup.data.format,\n ns: statisticsSettings.referenceGroup.data.ns\n };\n if (statisticsSettings.referenceGroup.data.correctionMethod !== 'none') {\n layer.correctionMethod =\n statisticsSettings.referenceGroup.data.correctionMethod;\n }\n layers.push(layer);\n }\n if (\n statisticsSettings.pairwise.data.testMethod &&\n statisticsSettings.pairwise.validity.testMethod\n ) {\n const layer: ChartLayerSettings = {\n type: 'stat',\n statType: 'pairwise',\n testMethod: statisticsSettings.pairwise.data.testMethod,\n format: statisticsSettings.pairwise.data.format,\n ns: statisticsSettings.pairwise.data.ns\n };\n if (statisticsSettings.referenceGroup.data.correctionMethod !== 'none') {\n layer.correctionMethod =\n statisticsSettings.referenceGroup.data.correctionMethod;\n }\n layers.push(layer);\n }\n return layers;\n}\n\nexport function getDiscreteLayersSettings(\n layers: Layer[],\n layerSettings: LayersSettings,\n statisticsSettings: DiscreteStatisticsState,\n optionsState: DiscreteUIState,\n inputGuide: InputGuide<InputState>\n): ChartLayerSettings[] {\n const result: ChartLayerSettings[] = [];\n const hasPrimaryGrouping =\n optionsState.components.primaryGrouping.selectorStates.length > 0;\n const hasSecondaryGrouping =\n optionsState.components.secondaryGrouping.selectorStates.length > 0;\n // If user didn't touch layers settings, some aes that can be mapped to groupings has 'null' value - we set them to secondary or primary grouping if available\n // for 'line', 'errorbar' layer it isn't possible to set primary grouping as a color aes\n function useDefaultColor(\n value: ColorAes | null,\n onlySecondaryAvailable = false\n ) {\n if (value === null) {\n if (hasSecondaryGrouping) {\n return { type: 'secondaryGrouping' };\n }\n if (hasPrimaryGrouping && !onlySecondaryAvailable) {\n return { type: 'primaryGrouping' };\n }\n return { type: 'secondaryGrouping' };\n }\n return value;\n }\n\n layers.forEach((layer) => {\n if (layer === 'box') {\n const settings = layerSettings[layer];\n result.push({\n type: 'box',\n aes: {\n showOutliers: settings.showOutliers,\n dotShape: settings.dotShape,\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n lineShape: settings.lineType,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'binnedDots') {\n const settings = layerSettings[layer];\n result.push({\n type: 'binnedDots',\n aes: {\n showOutliers: settings.showOutliers,\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'jitteredDots') {\n const settings = layerSettings[layer];\n result.push({\n type: 'dot',\n aes: {\n showOutliers: settings.showOutliers,\n dotFill: useDefaultColor(settings.dotFill),\n dotShape: settings.dotShape,\n lineColor: settings.lineColor,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'violin') {\n const settings = layerSettings[layer];\n result.push({\n type: 'violin',\n stat: {\n trim: settings.trim\n },\n aes: {\n showQuartiles: settings.showQuartiles,\n medianLineStyle: settings.medianLineStyle,\n quartilesLineStyle: settings.quartilesLineStyle,\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n lineShape: settings.lineType,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'bar') {\n const settings = layerSettings[layer];\n result.push({\n type: 'bar',\n height: settings.height,\n aes: {\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'stackedBar') {\n const settings = layerSettings[layer];\n result.push({\n type: 'stackedBar',\n normalize: settings.normalize,\n height: settings.height,\n aes: {\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'stackedArea') {\n const settings = layerSettings[layer];\n result.push({\n type: 'stackedArea',\n normalize: settings.normalize,\n showBars: settings.showBars,\n height: settings.height,\n aes: {\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n barsOpacity: settings.barsOpacity,\n areaOpacity: settings.areaOpacity,\n }\n });\n }\n if (layer === 'line') {\n const settings = layerSettings[layer];\n result.push({\n type: 'line',\n pointsValues: settings.pointsValues,\n emptyGroupValue: settings.emptyGroupValue ?? 0,\n aes: {\n lineColor: useDefaultColor(settings.lineColor, true),\n fillColor: useDefaultColor(settings.dotFill, true),\n lineShape: settings.lineType,\n dotShape: settings.dotShape,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'errorbar') {\n const settings = layerSettings[layer];\n result.push({\n type: 'errorbar',\n pointsValues: settings.pointsValues,\n interval: settings.interval,\n aes: {\n lineColor: useDefaultColor(settings.lineColor, true),\n fillColor: useDefaultColor(settings.dotFill, true),\n dotShape: settings.dotShape,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'sina') {\n const settings = layerSettings[layer];\n result.push({\n type: 'sina',\n aes: {\n showOutliers: settings.showOutliers,\n dotFill: useDefaultColor(settings.dotFill),\n dotShape: settings.dotShape\n }\n });\n }\n if (layer === 'logo' && hasSecondaryGrouping) {\n const settings = layerSettings[layer];\n const secondaryGroupingInfo = inputGuide.getSourceInfo(optionsState.components.secondaryGrouping.selectorStates[0].selectedSource);\n const isProtein = secondaryGroupingInfo.spec.domain?.['pl7.app/alphabet'] === 'aminoacid';\n result.push({\n type: 'logo',\n normalize: settings.normalize,\n aes: {\n opacity: settings.opacity,\n dotFill: isProtein ? AMINOACID_COLOR_MAPPING : NUCLEOTIDE_COLOR_MAPPING\n }\n });\n }\n });\n if (hasPrimaryGrouping && !hasSecondaryGrouping) {\n result.push(...getStatLayers(statisticsSettings));\n }\n return result;\n}\n\nfunction getDotSize(\n column: ColumnNameSchema | undefined,\n dotSize: ContinuousDataMappingSize | number | null,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n defaultDotSize: number\n): number | { columnName: ColumnNameSchema, domain: number[], range: number[] } {\n if (column) {\n const mapping = isContinuousDataMapping(dotSize) ? dotSize : { column: column.value, range: DEFAULT_DOT_RANGE };\n const domain = [Infinity, -Infinity];\n dataByColumns.values[column.value].forEach((v) => {\n const value = Number(v);\n if (value < domain[0]) {\n domain[0] = value;\n }\n if (value > domain[1]) {\n domain[1] = value;\n }\n });\n return { columnName: column, domain, range: [mapping.range.min, mapping.range.max] };\n }\n return isContinuousDataMapping(dotSize) ? defaultDotSize : dotSize ?? defaultDotSize;\n}\n\nfunction getContinuousColor<T extends string>(\n columnKey: string,\n value: AestheticMappingContinuous,\n groupingColumns: ColumnNameSchema[],\n dataByColumns: PlotDataAndSettings['data']['byColumns']\n): T | ContinuousDataMappingForGraph<T> {\n const column = groupingColumns.find(groupingColumn => groupingColumn.value === columnKey);\n let domain = [Infinity, -Infinity];\n if (column) {\n const { range, palette, midPoint, log } = value;\n const minValueMissed = range?.minValue === null || range?.minValue === undefined;\n const maxValueMissed = range?.maxValue === null || range?.maxValue === undefined;\n if (minValueMissed || maxValueMissed) {\n dataByColumns.values[column.value].forEach((v) => {\n const value = Number(v);\n if (minValueMissed && value < domain[0]) {\n domain[0] = value;\n }\n if (maxValueMissed && value > domain[1]) {\n domain[1] = value;\n }\n });\n }\n if (!minValueMissed) {\n domain[0] = range?.minValue as number;\n }\n if (!maxValueMissed) {\n domain[1] = range?.maxValue as number;\n }\n if (midPoint !== null && midPoint !== undefined) {\n const maxDistance = Math.max(Math.abs(midPoint - domain[0]), Math.abs(midPoint - domain[1]));\n domain[0] = midPoint - maxDistance;\n domain[1] = midPoint + maxDistance;\n }\n\n return {\n columnName: column,\n domain,\n range: PALETTE_MAP[palette].colors,\n type: log ? 'log' : 'linear'\n } as ContinuousDataMappingForGraph<T>;\n }\n return DEFAULT_BLACK as T;\n}\n\nexport function getScatterplotLayersSettings(\n layers: Layer[],\n layerSettings: ReturnType<typeof getDefaultLayersSettings>,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n optionsState: ScatterplotUIState,\n dataBindAes: ReactiveState['dataBindAes'],\n inputGuide: InputGuide<InputState>,\n groupingSchema: ColumnNameSchema[] = [],\n defaultDotSize = DEFAULT_DOT_SIZE\n): ScatterplotSettings['layers'] {\n const result: ScatterplotSettings['layers'] = [];\n\n function useDefault<T extends string>(value: T | MappingLink | null, columns: string[], defaultValue: T, continousAvailable = false): T | {\n type: 'grouping',\n value: string\n } | ContinuousDataMappingForGraph<T> {\n if (columns.length) {\n const valueType = columns.length ? inputGuide.getSourceInfo(columns[0])?.type : undefined;\n const defaultByColumn = (valueType === 'String' || !continousAvailable)\n ? { type: 'grouping', value: columns[0] } as { type: 'grouping', value: string }\n : getContinuousColor<T>(columns[0], createContinuousMappingFromPalette(DEFAULT_CONTINUOUS_PALETTE), groupingSchema, dataByColumns);\n\n const savedMapping = dataBindAes[columns[0]];\n\n if (value === null || (valueType === 'String' || !continousAvailable) || !isAestheticMappingContinuous(savedMapping)) {\n return defaultByColumn;\n }\n return getContinuousColor<T>(columns[0], savedMapping as AestheticMappingContinuous, groupingSchema, dataByColumns);\n }\n\n return typeof value === 'object' ? defaultValue : value as T;\n }\n\n const grouping = optionsState.components.grouping.selectorStates.map((s) => s.selectedSource);\n const shape = optionsState.components.shape?.selectorStates.map((s) => s.selectedSource) ?? [];\n const sizeKey = optionsState.components.size?.selectorStates.map((s) => s.selectedSource)[0];\n const sizeColumn = sizeKey ? groupingSchema.find(column => column.value === sizeKey) : undefined;\n\n layers.forEach((layer) => {\n if (layer === 'dots') {\n const settings = layerSettings[layer];\n result.push({\n type: 'dots',\n aes: {\n dotFill: useDefault<string>(settings.dotFill, grouping, DEFAULT_BLACK, true) as string | {\n type: 'grouping',\n value: string\n } | ContinuousDataMappingForGraph<string>,\n dotShape: useDefault<DotShape>(settings.dotShape, shape, DEFAULT_DOT_SHAPE) as {\n type: 'grouping',\n value: string\n } | DotShape,\n dotSize: getDotSize(sizeColumn, settings.dotSize, dataByColumns, defaultDotSize)\n }\n });\n }\n if (layer === 'curve') {\n const settings = layerSettings[layer];\n result.push({\n type: 'curve',\n smoothing: settings.smoothing,\n aes: {\n lineColor: useDefault<string>(settings.lineColor, grouping, DEFAULT_BLACK, true) as {\n type: 'grouping',\n value: string\n } | string\n }\n });\n }\n });\n return result;\n}\n\nexport type ChartLayerSettings = {\n [key: string]: string | number | boolean | null | Record<string, string | DotShape | NumberRange | {\n domain: number[],\n range: number[]\n } | LineType | boolean | number | MappingLink | Record<string, string>> | undefined;\n type: string,\n aes?: Record<string, string | DotShape | NumberRange | {\n domain: number[],\n range: number[]\n } | LineType | boolean | number | MappingLink | Record<string, string>>,\n}\n"],"names":["getStatLayers","statisticsSettings","layers","layer","getDiscreteLayersSettings","layerSettings","optionsState","inputGuide","result","hasPrimaryGrouping","hasSecondaryGrouping","useDefaultColor","value","onlySecondaryAvailable","settings","isProtein","_a","AMINOACID_COLOR_MAPPING","NUCLEOTIDE_COLOR_MAPPING","getDotSize","column","dotSize","dataByColumns","defaultDotSize","mapping","isContinuousDataMapping","DEFAULT_DOT_RANGE","domain","v","getContinuousColor","columnKey","groupingColumns","groupingColumn","range","palette","midPoint","log","minValueMissed","maxValueMissed","maxDistance","PALETTE_MAP","DEFAULT_BLACK","getScatterplotLayersSettings","dataBindAes","groupingSchema","DEFAULT_DOT_SIZE","useDefault","columns","defaultValue","continousAvailable","valueType","defaultByColumn","createContinuousMappingFromPalette","DEFAULT_CONTINUOUS_PALETTE","savedMapping","isAestheticMappingContinuous","grouping","s","shape","sizeKey","_b","sizeColumn","DEFAULT_DOT_SHAPE"],"mappings":"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"}
1
+ {"version":3,"file":"getLayersDataFromForms.js","sources":["../../../../src/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.ts"],"sourcesContent":["import {\n ColorAes,\n getDefaultLayersSettings,\n NumberRange,\n LayersSettings,\n MappingLink,\n DiscreteStatisticsState,\n ColumnNameSchema,\n ContinuousDataMappingSize,\n isContinuousDataMapping,\n ContinuousDataMappingForGraph\n} from '../../constantsCommon';\nimport {\n Layer,\n ReactiveState\n} from '../../types';\nimport {\n DiscreteUIState, InputGuide,\n InputState,\n PlotDataAndSettings,\n ScatterplotUIState\n} from '@milaboratories/pf-plots';\nimport { DotShape, LineType } from '../../components/AesSettings/types';\nimport {\n AMINOACID_COLOR_MAPPING,\n DEFAULT_BLACK,\n DEFAULT_CONTINUOUS_PALETTE,\n DEFAULT_DOT_SHAPE, NUCLEOTIDE_COLOR_MAPPING,\n PALETTE_MAP\n} from '../../constantsAesthetic';\nimport {\n AestheticMappingContinuous, createContinuousMappingFromPalette,\n DEFAULT_DOT_RANGE,\n DEFAULT_DOT_SIZE\n} from '../../dataBindAes';\nimport { ScatterplotSettings } from '@milaboratories/miplots4';\nimport { isAestheticMappingContinuous } from '../../dataBindAes';\n\nexport function getStatLayers(statisticsSettings: DiscreteStatisticsState) {\n const layers: ChartLayerSettings[] = [];\n if (\n statisticsSettings.overall.data.testMethod &&\n statisticsSettings.overall.validity.testMethod\n ) {\n layers.push({\n type: 'stat',\n statType: 'overall',\n testMethod: statisticsSettings.overall.data.testMethod\n });\n }\n if (\n statisticsSettings.referenceGroup.data.testMethod &&\n statisticsSettings.referenceGroup.validity.testMethod &&\n statisticsSettings.referenceGroup.validity.referenceGroup\n ) {\n const layer: ChartLayerSettings = {\n type: 'stat',\n statType: 'referenceGroup',\n testMethod: statisticsSettings.referenceGroup.data.testMethod,\n referenceGroup: statisticsSettings.referenceGroup.data.referenceGroup,\n format: statisticsSettings.referenceGroup.data.format,\n ns: statisticsSettings.referenceGroup.data.ns\n };\n if (statisticsSettings.referenceGroup.data.correctionMethod !== 'none') {\n layer.correctionMethod =\n statisticsSettings.referenceGroup.data.correctionMethod;\n }\n layers.push(layer);\n }\n if (\n statisticsSettings.pairwise.data.testMethod &&\n statisticsSettings.pairwise.validity.testMethod\n ) {\n const layer: ChartLayerSettings = {\n type: 'stat',\n statType: 'pairwise',\n testMethod: statisticsSettings.pairwise.data.testMethod,\n format: statisticsSettings.pairwise.data.format,\n ns: statisticsSettings.pairwise.data.ns\n };\n if (statisticsSettings.referenceGroup.data.correctionMethod !== 'none') {\n layer.correctionMethod =\n statisticsSettings.referenceGroup.data.correctionMethod;\n }\n layers.push(layer);\n }\n return layers;\n}\n\nexport function getDiscreteLayersSettings(\n layers: Layer[],\n layerSettings: LayersSettings,\n statisticsSettings: DiscreteStatisticsState,\n optionsState: DiscreteUIState,\n inputGuide: InputGuide<InputState>\n): ChartLayerSettings[] {\n const result: ChartLayerSettings[] = [];\n const hasPrimaryGrouping =\n optionsState.components.primaryGrouping.selectorStates.length > 0;\n const hasSecondaryGrouping =\n optionsState.components.secondaryGrouping.selectorStates.length > 0;\n // If user didn't touch layers settings, some aes that can be mapped to groupings has 'null' value - we set them to secondary or primary grouping if available\n // for 'line', 'errorbar' layer it isn't possible to set primary grouping as a color aes\n function useDefaultColor(\n value: ColorAes | null,\n onlySecondaryAvailable = false\n ) {\n if (value === null) {\n if (hasSecondaryGrouping) {\n return { type: 'secondaryGrouping' };\n }\n if (hasPrimaryGrouping && !onlySecondaryAvailable) {\n return { type: 'primaryGrouping' };\n }\n return { type: 'secondaryGrouping' };\n }\n return value;\n }\n\n layers.forEach((layer) => {\n if (layer === 'box') {\n const settings = layerSettings[layer];\n result.push({\n type: 'box',\n aes: {\n showOutliers: settings.showOutliers,\n dotShape: settings.dotShape,\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n lineShape: settings.lineType,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'binnedDots') {\n const settings = layerSettings[layer];\n result.push({\n type: 'binnedDots',\n aes: {\n showOutliers: settings.showOutliers,\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'jitteredDots') {\n const settings = layerSettings[layer];\n result.push({\n type: 'dot',\n aes: {\n showOutliers: settings.showOutliers,\n dotFill: useDefaultColor(settings.dotFill),\n dotShape: settings.dotShape,\n lineColor: settings.lineColor,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'violin') {\n const settings = layerSettings[layer];\n result.push({\n type: 'violin',\n stat: {\n trim: settings.trim\n },\n aes: {\n showQuartiles: settings.showQuartiles,\n medianLineStyle: settings.medianLineStyle,\n quartilesLineStyle: settings.quartilesLineStyle,\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n lineShape: settings.lineType,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'bar') {\n const settings = layerSettings[layer];\n result.push({\n type: 'bar',\n height: settings.height,\n aes: {\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'stackedBar') {\n const settings = layerSettings[layer];\n result.push({\n type: 'stackedBar',\n normalize: settings.normalize,\n height: settings.height,\n aes: {\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'stackedArea') {\n const settings = layerSettings[layer];\n result.push({\n type: 'stackedArea',\n normalize: settings.normalize,\n showBars: settings.showBars,\n height: settings.height,\n aes: {\n fillColor: useDefaultColor(settings.fillColor),\n lineColor: useDefaultColor(settings.lineColor),\n barsOpacity: settings.barsOpacity,\n areaOpacity: settings.areaOpacity,\n }\n });\n }\n if (layer === 'line') {\n const settings = layerSettings[layer];\n result.push({\n type: 'line',\n pointsValues: settings.pointsValues,\n emptyGroupValue: settings.emptyGroupValue ?? 0,\n aes: {\n lineColor: useDefaultColor(settings.lineColor, true),\n fillColor: useDefaultColor(settings.dotFill, true),\n lineShape: settings.lineType,\n dotShape: settings.dotShape,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'errorbar') {\n const settings = layerSettings[layer];\n result.push({\n type: 'errorbar',\n pointsValues: settings.pointsValues,\n interval: settings.interval,\n aes: {\n lineColor: useDefaultColor(settings.lineColor, true),\n fillColor: useDefaultColor(settings.dotFill, true),\n dotShape: settings.dotShape,\n opacity: settings.opacity\n }\n });\n }\n if (layer === 'sina') {\n const settings = layerSettings[layer];\n result.push({\n type: 'sina',\n aes: {\n showOutliers: settings.showOutliers,\n dotFill: useDefaultColor(settings.dotFill),\n dotShape: settings.dotShape\n }\n });\n }\n if (layer === 'logo' && hasSecondaryGrouping) {\n const settings = layerSettings[layer];\n const secondaryGroupingInfo = inputGuide.getSourceInfo(optionsState.components.secondaryGrouping.selectorStates[0].selectedSource);\n const isProtein = secondaryGroupingInfo.spec.domain?.['pl7.app/alphabet'] === 'aminoacid';\n result.push({\n type: 'logo',\n normalize: settings.normalize,\n aes: {\n opacity: settings.opacity,\n dotFill: isProtein ? AMINOACID_COLOR_MAPPING : NUCLEOTIDE_COLOR_MAPPING\n }\n });\n }\n });\n if (hasPrimaryGrouping && !hasSecondaryGrouping) {\n result.push(...getStatLayers(statisticsSettings));\n }\n return result;\n}\n\nfunction getDotSize(\n column: ColumnNameSchema | undefined,\n dotSize: ContinuousDataMappingSize | number | null,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n defaultDotSize: number\n): number | { columnName: ColumnNameSchema, domain: number[], range: number[] } {\n if (column) {\n const mapping = isContinuousDataMapping(dotSize) ? dotSize : { column: column.value, range: DEFAULT_DOT_RANGE };\n const domain = [Infinity, -Infinity];\n dataByColumns.values[column.value].forEach((v) => {\n const value = Number(v);\n if (value < domain[0]) {\n domain[0] = value;\n }\n if (value > domain[1]) {\n domain[1] = value;\n }\n });\n return { columnName: column, domain, range: [mapping.range.min, mapping.range.max] };\n }\n return isContinuousDataMapping(dotSize) ? defaultDotSize : dotSize ?? defaultDotSize;\n}\n\nfunction getContinuousColor<T extends string>(\n columnKey: string,\n value: AestheticMappingContinuous,\n groupingColumns: ColumnNameSchema[],\n dataByColumns: PlotDataAndSettings['data']['byColumns']\n): T | ContinuousDataMappingForGraph<T> {\n const column = groupingColumns.find(groupingColumn => groupingColumn.value === columnKey);\n if (column) {\n console.log('column', column);\n console.log('value', value);\n const { range, palette, midPoint, log } = value;\n let {minValue, maxValue} = range ?? {};\n let inverted = false;\n \n const minValueMissed = minValue === null || minValue === undefined;\n const maxValueMissed = maxValue === null || maxValue === undefined;\n\n console.log('minValueMissed', minValueMissed);\n console.log('maxValueMissed', maxValueMissed);\n const bounds = [Infinity, -Infinity];\n if (minValueMissed || maxValueMissed) {\n dataByColumns.values[column.value].forEach((v) => {\n const value = Number(v);\n if (value < bounds[0]) {\n bounds[0] = value;\n }\n if (value > bounds[1]) {\n bounds[1] = value;\n }\n });\n console.log('bounds', bounds);\n }\n if (minValueMissed && maxValueMissed) {\n minValue = bounds[0];\n maxValue = bounds[1];\n } else if (minValueMissed) {\n minValue = (maxValue as number) > bounds[0] ? bounds[0] : bounds[1];\n } else if (maxValueMissed) {\n maxValue = (minValue as number) < bounds[1] ? bounds[1] : bounds[0];\n }\n console.log('minValue', minValue, 'maxValue', maxValue);\n if (minValue !== null && minValue !== undefined && maxValue !== null && maxValue !== undefined && minValue > maxValue) {\n inverted = true;\n [minValue, maxValue] = [maxValue, minValue];\n }\n const domain = [minValue as number, maxValue as number];\n if (midPoint !== null && midPoint !== undefined) {\n const maxDistance = Math.max(Math.abs(midPoint - (minValue as number)), Math.abs(midPoint - (maxValue as number)));\n domain[0] = midPoint - maxDistance;\n domain[1] = midPoint + maxDistance;\n }\n\n const colors = [...PALETTE_MAP[palette].colors];\n if (inverted) {\n colors.reverse();\n }\n return {\n columnName: column,\n domain,\n range: colors,\n type: log ? 'log' : 'linear'\n } as ContinuousDataMappingForGraph<T>;\n }\n return DEFAULT_BLACK as T;\n}\n\nexport function getScatterplotLayersSettings(\n layers: Layer[],\n layerSettings: ReturnType<typeof getDefaultLayersSettings>,\n dataByColumns: PlotDataAndSettings['data']['byColumns'],\n optionsState: ScatterplotUIState,\n dataBindAes: ReactiveState['dataBindAes'],\n inputGuide: InputGuide<InputState>,\n groupingSchema: ColumnNameSchema[] = [],\n defaultDotSize = DEFAULT_DOT_SIZE\n): ScatterplotSettings['layers'] {\n const result: ScatterplotSettings['layers'] = [];\n\n function useDefault<T extends string>(value: T | MappingLink | null, columns: string[], defaultValue: T, continousAvailable = false): T | {\n type: 'grouping',\n value: string\n } | ContinuousDataMappingForGraph<T> {\n if (columns.length) {\n const valueType = columns.length ? inputGuide.getSourceInfo(columns[0])?.type : undefined;\n const defaultByColumn = (valueType === 'String' || !continousAvailable)\n ? { type: 'grouping', value: columns[0] } as { type: 'grouping', value: string }\n : getContinuousColor<T>(columns[0], createContinuousMappingFromPalette(DEFAULT_CONTINUOUS_PALETTE), groupingSchema, dataByColumns);\n\n const savedMapping = dataBindAes[columns[0]];\n\n if (value === null || (valueType === 'String' || !continousAvailable) || !isAestheticMappingContinuous(savedMapping)) {\n return defaultByColumn;\n }\n return getContinuousColor<T>(columns[0], savedMapping as AestheticMappingContinuous, groupingSchema, dataByColumns);\n }\n\n return typeof value === 'object' ? defaultValue : value as T;\n }\n\n const grouping = optionsState.components.grouping.selectorStates.map((s) => s.selectedSource);\n const shape = optionsState.components.shape?.selectorStates.map((s) => s.selectedSource) ?? [];\n const sizeKey = optionsState.components.size?.selectorStates.map((s) => s.selectedSource)[0];\n const sizeColumn = sizeKey ? groupingSchema.find(column => column.value === sizeKey) : undefined;\n\n layers.forEach((layer) => {\n if (layer === 'dots') {\n const settings = layerSettings[layer];\n result.push({\n type: 'dots',\n aes: {\n dotFill: useDefault<string>(settings.dotFill, grouping, DEFAULT_BLACK, true) as string | {\n type: 'grouping',\n value: string\n } | ContinuousDataMappingForGraph<string>,\n dotShape: useDefault<DotShape>(settings.dotShape, shape, DEFAULT_DOT_SHAPE) as {\n type: 'grouping',\n value: string\n } | DotShape,\n dotSize: getDotSize(sizeColumn, settings.dotSize, dataByColumns, defaultDotSize)\n }\n });\n }\n if (layer === 'curve') {\n const settings = layerSettings[layer];\n result.push({\n type: 'curve',\n smoothing: settings.smoothing,\n aes: {\n lineColor: useDefault<string>(settings.lineColor, grouping, DEFAULT_BLACK, true) as {\n type: 'grouping',\n value: string\n } | string\n }\n });\n }\n });\n return result;\n}\n\nexport type ChartLayerSettings = {\n [key: string]: string | number | boolean | null | Record<string, string | DotShape | NumberRange | {\n domain: number[],\n range: number[]\n } | LineType | boolean | number | MappingLink | Record<string, string>> | undefined;\n type: string,\n aes?: Record<string, string | DotShape | NumberRange | {\n domain: number[],\n range: number[]\n } | LineType | boolean | number | MappingLink | Record<string, string>>,\n}\n"],"names":["getStatLayers","statisticsSettings","layers","layer","getDiscreteLayersSettings","layerSettings","optionsState","inputGuide","result","hasPrimaryGrouping","hasSecondaryGrouping","useDefaultColor","value","onlySecondaryAvailable","settings","isProtein","_a","AMINOACID_COLOR_MAPPING","NUCLEOTIDE_COLOR_MAPPING","getDotSize","column","dotSize","dataByColumns","defaultDotSize","mapping","isContinuousDataMapping","DEFAULT_DOT_RANGE","domain","v","getContinuousColor","columnKey","groupingColumns","groupingColumn","range","palette","midPoint","log","minValue","maxValue","inverted","minValueMissed","maxValueMissed","bounds","maxDistance","colors","PALETTE_MAP","DEFAULT_BLACK","getScatterplotLayersSettings","dataBindAes","groupingSchema","DEFAULT_DOT_SIZE","useDefault","columns","defaultValue","continousAvailable","valueType","defaultByColumn","createContinuousMappingFromPalette","DEFAULT_CONTINUOUS_PALETTE","savedMapping","isAestheticMappingContinuous","grouping","s","shape","sizeKey","_b","sizeColumn","DEFAULT_DOT_SHAPE"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@milaboratories/graph-maker",
3
- "version": "1.1.171",
3
+ "version": "1.1.172",
4
4
  "type": "module",
5
5
  "main": "dist/lib.js",
6
6
  "types": "dist/lib.d.ts",