@milaboratories/graph-maker 1.1.194 → 1.1.196
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js +127 -130
- package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js.map +1 -1
- package/dist/components/AesSettings/DiscreteRow.vue2.js +18 -18
- package/dist/components/AesSettings/DiscreteRow.vue2.js.map +1 -1
- package/dist/components/AesSettings/DiscreteRow.vue3.js +10 -8
- package/dist/components/AesSettings/DiscreteRow.vue3.js.map +1 -1
- package/dist/components/Chart.vue.js +118 -112
- package/dist/components/Chart.vue.js.map +1 -1
- package/dist/components/CollapsableBlock.vue.d.ts +1 -0
- package/dist/components/CollapsableBlock.vue.js +27 -21
- package/dist/components/CollapsableBlock.vue.js.map +1 -1
- package/dist/constantsCommon.d.ts +2 -0
- package/dist/constantsCommon.js +24 -16
- package/dist/constantsCommon.js.map +1 -1
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +156 -117
- package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +167 -138
- package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +175 -153
- package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +177 -136
- package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +243 -203
- package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/Bubble.vue.js +39 -43
- package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +30 -34
- package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +24 -26
- package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +27 -29
- package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +38 -43
- package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +31 -36
- package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +53 -57
- package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +70 -74
- package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
- package/dist/index.js +1 -1
- package/dist/index.vue.js +1 -1
- package/dist/store.d.ts +3 -4
- package/dist/store.js +25 -26
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +4 -0
- package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +1 -1
- package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -2
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js +22 -22
- package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +7 -5
- package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +2 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +12 -12
- package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +11 -11
- package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +17 -17
- package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
- package/dist/utils/loadUniqueValuesToSave.d.ts +2 -3
- package/dist/utils/loadUniqueValuesToSave.js +2 -2
- package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
- package/package.json +3 -3
|
@@ -1,69 +1,65 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { useStore as
|
|
3
|
-
import { PALETTE_MAP as
|
|
4
|
-
import { createContinuousMappingFromPalette as
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import { PlBtnGroup as p, PlCheckbox as f, PlNumberField as
|
|
9
|
-
|
|
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
|
-
},
|
|
13
|
+
}, Z = "heatmap", ae = /* @__PURE__ */ T({
|
|
13
14
|
__name: "Heatmap",
|
|
14
|
-
setup(
|
|
15
|
-
const
|
|
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 =
|
|
18
|
-
}),
|
|
18
|
+
return (a = A.value.components.value.selectorStates[0]) == null ? void 0 : a.selectedSource;
|
|
19
|
+
}), b = r(() => {
|
|
19
20
|
var a;
|
|
20
|
-
return
|
|
21
|
-
}),
|
|
22
|
-
function
|
|
23
|
-
d.value = 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
|
-
],
|
|
30
|
+
], y = [
|
|
30
31
|
{ label: "z-score", value: "standardScaling" },
|
|
31
32
|
{ label: "Min-max", value: "meanNormalization" }
|
|
32
|
-
],
|
|
33
|
+
], I = [
|
|
33
34
|
{ label: "empty", value: null },
|
|
34
35
|
{ label: "Special value", value: "custom" }
|
|
35
|
-
],
|
|
36
|
-
|
|
37
|
-
|
|
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:
|
|
40
|
+
title: u(G)[d.value].title,
|
|
45
41
|
palette: d.value,
|
|
46
42
|
onButtonClick: e[0] || (e[0] = (l) => {
|
|
47
|
-
|
|
43
|
+
m.value = !0;
|
|
48
44
|
})
|
|
49
45
|
}, null, 8, ["title", "palette"]),
|
|
50
|
-
|
|
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) =>
|
|
50
|
+
"onForm:close": e[1] || (e[1] = (l) => m.value = !1)
|
|
55
51
|
}, {
|
|
56
|
-
default:
|
|
57
|
-
o(
|
|
52
|
+
default: E(() => [
|
|
53
|
+
o(U, {
|
|
58
54
|
selected: d.value,
|
|
59
|
-
categorical:
|
|
60
|
-
onSelect:
|
|
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
|
-
})) :
|
|
65
|
-
|
|
66
|
-
o(
|
|
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
|
-
|
|
75
|
-
o(
|
|
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:
|
|
75
|
+
options: y,
|
|
80
76
|
compact: !0
|
|
81
77
|
}, null, 8, ["modelValue"])
|
|
82
78
|
]),
|
|
83
|
-
|
|
84
|
-
o(
|
|
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] =
|
|
84
|
+
e[11] || (e[11] = n("span", null, "Aggregate X groups", -1))
|
|
89
85
|
]),
|
|
90
|
-
|
|
91
|
-
o(
|
|
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] =
|
|
91
|
+
e[12] || (e[12] = n("span", null, "Aggregate Y groups", -1))
|
|
96
92
|
]),
|
|
97
|
-
|
|
98
|
-
o(
|
|
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:
|
|
98
|
+
options: u(P),
|
|
103
99
|
compact: !0
|
|
104
|
-
}, null, 8, ["modelValue"])
|
|
100
|
+
}, null, 8, ["modelValue", "options"])
|
|
105
101
|
]),
|
|
106
|
-
|
|
107
|
-
o(
|
|
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:
|
|
112
|
+
options: I,
|
|
117
113
|
compact: !0
|
|
118
114
|
}, null, 8, ["modelValue"]),
|
|
119
|
-
o(
|
|
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
|
-
|
|
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
|
|
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
|
|
2
|
-
import { useStore as
|
|
3
|
-
import { PlCheckbox as d, PlBtnGroup as V, PlNumberField as
|
|
4
|
-
import { PALETTE_MAP as
|
|
5
|
-
import { createContinuousMappingFromPalette as
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
|
|
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
|
-
},
|
|
13
|
+
}, $ = { class: "checkbox-item" }, F = {
|
|
13
14
|
key: 2,
|
|
14
15
|
class: "checkbox-item"
|
|
15
|
-
},
|
|
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",
|
|
19
|
+
}, K = "heatmapClustered", se = /* @__PURE__ */ P({
|
|
19
20
|
__name: "HeatmapClustered",
|
|
20
21
|
setup(Q) {
|
|
21
|
-
const s =
|
|
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 =
|
|
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] =
|
|
30
|
+
v.value = n, m.value = !1, i.value && (s.value.reactive.dataBindAes[i.value] = Y(n));
|
|
30
31
|
}
|
|
31
|
-
const
|
|
32
|
+
const O = [
|
|
32
33
|
{ label: "None", value: null },
|
|
33
34
|
{ label: "Columns", value: "column" },
|
|
34
35
|
{ label: "Rows", value: "row" }
|
|
35
|
-
],
|
|
36
|
+
], k = [
|
|
36
37
|
{ label: "z-score", value: "standardScaling" },
|
|
37
38
|
{ label: "Min-max", value: "meanNormalization" }
|
|
38
|
-
],
|
|
39
|
+
], y = [
|
|
39
40
|
{ label: "empty", value: null },
|
|
40
41
|
{ label: "Special value", value: "custom" }
|
|
41
|
-
],
|
|
42
|
-
|
|
43
|
-
|
|
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(
|
|
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(),
|
|
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:
|
|
63
|
-
o(
|
|
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
|
-
})) :
|
|
71
|
-
|
|
66
|
+
})) : N("", !0),
|
|
67
|
+
a("div", R, [
|
|
72
68
|
o(u(d), {
|
|
73
|
-
modelValue:
|
|
74
|
-
"onUpdate:modelValue": e[2] || (e[2] = (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] =
|
|
72
|
+
e[15] || (e[15] = a("span", null, "Disable clustering for X axis", -1))
|
|
77
73
|
]),
|
|
78
|
-
|
|
74
|
+
t.value.disableClusteringX ? N("", !0) : (g(), A("div", L, [
|
|
79
75
|
o(u(d), {
|
|
80
|
-
modelValue:
|
|
81
|
-
"onUpdate:modelValue": e[3] || (e[3] = (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] =
|
|
79
|
+
e[16] || (e[16] = a("span", null, "Show dendrogram for X axis", -1))
|
|
84
80
|
])),
|
|
85
|
-
|
|
81
|
+
a("div", $, [
|
|
86
82
|
o(u(d), {
|
|
87
|
-
modelValue:
|
|
88
|
-
"onUpdate:modelValue": e[4] || (e[4] = (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] =
|
|
86
|
+
e[17] || (e[17] = a("span", null, "Disable clustering for Y axis", -1))
|
|
91
87
|
]),
|
|
92
|
-
|
|
88
|
+
t.value.disableClusteringY ? N("", !0) : (g(), A("div", F, [
|
|
93
89
|
o(u(d), {
|
|
94
|
-
modelValue:
|
|
95
|
-
"onUpdate:modelValue": e[5] || (e[5] = (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] =
|
|
93
|
+
e[18] || (e[18] = a("span", null, "Show dendrogram for Y axis", -1))
|
|
98
94
|
])),
|
|
99
|
-
|
|
95
|
+
a("div", H, [
|
|
100
96
|
o(u(V), {
|
|
101
|
-
modelValue:
|
|
102
|
-
"onUpdate:modelValue": e[6] || (e[6] = (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:
|
|
100
|
+
options: O,
|
|
105
101
|
compact: !0
|
|
106
102
|
}, null, 8, ["modelValue"])
|
|
107
103
|
]),
|
|
108
|
-
|
|
104
|
+
a("div", Z, [
|
|
109
105
|
o(u(V), {
|
|
110
|
-
modelValue:
|
|
111
|
-
"onUpdate:modelValue": e[7] || (e[7] = (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:
|
|
109
|
+
options: k,
|
|
114
110
|
compact: !0
|
|
115
111
|
}, null, 8, ["modelValue"])
|
|
116
112
|
]),
|
|
117
|
-
|
|
113
|
+
a("div", _, [
|
|
118
114
|
o(u(d), {
|
|
119
|
-
modelValue:
|
|
120
|
-
"onUpdate:modelValue": e[8] || (e[8] = (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] =
|
|
118
|
+
e[19] || (e[19] = a("span", null, "Aggregate X groups", -1))
|
|
123
119
|
]),
|
|
124
|
-
|
|
120
|
+
a("div", j, [
|
|
125
121
|
o(u(d), {
|
|
126
|
-
modelValue:
|
|
127
|
-
"onUpdate:modelValue": e[9] || (e[9] = (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] =
|
|
125
|
+
e[20] || (e[20] = a("span", null, "Aggregate Y groups", -1))
|
|
130
126
|
]),
|
|
131
|
-
|
|
127
|
+
a("div", q, [
|
|
132
128
|
o(u(V), {
|
|
133
|
-
modelValue:
|
|
134
|
-
"onUpdate:modelValue": e[10] || (e[10] = (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:
|
|
132
|
+
options: u(I),
|
|
137
133
|
compact: !0
|
|
138
|
-
}, null, 8, ["modelValue"])
|
|
134
|
+
}, null, 8, ["modelValue", "options"])
|
|
139
135
|
]),
|
|
140
|
-
|
|
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" ?
|
|
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:
|
|
146
|
+
options: y,
|
|
151
147
|
compact: !0
|
|
152
148
|
}, null, 8, ["modelValue"]),
|
|
153
|
-
o(u(
|
|
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 && (
|
|
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
|
-
|
|
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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"}
|