@milaboratories/graph-maker 1.1.195 → 1.1.197

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (63) hide show
  1. package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js +127 -130
  2. package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js.map +1 -1
  3. package/dist/components/AesSettings/DiscreteRow.vue2.js +18 -18
  4. package/dist/components/AesSettings/DiscreteRow.vue2.js.map +1 -1
  5. package/dist/components/AesSettings/DiscreteRow.vue3.js +10 -8
  6. package/dist/components/AesSettings/DiscreteRow.vue3.js.map +1 -1
  7. package/dist/components/Chart.vue.js +118 -112
  8. package/dist/components/Chart.vue.js.map +1 -1
  9. package/dist/components/CollapsableBlock.vue.d.ts +1 -0
  10. package/dist/components/CollapsableBlock.vue.js +27 -21
  11. package/dist/components/CollapsableBlock.vue.js.map +1 -1
  12. package/dist/constantsCommon.d.ts +2 -0
  13. package/dist/constantsCommon.js +24 -16
  14. package/dist/constantsCommon.js.map +1 -1
  15. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +156 -117
  16. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
  17. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +162 -134
  18. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  19. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +175 -153
  20. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  21. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +177 -136
  22. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
  23. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +243 -203
  24. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  25. package/dist/forms/LayersForm/Layer/Bubble.vue.js +39 -43
  26. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  27. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +30 -34
  28. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
  29. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +24 -26
  30. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
  31. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +27 -29
  32. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
  33. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +38 -43
  34. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
  35. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +31 -36
  36. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
  37. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +53 -57
  38. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  39. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +70 -74
  40. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.vue.js +1 -1
  43. package/dist/store.d.ts +3 -4
  44. package/dist/store.js +25 -26
  45. package/dist/store.js.map +1 -1
  46. package/dist/types.d.ts +4 -0
  47. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +1 -1
  48. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -2
  49. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +22 -22
  50. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  51. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +7 -5
  52. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +1 -1
  53. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +2 -1
  54. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +12 -12
  55. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  56. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +11 -11
  57. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  58. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +17 -17
  59. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  60. package/dist/utils/loadUniqueValuesToSave.d.ts +2 -3
  61. package/dist/utils/loadUniqueValuesToSave.js +2 -2
  62. package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
  63. package/package.json +5 -5
@@ -1,69 +1,65 @@
1
- import { defineComponent as O, computed as m, ref as v, createElementBlock as P, openBlock as V, Fragment as C, createVNode as o, createBlock as I, createCommentVNode as T, createElementVNode as u, unref as n, withCtx as k } from "vue";
2
- import { useStore as E } from "../../../../store.js";
3
- import { PALETTE_MAP as z } from "../../../../constantsAesthetic.js";
4
- import { createContinuousMappingFromPalette as U } from "../../../../dataBindAes.js";
5
- import _ from "../../../../components/MultiselectButton.vue.js";
6
- import D from "../../../../components/AesSettings/PalettesForm.vue.js";
7
- import G from "../../../../components/AesSettings/FormWrapper.vue.js";
8
- import { PlBtnGroup as p, PlCheckbox as f, PlNumberField as L } from "@platforma-sdk/ui-vue";
9
- const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w = { class: "checkbox-item" }, F = { class: "checkbox-item" }, H = { class: "button-group-item" }, X = {
1
+ import { defineComponent as T, computed as r, ref as v, createElementBlock as B, openBlock as V, Fragment as M, createVNode as o, createBlock as x, createCommentVNode as C, createElementVNode as n, unref as u, withCtx as E } from "vue";
2
+ import { useStore as k } from "../../../../store.js";
3
+ import { PALETTE_MAP as G } from "../../../../constantsAesthetic.js";
4
+ import { createContinuousMappingFromPalette as _ } from "../../../../dataBindAes.js";
5
+ import z from "../../../../components/MultiselectButton.vue.js";
6
+ import U from "../../../../components/AesSettings/PalettesForm.vue.js";
7
+ import D from "../../../../components/AesSettings/FormWrapper.vue.js";
8
+ import { PlBtnGroup as p, PlCheckbox as f, PlNumberField as R } from "@platforma-sdk/ui-vue";
9
+ import { AGGREGATION_METHOD_OPTIONS as L } from "../../../../constantsCommon.js";
10
+ const $ = { class: "button-group-item" }, w = { class: "button-group-item" }, F = { class: "checkbox-item" }, H = { class: "checkbox-item" }, X = { class: "button-group-item" }, Y = {
10
11
  class: "button-group-item",
11
12
  style: { display: "flex", alignItems: "end" }
12
- }, Y = "heatmap", le = /* @__PURE__ */ O({
13
+ }, Z = "heatmap", ae = /* @__PURE__ */ T({
13
14
  __name: "Heatmap",
14
- setup(Z) {
15
- const i = E(), t = m(() => i.value.reactive.layersSettings[Y]), b = m(() => i.value.reactive.optionsState), A = m(() => i.value.inputGuide.value), s = m(() => {
15
+ setup(j) {
16
+ const s = k(), t = r(() => s.value.reactive.layersSettings[Z]), A = r(() => s.value.reactive.optionsState), N = r(() => s.value.inputGuide.value), i = r(() => {
16
17
  var a;
17
- return (a = b.value.components.value.selectorStates[0]) == null ? void 0 : a.selectedSource;
18
- }), N = m(() => {
18
+ return (a = A.value.components.value.selectorStates[0]) == null ? void 0 : a.selectedSource;
19
+ }), b = r(() => {
19
20
  var a;
20
- return s.value ? (a = i.value.reactive.dataBindAes[s.value]) == null ? void 0 : a.palette : void 0;
21
- }), r = v(!1), d = v(N.value ?? i.value.defaultPalette.continuous);
22
- function M(a) {
23
- d.value = a, r.value = !1, s.value && (i.value.reactive.dataBindAes[s.value] = U(a));
21
+ return i.value ? (a = s.value.reactive.dataBindAes[i.value]) == null ? void 0 : a.palette : void 0;
22
+ }), m = v(!1), d = v(b.value ?? s.value.defaultPalette.continuous);
23
+ function O(a) {
24
+ d.value = a, m.value = !1, i.value && (s.value.reactive.dataBindAes[i.value] = _(a));
24
25
  }
25
26
  const S = [
26
27
  { label: "None", value: null },
27
28
  { label: "Columns", value: "column" },
28
29
  { label: "Rows", value: "row" }
29
- ], x = [
30
+ ], y = [
30
31
  { label: "z-score", value: "standardScaling" },
31
32
  { label: "Min-max", value: "meanNormalization" }
32
- ], y = [
33
+ ], I = [
33
34
  { label: "empty", value: null },
34
35
  { label: "Special value", value: "custom" }
35
- ], B = [
36
- { label: "Mean", value: "mean" },
37
- { label: "Min", value: "min" },
38
- { label: "Max", value: "max" },
39
- { label: "Median", value: "median" }
40
- ], g = v(t.value.NAValueAs === null ? null : "custom"), c = v(t.value.NAValueAs ?? 0);
41
- return (a, e) => (V(), P(C, null, [
42
- o(_, {
36
+ ], P = L, g = v(t.value.NAValueAs === null ? null : "custom"), c = v(t.value.NAValueAs ?? 0);
37
+ return (a, e) => (V(), B(M, null, [
38
+ o(z, {
43
39
  label: "Color Palette ",
44
- title: n(z)[d.value].title,
40
+ title: u(G)[d.value].title,
45
41
  palette: d.value,
46
42
  onButtonClick: e[0] || (e[0] = (l) => {
47
- r.value = !0;
43
+ m.value = !0;
48
44
  })
49
45
  }, null, 8, ["title", "palette"]),
50
- r.value ? (V(), I(G, {
46
+ m.value ? (V(), x(D, {
51
47
  key: 0,
52
48
  title: "Color Palette",
53
49
  "back-title": "Color mapping",
54
- "onForm:close": e[1] || (e[1] = (l) => r.value = !1)
50
+ "onForm:close": e[1] || (e[1] = (l) => m.value = !1)
55
51
  }, {
56
- default: k(() => [
57
- o(D, {
52
+ default: E(() => [
53
+ o(U, {
58
54
  selected: d.value,
59
- categorical: s.value ? A.value.getSourceInfo(s.value).type === "String" : !1,
60
- onSelect: M
55
+ categorical: i.value ? N.value.getSourceInfo(i.value).type === "String" : !1,
56
+ onSelect: O
61
57
  }, null, 8, ["selected", "categorical"])
62
58
  ]),
63
59
  _: 1
64
- })) : T("", !0),
65
- u("div", R, [
66
- o(n(p), {
60
+ })) : C("", !0),
61
+ n("div", $, [
62
+ o(u(p), {
67
63
  modelValue: t.value.normalizationDirection,
68
64
  "onUpdate:modelValue": e[2] || (e[2] = (l) => t.value.normalizationDirection = l),
69
65
  label: "Normalize by",
@@ -71,40 +67,40 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
71
67
  compact: !0
72
68
  }, null, 8, ["modelValue"])
73
69
  ]),
74
- u("div", $, [
75
- o(n(p), {
70
+ n("div", w, [
71
+ o(u(p), {
76
72
  modelValue: t.value.normalizationMethod,
77
73
  "onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationMethod = l),
78
74
  label: "Normalization method",
79
- options: x,
75
+ options: y,
80
76
  compact: !0
81
77
  }, null, 8, ["modelValue"])
82
78
  ]),
83
- u("div", w, [
84
- o(n(f), {
79
+ n("div", F, [
80
+ o(u(f), {
85
81
  modelValue: t.value.aggregateByX,
86
82
  "onUpdate:modelValue": e[4] || (e[4] = (l) => t.value.aggregateByX = l)
87
83
  }, null, 8, ["modelValue"]),
88
- e[11] || (e[11] = u("span", null, "Aggregate X groups", -1))
84
+ e[11] || (e[11] = n("span", null, "Aggregate X groups", -1))
89
85
  ]),
90
- u("div", F, [
91
- o(n(f), {
86
+ n("div", H, [
87
+ o(u(f), {
92
88
  modelValue: t.value.aggregateByY,
93
89
  "onUpdate:modelValue": e[5] || (e[5] = (l) => t.value.aggregateByY = l)
94
90
  }, null, 8, ["modelValue"]),
95
- e[12] || (e[12] = u("span", null, "Aggregate Y groups", -1))
91
+ e[12] || (e[12] = n("span", null, "Aggregate Y groups", -1))
96
92
  ]),
97
- u("div", H, [
98
- o(n(p), {
93
+ n("div", X, [
94
+ o(u(p), {
99
95
  modelValue: t.value.aggregationMethod,
100
96
  "onUpdate:modelValue": e[6] || (e[6] = (l) => t.value.aggregationMethod = l),
101
97
  label: "Aggregation method",
102
- options: B,
98
+ options: u(P),
103
99
  compact: !0
104
- }, null, 8, ["modelValue"])
100
+ }, null, 8, ["modelValue", "options"])
105
101
  ]),
106
- u("div", X, [
107
- o(n(p), {
102
+ n("div", Y, [
103
+ o(u(p), {
108
104
  modelValue: g.value,
109
105
  "onUpdate:modelValue": [
110
106
  e[7] || (e[7] = (l) => g.value = l),
@@ -113,10 +109,10 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
113
109
  })
114
110
  ],
115
111
  label: "Treat NA value as:",
116
- options: y,
112
+ options: I,
117
113
  compact: !0
118
114
  }, null, 8, ["modelValue"]),
119
- o(n(L), {
115
+ o(u(R), {
120
116
  modelValue: c.value,
121
117
  "onUpdate:modelValue": [
122
118
  e[9] || (e[9] = (l) => c.value = l),
@@ -134,6 +130,6 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
134
130
  }
135
131
  });
136
132
  export {
137
- le as default
133
+ ae as default
138
134
  };
139
135
  //# sourceMappingURL=Heatmap.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Heatmap.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/Heatmap.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport { computed, ref } from 'vue';\nimport {\n PALETTE_MAP,\n} from '../../../../constantsAesthetic';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmap';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? store.value.defaultPalette.continuous);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\n\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n { label: 'Mean', value: 'mean' },\n { label: 'Min', value: 'min' },\n { label: 'Max', value: 'max' },\n { label: 'Median', value: 'median' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs === null ? null : 'custom');\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm\n :selected=\"palette\"\n :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlBtnGroup","_cache","$event","_hoisted_2","_hoisted_3","PlCheckbox","_hoisted_4","_hoisted_5","_hoisted_6","PlNumberField"],"mappings":"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"}
1
+ {"version":3,"file":"Heatmap.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/Heatmap.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport { computed, ref } from 'vue';\nimport {\n PALETTE_MAP,\n} from '../../../../constantsAesthetic';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlDropdown, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { AGGREGATION_METHOD_OPTIONS } from '../../../../constantsCommon';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmap';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? store.value.defaultPalette.continuous);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\n\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD = AGGREGATION_METHOD_OPTIONS;\n\nconst NAValueOption = ref(settings.value.NAValueAs === null ? null : 'custom');\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm\n :selected=\"palette\"\n :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","AGGREGATION_METHOD_OPTIONS","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlBtnGroup","_cache","$event","_hoisted_2","_hoisted_3","PlCheckbox","_hoisted_4","_hoisted_5","_hoisted_6","PlNumberField"],"mappings":"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"}
@@ -1,161 +1,157 @@
1
- import { defineComponent as O, computed as r, ref as p, createElementBlock as A, openBlock as g, Fragment as P, createVNode as o, createBlock as U, createCommentVNode as c, createElementVNode as t, unref as u, withCtx as I } from "vue";
2
- import { useStore as T } from "../../../../store.js";
3
- import { PlCheckbox as d, PlBtnGroup as V, PlNumberField as X } from "@platforma-sdk/ui-vue";
4
- import { PALETTE_MAP as Y } from "../../../../constantsAesthetic.js";
5
- import { createContinuousMappingFromPalette as E } from "../../../../dataBindAes.js";
6
- import z from "../../../../components/MultiselectButton.vue.js";
7
- import D from "../../../../components/AesSettings/PalettesForm.vue.js";
8
- import w from "../../../../components/AesSettings/FormWrapper.vue.js";
9
- const G = { class: "checkbox-item" }, L = {
1
+ import { defineComponent as P, computed as r, ref as p, createElementBlock as A, openBlock as g, Fragment as T, createVNode as o, createBlock as B, createCommentVNode as N, createElementVNode as a, unref as u, withCtx as M } from "vue";
2
+ import { useStore as U } from "../../../../store.js";
3
+ import { PlCheckbox as d, PlBtnGroup as V, PlNumberField as E } from "@platforma-sdk/ui-vue";
4
+ import { PALETTE_MAP as X } from "../../../../constantsAesthetic.js";
5
+ import { createContinuousMappingFromPalette as Y } from "../../../../dataBindAes.js";
6
+ import D from "../../../../components/MultiselectButton.vue.js";
7
+ import G from "../../../../components/AesSettings/PalettesForm.vue.js";
8
+ import z from "../../../../components/AesSettings/FormWrapper.vue.js";
9
+ import { AGGREGATION_METHOD_OPTIONS as w } from "../../../../constantsCommon.js";
10
+ const R = { class: "checkbox-item" }, L = {
10
11
  key: 1,
11
12
  class: "checkbox-item"
12
- }, R = { class: "checkbox-item" }, $ = {
13
+ }, $ = { class: "checkbox-item" }, F = {
13
14
  key: 2,
14
15
  class: "checkbox-item"
15
- }, F = { class: "button-group-item" }, H = { class: "button-group-item" }, Z = { class: "checkbox-item" }, j = { class: "checkbox-item" }, q = { class: "button-group-item" }, J = {
16
+ }, H = { class: "button-group-item" }, Z = { class: "button-group-item" }, _ = { class: "checkbox-item" }, j = { class: "checkbox-item" }, q = { class: "button-group-item" }, J = {
16
17
  class: "button-group-item",
17
18
  style: { display: "flex", alignItems: "end" }
18
- }, K = "heatmapClustered", ue = /* @__PURE__ */ O({
19
+ }, K = "heatmapClustered", se = /* @__PURE__ */ P({
19
20
  __name: "HeatmapClustered",
20
21
  setup(Q) {
21
- const s = T(), a = r(() => s.value.reactive.layersSettings[K]), N = r(() => s.value.reactive.optionsState), x = r(() => s.value.inputGuide.value), i = r(() => {
22
+ const s = U(), t = r(() => s.value.reactive.layersSettings[K]), c = r(() => s.value.reactive.optionsState), x = r(() => s.value.inputGuide.value), i = r(() => {
22
23
  var n;
23
- return (n = N.value.components.value.selectorStates[0]) == null ? void 0 : n.selectedSource;
24
+ return (n = c.value.components.value.selectorStates[0]) == null ? void 0 : n.selectedSource;
24
25
  }), C = r(() => {
25
26
  var n;
26
27
  return i.value ? (n = s.value.reactive.dataBindAes[i.value]) == null ? void 0 : n.palette : void 0;
27
28
  }), m = p(!1), v = p(C.value ?? s.value.defaultPalette.continuous);
28
29
  function S(n) {
29
- v.value = n, m.value = !1, i.value && (s.value.reactive.dataBindAes[i.value] = E(n));
30
+ v.value = n, m.value = !1, i.value && (s.value.reactive.dataBindAes[i.value] = Y(n));
30
31
  }
31
- const k = [
32
+ const O = [
32
33
  { label: "None", value: null },
33
34
  { label: "Columns", value: "column" },
34
35
  { label: "Rows", value: "row" }
35
- ], y = [
36
+ ], k = [
36
37
  { label: "z-score", value: "standardScaling" },
37
38
  { label: "Min-max", value: "meanNormalization" }
38
- ], M = [
39
+ ], y = [
39
40
  { label: "empty", value: null },
40
41
  { label: "Special value", value: "custom" }
41
- ], B = [
42
- { label: "Mean", value: "mean" },
43
- { label: "Min", value: "min" },
44
- { label: "Max", value: "max" },
45
- { label: "Median", value: "median" }
46
- ], b = p(a.value.NAValueAs !== null ? "custom" : a.value.NAValueAs), f = p(a.value.NAValueAs ?? 0);
47
- return (n, e) => (g(), A(P, null, [
48
- o(z, {
42
+ ], I = w, b = p(t.value.NAValueAs !== null ? "custom" : t.value.NAValueAs), f = p(t.value.NAValueAs ?? 0);
43
+ return (n, e) => (g(), A(T, null, [
44
+ o(D, {
49
45
  label: "Color Palette ",
50
- title: u(Y)[v.value].title,
46
+ title: u(X)[v.value].title,
51
47
  palette: v.value,
52
48
  onButtonClick: e[0] || (e[0] = (l) => {
53
49
  m.value = !0;
54
50
  })
55
51
  }, null, 8, ["title", "palette"]),
56
- m.value ? (g(), U(w, {
52
+ m.value ? (g(), B(z, {
57
53
  key: 0,
58
54
  title: "Color Palette",
59
55
  "back-title": "Color mapping",
60
56
  "onForm:close": e[1] || (e[1] = (l) => m.value = !1)
61
57
  }, {
62
- default: I(() => [
63
- o(D, {
58
+ default: M(() => [
59
+ o(G, {
64
60
  selected: v.value,
65
61
  categorical: i.value ? x.value.getSourceInfo(i.value).type === "String" : !1,
66
62
  onSelect: S
67
63
  }, null, 8, ["selected", "categorical"])
68
64
  ]),
69
65
  _: 1
70
- })) : c("", !0),
71
- t("div", G, [
66
+ })) : N("", !0),
67
+ a("div", R, [
72
68
  o(u(d), {
73
- modelValue: a.value.disableClusteringX,
74
- "onUpdate:modelValue": e[2] || (e[2] = (l) => a.value.disableClusteringX = l)
69
+ modelValue: t.value.disableClusteringX,
70
+ "onUpdate:modelValue": e[2] || (e[2] = (l) => t.value.disableClusteringX = l)
75
71
  }, null, 8, ["modelValue"]),
76
- e[15] || (e[15] = t("span", null, "Disable clustering for X axis", -1))
72
+ e[15] || (e[15] = a("span", null, "Disable clustering for X axis", -1))
77
73
  ]),
78
- a.value.disableClusteringX ? c("", !0) : (g(), A("div", L, [
74
+ t.value.disableClusteringX ? N("", !0) : (g(), A("div", L, [
79
75
  o(u(d), {
80
- modelValue: a.value.dendrogramX,
81
- "onUpdate:modelValue": e[3] || (e[3] = (l) => a.value.dendrogramX = l)
76
+ modelValue: t.value.dendrogramX,
77
+ "onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.dendrogramX = l)
82
78
  }, null, 8, ["modelValue"]),
83
- e[16] || (e[16] = t("span", null, "Show dendrogram for X axis", -1))
79
+ e[16] || (e[16] = a("span", null, "Show dendrogram for X axis", -1))
84
80
  ])),
85
- t("div", R, [
81
+ a("div", $, [
86
82
  o(u(d), {
87
- modelValue: a.value.disableClusteringY,
88
- "onUpdate:modelValue": e[4] || (e[4] = (l) => a.value.disableClusteringY = l)
83
+ modelValue: t.value.disableClusteringY,
84
+ "onUpdate:modelValue": e[4] || (e[4] = (l) => t.value.disableClusteringY = l)
89
85
  }, null, 8, ["modelValue"]),
90
- e[17] || (e[17] = t("span", null, "Disable clustering for Y axis", -1))
86
+ e[17] || (e[17] = a("span", null, "Disable clustering for Y axis", -1))
91
87
  ]),
92
- a.value.disableClusteringY ? c("", !0) : (g(), A("div", $, [
88
+ t.value.disableClusteringY ? N("", !0) : (g(), A("div", F, [
93
89
  o(u(d), {
94
- modelValue: a.value.dendrogramY,
95
- "onUpdate:modelValue": e[5] || (e[5] = (l) => a.value.dendrogramY = l)
90
+ modelValue: t.value.dendrogramY,
91
+ "onUpdate:modelValue": e[5] || (e[5] = (l) => t.value.dendrogramY = l)
96
92
  }, null, 8, ["modelValue"]),
97
- e[18] || (e[18] = t("span", null, "Show dendrogram for Y axis", -1))
93
+ e[18] || (e[18] = a("span", null, "Show dendrogram for Y axis", -1))
98
94
  ])),
99
- t("div", F, [
95
+ a("div", H, [
100
96
  o(u(V), {
101
- modelValue: a.value.normalizationDirection,
102
- "onUpdate:modelValue": e[6] || (e[6] = (l) => a.value.normalizationDirection = l),
97
+ modelValue: t.value.normalizationDirection,
98
+ "onUpdate:modelValue": e[6] || (e[6] = (l) => t.value.normalizationDirection = l),
103
99
  label: "Normalize by",
104
- options: k,
100
+ options: O,
105
101
  compact: !0
106
102
  }, null, 8, ["modelValue"])
107
103
  ]),
108
- t("div", H, [
104
+ a("div", Z, [
109
105
  o(u(V), {
110
- modelValue: a.value.normalizationMethod,
111
- "onUpdate:modelValue": e[7] || (e[7] = (l) => a.value.normalizationMethod = l),
106
+ modelValue: t.value.normalizationMethod,
107
+ "onUpdate:modelValue": e[7] || (e[7] = (l) => t.value.normalizationMethod = l),
112
108
  label: "Normalization method",
113
- options: y,
109
+ options: k,
114
110
  compact: !0
115
111
  }, null, 8, ["modelValue"])
116
112
  ]),
117
- t("div", Z, [
113
+ a("div", _, [
118
114
  o(u(d), {
119
- modelValue: a.value.aggregateByX,
120
- "onUpdate:modelValue": e[8] || (e[8] = (l) => a.value.aggregateByX = l)
115
+ modelValue: t.value.aggregateByX,
116
+ "onUpdate:modelValue": e[8] || (e[8] = (l) => t.value.aggregateByX = l)
121
117
  }, null, 8, ["modelValue"]),
122
- e[19] || (e[19] = t("span", null, "Aggregate X groups", -1))
118
+ e[19] || (e[19] = a("span", null, "Aggregate X groups", -1))
123
119
  ]),
124
- t("div", j, [
120
+ a("div", j, [
125
121
  o(u(d), {
126
- modelValue: a.value.aggregateByY,
127
- "onUpdate:modelValue": e[9] || (e[9] = (l) => a.value.aggregateByY = l)
122
+ modelValue: t.value.aggregateByY,
123
+ "onUpdate:modelValue": e[9] || (e[9] = (l) => t.value.aggregateByY = l)
128
124
  }, null, 8, ["modelValue"]),
129
- e[20] || (e[20] = t("span", null, "Aggregate Y groups", -1))
125
+ e[20] || (e[20] = a("span", null, "Aggregate Y groups", -1))
130
126
  ]),
131
- t("div", q, [
127
+ a("div", q, [
132
128
  o(u(V), {
133
- modelValue: a.value.aggregationMethod,
134
- "onUpdate:modelValue": e[10] || (e[10] = (l) => a.value.aggregationMethod = l),
129
+ modelValue: t.value.aggregationMethod,
130
+ "onUpdate:modelValue": e[10] || (e[10] = (l) => t.value.aggregationMethod = l),
135
131
  label: "Aggregation method",
136
- options: B,
132
+ options: u(I),
137
133
  compact: !0
138
- }, null, 8, ["modelValue"])
134
+ }, null, 8, ["modelValue", "options"])
139
135
  ]),
140
- t("div", J, [
136
+ a("div", J, [
141
137
  o(u(V), {
142
138
  modelValue: b.value,
143
139
  "onUpdate:modelValue": [
144
140
  e[11] || (e[11] = (l) => b.value = l),
145
141
  e[12] || (e[12] = (l) => {
146
- l === "custom" ? a.value.NAValueAs = f.value : a.value.NAValueAs = l;
142
+ l === "custom" ? t.value.NAValueAs = f.value : t.value.NAValueAs = l;
147
143
  })
148
144
  ],
149
145
  label: "Treat NA value as:",
150
- options: M,
146
+ options: y,
151
147
  compact: !0
152
148
  }, null, 8, ["modelValue"]),
153
- o(u(X), {
149
+ o(u(E), {
154
150
  modelValue: f.value,
155
151
  "onUpdate:modelValue": [
156
152
  e[13] || (e[13] = (l) => f.value = l),
157
153
  e[14] || (e[14] = (l) => {
158
- l !== void 0 && (a.value.NAValueAs = l);
154
+ l !== void 0 && (t.value.NAValueAs = l);
159
155
  })
160
156
  ],
161
157
  style: { height: "33px", marginLeft: "16px", width: "75px" },
@@ -168,6 +164,6 @@ const G = { class: "checkbox-item" }, L = {
168
164
  }
169
165
  });
170
166
  export {
171
- ue as default
167
+ se as default
172
168
  };
173
169
  //# sourceMappingURL=HeatmapClustered.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapClustered.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { PALETTE_MAP } from '../../../../constantsAesthetic';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmapClustered';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? store.value.defaultPalette.continuous);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD: SimpleOption[] = [\n { label: 'Mean', value: 'mean' },\n { label: 'Min', value: 'min' },\n { label: 'Max', value: 'max' },\n { label: 'Median', value: 'median' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm :selected=\"palette\" :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringX\"/>\n <span>Disable clustering for X axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringX\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramX\" />\n <span>Show dendrogram for X axis</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringY\"/>\n <span>Disable clustering for Y axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringY\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramY\"/>\n <span>Show dendrogram for Y axis</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlCheckbox","_cache","$event","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","PlBtnGroup","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PlNumberField"],"mappings":"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"}
1
+ {"version":3,"file":"HeatmapClustered.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport type { HeatmapLayer } from '../../../../types';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { PALETTE_MAP } from '../../../../constantsAesthetic';\nimport type { HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\nimport type { ContinuousPalette } from '../../../../components/AesSettings/types';\nimport { createContinuousMappingFromPalette } from '../../../../dataBindAes';\nimport MultiselectButton from '../../../../components/MultiselectButton.vue';\nimport PalettesForm from '../../../../components/AesSettings/PalettesForm.vue';\nimport FormWrapper from '../../../../components/AesSettings/FormWrapper.vue';\nimport { AGGREGATION_METHOD_OPTIONS } from '../../../../constantsCommon';\n\nconst store = useStore();\nconst layer: HeatmapLayer = 'heatmapClustered';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\n\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(() => store.value.inputGuide.value as InputGuide<HeatmapUIState>);\n\nconst dataSource = computed(() => optionsState.value.components.value.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => dataSource.value ? store.value.reactive.dataBindAes[dataSource.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? store.value.defaultPalette.continuous);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (dataSource.value) {\n store.value.reactive.dataBindAes[dataSource.value] = createContinuousMappingFromPalette(value);\n }\n}\nconst NORMALIZATION_DIRECTION: SimpleOption[] = [\n { label: 'None', value: null },\n { label: 'Columns', value: 'column' },\n { label: 'Rows', value: 'row' },\n];\nconst NORMALIZATION_METHOD: SimpleOption[] = [\n { label: 'z-score', value: 'standardScaling' },\n { label: 'Min-max', value: 'meanNormalization' },\n];\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\nconst AGGREGATION_METHOD = AGGREGATION_METHOD_OPTIONS;\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n</script>\n\n<template>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palette].title\"\n :palette=\"palette\"\n @button-click=\"palettesOpen = true;\"\n />\n <FormWrapper\n v-if=\"palettesOpen\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = false\"\n >\n <PalettesForm :selected=\"palette\" :categorical=\"dataSource ? inputGuide.getSourceInfo(dataSource).type === 'String' : false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringX\"/>\n <span>Disable clustering for X axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringX\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramX\" />\n <span>Show dendrogram for X axis</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.disableClusteringY\"/>\n <span>Disable clustering for Y axis</span>\n </div>\n <div v-if=\"!settings.disableClusteringY\" class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.dendrogramY\"/>\n <span>Show dendrogram for Y axis</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationDirection\"\n label=\"Normalize by\"\n :options=\"NORMALIZATION_DIRECTION\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.normalizationMethod\"\n label=\"Normalization method\"\n :options=\"NORMALIZATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByX\"/>\n <span>Aggregate X groups</span>\n </div>\n <div class=\"checkbox-item\">\n <PlCheckbox v-model=\"settings.aggregateByY\"/>\n <span>Aggregate Y groups</span>\n </div>\n <div class=\"button-group-item\">\n <PlBtnGroup\n v-model=\"settings.aggregationMethod\"\n label=\"Aggregation method\"\n :options=\"AGGREGATION_METHOD\"\n :compact=\"true\"\n />\n </div>\n <div class=\"button-group-item\" :style=\"{display: 'flex', alignItems: 'end'}\">\n <PlBtnGroup\n v-model=\"NAValueOption\"\n label=\"Treat NA value as:\"\n :options=\"NA_VALUE_OPTIONS\"\n :compact=\"true\"\n @update:modelValue=\"(value:unknown) => {\n if (value === 'custom') {\n settings.NAValueAs = customNA;\n } else {\n settings.NAValueAs = value as number|null;\n }\n }\"\n />\n <PlNumberField\n v-model=\"customNA\"\n :style=\"{height: '33px', marginLeft: '16px', width: '75px'}\"\n :disabled=\"NAValueOption !== 'custom'\"\n label=\"NA value\"\n :useIncrementButtons=\"false\"\n @update:modelValue=\"(value:unknown) => {\n if (value !== undefined) {\n settings.NAValueAs = value as number;\n }\n }\"\n />\n </div>\n</template>\n"],"names":["layer","store","useStore","settings","computed","optionsState","inputGuide","dataSource","_a","savedDataValuePalette","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","NA_VALUE_OPTIONS","AGGREGATION_METHOD","AGGREGATION_METHOD_OPTIONS","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","PlCheckbox","_cache","$event","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","PlBtnGroup","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","PlNumberField"],"mappings":"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"}