@milaboratories/graph-maker 1.1.195 → 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.
Files changed (63) hide show
  1. package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js +127 -130
  2. package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js.map +1 -1
  3. package/dist/components/AesSettings/DiscreteRow.vue2.js +18 -18
  4. package/dist/components/AesSettings/DiscreteRow.vue2.js.map +1 -1
  5. package/dist/components/AesSettings/DiscreteRow.vue3.js +10 -8
  6. package/dist/components/AesSettings/DiscreteRow.vue3.js.map +1 -1
  7. package/dist/components/Chart.vue.js +118 -112
  8. package/dist/components/Chart.vue.js.map +1 -1
  9. package/dist/components/CollapsableBlock.vue.d.ts +1 -0
  10. package/dist/components/CollapsableBlock.vue.js +27 -21
  11. package/dist/components/CollapsableBlock.vue.js.map +1 -1
  12. package/dist/constantsCommon.d.ts +2 -0
  13. package/dist/constantsCommon.js +24 -16
  14. package/dist/constantsCommon.js.map +1 -1
  15. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +156 -117
  16. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
  17. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +162 -134
  18. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  19. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +175 -153
  20. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  21. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +177 -136
  22. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
  23. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +243 -203
  24. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  25. package/dist/forms/LayersForm/Layer/Bubble.vue.js +39 -43
  26. package/dist/forms/LayersForm/Layer/Bubble.vue.js.map +1 -1
  27. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js +30 -34
  28. package/dist/forms/LayersForm/Layer/discrete/Bar.vue.js.map +1 -1
  29. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js +24 -26
  30. package/dist/forms/LayersForm/Layer/discrete/Errorbar.vue.js.map +1 -1
  31. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js +27 -29
  32. package/dist/forms/LayersForm/Layer/discrete/Line.vue.js.map +1 -1
  33. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js +38 -43
  34. package/dist/forms/LayersForm/Layer/discrete/StackedArea.vue.js.map +1 -1
  35. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js +31 -36
  36. package/dist/forms/LayersForm/Layer/discrete/StackedBar.vue.js.map +1 -1
  37. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js +53 -57
  38. package/dist/forms/LayersForm/Layer/heatmap/Heatmap.vue.js.map +1 -1
  39. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js +70 -74
  40. package/dist/forms/LayersForm/Layer/heatmap/HeatmapClustered.vue.js.map +1 -1
  41. package/dist/index.js +1 -1
  42. package/dist/index.vue.js +1 -1
  43. package/dist/store.d.ts +3 -4
  44. package/dist/store.js +25 -26
  45. package/dist/store.js.map +1 -1
  46. package/dist/types.d.ts +4 -0
  47. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +1 -1
  48. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +4 -2
  49. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +22 -22
  50. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  51. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +7 -5
  52. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +1 -1
  53. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +2 -1
  54. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +12 -12
  55. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  56. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +11 -11
  57. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  58. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +17 -17
  59. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  60. package/dist/utils/loadUniqueValuesToSave.d.ts +2 -3
  61. package/dist/utils/loadUniqueValuesToSave.js +2 -2
  62. package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
  63. package/package.json +2 -2
@@ -1,23 +1,23 @@
1
- import { defineComponent as J, ref as y, watch as g, computed as f, createElementBlock as T, openBlock as s, createElementVNode as S, createVNode as M, createCommentVNode as d, createBlock as v, withKeys as Q, resolveDynamicComponent as Y, renderSlot as Z, unref as n, withCtx as C, createTextVNode as B, normalizeClass as H, toDisplayString as ee, withModifiers as R } from "vue";
1
+ import { defineComponent as z, ref as S, watch as g, computed as m, createElementBlock as T, openBlock as s, createElementVNode as h, createVNode as H, createCommentVNode as d, createBlock as f, withKeys as J, resolveDynamicComponent as Q, renderSlot as Z, unref as i, withCtx as C, createTextVNode as x, normalizeClass as L, toDisplayString as ee, withModifiers as R } from "vue";
2
2
  import { PlNotificationAlert as te, PlDropdown as oe, PlAutocomplete as ae, PlBtnGhost as N } from "@platforma-sdk/ui-vue";
3
3
  import re from "./DendroTable.vue.js";
4
4
  import ne from "./DendroTooltip.vue.js";
5
5
  import le from "./LassoControls/index.vue.js";
6
6
  import ie from "./Loading.vue.js";
7
- import se from "./Zoom/index.vue.js";
7
+ import ue from "./Zoom/index.vue.js";
8
8
  import { MAX_SEARCH_OPTIONS_LIST_LENGTH as O } from "../constantsCommon.js";
9
- import ue from "../icons/EditIcon.vue.js";
9
+ import se from "../icons/EditIcon.vue.js";
10
10
  import { useStore as ce } from "../store.js";
11
- const de = { class: "chart_container" }, ve = { class: "chart_header" }, me = ["value"], fe = { class: "chart_titleLineSlot" }, pe = {
11
+ const de = { class: "chart_container" }, fe = { class: "chart_header" }, ve = ["value"], me = { class: "chart_titleLineSlot" }, pe = {
12
12
  key: 0,
13
13
  class: "chart_tabBy"
14
- }, he = {
14
+ }, ye = {
15
15
  key: 1,
16
16
  class: "chart_errorMessage"
17
- }, Se = {
17
+ }, he = {
18
18
  key: 1,
19
19
  class: "chart_controls"
20
- }, xe = /* @__PURE__ */ J({
20
+ }, $e = /* @__PURE__ */ z({
21
21
  __name: "Chart",
22
22
  props: {
23
23
  graphStatus: {},
@@ -28,57 +28,57 @@ const de = { class: "chart_container" }, ve = { class: "chart_header" }, me = ["
28
28
  errorInfo: {}
29
29
  },
30
30
  emits: ["graph-title-update", "dendro-node-select", "dendro-tooltip-btn-click"],
31
- setup(l, { emit: U }) {
32
- const D = U, a = ce(), u = l, b = y(u.graphTitle);
33
- g(() => u.graphTitle, (t) => {
31
+ setup(u, { emit: U }) {
32
+ const I = U, a = ce(), r = u, b = S(r.graphTitle);
33
+ g(() => r.graphTitle, (t) => {
34
34
  b.value = t;
35
35
  });
36
- const x = f(() => {
36
+ const $ = m(() => {
37
37
  var t;
38
38
  return (t = a.value.reactive.optionsState.components.tabBy) == null ? void 0 : t.selectorStates[0];
39
- }), p = f(() => {
39
+ }), p = m(() => {
40
40
  var t;
41
- return (t = x.value) == null ? void 0 : t.selectedSource;
42
- }), $ = f(() => {
41
+ return (t = $.value) == null ? void 0 : t.selectedSource;
42
+ }), B = m(() => {
43
43
  var t, e;
44
- return (e = (t = x.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
45
- }), P = f(() => {
44
+ return (e = (t = $.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
45
+ }), D = m(() => {
46
46
  var t;
47
47
  return (t = a.value.reactive.optionsState.components.filters) == null ? void 0 : t.selectorStates;
48
- }), m = y($.value);
48
+ }), v = S(B.value);
49
49
  g(() => p.value, (t, e) => {
50
- t !== e && (m.value = $.value);
50
+ t !== e && (v.value = B.value);
51
51
  }, { immediate: !0 });
52
52
  async function A(t) {
53
53
  var o;
54
54
  if (!a.value.columnsDataStore)
55
55
  return Promise.resolve([]);
56
- const e = P.value.find((i) => i.selectedSource === t);
56
+ const e = D.value.find((l) => l.selectedSource === t);
57
57
  if (e && (((o = e.selectedFilterValues) == null ? void 0 : o.length) ?? 0) > 0) {
58
- const i = e.selectedFilterValues ?? [];
59
- return Promise.all(i.map((c) => F(t, c)));
58
+ const l = e.selectedFilterValues ?? [];
59
+ return Promise.all(l.map((c) => G(t, c)));
60
60
  }
61
- const r = await a.value.controller.getUniqueSourceValuesWithLabels(
61
+ const n = await a.value.controller.getUniqueSourceValuesWithLabels(
62
62
  a.value.columnsDataStore,
63
63
  a.value.inputGuide.value,
64
64
  t,
65
65
  O
66
66
  );
67
- return r.overflow ? null : r.values;
67
+ return n.overflow ? null : n.values;
68
68
  }
69
- const h = y();
69
+ const y = S();
70
70
  g([
71
71
  () => p.value,
72
72
  () => a.value.loading.inputGuide
73
73
  ], async ([t, e]) => {
74
- t === void 0 || e || !a.value.columnsDataStore || (h.value = await A(t));
75
- }, { immediate: !0 }), g(() => h.value, async (t) => {
76
- if (p.value === void 0 || m.value !== void 0 || t === void 0)
74
+ t === void 0 || e || !a.value.columnsDataStore || (y.value = await A(t));
75
+ }, { immediate: !0 }), g(() => y.value, async (t) => {
76
+ if (p.value === void 0 || v.value !== void 0 || t === void 0)
77
77
  return;
78
78
  let e = t;
79
- if (t === null && (e = await G(p.value, "")), e != null && e.length) {
80
- const r = e[0].value;
81
- m.value = r, w(r);
79
+ if (t === null && (e = await M(p.value, "")), e != null && e.length) {
80
+ const n = e[0].value;
81
+ v.value = n, w(n);
82
82
  }
83
83
  }, { immediate: !0 });
84
84
  function w(t) {
@@ -91,24 +91,24 @@ const de = { class: "chart_container" }, ve = { class: "chart_header" }, me = ["
91
91
  }
92
92
  function W(t) {
93
93
  const e = t.currentTarget;
94
- b.value = e.value, D("graph-title-update", e.value);
94
+ b.value = e.value, I("graph-title-update", e.value);
95
95
  }
96
96
  function q(t) {
97
- D("dendro-node-select", t);
97
+ I("dendro-node-select", t);
98
98
  }
99
- async function G(t, e, r = "label") {
100
- var E;
99
+ async function M(t, e, n = "label") {
100
+ var F;
101
101
  if (!a.value.columnsDataStore)
102
102
  return Promise.resolve([]);
103
- const o = P.value.find((V) => V.selectedSource === t);
104
- if (o && (((E = o.selectedFilterValues) == null ? void 0 : E.length) ?? 0) > 0) {
105
- const V = o.selectedFilterValues ?? [], L = await Promise.all(V.map((k) => F(t, k)));
106
- return e ? L.filter((k) => k.label.toLowerCase().includes(e.toLowerCase())) : L;
103
+ const o = D.value.find((V) => V.selectedSource === t);
104
+ if (o && (((F = o.selectedFilterValues) == null ? void 0 : F.length) ?? 0) > 0) {
105
+ const V = o.selectedFilterValues ?? [], E = await Promise.all(V.map((k) => G(t, k)));
106
+ return e ? E.filter((k) => k.label.toLowerCase().includes(e.toLowerCase())) : E;
107
107
  }
108
- const i = r === "label" ? e : void 0, c = r === "value" ? e : void 0;
109
- return (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, O, i, c)).values;
108
+ const l = n === "label" ? e : void 0, c = n === "value" ? e : void 0;
109
+ return (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, O, l, c)).values;
110
110
  }
111
- async function F(t, e) {
111
+ async function G(t, e) {
112
112
  return a.value.columnsDataStore ? await a.value.controller.getUniqueSourceValuesWithLabels(
113
113
  a.value.columnsDataStore,
114
114
  a.value.inputGuide.value,
@@ -118,164 +118,170 @@ const de = { class: "chart_container" }, ve = { class: "chart_header" }, me = ["
118
118
  e
119
119
  ).then((o) => o.values[0]) : Promise.resolve({ value: e, label: " " });
120
120
  }
121
- const I = y(), _ = f(() => {
121
+ const P = S(), X = m(() => {
122
122
  var e;
123
123
  if (a.value.reactive.chartType !== "discrete")
124
124
  return !1;
125
125
  const t = a.value.reactive.optionsState.components;
126
126
  if ((e = t.primaryGrouping) != null && e.selectorStates.length) {
127
- const r = t.primaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[r];
127
+ const n = t.primaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[n];
128
128
  if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
129
- return Object.values(o.hidden).length > 0 && o.order.some((i) => {
129
+ return Object.values(o.hidden).length > 0 && o.order.some((l) => {
130
130
  var c;
131
- return (c = o.hidden) == null ? void 0 : c[i];
131
+ return (c = o.hidden) == null ? void 0 : c[l];
132
132
  });
133
133
  }
134
134
  return !1;
135
- }), j = f(() => {
135
+ }), _ = m(() => {
136
136
  var e;
137
137
  if (a.value.reactive.chartType !== "discrete")
138
138
  return !1;
139
139
  const t = a.value.reactive.optionsState.components;
140
140
  if ((e = t.secondaryGrouping) != null && e.selectorStates.length) {
141
- const r = t.secondaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[r];
141
+ const n = t.secondaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[n];
142
142
  if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
143
- return Object.values(o.hidden).length > 0 && o.order.some((i) => {
143
+ return Object.values(o.hidden).length > 0 && o.order.some((l) => {
144
144
  var c;
145
- return (c = o.hidden) == null ? void 0 : c[i];
145
+ return (c = o.hidden) == null ? void 0 : c[l];
146
146
  });
147
147
  }
148
148
  return !1;
149
149
  });
150
- function K() {
150
+ function j() {
151
151
  a.value.reactive.tabDefaultState.axes.reorderPrimaryOpen = !0, a.value.reactive.currentTab = "axes";
152
152
  }
153
- function z() {
153
+ function K() {
154
154
  a.value.reactive.tabDefaultState.axes.reorderSecondaryOpen = !0, a.value.reactive.currentTab = "axes";
155
155
  }
156
- const X = f(() => {
157
- var t, e, r;
158
- return ((t = u.errorInfo) == null ? void 0 : t.type) === "tooManyFacets" ? `Too many facets (${u.errorInfo.info.count}).
159
- Maximum count is ${u.errorInfo.info.maxCount}.
160
- Try to filter the data.` : ((e = u.errorInfo) == null ? void 0 : e.type) === "tooManyPrimaryGroups" ? `Too many primary groups (${u.errorInfo.info.count}).
161
- Maximum count is ${u.errorInfo.info.maxCount}.
162
- Try to filter the data.` : ((r = u.errorInfo) == null ? void 0 : r.type) === "tooManySecondaryGroups" ? `Too many secondary groups (${u.errorInfo.info.count}).
163
- Maximum count is ${u.errorInfo.info.maxCount}.
156
+ const Y = m(() => {
157
+ var t, e, n, o, l, c;
158
+ return ((t = r.errorInfo) == null ? void 0 : t.type) === "tooManyFacets" ? `Too many facets (${r.errorInfo.info.count}).
159
+ Maximum count is ${r.errorInfo.info.maxCount}.
160
+ Try to filter the data.` : ((e = r.errorInfo) == null ? void 0 : e.type) === "tooManyPrimaryGroups" ? `Too many primary groups (${r.errorInfo.info.count}).
161
+ Maximum count is ${r.errorInfo.info.maxCount}.
162
+ Try to filter the data.` : ((n = r.errorInfo) == null ? void 0 : n.type) === "tooManySecondaryGroups" ? `Too many secondary groups (${r.errorInfo.info.count}).
163
+ Maximum count is ${r.errorInfo.info.maxCount}.
164
+ Try to filter the data.` : ((o = r.errorInfo) == null ? void 0 : o.type) === "tooManyScatterplotGroupsX" ? `Too many categories on X axis (${r.errorInfo.info.count}).
165
+ Maximum count is ${r.errorInfo.info.maxCount}.
166
+ Try to filter the data.` : ((l = r.errorInfo) == null ? void 0 : l.type) === "tooManyScatterplotGroupsY" ? `Too many categories on Y axis (${r.errorInfo.info.count}).
167
+ Maximum count is ${r.errorInfo.info.maxCount}.
168
+ Try to filter the data.` : ((c = r.errorInfo) == null ? void 0 : c.type) === "tooManyHistogramGroups" ? `Too many groups (${r.errorInfo.info.count}).
169
+ Maximum count is ${r.errorInfo.info.maxCount}.
164
170
  Try to filter the data.` : "";
165
171
  });
166
172
  return (t, e) => {
167
- var r;
173
+ var n;
168
174
  return s(), T("div", de, [
169
- S("div", ve, [
170
- S("input", {
175
+ h("div", fe, [
176
+ h("input", {
171
177
  class: "chart_title",
172
178
  value: b.value,
173
179
  onChange: W,
174
- onKeyup: e[0] || (e[0] = Q((o) => {
175
- var i;
176
- (i = o.target) == null || i.blur();
180
+ onKeyup: e[0] || (e[0] = J((o) => {
181
+ var l;
182
+ (l = o.target) == null || l.blur();
177
183
  }, ["enter"]))
178
- }, null, 40, me),
179
- (s(), v(Y(ue), { class: "chart_titleEdit" })),
180
- S("div", fe, [
184
+ }, null, 40, ve),
185
+ (s(), f(Q(se), { class: "chart_titleEdit" })),
186
+ h("div", me, [
181
187
  Z(t.$slots, "default")
182
188
  ])
183
189
  ]),
184
- M(n(te), {
185
- modelValue: n(a).reactive.showTooltipHint,
186
- "onUpdate:modelValue": e[1] || (e[1] = (o) => n(a).reactive.showTooltipHint = o),
190
+ H(i(te), {
191
+ modelValue: i(a).reactive.showTooltipHint,
192
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => i(a).reactive.showTooltipHint = o),
187
193
  type: "success",
188
194
  class: "chart_tooltipHint",
189
195
  width: "170px"
190
196
  }, {
191
197
  default: C(() => [...e[10] || (e[10] = [
192
- B(" Hit enter to pin tooltip ", -1)
198
+ x(" Hit enter to pin tooltip ", -1)
193
199
  ])]),
194
200
  _: 1
195
201
  }, 8, ["modelValue"]),
196
202
  p.value ? (s(), T("div", pe, [
197
- h.value || h.value === void 0 && n(a).loading.inputGuide ? (s(), v(n(oe), {
203
+ y.value || y.value === void 0 && i(a).loading.inputGuide ? (s(), f(i(oe), {
198
204
  key: 0,
199
- modelValue: m.value,
205
+ modelValue: v.value,
200
206
  "onUpdate:modelValue": [
201
- e[2] || (e[2] = (o) => m.value = o),
207
+ e[2] || (e[2] = (o) => v.value = o),
202
208
  e[3] || (e[3] = (o) => w(o))
203
209
  ],
204
210
  label: "Show for",
205
- options: h.value
206
- }, null, 8, ["modelValue", "options"])) : (s(), v(n(ae), {
211
+ options: y.value
212
+ }, null, 8, ["modelValue", "options"])) : (s(), f(i(ae), {
207
213
  key: 1,
208
- modelValue: m.value,
214
+ modelValue: v.value,
209
215
  "onUpdate:modelValue": [
210
- e[4] || (e[4] = (o) => m.value = o),
216
+ e[4] || (e[4] = (o) => v.value = o),
211
217
  e[5] || (e[5] = (o) => w(o))
212
218
  ],
213
219
  label: "Show for",
214
- "options-search": (o, i) => G(p.value, o, i)
220
+ "options-search": (o, l) => M(p.value, o, l)
215
221
  }, null, 8, ["modelValue", "options-search"]))
216
222
  ])) : d("", !0),
217
- S("div", {
223
+ h("div", {
218
224
  ref_key: "chartContainerRef",
219
- ref: I,
220
- class: H(["chart_main-content", [{ "chart_main-content__dendro": n(a).reactive.chartType === "dendro" }, "pl-scrollable"]])
225
+ ref: P,
226
+ class: L(["chart_main-content", [{ "chart_main-content__dendro": i(a).reactive.chartType === "dendro" }, "pl-scrollable"]])
221
227
  }, [
222
- S("div", {
228
+ h("div", {
223
229
  id: "chartSvgContainer",
224
- class: H({
225
- chart_loading: l.graphStatus === "loading",
226
- chart_noDataMapping: l.graphStatus === "notReady",
227
- chart_emptyData: l.graphStatus === "empty",
228
- chart_inconsistent: l.graphStatus === "inconsistent",
229
- chart_knownError: l.graphStatus === "knownError",
230
- chart_unknownError: l.graphStatus === "unknownError",
231
- chart_activeLassoSelection: ((r = n(a).reactive.lassoControlsState) == null ? void 0 : r.mode) === "selection"
230
+ class: L({
231
+ chart_loading: u.graphStatus === "loading",
232
+ chart_noDataMapping: u.graphStatus === "notReady",
233
+ chart_emptyData: u.graphStatus === "empty",
234
+ chart_inconsistent: u.graphStatus === "inconsistent",
235
+ chart_knownError: u.graphStatus === "knownError",
236
+ chart_unknownError: u.graphStatus === "unknownError",
237
+ chart_activeLassoSelection: ((n = i(a).reactive.lassoControlsState) == null ? void 0 : n.mode) === "selection"
232
238
  })
233
239
  }, [
234
- l.graphStatus === "loading" ? (s(), v(ie, {
240
+ u.graphStatus === "loading" ? (s(), f(ie, {
235
241
  key: 0,
236
242
  top: 10
237
243
  })) : d("", !0),
238
- l.graphStatus === "knownError" ? (s(), T("div", he, ee(X.value), 1)) : d("", !0)
244
+ u.graphStatus === "knownError" ? (s(), T("div", ye, ee(Y.value), 1)) : d("", !0)
239
245
  ], 2),
240
- n(a).reactive.chartType === "dendro" && l.chartData && n(a).reactive.layersSettings.dendro.showTable ? (s(), v(re, {
246
+ i(a).reactive.chartType === "dendro" && u.chartData && i(a).reactive.layersSettings.dendro.showTable ? (s(), f(re, {
241
247
  key: 0,
242
- chartData: l.chartData,
248
+ chartData: u.chartData,
243
249
  onRowSelect: q
244
250
  }, null, 8, ["chartData"])) : d("", !0),
245
- n(a).reactive.dendroInfoByClick ? (s(), v(ne, {
251
+ i(a).reactive.dendroInfoByClick ? (s(), f(ne, {
246
252
  key: 1,
247
- info: n(a).reactive.dendroInfoByClick,
248
- containerRef: I.value,
249
- tooltipBtn: l.dendroTooltipButton,
253
+ info: i(a).reactive.dendroInfoByClick,
254
+ containerRef: P.value,
255
+ tooltipBtn: u.dendroTooltipButton,
250
256
  onTooltipBtnClick: e[6] || (e[6] = (o) => t.$emit("dendro-tooltip-btn-click", o)),
251
257
  onClose: e[7] || (e[7] = (o) => {
252
- n(a).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
258
+ i(a).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
253
259
  })
254
260
  }, null, 8, ["info", "containerRef", "tooltipBtn"])) : d("", !0)
255
261
  ], 2),
256
- l.graphStatus !== "empty" ? (s(), T("div", Se, [
257
- M(se),
258
- n(a).reactive.chartType === "scatterplot-umap" ? (s(), v(le, {
262
+ u.graphStatus !== "empty" ? (s(), T("div", he, [
263
+ H(ue),
264
+ i(a).reactive.chartType === "scatterplot-umap" ? (s(), f(le, {
259
265
  key: 0,
260
- "chart-ref": l.chartRef
266
+ "chart-ref": u.chartRef
261
267
  }, null, 8, ["chart-ref"])) : d("", !0),
262
- _.value ? (s(), v(n(N), {
268
+ X.value ? (s(), f(i(N), {
263
269
  key: 1,
264
270
  icon: "view-hide",
265
- onClick: e[8] || (e[8] = R(() => K(), ["stop"]))
271
+ onClick: e[8] || (e[8] = R(() => j(), ["stop"]))
266
272
  }, {
267
273
  default: C(() => [...e[11] || (e[11] = [
268
- B(" Hidden (primary) ", -1)
274
+ x(" Hidden (primary) ", -1)
269
275
  ])]),
270
276
  _: 1
271
277
  })) : d("", !0),
272
- j.value ? (s(), v(n(N), {
278
+ _.value ? (s(), f(i(N), {
273
279
  key: 2,
274
280
  icon: "view-hide",
275
- onClick: e[9] || (e[9] = R(() => z(), ["stop"]))
281
+ onClick: e[9] || (e[9] = R(() => K(), ["stop"]))
276
282
  }, {
277
283
  default: C(() => [...e[12] || (e[12] = [
278
- B(" Hidden (secondary) ", -1)
284
+ x(" Hidden (secondary) ", -1)
279
285
  ])]),
280
286
  _: 1
281
287
  })) : d("", !0)
@@ -285,6 +291,6 @@ Try to filter the data.` : "";
285
291
  }
286
292
  });
287
293
  export {
288
- xe as default
294
+ $e as default
289
295
  };
290
296
  //# sourceMappingURL=Chart.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.vue.js","sources":["../../src/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ChartInterface, ErrorInfo } from '@milaboratories/miplots4';\nimport type { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\nimport { PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../components/DendroTable.vue';\nimport DendroTooltip from '../components/DendroTooltip.vue';\nimport LassoControls from '../components/LassoControls/index.vue';\nimport Loading from '../components/Loading.vue';\nimport Zoom from '../components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport type { GraphStatus } from '../types.ts';\n\nconst emit = defineEmits(['graph-title-update', 'dendro-node-select', 'dendro-tooltip-btn-click']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n graphStatus: GraphStatus;\n graphTitle: string;\n dendroTooltipButton?: string;\n chartData: Record<string, unknown> | null;\n chartRef: ChartInterface | null;\n errorInfo: ErrorInfo | null;\n}>();\n\nconst title = ref(props.graphTitle);\n// title can be updated from graph-maker settings\nwatch(() => props.graphTitle, (graphTitle) => {\n title.value = graphTitle;\n});\n\nconst tabByState = computed(() => store.value.reactive.optionsState.components.tabBy?.selectorStates[0] as SelectorStateFilter | undefined);\nconst tabBySource = computed(() => tabByState.value?.selectedSource);\nconst tabByFilterValue = computed(() => tabByState.value?.selectedFilterValues?.[0]);\nconst filtersStates = computed(() => store.value.reactive.optionsState.components.filters?.selectorStates as SelectorStateFilter[]);\n\nconst tabByLocalValue = ref(tabByFilterValue.value);\nwatch(() => tabBySource.value, (value, prevValue) => { // tabBy column changed, needs to update selected value\n if (value !== prevValue) {\n tabByLocalValue.value = tabByFilterValue.value;\n }\n}, { immediate: true });\n\n// try to load full options list, without search query; if result is not overflow, use values from it in regular dropdown, no autocomplete;\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n return Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore,\n store.value.inputGuide.value,\n sourceId,\n MAX_SEARCH_OPTIONS_LIST_LENGTH,\n );\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[] | null | undefined>();\nwatch([\n () => tabBySource.value,\n () => store.value.loading.inputGuide,\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, { immediate: true });\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined // no tabBy selected\n || tabByLocalValue.value !== undefined // tabBy selected and has selected value\n || opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\nfunction onFilterValueUpdate(value: string) {\n const prevSelectorStates = store.value.reactive.optionsState.components.tabBy.selectorStates;\n if (prevSelectorStates.length) {\n store.value.reactive.optionsState.components.tabBy.selectorStates = [{\n ...prevSelectorStates[0],\n type: 'equals',\n selectedFilterValues: [value],\n }];\n }\n}\n\nfunction onTitleChange(e: Event) {\n const target = e.currentTarget as HTMLInputElement;\n title.value = target.value;\n emit('graph-title-update', target.value);\n}\n\nfunction onTableRowSelect(id: number) {\n emit('dendro-node-select', id);\n}\n\n// search options for autocomplete component; use label-mode search for options and value-mode for search of label of selected by default value;\nasync function searchFilterOptions(sourceId: string, searchStr: string, type: 'value' | 'label' = 'label') {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n const results = await Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n return searchStr ? results.filter((v) => v.label.toLowerCase().includes(searchStr.toLowerCase())) : results;\n }\n const searchLabelStr = type === 'label' ? searchStr : undefined;\n const searchValueStr = type === 'value' ? searchStr : undefined;\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchLabelStr, searchValueStr)).values;\n}\n\n// search by value, not by label;\nasync function searchSelectedFilterValueOptions(sourceId: string, selectedValue: string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({ value: selectedValue, label: ' ' }); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then((v) => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\nconst errorMessage = computed(() => {\n if (props.errorInfo?.type === 'tooManyFacets') {\n return `Too many facets (${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyPrimaryGroups') {\n return `Too many primary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManySecondaryGroups') {\n return `Too many secondary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n return '';\n});\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input\n class=\"chart_title\" :value=\"title\" @change=\"onTitleChange\"\n @keyup.enter=\"(e) => { (e.target as HTMLInputElement)?.blur() }\"\n />\n <component :is=\"EditIcon\" class=\"chart_titleEdit\" />\n <div class=\"chart_titleLineSlot\">\n <slot />\n </div>\n </div>\n <PlNotificationAlert\n v-model=\"store.reactive.showTooltipHint\" type=\"success\" class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div v-if=\"tabBySource\" class=\"chart_tabBy\">\n <PlDropdown\n v-if=\"preloadedOptions || (preloadedOptions === undefined && store.loading.inputGuide)\"\n v-model=\"tabByLocalValue\" label=\"Show for\" :options=\"preloadedOptions\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n <PlAutocomplete\n v-else v-model=\"tabByLocalValue\" label=\"Show for\"\n :options-search=\"(str, type) => searchFilterOptions(tabBySource as string, str, type)\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n </div>\n <div\n ref=\"chartContainerRef\" class=\"chart_main-content\"\n :class=\"[{ 'chart_main-content__dendro': store.reactive.chartType === 'dendro' }, 'pl-scrollable']\"\n >\n <div\n id=\"chartSvgContainer\" :class=\"{\n 'chart_loading': graphStatus === 'loading',\n 'chart_noDataMapping': graphStatus === 'notReady',\n 'chart_emptyData': graphStatus === 'empty',\n 'chart_inconsistent': graphStatus === 'inconsistent',\n 'chart_knownError': graphStatus === 'knownError',\n 'chart_unknownError': graphStatus === 'unknownError',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <Loading v-if=\"graphStatus === 'loading'\" :top=\"10\" />\n <div v-if=\"graphStatus === 'knownError'\" class=\"chart_errorMessage\">\n {{ errorMessage }}\n </div>\n </div>\n <DendroTable\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\" @row-select=\"onTableRowSelect\"\n />\n <DendroTooltip\n v-if=\"store.reactive.dendroInfoByClick\" :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\" :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id: string) => $emit('dendro-tooltip-btn-click', id)\" @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div v-if=\"graphStatus !== 'empty'\" class=\"chart_controls\">\n <Zoom />\n <LassoControls v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\" />\n <PlBtnGhost v-if=\"hasPrimaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsPrimary()\">\n Hidden (primary)\n </PlBtnGhost>\n <PlBtnGhost v-if=\"hasSecondaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsSecondary()\">\n Hidden (secondary)\n </PlBtnGhost>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","filtersStates","tabByLocalValue","value","prevValue","loadOptions","sourceId","filtersStateWithTheSameSource","state","selectedValues","selectedValue","searchSelectedFilterValueOptions","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","type","results","searchLabelStr","searchValueStr","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","errorMessage","_c","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_createVNode","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","Loading","_hoisted_6","_toDisplayString","DendroTable","DendroTooltip","$emit","_hoisted_7","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
1
+ {"version":3,"file":"Chart.vue.js","sources":["../../src/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ChartInterface, ErrorInfo } from '@milaboratories/miplots4';\nimport type { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport type { ListOption } from '@platforma-sdk/ui-vue';\nimport { PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../components/DendroTable.vue';\nimport DendroTooltip from '../components/DendroTooltip.vue';\nimport LassoControls from '../components/LassoControls/index.vue';\nimport Loading from '../components/Loading.vue';\nimport Zoom from '../components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport type { GraphStatus } from '../types.ts';\n\nconst emit = defineEmits(['graph-title-update', 'dendro-node-select', 'dendro-tooltip-btn-click']);\n\nconst store = useStore();\n\nconst props = defineProps<{\n graphStatus: GraphStatus;\n graphTitle: string;\n dendroTooltipButton?: string;\n chartData: Record<string, unknown> | null;\n chartRef: ChartInterface | null;\n errorInfo: ErrorInfo | null;\n}>();\n\nconst title = ref(props.graphTitle);\n// title can be updated from graph-maker settings\nwatch(() => props.graphTitle, (graphTitle) => {\n title.value = graphTitle;\n});\n\nconst tabByState = computed(() => store.value.reactive.optionsState.components.tabBy?.selectorStates[0] as SelectorStateFilter | undefined);\nconst tabBySource = computed(() => tabByState.value?.selectedSource);\nconst tabByFilterValue = computed(() => tabByState.value?.selectedFilterValues?.[0]);\nconst filtersStates = computed(() => store.value.reactive.optionsState.components.filters?.selectorStates as SelectorStateFilter[]);\n\nconst tabByLocalValue = ref(tabByFilterValue.value);\nwatch(() => tabBySource.value, (value, prevValue) => { // tabBy column changed, needs to update selected value\n if (value !== prevValue) {\n tabByLocalValue.value = tabByFilterValue.value;\n }\n}, { immediate: true });\n\n// try to load full options list, without search query; if result is not overflow, use values from it in regular dropdown, no autocomplete;\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n return Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore,\n store.value.inputGuide.value,\n sourceId,\n MAX_SEARCH_OPTIONS_LIST_LENGTH,\n );\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[] | null | undefined>();\nwatch([\n () => tabBySource.value,\n () => store.value.loading.inputGuide,\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, { immediate: true });\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined // no tabBy selected\n || tabByLocalValue.value !== undefined // tabBy selected and has selected value\n || opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\nfunction onFilterValueUpdate(value: string) {\n const prevSelectorStates = store.value.reactive.optionsState.components.tabBy.selectorStates;\n if (prevSelectorStates.length) {\n store.value.reactive.optionsState.components.tabBy.selectorStates = [{\n ...prevSelectorStates[0],\n type: 'equals',\n selectedFilterValues: [value],\n }];\n }\n}\n\nfunction onTitleChange(e: Event) {\n const target = e.currentTarget as HTMLInputElement;\n title.value = target.value;\n emit('graph-title-update', target.value);\n}\n\nfunction onTableRowSelect(id: number) {\n emit('dendro-node-select', id);\n}\n\n// search options for autocomplete component; use label-mode search for options and value-mode for search of label of selected by default value;\nasync function searchFilterOptions(sourceId: string, searchStr: string, type: 'value' | 'label' = 'label') {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n // if the same source is selected in filters, return only selected values;\n const filtersStateWithTheSameSource = filtersStates.value.find((state) => state.selectedSource === sourceId) as SelectorStateFilter | undefined;\n if (filtersStateWithTheSameSource && (filtersStateWithTheSameSource.selectedFilterValues?.length ?? 0) > 0) {\n const selectedValues = filtersStateWithTheSameSource.selectedFilterValues ?? [];\n const results = await Promise.all(selectedValues.map((selectedValue) => searchSelectedFilterValueOptions(sourceId, selectedValue)));\n return searchStr ? results.filter((v) => v.label.toLowerCase().includes(searchStr.toLowerCase())) : results;\n }\n const searchLabelStr = type === 'label' ? searchStr : undefined;\n const searchValueStr = type === 'value' ? searchStr : undefined;\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchLabelStr, searchValueStr)).values;\n}\n\n// search by value, not by label;\nasync function searchSelectedFilterValueOptions(sourceId: string, selectedValue: string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({ value: selectedValue, label: ' ' }); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then((v) => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some((v) => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\nconst errorMessage = computed(() => {\n if (props.errorInfo?.type === 'tooManyFacets') {\n return `Too many facets (${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyPrimaryGroups') {\n return `Too many primary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManySecondaryGroups') {\n return `Too many secondary groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyScatterplotGroupsX') {\n return `Too many categories on X axis\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyScatterplotGroupsY') {\n return `Too many categories on Y axis\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n if (props.errorInfo?.type === 'tooManyHistogramGroups') {\n return `Too many groups\\u00A0(${props.errorInfo.info.count}).\\nMaximum count is\\u00A0${props.errorInfo.info.maxCount}.\\nTry to\\u00A0filter the\\u00A0data.`;\n }\n return '';\n});\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input\n class=\"chart_title\" :value=\"title\" @change=\"onTitleChange\"\n @keyup.enter=\"(e) => { (e.target as HTMLInputElement)?.blur() }\"\n />\n <component :is=\"EditIcon\" class=\"chart_titleEdit\" />\n <div class=\"chart_titleLineSlot\">\n <slot />\n </div>\n </div>\n <PlNotificationAlert\n v-model=\"store.reactive.showTooltipHint\" type=\"success\" class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div v-if=\"tabBySource\" class=\"chart_tabBy\">\n <PlDropdown\n v-if=\"preloadedOptions || (preloadedOptions === undefined && store.loading.inputGuide)\"\n v-model=\"tabByLocalValue\" label=\"Show for\" :options=\"preloadedOptions\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n <PlAutocomplete\n v-else v-model=\"tabByLocalValue\" label=\"Show for\"\n :options-search=\"(str, type) => searchFilterOptions(tabBySource as string, str, type)\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n />\n </div>\n <div\n ref=\"chartContainerRef\" class=\"chart_main-content\"\n :class=\"[{ 'chart_main-content__dendro': store.reactive.chartType === 'dendro' }, 'pl-scrollable']\"\n >\n <div\n id=\"chartSvgContainer\" :class=\"{\n 'chart_loading': graphStatus === 'loading',\n 'chart_noDataMapping': graphStatus === 'notReady',\n 'chart_emptyData': graphStatus === 'empty',\n 'chart_inconsistent': graphStatus === 'inconsistent',\n 'chart_knownError': graphStatus === 'knownError',\n 'chart_unknownError': graphStatus === 'unknownError',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <Loading v-if=\"graphStatus === 'loading'\" :top=\"10\" />\n <div v-if=\"graphStatus === 'knownError'\" class=\"chart_errorMessage\">\n {{ errorMessage }}\n </div>\n </div>\n <DendroTable\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\" @row-select=\"onTableRowSelect\"\n />\n <DendroTooltip\n v-if=\"store.reactive.dendroInfoByClick\" :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\" :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id: string) => $emit('dendro-tooltip-btn-click', id)\" @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div v-if=\"graphStatus !== 'empty'\" class=\"chart_controls\">\n <Zoom />\n <LassoControls v-if=\"store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\" />\n <PlBtnGhost v-if=\"hasPrimaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsPrimary()\">\n Hidden (primary)\n </PlBtnGhost>\n <PlBtnGhost v-if=\"hasSecondaryHidden\" icon=\"view-hide\" @click.stop=\"() => openAxesSettingsSecondary()\">\n Hidden (secondary)\n </PlBtnGhost>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","filtersStates","tabByLocalValue","value","prevValue","loadOptions","sourceId","filtersStateWithTheSameSource","state","selectedValues","selectedValue","searchSelectedFilterValueOptions","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","type","results","searchLabelStr","searchValueStr","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","errorMessage","_c","_d","_e","_f","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_createVNode","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","Loading","_hoisted_6","_toDisplayString","DendroTable","DendroTooltip","$emit","_hoisted_7","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
@@ -7,6 +7,7 @@ type __VLS_Props = {
7
7
  defaultState?: 'open' | 'close';
8
8
  height?: number;
9
9
  horizontalPadding?: number;
10
+ contentPadding?: string;
10
11
  };
11
12
  };
12
13
  declare function __VLS_template(): {
@@ -1,5 +1,5 @@
1
- import { defineComponent as u, ref as v, createElementBlock as f, openBlock as d, normalizeClass as k, createElementVNode as n, createBlock as h, createCommentVNode as b, resolveDynamicComponent as y, toDisplayString as z, renderSlot as C } from "vue";
2
- const S = { class: "collapsable-block-content" }, B = /* @__PURE__ */ u({
1
+ import { defineComponent as f, ref as k, createElementBlock as y, openBlock as g, normalizeClass as b, createElementVNode as n, createBlock as h, createCommentVNode as z, resolveDynamicComponent as C, toDisplayString as S, normalizeStyle as x, renderSlot as B } from "vue";
2
+ const O = /* @__PURE__ */ f({
3
3
  __name: "CollapsableBlock",
4
4
  props: {
5
5
  iconOpen: {},
@@ -7,28 +7,34 @@ const S = { class: "collapsable-block-content" }, B = /* @__PURE__ */ u({
7
7
  title: {},
8
8
  settings: {}
9
9
  },
10
- setup(m) {
11
- var i, s, a, c, r;
12
- const e = m, t = v(((i = e.settings) == null ? void 0 : i.defaultState) !== "open"), l = {}, o = {};
13
- return (s = e.settings) != null && s.height && (o["--title-height"] = `${(a = e.settings) == null ? void 0 : a.height}px`), (c = e.settings) != null && c.horizontalPadding && (l.padding = `0 ${(r = e.settings) == null ? void 0 : r.horizontalPadding}px`), (g, p) => (d(), f("div", {
14
- class: k(["collapsable-block-container", { minimized: t.value, maximized: !t.value }]),
15
- style: o
16
- }, [
17
- n("div", {
18
- class: "collapsable-block-title",
19
- style: l,
20
- onClick: p[0] || (p[0] = (_) => t.value = !t.value)
10
+ setup(u) {
11
+ var o, s, a, c, d;
12
+ const e = u, t = k(((o = e.settings) == null ? void 0 : o.defaultState) !== "open"), i = {}, l = {};
13
+ return (s = e.settings) != null && s.height && (l["--title-height"] = `${(a = e.settings) == null ? void 0 : a.height}px`), (c = e.settings) != null && c.horizontalPadding && (i.padding = `0 ${(d = e.settings) == null ? void 0 : d.horizontalPadding}px`), (v, r) => {
14
+ var p, m;
15
+ return g(), y("div", {
16
+ class: b(["collapsable-block-container", { minimized: t.value, maximized: !t.value }]),
17
+ style: l
21
18
  }, [
22
- e.icon ? (d(), h(y(!t.value && e.iconOpen ? e.iconOpen : e.icon), { key: 0 })) : b("", !0),
23
- n("span", null, z(e.title), 1)
24
- ]),
25
- n("div", S, [
26
- C(g.$slots, "default")
27
- ])
28
- ], 2));
19
+ n("div", {
20
+ class: "collapsable-block-title",
21
+ style: i,
22
+ onClick: r[0] || (r[0] = (P) => t.value = !t.value)
23
+ }, [
24
+ e.icon ? (g(), h(C(!t.value && e.iconOpen ? e.iconOpen : e.icon), { key: 0 })) : z("", !0),
25
+ n("span", null, S(e.title), 1)
26
+ ]),
27
+ n("div", {
28
+ class: "collapsable-block-content",
29
+ style: x(((p = e.settings) == null ? void 0 : p.contentPadding) !== void 0 ? { padding: (m = e.settings) == null ? void 0 : m.contentPadding } : {})
30
+ }, [
31
+ B(v.$slots, "default")
32
+ ], 4)
33
+ ], 2);
34
+ };
29
35
  }
30
36
  });
31
37
  export {
32
- B as default
38
+ O as default
33
39
  };
34
40
  //# sourceMappingURL=CollapsableBlock.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CollapsableBlock.vue.js","sources":["../../src/components/CollapsableBlock.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Component } from 'vue';\nimport { ref } from 'vue';\n\nconst props = defineProps<{\n iconOpen?: Component;\n icon?: Component;\n title: string;\n settings?: {\n defaultState?: 'open' | 'close';\n height?: number;\n horizontalPadding?: number;\n };\n}>();\n\nconst minimized = ref(props.settings?.defaultState !== 'open');\nconst titleStyle: Record<string, string> = {};\nconst containerStyle: Record<string, string> = {};\nif (props.settings?.height) {\n containerStyle['--title-height'] = `${props.settings?.height}px`;\n}\nif (props.settings?.horizontalPadding) {\n titleStyle['padding'] = `0 ${props.settings?.horizontalPadding}px`;\n}\n\n</script>\n\n<template>\n <div class=\"collapsable-block-container\" :class=\"{minimized: minimized, maximized: !minimized}\" :style=\"containerStyle\">\n <div class=\"collapsable-block-title\" :style=\"titleStyle\" @click=\"minimized = !minimized\">\n <component :is=\"!minimized && props.iconOpen ? props.iconOpen : props.icon\" v-if=\"props.icon\"/>\n <span>{{ props.title }}</span>\n </div>\n <div class=\"collapsable-block-content\">\n <slot/>\n </div>\n </div>\n</template>\n"],"names":["props","__props","minimized","ref","_a","titleStyle","containerStyle","_b","_c","_d","_e","_createElementBlock","_normalizeClass","_createElementVNode","_cache","$event","_openBlock","_createBlock","_resolveDynamicComponent","_toDisplayString","_hoisted_1","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;AAIA,UAAMA,IAAQC,GAWRC,IAAYC,IAAIC,IAAAJ,EAAM,aAAN,gBAAAI,EAAgB,kBAAiB,MAAM,GACvDC,IAAqC,CAAA,GACrCC,IAAyC,CAAA;AAC/C,YAAIC,IAAAP,EAAM,aAAN,QAAAO,EAAgB,WAClBD,EAAe,gBAAgB,IAAI,IAAGE,IAAAR,EAAM,aAAN,gBAAAQ,EAAgB,MAAM,QAE1DC,IAAAT,EAAM,aAAN,QAAAS,EAAgB,sBAClBJ,EAAW,UAAa,MAAKK,IAAAV,EAAM,aAAN,gBAAAU,EAAgB,iBAAiB,uBAM9DC,EAQM,OAAA;AAAA,MARD,OAAKC,EAAA,CAAC,+BAA6B,EAAA,WAAqBV,EAAA,mBAAuBA,EAAA,MAAA,CAAS,CAAA;AAAA,MAAI,OAAOI;AAAA,IAAA;MACtGO,EAGM,OAAA;AAAA,QAHD,OAAM;AAAA,QAA2B,OAAOR;AAAA,QAAa,SAAKS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEb,EAAA,QAAS,CAAIA,EAAA;AAAA,MAAA;QACMF,EAAM,QAAxFgB,EAAA,GAAAC,EAA+FC,EAAA,CAA9EhB,EAAA,SAAaF,EAAM,WAAWA,EAAM,WAAWA,EAAM,IAAI,GAAA,EAAA,KAAA,GAAA;QAC1Ea,EAA8B,QAAA,MAAAM,EAArBnB,EAAM,KAAK,GAAA,CAAA;AAAA,MAAA;MAEtBa,EAEM,OAFNO,GAEM;AAAA,QADJC,EAAOC,EAAA,QAAA,SAAA;AAAA,MAAA;;;;"}
1
+ {"version":3,"file":"CollapsableBlock.vue.js","sources":["../../src/components/CollapsableBlock.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { Component } from 'vue';\nimport { ref } from 'vue';\n\nconst props = defineProps<{\n iconOpen?: Component;\n icon?: Component;\n title: string;\n settings?: {\n defaultState?: 'open' | 'close';\n height?: number;\n horizontalPadding?: number;\n contentPadding?: string;\n };\n}>();\n\nconst minimized = ref(props.settings?.defaultState !== 'open');\nconst titleStyle: Record<string, string> = {};\nconst containerStyle: Record<string, string> = {};\nif (props.settings?.height) {\n containerStyle['--title-height'] = `${props.settings?.height}px`;\n}\nif (props.settings?.horizontalPadding) {\n titleStyle['padding'] = `0 ${props.settings?.horizontalPadding}px`;\n}\n\n</script>\n\n<template>\n <div class=\"collapsable-block-container\" :class=\"{minimized: minimized, maximized: !minimized}\" :style=\"containerStyle\">\n <div class=\"collapsable-block-title\" :style=\"titleStyle\" @click=\"minimized = !minimized\">\n <component :is=\"!minimized && props.iconOpen ? props.iconOpen : props.icon\" v-if=\"props.icon\"/>\n <span>{{ props.title }}</span>\n </div>\n <div class=\"collapsable-block-content\" :style=\"props.settings?.contentPadding !== undefined ? {padding: props.settings?.contentPadding} : {}\">\n <slot/>\n </div>\n </div>\n</template>\n"],"names":["props","__props","minimized","ref","_a","titleStyle","containerStyle","_b","_c","_d","_e","_createElementBlock","_normalizeClass","_createElementVNode","_cache","$event","_openBlock","_createBlock","_resolveDynamicComponent","_toDisplayString","_normalizeStyle","_renderSlot","_ctx"],"mappings":";;;;;;;;;;;AAIA,UAAMA,IAAQC,GAYRC,IAAYC,IAAIC,IAAAJ,EAAM,aAAN,gBAAAI,EAAgB,kBAAiB,MAAM,GACvDC,IAAqC,CAAA,GACrCC,IAAyC,CAAA;AAC/C,YAAIC,IAAAP,EAAM,aAAN,QAAAO,EAAgB,WAClBD,EAAe,gBAAgB,IAAI,IAAGE,IAAAR,EAAM,aAAN,gBAAAQ,EAAgB,MAAM,QAE1DC,IAAAT,EAAM,aAAN,QAAAS,EAAgB,sBAClBJ,EAAW,UAAa,MAAKK,IAAAV,EAAM,aAAN,gBAAAU,EAAgB,iBAAiB;;kBAM9DC,EAQM,OAAA;AAAA,QARD,OAAKC,EAAA,CAAC,+BAA6B,EAAA,WAAqBV,EAAA,mBAAuBA,EAAA,MAAA,CAAS,CAAA;AAAA,QAAI,OAAOI;AAAA,MAAA;QACtGO,EAGM,OAAA;AAAA,UAHD,OAAM;AAAA,UAA2B,OAAOR;AAAA,UAAa,SAAKS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEb,EAAA,QAAS,CAAIA,EAAA;AAAA,QAAA;UACMF,EAAM,QAAxFgB,EAAA,GAAAC,EAA+FC,EAAA,CAA9EhB,EAAA,SAAaF,EAAM,WAAWA,EAAM,WAAWA,EAAM,IAAI,GAAA,EAAA,KAAA,GAAA;UAC1Ea,EAA8B,QAAA,MAAAM,EAArBnB,EAAM,KAAK,GAAA,CAAA;AAAA,QAAA;QAEtBa,EAEM,OAAA;AAAA,UAFD,OAAM;AAAA,UAA6B,OAAKO,IAAEhB,IAAAJ,EAAM,aAAN,gBAAAI,EAAgB,oBAAmB,SAAS,EAAA,UAAaG,IAAAP,EAAM,aAAN,gBAAAO,EAAgB,eAAA,IAAc,CAAA,CAAA;AAAA,QAAA;UACpIc,EAAOC,EAAA,QAAA,SAAA;AAAA,QAAA;;;;;"}
@@ -301,6 +301,7 @@ export type AxesState = {
301
301
  groupingDirection: 'straight' | 'reverse';
302
302
  groupingStack: 'vertical' | 'horizontal';
303
303
  canvasRenderMode: boolean;
304
+ showLegend: boolean;
304
305
  };
305
306
  };
306
307
  export declare function getInitialAxesSettings(chartType: ChartType, initialAxesSettings?: DeepPartial<AxesState>): AxesState;
@@ -318,4 +319,5 @@ export declare const DEFAULT_HEIGHT = 350;
318
319
  export declare const DEFAULT_WIDTH_SMALL = 400;
319
320
  export declare const DEFAULT_HEIGHT_SMALL = 250;
320
321
  export declare const MAX_SEARCH_OPTIONS_LIST_LENGTH = 100;
322
+ export declare const AGGREGATION_METHOD_OPTIONS: Option[];
321
323
  export {};