@milaboratories/graph-maker 1.1.200 → 1.1.201

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 (33) hide show
  1. package/dist/components/Chart.vue.d.ts +3 -1
  2. package/dist/components/Chart.vue.d.ts.map +1 -1
  3. package/dist/components/Chart.vue.js +137 -120
  4. package/dist/components/Chart.vue.js.map +1 -1
  5. package/dist/components/DragAndDrop/DndBasket.vue.d.ts.map +1 -1
  6. package/dist/components/DragAndDrop/DndBasket.vue.js +39 -39
  7. package/dist/components/DragAndDrop/DndBasket.vue.js.map +1 -1
  8. package/dist/components/Loading.vue.d.ts +3 -0
  9. package/dist/components/Loading.vue.d.ts.map +1 -1
  10. package/dist/components/Loading.vue.js +19 -27
  11. package/dist/components/Loading.vue.js.map +1 -1
  12. package/dist/components/SettingsTabs/index.vue.d.ts.map +1 -1
  13. package/dist/components/SettingsTabs/index.vue.js +13 -13
  14. package/dist/components/SettingsTabs/index.vue.js.map +1 -1
  15. package/dist/constantsCommon.d.ts +2 -1
  16. package/dist/constantsCommon.d.ts.map +1 -1
  17. package/dist/constantsCommon.js +138 -126
  18. package/dist/constantsCommon.js.map +1 -1
  19. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +3 -2
  20. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  21. package/dist/forms/DataMappingForm/DiscreteForm.vue.js +9 -8
  22. package/dist/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
  23. package/dist/index.js +1 -1
  24. package/dist/index.vue.d.ts.map +1 -1
  25. package/dist/index.vue.js +114 -106
  26. package/dist/index.vue.js.map +1 -1
  27. package/dist/types.d.ts +33 -1
  28. package/dist/types.d.ts.map +1 -1
  29. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +6 -5
  30. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  31. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +25 -24
  32. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  33. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { ChartInterface, ErrorInfo } from '@milaboratories/miplots4';
2
- import { GraphStatus } from '../types.ts';
2
+ import { GraphStatus, StatusTextData } from '../types.ts';
3
3
  type __VLS_Props = {
4
4
  graphStatus: GraphStatus;
5
5
  graphTitle: string;
@@ -7,6 +7,8 @@ type __VLS_Props = {
7
7
  chartData: Record<string, unknown> | null;
8
8
  chartRef: ChartInterface | null;
9
9
  errorInfo: ErrorInfo | null;
10
+ customStatusText?: Partial<StatusTextData>;
11
+ allowTitleEditing?: boolean;
10
12
  };
11
13
  declare function __VLS_template(): {
12
14
  attrs: Partial<{}>;
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.vue.d.ts","sourceRoot":"","sources":["../../src/components/Chart.vue"],"names":[],"mappings":"AA6RA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAa1E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAM/C,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;CAC7B,CAAC;AAuLF,iBAAS,cAAc;WA0QT,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAkCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;kBASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
1
+ {"version":3,"file":"Chart.vue.d.ts","sourceRoot":"","sources":["../../src/components/Chart.vue"],"names":[],"mappings":"AA0SA,OAAO,KAAK,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAa1E,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAM/D,KAAK,WAAW,GAAG;IACjB,WAAW,EAAE,WAAW,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;IACnB,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;IAC1C,QAAQ,EAAE,cAAc,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,SAAS,GAAG,IAAI,CAAC;IAC5B,gBAAgB,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC3C,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAiMF,iBAAS,cAAc;WAkST,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AAsCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;;;kBASnB,CAAC;wBACkB,uBAAuB,CAAC,OAAO,eAAe,EAAE,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAAnG,wBAAoG;AAQpG,KAAK,uBAAuB,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG;IACxC,QAAO;QACN,MAAM,EAAE,CAAC,CAAC;KAEV,CAAA;CACD,CAAC"}
@@ -1,23 +1,28 @@
1
- import { defineComponent as z, ref as S, watch as g, computed as v, 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
- import { PlNotificationAlert as te, PlDropdown as oe, PlAutocomplete as ae, PlBtnGhost as N } from "@platforma-sdk/ui-vue";
3
- import re from "./DendroTable.vue.js";
4
- import ne from "./DendroTooltip.vue.js";
5
- import le from "./LassoControls/index.vue.js";
6
- import ie from "./Loading.vue.js";
7
- import ue from "./Zoom/index.vue.js";
8
- import { MAX_SEARCH_OPTIONS_LIST_LENGTH as O } from "../constantsCommon.js";
9
- import se from "../icons/EditIcon.vue.js";
10
- import { useStore as ce } from "../store.js";
11
- const de = { class: "chart_container" }, fe = { class: "chart_header" }, me = ["value"], ve = { class: "chart_titleLineSlot" }, pe = {
1
+ import { defineComponent as Z, ref as g, watch as T, computed as d, createElementBlock as S, openBlock as s, createElementVNode as h, createVNode as x, createCommentVNode as m, createBlock as v, withKeys as ee, resolveDynamicComponent as te, renderSlot as oe, unref as l, withCtx as C, createTextVNode as B, normalizeClass as H, withModifiers as N } from "vue";
2
+ import { PlNotificationAlert as ae, PlDropdown as re, PlAutocomplete as ne, PlAgOverlayLoading as le, PlAgOverlayNoRows as ie, PlBtnGhost as O } from "@platforma-sdk/ui-vue";
3
+ import se from "./DendroTable.vue.js";
4
+ import ue from "./DendroTooltip.vue.js";
5
+ import ce from "./LassoControls/index.vue.js";
6
+ import de from "./Loading.vue.js";
7
+ import me from "./Zoom/index.vue.js";
8
+ import { MAX_SEARCH_OPTIONS_LIST_LENGTH as _, DEFAULT_STATUS_TEXT as ve } from "../constantsCommon.js";
9
+ import fe from "../icons/EditIcon.vue.js";
10
+ import { useStore as pe } from "../store.js";
11
+ const ye = { class: "chart_container" }, Se = { class: "chart_header" }, he = ["value", "disabled"], ge = { class: "chart_titleLineSlot" }, Te = {
12
12
  key: 0,
13
13
  class: "chart_tabBy"
14
- }, ye = {
14
+ }, xe = {
15
15
  key: 1,
16
- class: "chart_errorMessage"
17
- }, he = {
16
+ class: "graph-maker__loading",
17
+ style: { top: "23px", bottom: "32px", border: "1px solid #E1E3EB", "border-radius": "8px", overflow: "hidden" }
18
+ }, be = {
19
+ key: 2,
20
+ class: "graph-maker__loading",
21
+ style: { top: "23px", bottom: "32px", border: "1px solid #E1E3EB", "border-radius": "8px", overflow: "hidden" }
22
+ }, we = {
18
23
  key: 1,
19
24
  class: "chart_controls"
20
- }, $e = /* @__PURE__ */ z({
25
+ }, Me = /* @__PURE__ */ Z({
21
26
  __name: "Chart",
22
27
  props: {
23
28
  graphStatus: {},
@@ -25,60 +30,62 @@ const de = { class: "chart_container" }, fe = { class: "chart_header" }, me = ["
25
30
  dendroTooltipButton: {},
26
31
  chartData: {},
27
32
  chartRef: {},
28
- errorInfo: {}
33
+ errorInfo: {},
34
+ customStatusText: {},
35
+ allowTitleEditing: { type: Boolean }
29
36
  },
30
37
  emits: ["graph-title-update", "dendro-node-select", "dendro-tooltip-btn-click"],
31
- setup(u, { emit: U }) {
32
- const I = U, a = ce(), r = u, b = S(r.graphTitle);
33
- g(() => r.graphTitle, (t) => {
38
+ setup(c, { emit: A }) {
39
+ const I = A, a = pe(), r = c, b = g(r.graphTitle);
40
+ T(() => r.graphTitle, (t) => {
34
41
  b.value = t;
35
42
  });
36
- const $ = v(() => {
43
+ const $ = d(() => {
37
44
  var t;
38
45
  return (t = a.value.reactive.optionsState.components.tabBy) == null ? void 0 : t.selectorStates[0];
39
- }), p = v(() => {
46
+ }), p = d(() => {
40
47
  var t;
41
48
  return (t = $.value) == null ? void 0 : t.selectedSource;
42
- }), B = v(() => {
49
+ }), E = d(() => {
43
50
  var t, e;
44
51
  return (e = (t = $.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
45
- }), D = v(() => {
52
+ }), D = d(() => {
46
53
  var t;
47
54
  return (t = a.value.reactive.optionsState.components.filters) == null ? void 0 : t.selectorStates;
48
- }), m = S(B.value);
49
- g(() => p.value, (t, e) => {
50
- t !== e && (m.value = B.value);
55
+ }), f = g(E.value);
56
+ T(() => p.value, (t, e) => {
57
+ t !== e && (f.value = E.value);
51
58
  }, { immediate: !0 });
52
- async function A(t) {
59
+ async function U(t) {
53
60
  var o;
54
61
  if (!a.value.columnsDataStore)
55
62
  return Promise.resolve([]);
56
- const e = D.value.find((l) => l.selectedSource === t);
63
+ const e = D.value.find((i) => i.selectedSource === t);
57
64
  if (e && (((o = e.selectedFilterValues) == null ? void 0 : o.length) ?? 0) > 0) {
58
- const l = e.selectedFilterValues ?? [];
59
- return Promise.all(l.map((c) => G(t, c)));
65
+ const i = e.selectedFilterValues ?? [];
66
+ return Promise.all(i.map((u) => G(t, u)));
60
67
  }
61
68
  const n = await a.value.controller.getUniqueSourceValuesWithLabels(
62
69
  a.value.columnsDataStore,
63
70
  a.value.inputGuide.value,
64
71
  t,
65
- O
72
+ _
66
73
  );
67
74
  return n.overflow ? null : n.values;
68
75
  }
69
- const y = S();
70
- g([
76
+ const y = g();
77
+ T([
71
78
  () => p.value,
72
79
  () => a.value.loading.inputGuide
73
80
  ], async ([t, e]) => {
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 || m.value !== void 0 || t === void 0)
81
+ t === void 0 || e || !a.value.columnsDataStore || (y.value = await U(t));
82
+ }, { immediate: !0 }), T(() => y.value, async (t) => {
83
+ if (p.value === void 0 || f.value !== void 0 || t === void 0)
77
84
  return;
78
85
  let e = t;
79
- if (t === null && (e = await M(p.value, "")), e != null && e.length) {
86
+ if (t === null && (e = await P(p.value, "")), e != null && e.length) {
80
87
  const n = e[0].value;
81
- m.value = n, w(n);
88
+ f.value = n, w(n);
82
89
  }
83
90
  }, { immediate: !0 });
84
91
  function w(t) {
@@ -96,17 +103,17 @@ const de = { class: "chart_container" }, fe = { class: "chart_header" }, me = ["
96
103
  function q(t) {
97
104
  I("dendro-node-select", t);
98
105
  }
99
- async function M(t, e, n = "label") {
100
- var F;
106
+ async function P(t, e, n = "label") {
107
+ var L;
101
108
  if (!a.value.columnsDataStore)
102
109
  return Promise.resolve([]);
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;
110
+ const o = D.value.find((k) => k.selectedSource === t);
111
+ if (o && (((L = o.selectedFilterValues) == null ? void 0 : L.length) ?? 0) > 0) {
112
+ const k = o.selectedFilterValues ?? [], R = await Promise.all(k.map((V) => G(t, V)));
113
+ return e ? R.filter((V) => V.label.toLowerCase().includes(e.toLowerCase())) : R;
107
114
  }
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;
115
+ const i = n === "label" ? e : void 0, u = n === "value" ? e : void 0;
116
+ return (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, _, i, u)).values;
110
117
  }
111
118
  async function G(t, e) {
112
119
  return a.value.columnsDataStore ? await a.value.controller.getUniqueSourceValuesWithLabels(
@@ -118,7 +125,7 @@ const de = { class: "chart_container" }, fe = { class: "chart_header" }, me = ["
118
125
  e
119
126
  ).then((o) => o.values[0]) : Promise.resolve({ value: e, label: " " });
120
127
  }
121
- const P = S(), X = v(() => {
128
+ const M = g(), X = d(() => {
122
129
  var e;
123
130
  if (a.value.reactive.chartType !== "discrete")
124
131
  return !1;
@@ -126,13 +133,13 @@ const de = { class: "chart_container" }, fe = { class: "chart_header" }, me = ["
126
133
  if ((e = t.primaryGrouping) != null && e.selectorStates.length) {
127
134
  const n = t.primaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[n];
128
135
  if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
129
- return Object.values(o.hidden).length > 0 && o.order.some((l) => {
130
- var c;
131
- return (c = o.hidden) == null ? void 0 : c[l];
136
+ return Object.values(o.hidden).length > 0 && o.order.some((i) => {
137
+ var u;
138
+ return (u = o.hidden) == null ? void 0 : u[i];
132
139
  });
133
140
  }
134
141
  return !1;
135
- }), _ = v(() => {
142
+ }), j = d(() => {
136
143
  var e;
137
144
  if (a.value.reactive.chartType !== "discrete")
138
145
  return !1;
@@ -140,21 +147,21 @@ const de = { class: "chart_container" }, fe = { class: "chart_header" }, me = ["
140
147
  if ((e = t.secondaryGrouping) != null && e.selectorStates.length) {
141
148
  const n = t.secondaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[n];
142
149
  if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
143
- return Object.values(o.hidden).length > 0 && o.order.some((l) => {
144
- var c;
145
- return (c = o.hidden) == null ? void 0 : c[l];
150
+ return Object.values(o.hidden).length > 0 && o.order.some((i) => {
151
+ var u;
152
+ return (u = o.hidden) == null ? void 0 : u[i];
146
153
  });
147
154
  }
148
155
  return !1;
149
156
  });
150
- function j() {
157
+ function K() {
151
158
  a.value.reactive.tabDefaultState.axes.reorderPrimaryOpen = !0, a.value.reactive.currentTab = "axes";
152
159
  }
153
- function K() {
160
+ function Y() {
154
161
  a.value.reactive.tabDefaultState.axes.reorderSecondaryOpen = !0, a.value.reactive.currentTab = "axes";
155
162
  }
156
- const Y = v(() => {
157
- var t, e, n, o, l, c;
163
+ const z = d(() => {
164
+ var t, e, n, o, i, u;
158
165
  return ((t = r.errorInfo) == null ? void 0 : t.type) === "tooManyFacets" ? `Too many facets (${r.errorInfo.info.count}).
159
166
  Maximum count is ${r.errorInfo.info.maxCount}.
160
167
  Try to filter the data.` : ((e = r.errorInfo) == null ? void 0 : e.type) === "tooManyPrimaryGroups" ? `Too many primary groups (${r.errorInfo.info.count}).
@@ -163,135 +170,145 @@ Try to filter the data.` : ((n = r.errorInfo) == null ? void 0 : n.type) === "
163
170
  Maximum count is ${r.errorInfo.info.maxCount}.
164
171
  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
172
  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}).
173
+ Try to filter the data.` : ((i = r.errorInfo) == null ? void 0 : i.type) === "tooManyScatterplotGroupsY" ? `Too many categories on Y axis (${r.errorInfo.info.count}).
167
174
  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}).
175
+ Try to filter the data.` : ((u = r.errorInfo) == null ? void 0 : u.type) === "tooManyHistogramGroups" ? `Too many groups (${r.errorInfo.info.count}).
169
176
  Maximum count is ${r.errorInfo.info.maxCount}.
170
177
  Try to filter the data.` : "";
178
+ }), J = d(() => r.graphStatus === "noPframe" || r.graphStatus === "empty"), Q = d(() => r.graphStatus === "notReady" || r.graphStatus === "inconsistent" || r.graphStatus === "knownError" || r.graphStatus === "unknownError"), F = d(() => {
179
+ var t, e;
180
+ return r.graphStatus === "knownError" ? z.value : ((e = (t = r.customStatusText) == null ? void 0 : t[r.graphStatus]) == null ? void 0 : e.title) ?? ve[r.graphStatus].title;
171
181
  });
172
182
  return (t, e) => {
173
183
  var n;
174
- return s(), T("div", de, [
175
- h("div", fe, [
184
+ return s(), S("div", ye, [
185
+ h("div", Se, [
176
186
  h("input", {
177
187
  class: "chart_title",
178
188
  value: b.value,
189
+ disabled: !c.allowTitleEditing,
179
190
  onChange: W,
180
- onKeyup: e[0] || (e[0] = J((o) => {
181
- var l;
182
- (l = o.target) == null || l.blur();
191
+ onKeyup: e[0] || (e[0] = ee((o) => {
192
+ var i;
193
+ (i = o.target) == null || i.blur();
183
194
  }, ["enter"]))
184
- }, null, 40, me),
185
- (s(), f(Q(se), { class: "chart_titleEdit" })),
186
- h("div", ve, [
187
- Z(t.$slots, "default")
195
+ }, null, 40, he),
196
+ c.allowTitleEditing ? (s(), v(te(fe), {
197
+ key: 0,
198
+ class: "chart_titleEdit"
199
+ })) : m("", !0),
200
+ h("div", ge, [
201
+ oe(t.$slots, "default")
188
202
  ])
189
203
  ]),
190
- H(i(te), {
191
- modelValue: i(a).reactive.showTooltipHint,
192
- "onUpdate:modelValue": e[1] || (e[1] = (o) => i(a).reactive.showTooltipHint = o),
204
+ x(l(ae), {
205
+ modelValue: l(a).reactive.showTooltipHint,
206
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => l(a).reactive.showTooltipHint = o),
193
207
  type: "success",
194
208
  class: "chart_tooltipHint",
195
209
  width: "170px"
196
210
  }, {
197
211
  default: C(() => [...e[10] || (e[10] = [
198
- x(" Hit enter to pin tooltip ", -1)
212
+ B(" Hit enter to pin tooltip ", -1)
199
213
  ])]),
200
214
  _: 1
201
215
  }, 8, ["modelValue"]),
202
- p.value ? (s(), T("div", pe, [
203
- y.value || y.value === void 0 && i(a).loading.inputGuide ? (s(), f(i(oe), {
216
+ p.value ? (s(), S("div", Te, [
217
+ y.value || y.value === void 0 && l(a).loading.inputGuide ? (s(), v(l(re), {
204
218
  key: 0,
205
- modelValue: m.value,
219
+ modelValue: f.value,
206
220
  "onUpdate:modelValue": [
207
- e[2] || (e[2] = (o) => m.value = o),
221
+ e[2] || (e[2] = (o) => f.value = o),
208
222
  e[3] || (e[3] = (o) => w(o))
209
223
  ],
210
224
  label: "Show for",
211
225
  options: y.value
212
- }, null, 8, ["modelValue", "options"])) : (s(), f(i(ae), {
226
+ }, null, 8, ["modelValue", "options"])) : (s(), v(l(ne), {
213
227
  key: 1,
214
- modelValue: m.value,
228
+ modelValue: f.value,
215
229
  "onUpdate:modelValue": [
216
- e[4] || (e[4] = (o) => m.value = o),
230
+ e[4] || (e[4] = (o) => f.value = o),
217
231
  e[5] || (e[5] = (o) => w(o))
218
232
  ],
219
233
  label: "Show for",
220
- "options-search": (o, l) => M(p.value, o, l)
234
+ "options-search": (o, i) => P(p.value, o, i)
221
235
  }, null, 8, ["modelValue", "options-search"]))
222
- ])) : d("", !0),
236
+ ])) : m("", !0),
223
237
  h("div", {
224
238
  ref_key: "chartContainerRef",
225
- ref: P,
226
- class: L(["chart_main-content", [{ "chart_main-content__dendro": i(a).reactive.chartType === "dendro" }, "pl-scrollable"]])
239
+ ref: M,
240
+ class: H(["chart_main-content", [{ "chart_main-content__dendro": l(a).reactive.chartType === "dendro" }, "pl-scrollable"]])
227
241
  }, [
228
242
  h("div", {
229
243
  id: "chartSvgContainer",
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"
244
+ class: H({
245
+ chart_ready: c.graphStatus === "ready",
246
+ chart_activeLassoSelection: ((n = l(a).reactive.lassoControlsState) == null ? void 0 : n.mode) === "selection"
238
247
  })
239
248
  }, [
240
- u.graphStatus === "loading" ? (s(), f(ie, {
249
+ c.graphStatus === "loading" ? (s(), v(de, {
241
250
  key: 0,
242
251
  top: 23,
243
- bottom: 32
244
- })) : d("", !0),
245
- u.graphStatus === "knownError" ? (s(), T("div", ye, ee(Y.value), 1)) : d("", !0)
252
+ bottom: 32,
253
+ "custom-status-text": c.customStatusText
254
+ }, null, 8, ["custom-status-text"])) : J.value ? (s(), S("div", xe, [
255
+ x(l(le), {
256
+ params: { variant: "not-ready", notReadyText: F.value }
257
+ }, null, 8, ["params"])
258
+ ])) : Q.value ? (s(), S("div", be, [
259
+ x(l(ie), {
260
+ params: { text: F.value }
261
+ }, null, 8, ["params"])
262
+ ])) : m("", !0)
246
263
  ], 2),
247
- i(a).reactive.chartType === "dendro" && u.chartData && i(a).reactive.layersSettings.dendro.showTable ? (s(), f(re, {
264
+ l(a).reactive.chartType === "dendro" && c.chartData && l(a).reactive.layersSettings.dendro.showTable ? (s(), v(se, {
248
265
  key: 0,
249
- chartData: u.chartData,
266
+ chartData: c.chartData,
250
267
  onRowSelect: q
251
- }, null, 8, ["chartData"])) : d("", !0),
252
- i(a).reactive.dendroInfoByClick ? (s(), f(ne, {
268
+ }, null, 8, ["chartData"])) : m("", !0),
269
+ l(a).reactive.dendroInfoByClick ? (s(), v(ue, {
253
270
  key: 1,
254
- info: i(a).reactive.dendroInfoByClick,
255
- containerRef: P.value,
256
- tooltipBtn: u.dendroTooltipButton,
271
+ info: l(a).reactive.dendroInfoByClick,
272
+ containerRef: M.value,
273
+ tooltipBtn: c.dendroTooltipButton,
257
274
  onTooltipBtnClick: e[6] || (e[6] = (o) => t.$emit("dendro-tooltip-btn-click", o)),
258
275
  onClose: e[7] || (e[7] = (o) => {
259
- i(a).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
276
+ l(a).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
260
277
  })
261
- }, null, 8, ["info", "containerRef", "tooltipBtn"])) : d("", !0)
278
+ }, null, 8, ["info", "containerRef", "tooltipBtn"])) : m("", !0)
262
279
  ], 2),
263
- u.graphStatus !== "empty" ? (s(), T("div", he, [
264
- H(ue),
265
- i(a).reactive.chartType === "scatterplot-umap" ? (s(), f(le, {
280
+ c.graphStatus === "ready" ? (s(), S("div", we, [
281
+ x(me),
282
+ l(a).reactive.chartType === "scatterplot-umap" ? (s(), v(ce, {
266
283
  key: 0,
267
- "chart-ref": u.chartRef
268
- }, null, 8, ["chart-ref"])) : d("", !0),
269
- X.value ? (s(), f(i(N), {
284
+ "chart-ref": c.chartRef
285
+ }, null, 8, ["chart-ref"])) : m("", !0),
286
+ X.value ? (s(), v(l(O), {
270
287
  key: 1,
271
288
  icon: "view-hide",
272
- onClick: e[8] || (e[8] = R(() => j(), ["stop"]))
289
+ onClick: e[8] || (e[8] = N(() => K(), ["stop"]))
273
290
  }, {
274
291
  default: C(() => [...e[11] || (e[11] = [
275
- x(" Hidden (primary) ", -1)
292
+ B(" Hidden (primary) ", -1)
276
293
  ])]),
277
294
  _: 1
278
- })) : d("", !0),
279
- _.value ? (s(), f(i(N), {
295
+ })) : m("", !0),
296
+ j.value ? (s(), v(l(O), {
280
297
  key: 2,
281
298
  icon: "view-hide",
282
- onClick: e[9] || (e[9] = R(() => K(), ["stop"]))
299
+ onClick: e[9] || (e[9] = N(() => Y(), ["stop"]))
283
300
  }, {
284
301
  default: C(() => [...e[12] || (e[12] = [
285
- x(" Hidden (secondary) ", -1)
302
+ B(" Hidden (secondary) ", -1)
286
303
  ])]),
287
304
  _: 1
288
- })) : d("", !0)
289
- ])) : d("", !0)
305
+ })) : m("", !0)
306
+ ])) : m("", !0)
290
307
  ]);
291
308
  };
292
309
  }
293
310
  });
294
311
  export {
295
- $e as default
312
+ Me as default
296
313
  };
297
314
  //# 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 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=\"23\" :bottom=\"32\" />\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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"}
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 { PlAgOverlayLoading, PlAgOverlayNoRows, 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 { DEFAULT_STATUS_TEXT, MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../constantsCommon.ts';\nimport EditIcon from '../icons/EditIcon.vue';\nimport { useStore } from '../store.ts';\nimport type { GraphStatus, StatusTextData } 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 customStatusText?: Partial<StatusTextData>;\n allowTitleEditing?: boolean;\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\nconst catInBagStatus = computed(() => props.graphStatus === 'noPframe' || props.graphStatus === 'empty');\nconst catNoDataStatus = computed(() => props.graphStatus === 'notReady' || props.graphStatus === 'inconsistent' || props.graphStatus === 'knownError' || props.graphStatus === 'unknownError');\n\nconst statusText = computed(() => {\n if (props.graphStatus === 'knownError') {\n return errorMessage.value;\n }\n return props.customStatusText?.[props.graphStatus]?.title ?? DEFAULT_STATUS_TEXT[props.graphStatus].title;\n});\n\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input\n class=\"chart_title\"\n :value=\"title\"\n :disabled=\"!allowTitleEditing\"\n @change=\"onTitleChange\"\n @keyup.enter=\"(e) => { (e.target as HTMLInputElement)?.blur() }\"\n />\n <component :is=\"EditIcon\" v-if=\"allowTitleEditing\" 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_ready': graphStatus === 'ready',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <Loading v-if=\"graphStatus === 'loading'\" :top=\"23\" :bottom=\"32\" :custom-status-text=\"customStatusText\"/>\n <div v-else-if=\"catInBagStatus\" class=\"graph-maker__loading\" :style=\"{top: '23px', bottom: '32px', border: '1px solid #E1E3EB', 'border-radius': '8px', overflow: 'hidden'}\">\n <PlAgOverlayLoading :params=\"{variant: 'not-ready', notReadyText: statusText}\"/>\n </div>\n <div v-else-if=\"catNoDataStatus\" class=\"graph-maker__loading\" :style=\"{top: '23px', bottom: '32px', border: '1px solid #E1E3EB', 'border-radius': '8px', overflow: 'hidden'}\">\n <PlAgOverlayNoRows :params=\"{text: statusText}\"/>\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 === 'ready'\" 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","catInBagStatus","catNoDataStatus","statusText","DEFAULT_STATUS_TEXT","_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","PlAgOverlayLoading","_hoisted_7","PlAgOverlayNoRows","DendroTable","DendroTooltip","$emit","_hoisted_8","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DndBasket.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DragAndDrop/DndBasket.vue"],"names":[],"mappings":"AA6LA,OAAO,KAAK,EAEV,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,CAAC;;;;;;;;;;;;;;;;;AAkTlC,wBASG"}
1
+ {"version":3,"file":"DndBasket.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DragAndDrop/DndBasket.vue"],"names":[],"mappings":"AAiMA,OAAO,KAAK,EAEV,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,CAAC;;;;;;;;;;;;;;;;;AAsTlC,wBASG"}