@milaboratories/graph-maker 1.1.192 → 1.1.194

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (58) hide show
  1. package/dist/constantsAesthetic.d.ts +0 -1
  2. package/dist/constantsAesthetic.js +16 -17
  3. package/dist/constantsAesthetic.js.map +1 -1
  4. package/dist/constantsCommon.d.ts +4 -0
  5. package/dist/constantsCommon.js +21 -17
  6. package/dist/constantsCommon.js.map +1 -1
  7. package/dist/dataBindAes.d.ts +5 -5
  8. package/dist/dataBindAes.js +110 -110
  9. package/dist/dataBindAes.js.map +1 -1
  10. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +154 -144
  11. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  12. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +263 -193
  13. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  14. package/dist/forms/LayersForm/AesSelector.vue.js +59 -59
  15. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  16. package/dist/forms/LayersForm/Layer/Bubble.vue.js +41 -41
  17. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  18. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +35 -35
  19. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  20. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js +31 -31
  21. package/dist/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue.js.map +1 -1
  22. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +35 -35
  23. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  24. package/dist/index.vue.js +94 -90
  25. package/dist/index.vue.js.map +1 -1
  26. package/dist/store.d.ts +8 -3
  27. package/dist/store.js +129 -123
  28. package/dist/store.js.map +1 -1
  29. package/dist/types.d.ts +9 -0
  30. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +2 -2
  31. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +11 -11
  32. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  33. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +2 -2
  34. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +28 -28
  35. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  36. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +23 -20
  37. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  38. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +2 -2
  39. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +20 -18
  40. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  41. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +2 -2
  42. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +28 -28
  43. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  44. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +2 -2
  45. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +11 -10
  46. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  47. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +3 -3
  48. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +71 -68
  49. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  50. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +2 -2
  51. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +19 -18
  52. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  53. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +27 -27
  54. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  55. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts +1 -1
  56. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js +37 -37
  57. package/dist/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  58. package/package.json +2 -2
@@ -1,27 +1,27 @@
1
- import { defineComponent as y, computed as s, ref as v, createElementBlock as B, openBlock as A, Fragment as O, createVNode as a, createBlock as x, createCommentVNode as E, createElementVNode as u, unref as n, withCtx as U } from "vue";
2
- import { useStore as P } from "../../../store.js";
3
- import { DEFAULT_CONTINUOUS_PALETTE as _, DEFAULT_BLACK as I, PALETTE_MAP as L } from "../../../constantsAesthetic.js";
1
+ import { defineComponent as S, computed as i, ref as v, createElementBlock as x, openBlock as A, Fragment as O, createVNode as a, createBlock as P, createCommentVNode as T, createElementVNode as u, unref as n, withCtx as E } from "vue";
2
+ import { useStore as I } from "../../../store.js";
3
+ import { DEFAULT_BLACK as U, PALETTE_MAP as _ } from "../../../constantsAesthetic.js";
4
4
  import { createContinuousMappingFromPalette as z } from "../../../dataBindAes.js";
5
- import D from "../../../components/MultiselectButton.vue.js";
6
- import F from "../../../components/AesSettings/PalettesForm.vue.js";
5
+ import L from "../../../components/MultiselectButton.vue.js";
6
+ import D from "../../../components/AesSettings/PalettesForm.vue.js";
7
7
  import $ from "../../../components/AesSettings/FormWrapper.vue.js";
8
- import { PlBtnGroup as p, PlCheckbox as V, PlNumberField as R } from "@platforma-sdk/ui-vue";
9
- import w from "../AesSelector.vue.js";
10
- const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { class: "button-group-item" }, H = { class: "checkbox-item" }, Z = { class: "checkbox-item" }, K = { class: "button-group-item" }, j = {
8
+ import { PlBtnGroup as p, PlCheckbox as f, PlNumberField as F } from "@platforma-sdk/ui-vue";
9
+ import R from "../AesSelector.vue.js";
10
+ const w = { class: "input-item" }, G = { class: "button-group-item" }, X = { class: "button-group-item" }, Y = { class: "checkbox-item" }, H = { class: "checkbox-item" }, Z = { class: "button-group-item" }, K = {
11
11
  class: "button-group-item",
12
12
  style: { display: "flex", alignItems: "end" }
13
- }, q = "bubble", ne = /* @__PURE__ */ y({
13
+ }, j = "bubble", ue = /* @__PURE__ */ S({
14
14
  __name: "Bubble",
15
- setup(J) {
16
- const i = P(), t = s(() => i.value.reactive.layersSettings[q]), f = s(() => i.value.reactive.optionsState), r = s(() => {
15
+ setup(q) {
16
+ const s = I(), t = i(() => s.value.reactive.layersSettings[j]), V = i(() => s.value.reactive.optionsState), r = i(() => {
17
17
  var o;
18
- return (o = f.value.components.valueColor.selectorStates[0]) == null ? void 0 : o.selectedSource;
19
- }), N = s(() => {
18
+ return (o = V.value.components.valueColor.selectorStates[0]) == null ? void 0 : o.selectedSource;
19
+ }), N = i(() => {
20
20
  var o;
21
- return r.value ? (o = i.value.reactive.dataBindAes[r.value]) == null ? void 0 : o.palette : void 0;
22
- }), m = v(!1), d = v(N.value ?? _);
21
+ return r.value ? (o = s.value.reactive.dataBindAes[r.value]) == null ? void 0 : o.palette : void 0;
22
+ }), m = v(!1), d = v(N.value ?? s.value.defaultPalette.continuous);
23
23
  function C(o) {
24
- d.value = o, m.value = !1, r.value && (i.value.reactive.dataBindAes[r.value] = z(o));
24
+ d.value = o, m.value = !1, r.value && (s.value.reactive.dataBindAes[r.value] = z(o));
25
25
  }
26
26
  const k = [
27
27
  { label: "None", value: null },
@@ -30,46 +30,46 @@ const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
30
30
  ], M = [
31
31
  { label: "z-score", value: "standardScaling" },
32
32
  { label: "Min-max", value: "meanNormalization" }
33
- ], S = [
33
+ ], y = [
34
34
  { label: "Mean", value: "mean" },
35
35
  { label: "Min", value: "min" },
36
36
  { label: "Max", value: "max" },
37
37
  { label: "Median", value: "median" }
38
- ], b = s({
39
- get: () => t.value.strokeColor ?? I,
38
+ ], b = i({
39
+ get: () => t.value.strokeColor ?? U,
40
40
  set: (o) => {
41
41
  t.value.strokeColor = o;
42
42
  }
43
- }), T = [
43
+ }), B = [
44
44
  { label: "empty", value: null },
45
45
  { label: "Special value", value: "custom" }
46
46
  ], g = v(t.value.NAValueAs !== null ? "custom" : t.value.NAValueAs), c = v(t.value.NAValueAs ?? 0);
47
- return (o, e) => (A(), B(O, null, [
48
- a(D, {
47
+ return (o, e) => (A(), x(O, null, [
48
+ a(L, {
49
49
  label: "Color Palette ",
50
- title: n(L)[d.value].title,
50
+ title: n(_)[d.value].title,
51
51
  palette: d.value,
52
52
  onButtonClick: e[0] || (e[0] = (l) => {
53
53
  m.value = !0;
54
54
  })
55
55
  }, null, 8, ["title", "palette"]),
56
- m.value ? (A(), x($, {
56
+ m.value ? (A(), P($, {
57
57
  key: 0,
58
58
  title: "Color Palette",
59
59
  "back-title": "Color mapping",
60
60
  "onForm:close": e[1] || (e[1] = (l) => m.value = !1)
61
61
  }, {
62
- default: U(() => [
63
- a(F, {
62
+ default: E(() => [
63
+ a(D, {
64
64
  selected: d.value,
65
65
  categorical: !1,
66
66
  onSelect: C
67
67
  }, null, 8, ["selected"])
68
68
  ]),
69
69
  _: 1
70
- })) : E("", !0),
71
- u("div", G, [
72
- a(w, {
70
+ })) : T("", !0),
71
+ u("div", w, [
72
+ a(R, {
73
73
  label: "Stroke color",
74
74
  "form-title": "Stroke Color Settings",
75
75
  "form-back-title": "Layers",
@@ -79,7 +79,7 @@ const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
79
79
  onAesUpdate: e[2] || (e[2] = (l) => b.value = l)
80
80
  }, null, 8, ["selected"])
81
81
  ]),
82
- u("div", X, [
82
+ u("div", G, [
83
83
  a(n(p), {
84
84
  modelValue: t.value.normalizationDirection,
85
85
  "onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationDirection = l),
@@ -88,7 +88,7 @@ const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
88
88
  compact: !0
89
89
  }, null, 8, ["modelValue"])
90
90
  ]),
91
- u("div", Y, [
91
+ u("div", X, [
92
92
  a(n(p), {
93
93
  modelValue: t.value.normalizationMethod,
94
94
  "onUpdate:modelValue": e[4] || (e[4] = (l) => t.value.normalizationMethod = l),
@@ -97,30 +97,30 @@ const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
97
97
  compact: !0
98
98
  }, null, 8, ["modelValue"])
99
99
  ]),
100
- u("div", H, [
101
- a(n(V), {
100
+ u("div", Y, [
101
+ a(n(f), {
102
102
  modelValue: t.value.aggregateByX,
103
103
  "onUpdate:modelValue": e[5] || (e[5] = (l) => t.value.aggregateByX = l)
104
104
  }, null, 8, ["modelValue"]),
105
105
  e[12] || (e[12] = u("span", null, "Aggregate X groups", -1))
106
106
  ]),
107
- u("div", Z, [
108
- a(n(V), {
107
+ u("div", H, [
108
+ a(n(f), {
109
109
  modelValue: t.value.aggregateByY,
110
110
  "onUpdate:modelValue": e[6] || (e[6] = (l) => t.value.aggregateByY = l)
111
111
  }, null, 8, ["modelValue"]),
112
112
  e[13] || (e[13] = u("span", null, "Aggregate Y groups", -1))
113
113
  ]),
114
- u("div", K, [
114
+ u("div", Z, [
115
115
  a(n(p), {
116
116
  modelValue: t.value.aggregationMethod,
117
117
  "onUpdate:modelValue": e[7] || (e[7] = (l) => t.value.aggregationMethod = l),
118
118
  label: "Aggregation method",
119
- options: S,
119
+ options: y,
120
120
  compact: !0
121
121
  }, null, 8, ["modelValue"])
122
122
  ]),
123
- u("div", j, [
123
+ u("div", K, [
124
124
  a(n(p), {
125
125
  modelValue: g.value,
126
126
  "onUpdate:modelValue": [
@@ -130,10 +130,10 @@ const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
130
130
  })
131
131
  ],
132
132
  label: "Treat NA value as:",
133
- options: T,
133
+ options: B,
134
134
  compact: !0
135
135
  }, null, 8, ["modelValue"]),
136
- a(n(R), {
136
+ a(n(F), {
137
137
  modelValue: c.value,
138
138
  "onUpdate:modelValue": [
139
139
  e[10] || (e[10] = (l) => c.value = l),
@@ -151,6 +151,6 @@ const G = { class: "input-item" }, X = { class: "button-group-item" }, Y = { cla
151
151
  }
152
152
  });
153
153
  export {
154
- ne as default
154
+ ue as default
155
155
  };
156
156
  //# sourceMappingURL=Bubble.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Bubble.vue.js","sources":["../../../../src/forms/LayersForm/Layer/Bubble.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../store';\nimport type { BubbleLayer } from '../../../types';\nimport { computed, ref } from 'vue';\nimport {\n DEFAULT_BLACK,\n DEFAULT_CONTINUOUS_PALETTE,\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 { BubbleUIState } from '@milaboratories/pf-plots';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport AesSelector from '../AesSelector.vue';\n\nconst store = useStore();\nconst layer: BubbleLayer = 'bubble';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(() => store.value.reactive.optionsState as BubbleUIState);\n\nconst valueColor = computed(() => optionsState.value.components.valueColor.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => valueColor.value ? store.value.reactive.dataBindAes[valueColor.value]?.palette : undefined);\n\nconst palettesOpen = ref(false);\nconst palette = ref<ContinuousPalette>(savedDataValuePalette.value as ContinuousPalette ?? DEFAULT_CONTINUOUS_PALETTE);\n\nfunction onPaletteSelect(value: ContinuousPalette) {\n palette.value = value;\n palettesOpen.value = false;\n if (valueColor.value) {\n store.value.reactive.dataBindAes[valueColor.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 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 stroke = computed({\n get: () => {\n return settings.value.strokeColor ?? DEFAULT_BLACK;\n },\n set: (v: string) => {\n settings.value.strokeColor = v;\n },\n});\n\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n\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=\"false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"input-item\">\n <AesSelector\n label=\"Stroke color\"\n form-title=\"Stroke Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :possible-aes-source-inputs=\"[]\"\n :selected=\"stroke\"\n @aes-update=\"(v:string) => stroke = v\"\n />\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","valueColor","_a","savedDataValuePalette","palettesOpen","ref","palette","DEFAULT_CONTINUOUS_PALETTE","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","AGGREGATION_METHOD","stroke","DEFAULT_BLACK","v","NA_VALUE_OPTIONS","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","AesSelector","_cache","_hoisted_2","PlBtnGroup","$event","_hoisted_3","_hoisted_4","PlCheckbox","_hoisted_5","_hoisted_6","_hoisted_7","PlNumberField"],"mappings":"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"}
1
+ {"version":3,"file":"Bubble.vue.js","sources":["../../../../src/forms/LayersForm/Layer/Bubble.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../store';\nimport type { BubbleLayer } from '../../../types';\nimport { computed, ref } from 'vue';\nimport {\n DEFAULT_BLACK,\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 { BubbleUIState } from '@milaboratories/pf-plots';\nimport type { SimpleOption } from '@platforma-sdk/ui-vue';\nimport { PlBtnGroup, PlCheckbox, PlNumberField } from '@platforma-sdk/ui-vue';\nimport AesSelector from '../AesSelector.vue';\n\nconst store = useStore();\nconst layer: BubbleLayer = 'bubble';\nconst settings = computed(() => store.value.reactive.layersSettings[layer]);\nconst optionsState = computed(() => store.value.reactive.optionsState as BubbleUIState);\n\nconst valueColor = computed(() => optionsState.value.components.valueColor.selectorStates[0]?.selectedSource);\nconst savedDataValuePalette = computed(() => valueColor.value ? store.value.reactive.dataBindAes[valueColor.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 (valueColor.value) {\n store.value.reactive.dataBindAes[valueColor.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 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 stroke = computed({\n get: () => {\n return settings.value.strokeColor ?? DEFAULT_BLACK;\n },\n set: (v: string) => {\n settings.value.strokeColor = v;\n },\n});\n\nconst NA_VALUE_OPTIONS: SimpleOption[] = [\n { label: 'empty', value: null },\n { label: 'Special value', value: 'custom' },\n];\n\nconst NAValueOption = ref(settings.value.NAValueAs !== null ? 'custom' : settings.value.NAValueAs);\nconst customNA = ref(settings.value.NAValueAs ?? 0);\n\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=\"false\" @select=\"onPaletteSelect\" />\n </FormWrapper>\n <div class=\"input-item\">\n <AesSelector\n label=\"Stroke color\"\n form-title=\"Stroke Color Settings\"\n form-back-title=\"Layers\"\n type=\"stroke\"\n :possible-aes-source-inputs=\"[]\"\n :selected=\"stroke\"\n @aes-update=\"(v:string) => stroke = v\"\n />\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","valueColor","_a","savedDataValuePalette","palettesOpen","ref","palette","onPaletteSelect","value","createContinuousMappingFromPalette","NORMALIZATION_DIRECTION","NORMALIZATION_METHOD","AGGREGATION_METHOD","stroke","DEFAULT_BLACK","v","NA_VALUE_OPTIONS","NAValueOption","customNA","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm","_createElementVNode","_hoisted_1","AesSelector","_cache","_hoisted_2","PlBtnGroup","$event","_hoisted_3","_hoisted_4","PlCheckbox","_hoisted_5","_hoisted_6","_hoisted_7","PlNumberField"],"mappings":"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"}
@@ -1,67 +1,67 @@
1
- import { defineComponent as y, computed as m, ref as v, createElementBlock as B, openBlock as V, Fragment as C, createVNode as o, createBlock as E, createCommentVNode as I, createElementVNode as u, unref as n, withCtx as P } from "vue";
2
- import { useStore as U } from "../../../../store.js";
3
- import { DEFAULT_CONTINUOUS_PALETTE as k, PALETTE_MAP as _ } from "../../../../constantsAesthetic.js";
4
- import { createContinuousMappingFromPalette as z } from "../../../../dataBindAes.js";
5
- import D from "../../../../components/MultiselectButton.vue.js";
6
- import L from "../../../../components/AesSettings/PalettesForm.vue.js";
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
7
  import G from "../../../../components/AesSettings/FormWrapper.vue.js";
8
- import { PlBtnGroup as p, PlCheckbox as A, PlNumberField as F } from "@platforma-sdk/ui-vue";
9
- const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w = { class: "checkbox-item" }, H = { class: "checkbox-item" }, X = { class: "button-group-item" }, Y = {
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 = {
10
10
  class: "button-group-item",
11
11
  style: { display: "flex", alignItems: "end" }
12
- }, Z = "heatmap", te = /* @__PURE__ */ y({
12
+ }, Y = "heatmap", le = /* @__PURE__ */ O({
13
13
  __name: "Heatmap",
14
- setup(j) {
15
- const s = U(), t = m(() => s.value.reactive.layersSettings[Z]), b = m(() => s.value.reactive.optionsState), f = m(() => s.value.inputGuide.value), i = m(() => {
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(() => {
16
16
  var a;
17
17
  return (a = b.value.components.value.selectorStates[0]) == null ? void 0 : a.selectedSource;
18
18
  }), N = m(() => {
19
19
  var a;
20
- return i.value ? (a = s.value.reactive.dataBindAes[i.value]) == null ? void 0 : a.palette : void 0;
21
- }), r = v(!1), d = v(N.value ?? k);
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
22
  function M(a) {
23
- d.value = a, r.value = !1, i.value && (s.value.reactive.dataBindAes[i.value] = z(a));
23
+ d.value = a, r.value = !1, s.value && (i.value.reactive.dataBindAes[s.value] = U(a));
24
24
  }
25
25
  const S = [
26
26
  { label: "None", value: null },
27
27
  { label: "Columns", value: "column" },
28
28
  { label: "Rows", value: "row" }
29
- ], O = [
29
+ ], x = [
30
30
  { label: "z-score", value: "standardScaling" },
31
31
  { label: "Min-max", value: "meanNormalization" }
32
- ], T = [
32
+ ], y = [
33
33
  { label: "empty", value: null },
34
34
  { label: "Special value", value: "custom" }
35
- ], x = [
35
+ ], B = [
36
36
  { label: "Mean", value: "mean" },
37
37
  { label: "Min", value: "min" },
38
38
  { label: "Max", value: "max" },
39
39
  { label: "Median", value: "median" }
40
40
  ], g = v(t.value.NAValueAs === null ? null : "custom"), c = v(t.value.NAValueAs ?? 0);
41
- return (a, e) => (V(), B(C, null, [
42
- o(D, {
41
+ return (a, e) => (V(), P(C, null, [
42
+ o(_, {
43
43
  label: "Color Palette ",
44
- title: n(_)[d.value].title,
44
+ title: n(z)[d.value].title,
45
45
  palette: d.value,
46
46
  onButtonClick: e[0] || (e[0] = (l) => {
47
47
  r.value = !0;
48
48
  })
49
49
  }, null, 8, ["title", "palette"]),
50
- r.value ? (V(), E(G, {
50
+ r.value ? (V(), I(G, {
51
51
  key: 0,
52
52
  title: "Color Palette",
53
53
  "back-title": "Color mapping",
54
54
  "onForm:close": e[1] || (e[1] = (l) => r.value = !1)
55
55
  }, {
56
- default: P(() => [
57
- o(L, {
56
+ default: k(() => [
57
+ o(D, {
58
58
  selected: d.value,
59
- categorical: i.value ? f.value.getSourceInfo(i.value).type === "String" : !1,
59
+ categorical: s.value ? A.value.getSourceInfo(s.value).type === "String" : !1,
60
60
  onSelect: M
61
61
  }, null, 8, ["selected", "categorical"])
62
62
  ]),
63
63
  _: 1
64
- })) : I("", !0),
64
+ })) : T("", !0),
65
65
  u("div", R, [
66
66
  o(n(p), {
67
67
  modelValue: t.value.normalizationDirection,
@@ -76,34 +76,34 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
76
76
  modelValue: t.value.normalizationMethod,
77
77
  "onUpdate:modelValue": e[3] || (e[3] = (l) => t.value.normalizationMethod = l),
78
78
  label: "Normalization method",
79
- options: O,
79
+ options: x,
80
80
  compact: !0
81
81
  }, null, 8, ["modelValue"])
82
82
  ]),
83
83
  u("div", w, [
84
- o(n(A), {
84
+ o(n(f), {
85
85
  modelValue: t.value.aggregateByX,
86
86
  "onUpdate:modelValue": e[4] || (e[4] = (l) => t.value.aggregateByX = l)
87
87
  }, null, 8, ["modelValue"]),
88
88
  e[11] || (e[11] = u("span", null, "Aggregate X groups", -1))
89
89
  ]),
90
- u("div", H, [
91
- o(n(A), {
90
+ u("div", F, [
91
+ o(n(f), {
92
92
  modelValue: t.value.aggregateByY,
93
93
  "onUpdate:modelValue": e[5] || (e[5] = (l) => t.value.aggregateByY = l)
94
94
  }, null, 8, ["modelValue"]),
95
95
  e[12] || (e[12] = u("span", null, "Aggregate Y groups", -1))
96
96
  ]),
97
- u("div", X, [
97
+ u("div", H, [
98
98
  o(n(p), {
99
99
  modelValue: t.value.aggregationMethod,
100
100
  "onUpdate:modelValue": e[6] || (e[6] = (l) => t.value.aggregationMethod = l),
101
101
  label: "Aggregation method",
102
- options: x,
102
+ options: B,
103
103
  compact: !0
104
104
  }, null, 8, ["modelValue"])
105
105
  ]),
106
- u("div", Y, [
106
+ u("div", X, [
107
107
  o(n(p), {
108
108
  modelValue: g.value,
109
109
  "onUpdate:modelValue": [
@@ -113,10 +113,10 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
113
113
  })
114
114
  ],
115
115
  label: "Treat NA value as:",
116
- options: T,
116
+ options: y,
117
117
  compact: !0
118
118
  }, null, 8, ["modelValue"]),
119
- o(n(F), {
119
+ o(n(L), {
120
120
  modelValue: c.value,
121
121
  "onUpdate:modelValue": [
122
122
  e[9] || (e[9] = (l) => c.value = l),
@@ -134,6 +134,6 @@ const R = { class: "button-group-item" }, $ = { class: "button-group-item" }, w
134
134
  }
135
135
  });
136
136
  export {
137
- te as default
137
+ le as default
138
138
  };
139
139
  //# 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 DEFAULT_CONTINUOUS_PALETTE,\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 ?? DEFAULT_CONTINUOUS_PALETTE);\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","DEFAULT_CONTINUOUS_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, 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":";;;;;;;;;;;GAiBMA,IAAsB;;;AAD5B,UAAMC,IAAQC,EAAA,GAERC,IAAWC,EAAS,MAAMH,EAAM,MAAM,SAAS,eAAeD,CAAK,CAAC,GACpEK,IAAeD,EAAS,MAAMH,EAAM,MAAM,SAAS,YAA8B,GACjFK,IAAaF,EAAS,MAAMH,EAAM,MAAM,WAAW,KAAmC,GAEtFM,IAAaH,EAAS,MAAA;;AAAM,cAAAI,IAAAH,EAAa,MAAM,WAAW,MAAM,eAAe,CAAC,MAApD,gBAAAG,EAAuD;AAAA,KAAc,GACjGC,IAAwBL,EAAS,MAAA;;AAAM,aAAAG,EAAW,SAAQC,IAAAP,EAAM,MAAM,SAAS,YAAYM,EAAW,KAAK,MAAjD,gBAAAC,EAAoD,UAAU;AAAA,KAAS,GAEjIE,IAAeC,EAAI,EAAK,GACxBC,IAAUD,EAAuBF,EAAsB,SAA8BR,EAAM,MAAM,eAAe,UAAU;AAEhI,aAASY,EAAgBC,GAA0B;AACjD,MAAAF,EAAQ,QAAQE,GAChBJ,EAAa,QAAQ,IACjBH,EAAW,UACbN,EAAM,MAAM,SAAS,YAAYM,EAAW,KAAK,IAAIQ,EAAmCD,CAAK;AAAA,IAEjG;AAEA,UAAME,IAA0C;AAAA,MAC9C,EAAE,OAAO,QAAQ,OAAO,KAAA;AAAA,MACxB,EAAE,OAAO,WAAW,OAAO,SAAA;AAAA,MAC3B,EAAE,OAAO,QAAQ,OAAO,MAAA;AAAA,IAAM,GAE1BC,IAAuC;AAAA,MAC3C,EAAE,OAAO,WAAW,OAAO,kBAAA;AAAA,MAC3B,EAAE,OAAO,WAAW,OAAO,oBAAA;AAAA,IAAoB,GAE3CC,IAAmC;AAAA,MACvC,EAAE,OAAO,SAAS,OAAO,KAAA;AAAA,MACzB,EAAE,OAAO,iBAAiB,OAAO,SAAA;AAAA,IAAS,GAEtCC,IAAqC;AAAA,MACzC,EAAE,OAAO,QAAQ,OAAO,OAAA;AAAA,MACxB,EAAE,OAAO,OAAO,OAAO,MAAA;AAAA,MACvB,EAAE,OAAO,OAAO,OAAO,MAAA;AAAA,MACvB,EAAE,OAAO,UAAU,OAAO,SAAA;AAAA,IAAS,GAG/BC,IAAgBT,EAAIR,EAAS,MAAM,cAAc,OAAO,OAAO,QAAQ,GACvEkB,IAAWV,EAAIR,EAAS,MAAM,aAAa,CAAC;;MAIhDmB,EAKEC,GAAA;AAAA,QAJA,OAAM;AAAA,QACL,OAAOC,EAAAC,CAAA,EAAYb,EAAA,KAAO,EAAE;AAAA,QAC5B,SAASA,EAAA;AAAA,QACT;AAAc,UAAAF,EAAA,QAAY;AAAA,QAAA;AAAA,MAAA;MAGrBA,EAAA,cADRgB,EAWcC,GAAA;AAAA;QATZ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,uCAAYjB,EAAA,QAAY;AAAA,MAAA;mBAEzB,MAIE;AAAA,UAJFY,EAIEM,GAAA;AAAA,YAHC,UAAUhB,EAAA;AAAA,YACV,aAAaL,UAAaD,EAAA,MAAW,cAAcC,EAAA,KAAU,EAAE,SAAI,WAAA;AAAA,YACnE,UAAQM;AAAA,UAAA;;;;MAGbgB,EAOM,OAPNC,GAOM;AAAA,QANJR,EAKEE,EAAAO,CAAA,GAAA;AAAA,UAJS,YAAA5B,EAAA,MAAS;AAAA,UAAT,uBAAA6B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA9B,EAAA,MAAS,yBAAsB8B;AAAA,UACxC,OAAM;AAAA,UACL,SAASjB;AAAA,UACT,SAAS;AAAA,QAAA;;MAGda,EAOM,OAPNK,GAOM;AAAA,QANJZ,EAKEE,EAAAO,CAAA,GAAA;AAAA,UAJS,YAAA5B,EAAA,MAAS;AAAA,UAAT,uBAAA6B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA9B,EAAA,MAAS,sBAAmB8B;AAAA,UACrC,OAAM;AAAA,UACL,SAAShB;AAAA,UACT,SAAS;AAAA,QAAA;;MAGdY,EAGM,OAHNM,GAGM;AAAA,QAFJb,EAA6CE,EAAAY,CAAA,GAAA;AAAA,UAAxB,YAAAjC,EAAA,MAAS;AAAA,UAAT,uBAAA6B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA9B,EAAA,MAAS,eAAY8B;AAAA,QAAA;QAC1CD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAH,EAA+B,cAAzB,sBAAkB,EAAA;AAAA,MAAA;MAE1BA,EAGM,OAHNQ,GAGM;AAAA,QAFJf,EAA6CE,EAAAY,CAAA,GAAA;AAAA,UAAxB,YAAAjC,EAAA,MAAS;AAAA,UAAT,uBAAA6B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA9B,EAAA,MAAS,eAAY8B;AAAA,QAAA;QAC1CD,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAAH,EAA+B,cAAzB,sBAAkB,EAAA;AAAA,MAAA;MAE1BA,EAOM,OAPNS,GAOM;AAAA,QANJhB,EAKEE,EAAAO,CAAA,GAAA;AAAA,UAJS,YAAA5B,EAAA,MAAS;AAAA,UAAT,uBAAA6B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAA9B,EAAA,MAAS,oBAAiB8B;AAAA,UACnC,OAAM;AAAA,UACL,SAASd;AAAA,UACT,SAAS;AAAA,QAAA;;MAGdU,EA0BM,OA1BNU,GA0BM;AAAA,QAzBJjB,EAYEE,EAAAO,CAAA,GAAA;AAAA,sBAXSX,EAAA;AAAA;mCAAAA,EAAa,QAAAa;AAAA,6BAIDnB,MAAa;cAAmBA,MAAK,WAA2BX,EAAA,MAAS,YAAYkB,EAAA,QAAqClB,EAAA,MAAS,YAAYW;AAAA;;UAHpK,OAAM;AAAA,UACL,SAASI;AAAA,UACT,SAAS;AAAA,QAAA;QASZI,EAWEE,EAAAgB,CAAA,GAAA;AAAA,sBAVSnB,EAAA;AAAA;mCAAAA,EAAQ,QAAAY;AAAA,+BAKInB,MAAa;AAAmB,cAAAA,MAAU,WAAuBX,EAAA,MAAS,YAAYW;AAAA;;UAJ1G,OAAO,EAAA,QAAA,QAAA,YAAA,QAAA,OAAA,OAAA;AAAA,UACP,UAAUM,EAAA,UAAa;AAAA,UACxB,OAAM;AAAA,UACL,qBAAqB;AAAA,QAAA;;;;;"}
@@ -1,55 +1,55 @@
1
- import { defineComponent as g, computed as r, reactive as y, ref as f, createElementBlock as _, openBlock as s, Fragment as S, renderList as P, createElementVNode as C, createVNode as T, createBlock as k, createCommentVNode as B, toDisplayString as L, unref as x, withCtx as F } from "vue";
2
- import { useStore as N } from "../../../../store.js";
3
- import { DEFAULT_CATEGORICAL_PALETTE as $, DEFAULT_CONTINUOUS_PALETTE as I, PALETTE_MAP as O } from "../../../../constantsAesthetic.js";
4
- import { createContinuousMappingFromPalette as U } from "../../../../dataBindAes.js";
5
- import b from "../../../../components/MultiselectButton.vue.js";
6
- import D from "../../../../components/AesSettings/PalettesForm.vue.js";
7
- import G from "../../../../components/AesSettings/FormWrapper.vue.js";
8
- const V = { class: "section-title" }, q = /* @__PURE__ */ g({
1
+ import { defineComponent as k, computed as r, reactive as B, ref as f, createElementBlock as _, openBlock as s, Fragment as S, renderList as x, createElementVNode as g, createVNode as y, createBlock as A, createCommentVNode as $, toDisplayString as E, unref as T, withCtx as b } from "vue";
2
+ import { useStore as F } from "../../../../store.js";
3
+ import { PALETTE_MAP as N } from "../../../../constantsAesthetic.js";
4
+ import { createContinuousMappingFromPalette as V } from "../../../../dataBindAes.js";
5
+ import G from "../../../../components/MultiselectButton.vue.js";
6
+ import I from "../../../../components/AesSettings/PalettesForm.vue.js";
7
+ import L from "../../../../components/AesSettings/FormWrapper.vue.js";
8
+ const M = { class: "section-title" }, q = /* @__PURE__ */ k({
9
9
  __name: "HeatmapAnnotations",
10
- setup(M) {
11
- const o = N(), p = r(() => o.value.reactive.optionsState), A = r(
12
- () => o.value.inputGuide.value
10
+ setup(h) {
11
+ const a = F(), p = r(() => a.value.reactive.optionsState), C = r(
12
+ () => a.value.inputGuide.value
13
13
  ), i = r(() => {
14
14
  const n = p.value.components.annotationsX.selectorStates.map((t) => t.selectedSource), e = p.value.components.annotationsY.selectorStates.map((t) => t.selectedSource);
15
15
  return [...n, ...e];
16
- }), c = r(() => i.value.reduce((n, e) => (n[e] = A.value.getSourceInfo(e), n), {})), a = y(i.value.reduce((n, e) => {
16
+ }), u = r(() => i.value.reduce((n, e) => (n[e] = C.value.getSourceInfo(e), n), {})), o = B(i.value.reduce((n, e) => {
17
17
  var v, d;
18
- const u = ((v = c.value[e]) == null ? void 0 : v.type) === "String" ? $ : I;
19
- return n[e] = ((d = o.value.reactive.dataBindAes[e]) == null ? void 0 : d.palette) ?? u, n;
18
+ const c = ((v = u.value[e]) == null ? void 0 : v.type) === "String" ? a.value.defaultPalette.categorical : a.value.defaultPalette.continuous;
19
+ return n[e] = ((d = a.value.reactive.dataBindAes[e]) == null ? void 0 : d.palette) ?? c, n;
20
20
  }, {})), l = f(null), m = f(null);
21
- function E(n) {
21
+ function P(n) {
22
22
  const e = m.value;
23
- e && (a[e] = n, o.value.reactive.dataBindAes[e] = U(n)), l.value = e;
23
+ e && (o[e] = n, a.value.reactive.dataBindAes[e] = V(n)), l.value = e;
24
24
  }
25
- return (n, e) => (s(!0), _(S, null, P(i.value, (t) => (s(), _(S, { key: t }, [
26
- C("div", V, [
27
- C("span", null, L(c.value[t].label), 1)
25
+ return (n, e) => (s(!0), _(S, null, x(i.value, (t) => (s(), _(S, { key: t }, [
26
+ g("div", M, [
27
+ g("span", null, E(u.value[t].label), 1)
28
28
  ]),
29
- T(b, {
29
+ y(G, {
30
30
  label: "Color Palette ",
31
- title: x(O)[a[t]].title,
32
- palette: a[t],
31
+ title: T(N)[o[t]].title,
32
+ palette: o[t],
33
33
  style: { marginBottom: "24px" },
34
- onButtonClick: (u) => {
34
+ onButtonClick: (c) => {
35
35
  l.value = t, m.value = t;
36
36
  }
37
37
  }, null, 8, ["title", "palette", "onButtonClick"]),
38
- l.value === t ? (s(), k(G, {
38
+ l.value === t ? (s(), A(L, {
39
39
  key: 0,
40
40
  title: "Color Palette",
41
41
  "back-title": "Color mapping",
42
- "onForm:close": e[0] || (e[0] = (u) => l.value = null)
42
+ "onForm:close": e[0] || (e[0] = (c) => l.value = null)
43
43
  }, {
44
- default: F(() => [
45
- T(D, {
46
- selected: a[t],
47
- categorical: c.value[t].type === "String",
48
- onSelect: E
44
+ default: b(() => [
45
+ y(I, {
46
+ selected: o[t],
47
+ categorical: u.value[t].type === "String",
48
+ onSelect: P
49
49
  }, null, 8, ["selected", "categorical"])
50
50
  ]),
51
51
  _: 2
52
- }, 1024)) : B("", !0)
52
+ }, 1024)) : $("", !0)
53
53
  ], 64))), 128));
54
54
  }
55
55
  });
@@ -1 +1 @@
1
- {"version":3,"file":"HeatmapAnnotations.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed, reactive, ref } from 'vue';\nimport {\n DEFAULT_CATEGORICAL_PALETTE,\n DEFAULT_CONTINUOUS_PALETTE,\n PALETTE_MAP,\n} from '../../../../constantsAesthetic';\nimport type { ContinuousPalette, Palette } 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 { AxisData, ColumnData, HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(\n () => store.value.inputGuide.value as InputGuide<HeatmapUIState>,\n);\n\nconst annotationSources = computed(() => {\n const x = optionsState.value.components.annotationsX.selectorStates.map((s) => s.selectedSource);\n const y = optionsState.value.components.annotationsY.selectorStates.map((s) => s.selectedSource);\n return [...x, ...y];\n});\n\nconst annotationsInfo = computed(() => annotationSources.value.reduce((res: Record<string, AxisData | ColumnData>, source) => {\n res[source] = inputGuide.value.getSourceInfo(source);\n return res;\n}, {}));\n\nconst palettes = reactive(annotationSources.value.reduce((res: Record<string, Palette>, source) => {\n const valueType = annotationsInfo.value[source]?.type;\n const defaultPalette = valueType === 'String' ? DEFAULT_CATEGORICAL_PALETTE : DEFAULT_CONTINUOUS_PALETTE;\n res[source] = store.value.reactive.dataBindAes[source]?.palette ?? defaultPalette;\n return res;\n}, {}));\n\nconst palettesOpen = ref<string | null>(null);\nconst currentSource = ref<string | null>(null); // use the same palette form for all the annotations; current is last clicked\nfunction onPaletteSelect(value: Palette) {\n const source = currentSource.value;\n if (source) {\n palettes[source] = value;\n // TODO: categorical mapping, detailed continuous mapping (with range), log continuous mapping\n store.value.reactive.dataBindAes[source] = createContinuousMappingFromPalette(value as ContinuousPalette);\n }\n palettesOpen.value = source;\n}\n</script>\n\n<template>\n <template v-for=\"source of annotationSources\" :key=\"source\">\n <div class=\"section-title\"><span>{{ annotationsInfo[source].label }}</span></div>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palettes[source]].title\"\n :palette=\"palettes[source]\"\n :style=\"{marginBottom:'24px'}\"\n @button-click=\"palettesOpen = source; currentSource = source;\"\n />\n <FormWrapper\n v-if=\"palettesOpen === source\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = null\"\n >\n <PalettesForm\n :selected=\"palettes[source]\" :categorical=\"annotationsInfo[source].type === 'String'\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["store","useStore","optionsState","computed","inputGuide","annotationSources","x","s","y","annotationsInfo","res","source","palettes","reactive","defaultPalette","_a","DEFAULT_CATEGORICAL_PALETTE","DEFAULT_CONTINUOUS_PALETTE","_b","palettesOpen","ref","currentSource","onPaletteSelect","value","createContinuousMappingFromPalette","_createElementBlock","_Fragment","_renderList","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm"],"mappings":";;;;;;;;;;AAeA,UAAMA,IAAQC,EAAA,GACRC,IAAeC,EAAS,MAAMH,EAAM,MAAM,SAAS,YAA8B,GACjFI,IAAaD;AAAA,MACjB,MAAMH,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAoBF,EAAS,MAAM;AACvC,YAAMG,IAAIJ,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc,GACzFC,IAAIN,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc;AAC/F,aAAO,CAAC,GAAGD,GAAG,GAAGE,CAAC;AAAA,IACpB,CAAC,GAEKC,IAAkBN,EAAS,MAAME,EAAkB,MAAM,OAAO,CAACK,GAA4CC,OACjHD,EAAIC,CAAM,IAAIP,EAAW,MAAM,cAAcO,CAAM,GAC5CD,IACN,CAAA,CAAE,CAAC,GAEAE,IAAWC,EAASR,EAAkB,MAAM,OAAO,CAACK,GAA8BC,MAAW;;AAEjG,YAAMG,MADYC,IAAAN,EAAgB,MAAME,CAAM,MAA5B,gBAAAI,EAA+B,UACZ,WAAWC,IAA8BC;AAC9E,aAAAP,EAAIC,CAAM,MAAIO,IAAAlB,EAAM,MAAM,SAAS,YAAYW,CAAM,MAAvC,gBAAAO,EAA0C,YAAWJ,GAC5DJ;AAAA,IACT,GAAG,CAAA,CAAE,CAAC,GAEAS,IAAeC,EAAmB,IAAI,GACtCC,IAAgBD,EAAmB,IAAI;AAC7C,aAASE,EAAgBC,GAAgB;AACvC,YAAMZ,IAASU,EAAc;AAC7B,MAAIV,MACFC,EAASD,CAAM,IAAIY,GAEnBvB,EAAM,MAAM,SAAS,YAAYW,CAAM,IAAIa,EAAmCD,CAA0B,IAE1GJ,EAAa,QAAQR;AAAA,IACvB;6BAIEc,EAoBWC,GAAA,MAAAC,EApBgBtB,EAAA,OAAiB,CAA3BM,wBAAmCA,KAAM;AAAA,MACxDiB,EAAiF,OAAjFC,GAAiF;AAAA,QAAtDD,EAAgD,QAAA,MAAAE,EAAvCrB,EAAA,MAAgBE,CAAM,EAAE,KAAK,GAAA,CAAA;AAAA,MAAA;MACjEoB,EAMEC,GAAA;AAAA,QALA,OAAM;AAAA,QACL,OAAOC,EAAAC,CAAA,EAAYtB,EAASD,CAAM,GAAG;AAAA,QACrC,SAASC,EAASD,CAAM;AAAA,QACxB,OAAO,EAAA,cAAA,OAAA;AAAA,QACP;AAAc,UAAAQ,EAAA,QAAeR,GAAQU,EAAA,QAAgBV;AAAA,QAAM;AAAA,MAAA;MAGtDQ,EAAA,UAAiBR,UADzBwB,EAUcC,GAAA;AAAA;QARZ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,uCAAYjB,EAAA,QAAY;AAAA,MAAA;mBAEzB,MAGE;AAAA,UAHFY,EAGEM,GAAA;AAAA,YAFC,UAAUzB,EAASD,CAAM;AAAA,YAAI,aAAaF,EAAA,MAAgBE,CAAM,EAAE,SAAI;AAAA,YACtE,UAAQW;AAAA,UAAA;;;;;;;"}
1
+ {"version":3,"file":"HeatmapAnnotations.vue.js","sources":["../../../../../src/forms/LayersForm/Layer/heatmap/HeatmapAnnotations.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useStore } from '../../../../store';\nimport { computed, reactive, ref } from 'vue';\nimport { PALETTE_MAP } from '../../../../constantsAesthetic';\nimport type { ContinuousPalette, Palette } 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 { AxisData, ColumnData, HeatmapUIState, InputGuide } from '@milaboratories/pf-plots';\n\nconst store = useStore();\nconst optionsState = computed(() => store.value.reactive.optionsState as HeatmapUIState);\nconst inputGuide = computed(\n () => store.value.inputGuide.value as InputGuide<HeatmapUIState>,\n);\n\nconst annotationSources = computed(() => {\n const x = optionsState.value.components.annotationsX.selectorStates.map((s) => s.selectedSource);\n const y = optionsState.value.components.annotationsY.selectorStates.map((s) => s.selectedSource);\n return [...x, ...y];\n});\n\nconst annotationsInfo = computed(() => annotationSources.value.reduce((res: Record<string, AxisData | ColumnData>, source) => {\n res[source] = inputGuide.value.getSourceInfo(source);\n return res;\n}, {}));\n\nconst palettes = reactive(annotationSources.value.reduce((res: Record<string, Palette>, source) => {\n const valueType = annotationsInfo.value[source]?.type;\n const defaultPalette = valueType === 'String' ? store.value.defaultPalette.categorical : store.value.defaultPalette.continuous;\n res[source] = store.value.reactive.dataBindAes[source]?.palette ?? defaultPalette;\n return res;\n}, {}));\n\nconst palettesOpen = ref<string | null>(null);\nconst currentSource = ref<string | null>(null); // use the same palette form for all the annotations; current is last clicked\nfunction onPaletteSelect(value: Palette) {\n const source = currentSource.value;\n if (source) {\n palettes[source] = value;\n // TODO: categorical mapping, detailed continuous mapping (with range), log continuous mapping\n store.value.reactive.dataBindAes[source] = createContinuousMappingFromPalette(value as ContinuousPalette);\n }\n palettesOpen.value = source;\n}\n</script>\n\n<template>\n <template v-for=\"source of annotationSources\" :key=\"source\">\n <div class=\"section-title\"><span>{{ annotationsInfo[source].label }}</span></div>\n <MultiselectButton\n label=\"Color Palette \"\n :title=\"PALETTE_MAP[palettes[source]].title\"\n :palette=\"palettes[source]\"\n :style=\"{marginBottom:'24px'}\"\n @button-click=\"palettesOpen = source; currentSource = source;\"\n />\n <FormWrapper\n v-if=\"palettesOpen === source\"\n title=\"Color Palette\"\n back-title=\"Color mapping\"\n @form:close=\"palettesOpen = null\"\n >\n <PalettesForm\n :selected=\"palettes[source]\" :categorical=\"annotationsInfo[source].type === 'String'\"\n @select=\"onPaletteSelect\"\n />\n </FormWrapper>\n </template>\n</template>\n"],"names":["store","useStore","optionsState","computed","inputGuide","annotationSources","x","s","y","annotationsInfo","res","source","palettes","reactive","defaultPalette","_a","_b","palettesOpen","ref","currentSource","onPaletteSelect","value","createContinuousMappingFromPalette","_createElementBlock","_Fragment","_renderList","_createElementVNode","_hoisted_1","_toDisplayString","_createVNode","MultiselectButton","_unref","PALETTE_MAP","_createBlock","FormWrapper","PalettesForm"],"mappings":";;;;;;;;;;AAWA,UAAMA,IAAQC,EAAA,GACRC,IAAeC,EAAS,MAAMH,EAAM,MAAM,SAAS,YAA8B,GACjFI,IAAaD;AAAA,MACjB,MAAMH,EAAM,MAAM,WAAW;AAAA,IAAA,GAGzBK,IAAoBF,EAAS,MAAM;AACvC,YAAMG,IAAIJ,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc,GACzFC,IAAIN,EAAa,MAAM,WAAW,aAAa,eAAe,IAAI,CAACK,MAAMA,EAAE,cAAc;AAC/F,aAAO,CAAC,GAAGD,GAAG,GAAGE,CAAC;AAAA,IACpB,CAAC,GAEKC,IAAkBN,EAAS,MAAME,EAAkB,MAAM,OAAO,CAACK,GAA4CC,OACjHD,EAAIC,CAAM,IAAIP,EAAW,MAAM,cAAcO,CAAM,GAC5CD,IACN,CAAA,CAAE,CAAC,GAEAE,IAAWC,EAASR,EAAkB,MAAM,OAAO,CAACK,GAA8BC,MAAW;;AAEjG,YAAMG,MADYC,IAAAN,EAAgB,MAAME,CAAM,MAA5B,gBAAAI,EAA+B,UACZ,WAAWf,EAAM,MAAM,eAAe,cAAcA,EAAM,MAAM,eAAe;AACpH,aAAAU,EAAIC,CAAM,MAAIK,IAAAhB,EAAM,MAAM,SAAS,YAAYW,CAAM,MAAvC,gBAAAK,EAA0C,YAAWF,GAC5DJ;AAAA,IACT,GAAG,CAAA,CAAE,CAAC,GAEAO,IAAeC,EAAmB,IAAI,GACtCC,IAAgBD,EAAmB,IAAI;AAC7C,aAASE,EAAgBC,GAAgB;AACvC,YAAMV,IAASQ,EAAc;AAC7B,MAAIR,MACFC,EAASD,CAAM,IAAIU,GAEnBrB,EAAM,MAAM,SAAS,YAAYW,CAAM,IAAIW,EAAmCD,CAA0B,IAE1GJ,EAAa,QAAQN;AAAA,IACvB;6BAIEY,EAoBWC,GAAA,MAAAC,EApBgBpB,EAAA,OAAiB,CAA3BM,wBAAmCA,KAAM;AAAA,MACxDe,EAAiF,OAAjFC,GAAiF;AAAA,QAAtDD,EAAgD,QAAA,MAAAE,EAAvCnB,EAAA,MAAgBE,CAAM,EAAE,KAAK,GAAA,CAAA;AAAA,MAAA;MACjEkB,EAMEC,GAAA;AAAA,QALA,OAAM;AAAA,QACL,OAAOC,EAAAC,CAAA,EAAYpB,EAASD,CAAM,GAAG;AAAA,QACrC,SAASC,EAASD,CAAM;AAAA,QACxB,OAAO,EAAA,cAAA,OAAA;AAAA,QACP;AAAc,UAAAM,EAAA,QAAeN,GAAQQ,EAAA,QAAgBR;AAAA,QAAM;AAAA,MAAA;MAGtDM,EAAA,UAAiBN,UADzBsB,EAUcC,GAAA;AAAA;QARZ,OAAM;AAAA,QACN,cAAW;AAAA,QACV,uCAAYjB,EAAA,QAAY;AAAA,MAAA;mBAEzB,MAGE;AAAA,UAHFY,EAGEM,GAAA;AAAA,YAFC,UAAUvB,EAASD,CAAM;AAAA,YAAI,aAAaF,EAAA,MAAgBE,CAAM,EAAE,SAAI;AAAA,YACtE,UAAQS;AAAA,UAAA;;;;;;;"}