@milaboratories/graph-maker 1.2.0 → 1.2.2

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 (113) hide show
  1. package/dist/assets/ui.css +1 -1
  2. package/dist/components/AesSettings/AesDataMappingDiscrete.css +1 -1
  3. package/dist/components/AesSettings/AesDataMappingDiscrete.vue.d.ts.map +1 -1
  4. package/dist/components/AesSettings/AesDataMappingDiscrete.vue2.js.map +1 -1
  5. package/dist/components/AesSettings/AesDataMappingDiscrete.vue3.js +1 -1
  6. package/dist/components/Chart.vue.d.ts.map +1 -1
  7. package/dist/components/Chart.vue.js +67 -66
  8. package/dist/components/Chart.vue.js.map +1 -1
  9. package/dist/components/ChartTruncationWarningAlert.css +1 -0
  10. package/dist/components/ChartTruncationWarningAlert.vue.d.ts +7 -0
  11. package/dist/components/ChartTruncationWarningAlert.vue.d.ts.map +1 -0
  12. package/dist/components/ChartTruncationWarningAlert.vue.js +10 -0
  13. package/dist/components/ChartTruncationWarningAlert.vue.js.map +1 -0
  14. package/dist/components/ChartTruncationWarningAlert.vue2.js +54 -0
  15. package/dist/components/ChartTruncationWarningAlert.vue2.js.map +1 -0
  16. package/dist/components/ChartTruncationWarningAlert.vue3.js +8 -0
  17. package/dist/components/ChartTruncationWarningAlert.vue3.js.map +1 -0
  18. package/dist/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
  19. package/dist/components/DragAndDrop/DnDBasketChip.vue.js +34 -31
  20. package/dist/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
  21. package/dist/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
  22. package/dist/components/DragAndDrop/DnDRangeChip.vue.js +34 -31
  23. package/dist/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
  24. package/dist/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
  25. package/dist/components/DragAndDrop/DndDoubleChip.vue.js +40 -35
  26. package/dist/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
  27. package/dist/components/PanelModal.vue.d.ts.map +1 -1
  28. package/dist/components/PanelModal.vue.js +25 -11
  29. package/dist/components/PanelModal.vue.js.map +1 -1
  30. package/dist/components/ReorderForm.vue.d.ts.map +1 -1
  31. package/dist/components/ReorderForm.vue2.js +14 -13
  32. package/dist/components/ReorderForm.vue2.js.map +1 -1
  33. package/dist/constantsCommon.d.ts +7 -0
  34. package/dist/constantsCommon.d.ts.map +1 -1
  35. package/dist/constantsCommon.js +33 -28
  36. package/dist/constantsCommon.js.map +1 -1
  37. package/dist/dataBindAes.d.ts.map +1 -1
  38. package/dist/dataBindAes.js +88 -93
  39. package/dist/dataBindAes.js.map +1 -1
  40. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.d.ts.map +1 -1
  41. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js +96 -78
  42. package/dist/forms/AxesSettingsForm/BubbleAxesSettingsForm.vue.js.map +1 -1
  43. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.d.ts.map +1 -1
  44. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +189 -161
  45. package/dist/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  46. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.d.ts.map +1 -1
  47. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js +157 -139
  48. package/dist/forms/AxesSettingsForm/HeatmapAxesSettingsForm.vue.js.map +1 -1
  49. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.d.ts.map +1 -1
  50. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js +154 -136
  51. package/dist/forms/AxesSettingsForm/HistogramAxesSettingsForm.vue.js.map +1 -1
  52. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.d.ts.map +1 -1
  53. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js +232 -201
  54. package/dist/forms/AxesSettingsForm/ScatterplotAxesSettingsForm.vue.js.map +1 -1
  55. package/dist/forms/DataMappingForm/utils.js +58 -58
  56. package/dist/forms/DataMappingForm/utils.js.map +1 -1
  57. package/dist/forms/LayersForm/AesSelector.vue.d.ts.map +1 -1
  58. package/dist/forms/LayersForm/AesSelector.vue.js +86 -86
  59. package/dist/forms/LayersForm/AesSelector.vue.js.map +1 -1
  60. package/dist/index.vue.d.ts.map +1 -1
  61. package/dist/index.vue.js +183 -159
  62. package/dist/index.vue.js.map +1 -1
  63. package/dist/store.d.ts +2 -1
  64. package/dist/store.d.ts.map +1 -1
  65. package/dist/store.js +135 -128
  66. package/dist/store.js.map +1 -1
  67. package/dist/types.d.ts +5 -0
  68. package/dist/types.d.ts.map +1 -1
  69. package/dist/utils/calculateDiscreteGroups.d.ts.map +1 -1
  70. package/dist/utils/calculateDiscreteGroups.js +6 -6
  71. package/dist/utils/calculateDiscreteGroups.js.map +1 -1
  72. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts +9 -0
  73. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.d.ts.map +1 -1
  74. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js +24 -22
  75. package/dist/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  76. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts +19 -1
  77. package/dist/utils/createChartSettingsForRender/composeChartSettings.d.ts.map +1 -1
  78. package/dist/utils/createChartSettingsForRender/composeChartSettings.js +74 -40
  79. package/dist/utils/createChartSettingsForRender/composeChartSettings.js.map +1 -1
  80. package/dist/utils/createChartSettingsForRender/composeDendroSettings.d.ts +16 -0
  81. package/dist/utils/createChartSettingsForRender/composeDendroSettings.d.ts.map +1 -1
  82. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js +22 -22
  83. package/dist/utils/createChartSettingsForRender/composeDendroSettings.js.map +1 -1
  84. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts +4 -468
  85. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.d.ts.map +1 -1
  86. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js +48 -31
  87. package/dist/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  88. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts +22 -0
  89. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.d.ts.map +1 -1
  90. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js +24 -22
  91. package/dist/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  92. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts +5 -0
  93. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.d.ts.map +1 -1
  94. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js +24 -22
  95. package/dist/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  96. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts +19 -0
  97. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.d.ts.map +1 -1
  98. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js +89 -71
  99. package/dist/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  100. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts +12 -0
  101. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.d.ts.map +1 -1
  102. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +40 -35
  103. package/dist/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  104. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.d.ts.map +1 -1
  105. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js +28 -28
  106. package/dist/utils/createChartSettingsForRender/getAxesDataFromForms.js.map +1 -1
  107. package/dist/utils/loadUniqueValuesToSave.d.ts +3 -1
  108. package/dist/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  109. package/dist/utils/loadUniqueValuesToSave.js +81 -63
  110. package/dist/utils/loadUniqueValuesToSave.js.map +1 -1
  111. package/package.json +2 -2
  112. package/dist/assets/drag-and-drop/img/chip-close.svg.js +0 -7
  113. package/dist/assets/drag-and-drop/img/chip-close.svg.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { defineComponent as X, ref as h, watch as y, computed as p, createElementBlock as C, openBlock as s, createElementVNode as S, createVNode as k, createCommentVNode as c, createBlock as d, withKeys as J, resolveDynamicComponent as Q, renderSlot as Y, unref as r, withCtx as B, createTextVNode as D, normalizeClass as R, withModifiers as U } from "vue";
1
+ import { defineComponent as X, ref as h, watch as y, computed as p, createElementBlock as C, openBlock as s, createElementVNode as S, createBlock as c, createCommentVNode as d, withKeys as J, resolveDynamicComponent as Q, renderSlot as Y, unref as l, withCtx as k, createTextVNode as B, normalizeClass as O, createVNode as R, withModifiers as U } from "vue";
2
2
  import { PlNotificationAlert as _, PlDropdown as ee, PlAutocomplete as te, PlBtnGhost as $ } from "@platforma-sdk/ui-vue";
3
3
  import ae from "./DendroTable.vue.js";
4
4
  import oe from "./DendroTooltip.vue.js";
@@ -9,10 +9,10 @@ import ne from "../icons/EditIcon.vue.js";
9
9
  import { useStore as ie } from "../store.js";
10
10
  import se from "./GraphStatusScreen.vue.js";
11
11
  const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["value", "disabled"], ve = { class: "chart_titleLineSlot" }, me = {
12
- key: 0,
12
+ key: 1,
13
13
  class: "chart_tabBy"
14
14
  }, pe = {
15
- key: 1,
15
+ key: 2,
16
16
  class: "chart_controls"
17
17
  }, ke = /* @__PURE__ */ X({
18
18
  __name: "Chart",
@@ -29,20 +29,20 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
29
29
  },
30
30
  emits: ["graph-title-update", "dendro-node-select", "dendro-tooltip-btn-click"],
31
31
  setup(n, { emit: I }) {
32
- const x = I, o = ie(), P = n, g = h(P.graphTitle);
33
- y(() => P.graphTitle, (t) => {
32
+ const D = I, o = ie(), x = n, g = h(x.graphTitle);
33
+ y(() => x.graphTitle, (t) => {
34
34
  g.value = t;
35
35
  });
36
- const G = p(() => {
36
+ const P = p(() => {
37
37
  var t;
38
38
  return (t = o.value.reactive.optionsState.components.tabBy) == null ? void 0 : t.selectorStates[0];
39
39
  }), v = p(() => {
40
40
  var t;
41
- return (t = G.value) == null ? void 0 : t.selectedSource;
41
+ return (t = P.value) == null ? void 0 : t.selectedSource;
42
42
  }), b = p(() => {
43
43
  var t, e;
44
- return (e = (t = G.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
45
- }), L = p(() => {
44
+ return (e = (t = P.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
45
+ }), G = p(() => {
46
46
  var t;
47
47
  return (t = o.value.reactive.optionsState.components.filters) == null ? void 0 : t.selectorStates;
48
48
  }), m = h(b.value);
@@ -53,18 +53,18 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
53
53
  var a;
54
54
  if (!o.value.columnsDataStore.value)
55
55
  return Promise.resolve([]);
56
- const e = L.value.find((i) => i.selectedSource === t);
56
+ const e = G.value.find((i) => i.selectedSource === t);
57
57
  if (e && (((a = e.selectedFilterValues) == null ? void 0 : a.length) ?? 0) > 0) {
58
58
  const i = e.selectedFilterValues ?? [];
59
- return Promise.all(i.map((u) => H(t, u)));
59
+ return Promise.all(i.map((u) => F(t, u)));
60
60
  }
61
- const l = await o.value.controller.getUniqueSourceValuesWithLabels(
61
+ const r = await o.value.controller.getUniqueSourceValuesWithLabels(
62
62
  o.value.columnsDataStore.value,
63
63
  o.value.inputGuide.value,
64
64
  t,
65
65
  A
66
66
  );
67
- return l.overflow ? null : l.values;
67
+ return r.overflow ? null : r.values;
68
68
  }
69
69
  const f = h();
70
70
  y([
@@ -76,9 +76,9 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
76
76
  if (v.value === void 0 || m.value !== void 0 || t === void 0)
77
77
  return;
78
78
  let e = t;
79
- if (t === null && (e = await F(v.value, "")), e != null && e.length) {
80
- const l = e[0].value;
81
- m.value = l, T(l);
79
+ if (t === null && (e = await L(v.value, "")), e != null && e.length) {
80
+ const r = e[0].value;
81
+ m.value = r, T(r);
82
82
  }
83
83
  }, { immediate: !0 });
84
84
  function T(t) {
@@ -91,24 +91,24 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
91
91
  }
92
92
  function q(t) {
93
93
  const e = t.currentTarget;
94
- g.value = e.value, x("graph-title-update", e.value);
94
+ g.value = e.value, D("graph-title-update", e.value);
95
95
  }
96
96
  function Z(t) {
97
- x("dendro-node-select", t);
97
+ D("dendro-node-select", t);
98
98
  }
99
- async function F(t, e, l = "label") {
100
- var N;
99
+ async function L(t, e, r = "label") {
100
+ var E;
101
101
  if (!o.value.columnsDataStore.value)
102
102
  return Promise.resolve([]);
103
- const a = L.value.find((V) => V.selectedSource === t);
104
- if (a && (((N = a.selectedFilterValues) == null ? void 0 : N.length) ?? 0) > 0) {
105
- const V = a.selectedFilterValues ?? [], O = await Promise.all(V.map((w) => H(t, w)));
106
- return e ? O.filter((w) => w.label.toLowerCase().includes(e.toLowerCase())) : O;
103
+ const a = G.value.find((V) => V.selectedSource === t);
104
+ if (a && (((E = a.selectedFilterValues) == null ? void 0 : E.length) ?? 0) > 0) {
105
+ const V = a.selectedFilterValues ?? [], N = await Promise.all(V.map((w) => F(t, w)));
106
+ return e ? N.filter((w) => w.label.toLowerCase().includes(e.toLowerCase())) : N;
107
107
  }
108
- const i = l === "label" ? e : void 0, u = l === "value" ? e : void 0;
108
+ const i = r === "label" ? e : void 0, u = r === "value" ? e : void 0;
109
109
  return (await o.value.controller.getUniqueSourceValuesWithLabels(o.value.columnsDataStore.value, o.value.inputGuide.value, t, A, i, u)).values;
110
110
  }
111
- async function H(t, e) {
111
+ async function F(t, e) {
112
112
  return o.value.columnsDataStore.value ? await o.value.controller.getUniqueSourceValuesWithLabels(
113
113
  o.value.columnsDataStore.value,
114
114
  o.value.inputGuide.value,
@@ -118,13 +118,13 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
118
118
  e
119
119
  ).then((a) => a.values[0]) : Promise.resolve({ value: e, label: " " });
120
120
  }
121
- const E = h(), j = p(() => {
121
+ const H = h(), j = p(() => {
122
122
  var e;
123
123
  if (o.value.reactive.chartType !== "discrete")
124
124
  return !1;
125
125
  const t = o.value.reactive.optionsState.components;
126
126
  if ((e = t.primaryGrouping) != null && e.selectorStates.length) {
127
- const l = t.primaryGrouping.selectorStates[0].selectedSource, a = o.value.reactive.dataBindAes[l];
127
+ const r = t.primaryGrouping.selectorStates[0].selectedSource, a = o.value.reactive.dataBindAes[r];
128
128
  if ((a == null ? void 0 : a.type) === "categorical" && a.hidden)
129
129
  return Object.values(a.hidden).length > 0 && a.order.some((i) => {
130
130
  var u;
@@ -138,7 +138,7 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
138
138
  return !1;
139
139
  const t = o.value.reactive.optionsState.components;
140
140
  if ((e = t.secondaryGrouping) != null && e.selectorStates.length) {
141
- const l = t.secondaryGrouping.selectorStates[0].selectedSource, a = o.value.reactive.dataBindAes[l];
141
+ const r = t.secondaryGrouping.selectorStates[0].selectedSource, a = o.value.reactive.dataBindAes[r];
142
142
  if ((a == null ? void 0 : a.type) === "categorical" && a.hidden)
143
143
  return Object.values(a.hidden).length > 0 && a.order.some((i) => {
144
144
  var u;
@@ -154,7 +154,7 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
154
154
  o.value.reactive.tabDefaultState.axes.reorderSecondaryOpen = !0, o.value.reactive.currentTab = "axes";
155
155
  }
156
156
  return (t, e) => {
157
- var l;
157
+ var r;
158
158
  return s(), C("div", ue, [
159
159
  S("div", ce, [
160
160
  S("input", {
@@ -167,28 +167,29 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
167
167
  (i = a.target) == null || i.blur();
168
168
  }, ["enter"]))
169
169
  }, null, 40, de),
170
- n.allowTitleEditing ? (s(), d(Q(ne), {
170
+ n.allowTitleEditing ? (s(), c(Q(ne), {
171
171
  key: 0,
172
172
  class: "chart_titleEdit"
173
- })) : c("", !0),
173
+ })) : d("", !0),
174
174
  S("div", ve, [
175
175
  Y(t.$slots, "default")
176
176
  ])
177
177
  ]),
178
- k(r(_), {
179
- modelValue: r(o).reactive.showTooltipHint,
180
- "onUpdate:modelValue": e[1] || (e[1] = (a) => r(o).reactive.showTooltipHint = a),
178
+ l(o).reactive.tooltipHintWasShown ? d("", !0) : (s(), c(l(_), {
179
+ key: 0,
180
+ modelValue: l(o).reactive.showTooltipHint,
181
+ "onUpdate:modelValue": e[1] || (e[1] = (a) => l(o).reactive.showTooltipHint = a),
181
182
  type: "success",
182
183
  class: "chart_tooltipHint",
183
184
  width: "170px"
184
185
  }, {
185
- default: B(() => [...e[10] || (e[10] = [
186
- D(" Hit enter to pin tooltip ", -1)
186
+ default: k(() => [...e[10] || (e[10] = [
187
+ B(" Hit enter to pin tooltip ", -1)
187
188
  ])]),
188
189
  _: 1
189
- }, 8, ["modelValue"]),
190
+ }, 8, ["modelValue"])),
190
191
  v.value ? (s(), C("div", me, [
191
- f.value || f.value === void 0 && r(o).loading.inputGuide ? (s(), d(r(ee), {
192
+ f.value || f.value === void 0 && l(o).loading.inputGuide ? (s(), c(l(ee), {
192
193
  key: 0,
193
194
  modelValue: m.value,
194
195
  "onUpdate:modelValue": [
@@ -197,7 +198,7 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
197
198
  ],
198
199
  label: "Show for",
199
200
  options: f.value
200
- }, null, 8, ["modelValue", "options"])) : (s(), d(r(te), {
201
+ }, null, 8, ["modelValue", "options"])) : (s(), c(l(te), {
201
202
  key: 1,
202
203
  modelValue: m.value,
203
204
  "onUpdate:modelValue": [
@@ -205,73 +206,73 @@ const ue = { class: "chart_container" }, ce = { class: "chart_header" }, de = ["
205
206
  e[5] || (e[5] = (a) => T(a))
206
207
  ],
207
208
  label: "Show for",
208
- "options-search": (a, i) => F(v.value, a, i)
209
+ "options-search": (a, i) => L(v.value, a, i)
209
210
  }, null, 8, ["modelValue", "options-search"]))
210
- ])) : c("", !0),
211
+ ])) : d("", !0),
211
212
  S("div", {
212
213
  ref_key: "chartContainerRef",
213
- ref: E,
214
- class: R(["chart_main-content", [{ "chart_main-content__dendro": r(o).reactive.chartType === "dendro" }, "pl-scrollable"]])
214
+ ref: H,
215
+ class: O(["chart_main-content", [{ "chart_main-content__dendro": l(o).reactive.chartType === "dendro" }, "pl-scrollable"]])
215
216
  }, [
216
217
  S("div", {
217
218
  id: "chartSvgContainer",
218
- class: R({
219
+ class: O({
219
220
  chart_ready: n.graphStatus === "ready",
220
221
  chart_loading: n.graphStatus === "loading",
221
- chart_activeLassoSelection: ((l = r(o).reactive.lassoControlsState) == null ? void 0 : l.mode) === "selection"
222
+ chart_activeLassoSelection: ((r = l(o).reactive.lassoControlsState) == null ? void 0 : r.mode) === "selection"
222
223
  })
223
224
  }, null, 2),
224
- k(se, {
225
+ R(se, {
225
226
  graphStatus: n.graphStatus,
226
227
  top: v.value ? 24 : 0,
227
228
  bottom: 11,
228
229
  customStatusText: n.customStatusText,
229
230
  errorInfo: n.errorInfo
230
231
  }, null, 8, ["graphStatus", "top", "customStatusText", "errorInfo"]),
231
- r(o).reactive.chartType === "dendro" && n.chartData && r(o).reactive.layersSettings.dendro.showTable ? (s(), d(ae, {
232
+ l(o).reactive.chartType === "dendro" && n.chartData && l(o).reactive.layersSettings.dendro.showTable ? (s(), c(ae, {
232
233
  key: 0,
233
234
  chartData: n.chartData,
234
235
  onRowSelect: Z
235
- }, null, 8, ["chartData"])) : c("", !0),
236
- r(o).reactive.dendroInfoByClick ? (s(), d(oe, {
236
+ }, null, 8, ["chartData"])) : d("", !0),
237
+ l(o).reactive.dendroInfoByClick ? (s(), c(oe, {
237
238
  key: 1,
238
- info: r(o).reactive.dendroInfoByClick,
239
- containerRef: E.value,
239
+ info: l(o).reactive.dendroInfoByClick,
240
+ containerRef: H.value,
240
241
  tooltipBtn: n.dendroTooltipButton,
241
242
  onTooltipBtnClick: e[6] || (e[6] = (a) => t.$emit("dendro-tooltip-btn-click", a)),
242
243
  onClose: e[7] || (e[7] = (a) => {
243
- r(o).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
244
+ l(o).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
244
245
  })
245
- }, null, 8, ["info", "containerRef", "tooltipBtn"])) : c("", !0)
246
+ }, null, 8, ["info", "containerRef", "tooltipBtn"])) : d("", !0)
246
247
  ], 2),
247
248
  n.graphStatus === "ready" ? (s(), C("div", pe, [
248
- k(re),
249
- r(o).reactive.chartType === "scatterplot-umap" ? (s(), d(le, {
249
+ R(re),
250
+ l(o).reactive.chartType === "scatterplot-umap" ? (s(), c(le, {
250
251
  key: 0,
251
252
  "chart-ref": n.chartRef,
252
253
  isScatterplotZoomChanged: n.isScatterplotZoomChanged
253
- }, null, 8, ["chart-ref", "isScatterplotZoomChanged"])) : c("", !0),
254
- j.value ? (s(), d(r($), {
254
+ }, null, 8, ["chart-ref", "isScatterplotZoomChanged"])) : d("", !0),
255
+ j.value ? (s(), c(l($), {
255
256
  key: 1,
256
257
  icon: "view-hide",
257
258
  onClick: e[8] || (e[8] = U(() => M(), ["stop"]))
258
259
  }, {
259
- default: B(() => [...e[11] || (e[11] = [
260
- D(" Hidden (primary) ", -1)
260
+ default: k(() => [...e[11] || (e[11] = [
261
+ B(" Hidden (primary) ", -1)
261
262
  ])]),
262
263
  _: 1
263
- })) : c("", !0),
264
- K.value ? (s(), d(r($), {
264
+ })) : d("", !0),
265
+ K.value ? (s(), c(l($), {
265
266
  key: 2,
266
267
  icon: "view-hide",
267
268
  onClick: e[9] || (e[9] = U(() => z(), ["stop"]))
268
269
  }, {
269
- default: B(() => [...e[12] || (e[12] = [
270
- D(" Hidden (secondary) ", -1)
270
+ default: k(() => [...e[12] || (e[12] = [
271
+ B(" Hidden (secondary) ", -1)
271
272
  ])]),
272
273
  _: 1
273
- })) : c("", !0)
274
- ])) : c("", !0)
274
+ })) : d("", !0)
275
+ ])) : d("", !0)
275
276
  ]);
276
277
  };
277
278
  }
@@ -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 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, StatusTextData } from '../types.ts';\nimport GraphStatusScreen from './GraphStatusScreen.vue';\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 isScatterplotZoomChanged?: 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, () => tabByFilterValue.value], () => { // tabBy column changed, needs to update selected value\n tabByLocalValue.value = tabByFilterValue.value;\n}, { deep: 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.value) {\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.value,\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.value) {\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.value) {\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.value, 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.value) {\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.value, 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\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_loading': graphStatus === 'loading',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n />\n <GraphStatusScreen :graphStatus=\"graphStatus\" :top=\"tabBySource ? 24 : 0\" :bottom=\"11\" :customStatusText=\"customStatusText\" :errorInfo=\"errorInfo\"/>\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\" :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"/>\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","loadOptions","sourceId","filtersStateWithTheSameSource","state","selectedValues","selectedValue","searchSelectedFilterValueOptions","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","value","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","type","results","searchLabelStr","searchValueStr","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","_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","GraphStatusScreen","DendroTable","DendroTooltip","$emit","_hoisted_6","Zoom","LassoControls","PlBtnGhost"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAgBA,UAAMA,IAAOC,GAEPC,IAAQC,GAAA,GAERC,IAAQC,GAYRC,IAAQC,EAAIH,EAAM,UAAU;AAElC,IAAAI,EAAM,MAAMJ,EAAM,YAAY,CAACK,MAAe;AAC5C,MAAAH,EAAM,QAAQG;AAAA,IAChB,CAAC;AAED,UAAMC,IAAaC,EAAS,MAAA;;AAAM,cAAAC,IAAAV,EAAM,MAAM,SAAS,aAAa,WAAW,UAA7C,gBAAAU,EAAoD,eAAe;AAAA,KAAqC,GACpIC,IAAcF,EAAS,MAAA;;AAAM,cAAAC,IAAAF,EAAW,UAAX,gBAAAE,EAAkB;AAAA,KAAc,GAC7DE,IAAmBH,EAAS,MAAA;;AAAM,cAAAI,KAAAH,IAAAF,EAAW,UAAX,gBAAAE,EAAkB,yBAAlB,gBAAAG,EAAyC;AAAA,KAAE,GAC7EC,IAAgBL,EAAS,MAAA;;AAAM,cAAAC,IAAAV,EAAM,MAAM,SAAS,aAAa,WAAW,YAA7C,gBAAAU,EAAsD;AAAA,KAAuC,GAE5HK,IAAkBV,EAAIO,EAAiB,KAAK;AAClD,IAAAN,EAAM,CAAC,MAAMK,EAAY,OAAO,MAAMC,EAAiB,KAAK,GAAG,MAAM;AACnE,MAAAG,EAAgB,QAAQH,EAAiB;AAAA,IAC3C,GAAG,EAAE,MAAM,IAAM;AAGjB,mBAAeI,EAAYC,GAAkB;;AAC3C,UAAI,CAACjB,EAAM,MAAM,iBAAiB;AAChC,eAAO,QAAQ,QAAQ,EAAE;AAG3B,YAAMkB,IAAgCJ,EAAc,MAAM,KAAK,CAACK,MAAUA,EAAM,mBAAmBF,CAAQ;AAC3G,UAAIC,QAAkCR,IAAAQ,EAA8B,yBAA9B,gBAAAR,EAAoD,WAAU,KAAK,GAAG;AAC1G,cAAMU,IAAiBF,EAA8B,wBAAwB,CAAA;AAC7E,eAAO,QAAQ,IAAIE,EAAe,IAAI,CAACC,MAAkBC,EAAiCL,GAAUI,CAAa,CAAC,CAAC;AAAA,MACrH;AACA,YAAME,IAAW,MAAMvB,EAAM,MAAM,WAAW;AAAA,QAC5CA,EAAM,MAAM,iBAAiB;AAAA,QAC7BA,EAAM,MAAM,WAAW;AAAA,QACvBiB;AAAA,QACAO;AAAA,MAAA;AAEF,aAAOD,EAAS,WAAW,OAAOA,EAAS;AAAA,IAC7C;AACA,UAAME,IAAmBpB,EAAA;AACzB,IAAAC,EAAM;AAAA,MACJ,MAAMK,EAAY;AAAA,MAClB,MAAMX,EAAM,MAAM,QAAQ;AAAA,IAAA,GACzB,OAAO,CAAC0B,GAAGC,CAAO,MAAM;AACzB,MAAID,MAAM,UAAaC,KAAW,CAAC3B,EAAM,MAAM,iBAAiB,UAGhEyB,EAAiB,QAAQ,MAAMT,EAAYU,CAAC;AAAA,IAC9C,GAAG,EAAE,WAAW,IAAM,GAEtBpB,EAAM,MAAMmB,EAAiB,OAAO,OAAOG,MAAS;AAClD,UACEjB,EAAY,UAAU,UACnBI,EAAgB,UAAU,UAC1Ba,MAAS;AAEZ;AAEF,UAAIC,IAAmBD;AAIvB,UAHIA,MAAS,SACXC,IAAmB,MAAMC,EAAoBnB,EAAY,OAAO,EAAE,IAEhEkB,KAAA,QAAAA,EAAkB,QAAQ;AAC5B,cAAME,IAAkBF,EAAiB,CAAC,EAAE;AAC5C,QAAAd,EAAgB,QAAQgB,GACxBC,EAAoBD,CAAe;AAAA,MACrC;AAAA,IACF,GAAG,EAAE,WAAW,IAAM;AAEtB,aAASC,EAAoBC,GAAe;AAC1C,YAAMC,IAAqBlC,EAAM,MAAM,SAAS,aAAa,WAAW,MAAM;AAC9E,MAAIkC,EAAmB,WACrBlC,EAAM,MAAM,SAAS,aAAa,WAAW,MAAM,iBAAiB,CAAC;AAAA,QACnE,GAAGkC,EAAmB,CAAC;AAAA,QACvB,MAAM;AAAA,QACN,sBAAsB,CAACD,CAAK;AAAA,MAAA,CAC7B;AAAA,IAEL;AAEA,aAASE,EAAcC,GAAU;AAC/B,YAAMC,IAASD,EAAE;AACjB,MAAAhC,EAAM,QAAQiC,EAAO,OACrBvC,EAAK,sBAAsBuC,EAAO,KAAK;AAAA,IACzC;AAEA,aAASC,EAAiBC,GAAY;AACpC,MAAAzC,EAAK,sBAAsByC,CAAE;AAAA,IAC/B;AAGA,mBAAeT,EAAoBb,GAAkBuB,GAAmBC,IAA0B,SAAS;;AACzG,UAAI,CAACzC,EAAM,MAAM,iBAAiB;AAChC,eAAO,QAAQ,QAAQ,EAAE;AAG3B,YAAMkB,IAAgCJ,EAAc,MAAM,KAAK,CAACK,MAAUA,EAAM,mBAAmBF,CAAQ;AAC3G,UAAIC,QAAkCR,IAAAQ,EAA8B,yBAA9B,gBAAAR,EAAoD,WAAU,KAAK,GAAG;AAC1G,cAAMU,IAAiBF,EAA8B,wBAAwB,CAAA,GACvEwB,IAAU,MAAM,QAAQ,IAAItB,EAAe,IAAI,CAACC,MAAkBC,EAAiCL,GAAUI,CAAa,CAAC,CAAC;AAClI,eAAOmB,IAAYE,EAAQ,OAAO,CAAChB,MAAMA,EAAE,MAAM,YAAA,EAAc,SAASc,EAAU,YAAA,CAAa,CAAC,IAAIE;AAAA,MACtG;AACA,YAAMC,IAAiBF,MAAS,UAAUD,IAAY,QAChDI,IAAiBH,MAAS,UAAUD,IAAY;AACtD,cAAQ,MAAMxC,EAAM,MAAM,WAAW,gCAAgCA,EAAM,MAAM,iBAAiB,OAAOA,EAAM,MAAM,WAAW,OAAOiB,GAAUO,GAAgCmB,GAAgBC,CAAc,GAAG;AAAA,IACpN;AAGA,mBAAetB,EAAiCL,GAAkBI,GAAuB;AACvF,aAAKrB,EAAM,MAAM,iBAAiB,QAGpB,MAAMA,EAAM,MAAM,WAAW;AAAA,QACzCA,EAAM,MAAM,iBAAiB;AAAA,QAAOA,EAAM,MAAM,WAAW;AAAA,QAC3DiB;AAAA,QAAU;AAAA,QAAG;AAAA,QAAWI;AAAA,MAAA,EAAe,KAAK,CAACK,MAAMA,EAAE,OAAO,CAAC,CAAC,IAJvD,QAAQ,QAAQ,EAAE,OAAOL,GAAe,OAAO,KAAK;AAAA,IAM/D;AAEA,UAAMwB,IAAoBxC,EAAA,GAEpByC,IAAmBrC,EAAS,MAAM;;AACtC,UAAIT,EAAM,MAAM,SAAS,cAAc;AACrC,eAAO;AAET,YAAM+C,IAAe/C,EAAM,MAAM,SAAS,aAAa;AACvD,WAAIU,IAAAqC,EAAa,oBAAb,QAAArC,EAA8B,eAAe,QAAQ;AACvD,cAAMsC,IAAaD,EAAa,gBAAgB,eAAe,CAAC,EAAE,gBAC5DE,IAAcjD,EAAM,MAAM,SAAS,YAAYgD,CAAU;AAC/D,aAAIC,KAAA,gBAAAA,EAAa,UAAS,iBAAiBA,EAAY;AACrD,iBAAO,OAAO,OAAOA,EAAY,MAAM,EAAE,SAAS,KAAKA,EAAY,MAAM,KAAK,CAACvB,MAAA;;AAAM,oBAAAhB,IAAAuC,EAAY,WAAZ,gBAAAvC,EAAqBgB;AAAA,WAAE;AAAA,MAEhH;AACA,aAAO;AAAA,IACT,CAAC,GACKwB,IAAqBzC,EAAS,MAAM;;AACxC,UAAIT,EAAM,MAAM,SAAS,cAAc;AACrC,eAAO;AAET,YAAM+C,IAAe/C,EAAM,MAAM,SAAS,aAAa;AACvD,WAAIU,IAAAqC,EAAa,sBAAb,QAAArC,EAAgC,eAAe,QAAQ;AACzD,cAAMsC,IAAaD,EAAa,kBAAkB,eAAe,CAAC,EAAE,gBAC9DE,IAAcjD,EAAM,MAAM,SAAS,YAAYgD,CAAU;AAC/D,aAAIC,KAAA,gBAAAA,EAAa,UAAS,iBAAiBA,EAAY;AACrD,iBAAO,OAAO,OAAOA,EAAY,MAAM,EAAE,SAAS,KAAKA,EAAY,MAAM,KAAK,CAACvB,MAAA;;AAAM,oBAAAhB,IAAAuC,EAAY,WAAZ,gBAAAvC,EAAqBgB;AAAA,WAAE;AAAA,MAEhH;AACA,aAAO;AAAA,IACT,CAAC;AACD,aAASyB,IAA0B;AACjC,MAAAnD,EAAM,MAAM,SAAS,gBAAgB,KAAQ,qBAAqB,IAClEA,EAAM,MAAM,SAAS,aAAa;AAAA,IACpC;AACA,aAASoD,IAA4B;AACnC,MAAApD,EAAM,MAAM,SAAS,gBAAgB,KAAQ,uBAAuB,IACpEA,EAAM,MAAM,SAAS,aAAa;AAAA,IACpC;;;AAKE,aAAAqD,EAAA,GAAAC,EAmEM,OAnENC,IAmEM;AAAA,QAlEJC,EAYM,OAZNC,IAYM;AAAA,UAXJD,EAME,SAAA;AAAA,YALA,OAAM;AAAA,YACL,OAAOpD,EAAA;AAAA,YACP,WAAWD,EAAA;AAAA,YACX,UAAQgC;AAAA,YACR,4BAAcC,MAAC;;AAAQ,eAAA1B,IAAA0B,EAAE,WAAF,QAAA1B,EAA+B;AAAA,YAAI,GAAA,CAAA,OAAA,CAAA;AAAA,UAAA;UAE7BP,EAAA,qBAAhCkD,EAAA,GAAAK,EAA6EC,EAA7DC,EAAQ,GAAA;AAAA;YAA2B,OAAM;AAAA,UAAA;UACzDJ,EAEM,OAFNK,IAEM;AAAA,YADJC,EAAQC,EAAA,QAAA,SAAA;AAAA,UAAA;;QAGZC,EAKsBC,EAAAC,CAAA,GAAA;AAAA,sBAJXD,EAAAjE,CAAA,EAAM,SAAS;AAAA,wDAAfiE,EAAAjE,CAAA,EAAM,SAAS,kBAAemE;AAAA,UAAE,MAAK;AAAA,UAAU,OAAM;AAAA,UAC9D,OAAM;AAAA,QAAA;qBACP,MAED,CAAA,GAAAC,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,cAFC,8BAED,EAAA;AAAA,UAAA;;;QACWzD,EAAA,SAAX0C,EAAA,GAAAC,EAWM,OAXNe,IAWM;AAAA,UATI5C,EAAA,SAAqBA,YAAqB,UAAawC,EAAAjE,CAAA,EAAM,QAAQ,mBAD7E0D,EAIEO,EAAAK,EAAA,GAAA;AAAA;wBAFSvD,EAAA;AAAA;qCAAAA,EAAe,QAAAoD;AAAA,+BACHzC,MAAMM,EAAoBN,CAAC;AAAA,YAAA;AAAA,YADtB,OAAM;AAAA,YAAY,SAASD,EAAA;AAAA,UAAA,gDAGvDiC,EAIEO,EAAAM,EAAA,GAAA;AAAA;wBAHgBxD,EAAA;AAAA;qCAAAA,EAAe,QAAAoD;AAAA,+BAEVzC,MAAMM,EAAoBN,CAAC;AAAA,YAAA;AAAA,YAFf,OAAM;AAAA,YACtC,kBAAc,CAAG8C,GAAK/B,MAASX,EAAoBnB,EAAA,OAAuB6D,GAAK/B,CAAI;AAAA,UAAA;;QAIxFe,EAwBM,OAAA;AAAA,mBAvBA;AAAA,UAAJ,KAAIX;AAAA,UAAoB,UAAM,sBAAoB,CAAA,EAAA,8BACToB,KAAM,SAAS,cAAS,SAAA,GAAA,eAAA,CAAA,CAAA;AAAA,QAAA;UAEjET,EAME,OAAA;AAAA,YALA,IAAG;AAAA,YAAqB,OAAKiB,EAAA;AAAA,2BAA6BtE,EAAA,gBAAW;AAAA,6BAAyCA,EAAA,gBAAW;AAAA,cAAwD,8BAAA8D,IAAAA,EAAAjE,CAAA,EAAM,SAAS,uBAAfiE,gBAAAA,EAAmC,UAAI;AAAA,YAAA;;UAM1ND,EAAoJU,IAAA;AAAA,YAAhI,aAAavE,EAAA;AAAA,YAAc,KAAKQ,EAAA,QAAW,KAAA;AAAA,YAAY,QAAQ;AAAA,YAAK,kBAAkBR,EAAA;AAAA,YAAmB,WAAWA,EAAA;AAAA,UAAA;UAEhI8D,EAAAjE,CAAA,EAAM,SAAS,0BAA0BG,EAAA,aAAa8D,EAAAjE,CAAA,EAAM,SAAS,eAAe,OAAO,kBADnG0D,EAGEiB,IAAA;AAAA;YADC,WAAWxE,EAAA;AAAA,YAAY,aAAYmC;AAAA,UAAA;UAG9B2B,EAAAjE,CAAA,EAAM,SAAS,0BADvB0D,EAOEkB,IAAA;AAAA;YANyC,MAAMX,EAAAjE,CAAA,EAAM,SAAS;AAAA,YAC7D,cAAc6C,EAAA;AAAA,YAAoB,YAAY1C,EAAA;AAAA,YAC9C,mBAAiBiE,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAG7B,MAAesC,EAAAA,kCAAkCtC,CAAE;AAAA,YAAI,SAAK6B,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAD,MAAA;AAAaF,cAAAA,EAAAjE,CAAA,EAAM,SAAS,oBAAiB,MAAmB6E,EAAAA,MAAK,sBAAA,IAAA;AAAA;;;QAM/I1E,EAAA,gBAAW,WAAtBkD,KAAAC,EASM,OATNwB,IASM;AAAA,UARJd,EAAQe,EAAA;AAAA,UACad,EAAAjE,CAAA,EAAM,SAAS,cAAS,2BAA7C0D,EAAkJsB,IAAA;AAAA;YAA3E,aAAW7E,EAAA;AAAA,YAAW,0BAA0BA,EAAA;AAAA,UAAA;UACrG2C,EAAA,cAAlBY,EAEaO,EAAAgB,CAAA,GAAA;AAAA;YAFuB,MAAK;AAAA,YAAa,iCAAkB9B,KAAuB,CAAA,MAAA,CAAA;AAAA,UAAA;uBAAI,MAEnG,CAAA,GAAAiB,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,gBAFmG,sBAEnG,EAAA;AAAA,YAAA;;;UACkBlB,EAAA,cAAlBQ,EAEaO,EAAAgB,CAAA,GAAA;AAAA;YAFyB,MAAK;AAAA,YAAa,iCAAkB7B,KAAyB,CAAA,MAAA,CAAA;AAAA,UAAA;uBAAI,MAEvG,CAAA,GAAAgB,EAAA,EAAA,MAAAA,EAAA,EAAA,IAAA;AAAA,gBAFuG,wBAEvG,EAAA;AAAA,YAAA;;;;;;;;"}
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 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, StatusTextData } from '../types.ts';\nimport GraphStatusScreen from './GraphStatusScreen.vue';\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 isScatterplotZoomChanged?: 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, () => tabByFilterValue.value], () => { // tabBy column changed, needs to update selected value\n tabByLocalValue.value = tabByFilterValue.value;\n}, { deep: 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.value) {\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.value,\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.value) {\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.value) {\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.value, 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.value) {\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.value, 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\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-if=\"!store.reactive.tooltipHintWasShown\"\n v-model=\"store.reactive.showTooltipHint\"\n type=\"success\"\n 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_loading': graphStatus === 'loading',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n />\n <GraphStatusScreen :graphStatus=\"graphStatus\" :top=\"tabBySource ? 24 : 0\" :bottom=\"11\" :customStatusText=\"customStatusText\" :errorInfo=\"errorInfo\"/>\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\" :isScatterplotZoomChanged=\"isScatterplotZoomChanged\"/>\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","loadOptions","sourceId","filtersStateWithTheSameSource","state","selectedValues","selectedValue","searchSelectedFilterValueOptions","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","loading","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","value","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","type","results","searchLabelStr","searchValueStr","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary","_openBlock","_createElementBlock","_hoisted_1","_createElementVNode","_hoisted_2","_createBlock","_resolveDynamicComponent","EditIcon","_hoisted_4","_renderSlot","_ctx","_unref","PlNotificationAlert","$event","_cache","_hoisted_5","PlDropdown","PlAutocomplete","str","_normalizeClass","_createVNode","GraphStatusScreen","DendroTable","DendroTooltip","$emit","_hoisted_6","Zoom","LassoControls","PlBtnGhost"],"mappings":"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"}
@@ -0,0 +1 @@
1
+ ._alert_1fz73_2{position:fixed;bottom:12px;right:12px;width:256px;height:auto;z-index:1}
@@ -0,0 +1,7 @@
1
+ import { ChartTruncationWarning } from '../utils/createChartSettingsForRender/composeChartSettings';
2
+ type __VLS_Props = {
3
+ truncationWarning: ChartTruncationWarning;
4
+ };
5
+ declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {}, HTMLDivElement>;
6
+ export default _default;
7
+ //# sourceMappingURL=ChartTruncationWarningAlert.vue.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTruncationWarningAlert.vue.d.ts","sourceRoot":"","sources":["../../src/components/ChartTruncationWarningAlert.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,4DAA4D,CAAC;AAIzG,KAAK,WAAW,GAAG;IAAE,iBAAiB,EAAE,sBAAsB,CAAA;CAAE,CAAC;;AAyHjE,wBAOG"}
@@ -0,0 +1,10 @@
1
+ import o from "./ChartTruncationWarningAlert.vue2.js";
2
+ import s from "./ChartTruncationWarningAlert.vue3.js";
3
+ import t from "../_virtual/_plugin-vue_export-helper.js";
4
+ const r = {
5
+ $style: s
6
+ }, n = /* @__PURE__ */ t(o, [["__cssModules", r]]);
7
+ export {
8
+ n as default
9
+ };
10
+ //# sourceMappingURL=ChartTruncationWarningAlert.vue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTruncationWarningAlert.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -0,0 +1,54 @@
1
+ import { defineComponent as T, ref as x, computed as V, createElementBlock as $, openBlock as b, normalizeClass as h, createVNode as s, unref as r, withCtx as a, createTextVNode as u, toDisplayString as v, withModifiers as S } from "vue";
2
+ import { PlNotificationAlert as w, PlBtnPrimary as A, PlSpacer as C } from "@platforma-sdk/ui-vue";
3
+ import { formatTruncationTotal as c } from "../utils/createChartSettingsForRender/composeChartSettings.js";
4
+ import { useStore as P } from "../store.js";
5
+ const j = /* @__PURE__ */ T({
6
+ __name: "ChartTruncationWarningAlert",
7
+ props: {
8
+ truncationWarning: {}
9
+ },
10
+ setup(p) {
11
+ const f = p, i = P(), l = x(!0), m = V(() => {
12
+ const t = f.truncationWarning, e = [];
13
+ t.groups && e.push("Some groups are hidden"), t.facets && e.push("Some facets are hidden");
14
+ const n = e.join(". "), o = [];
15
+ t.groups && t.groupsVisible != null && t.groupsTotal != null && o.push(`${t.groupsVisible} of ${c(t.groupsTotal)} groups`), t.facets && t.facetsVisible != null && t.facetsTotal != null && o.push(`${t.facetsVisible} of ${c(t.facetsTotal)} facets`);
16
+ const g = o.length ? ` Showing ${o.join("; ")}.` : "";
17
+ return `${n}.${g} Limits can be changed in Axes settings.`;
18
+ });
19
+ function d() {
20
+ i.value.reactive.currentTab = "axes", i.value.reactive.tabDefaultState.axes.scrollToBottom = !0;
21
+ }
22
+ return (t, e) => (b(), $("div", {
23
+ class: h(t.$style.alert)
24
+ }, [
25
+ s(r(w), {
26
+ modelValue: l.value,
27
+ "onUpdate:modelValue": e[1] || (e[1] = (n) => l.value = n),
28
+ type: "warning",
29
+ closable: ""
30
+ }, {
31
+ actions: a(() => [
32
+ s(r(A), {
33
+ icon: "arrow-right",
34
+ onClick: e[0] || (e[0] = S(() => d(), ["stop"]))
35
+ }, {
36
+ default: a(() => [...e[2] || (e[2] = [
37
+ u("Open Axes settings", -1)
38
+ ])]),
39
+ _: 1
40
+ }),
41
+ s(r(C))
42
+ ]),
43
+ default: a(() => [
44
+ u(v(m.value) + " ", 1)
45
+ ]),
46
+ _: 1
47
+ }, 8, ["modelValue"])
48
+ ], 2));
49
+ }
50
+ });
51
+ export {
52
+ j as default
53
+ };
54
+ //# sourceMappingURL=ChartTruncationWarningAlert.vue2.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTruncationWarningAlert.vue2.js","sources":["../../src/components/ChartTruncationWarningAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlBtnPrimary, PlNotificationAlert, PlSpacer } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport type { ChartTruncationWarning } from '../utils/createChartSettingsForRender/composeChartSettings';\nimport { formatTruncationTotal } from '../utils/createChartSettingsForRender/composeChartSettings';\nimport { useStore } from '../store';\n\nconst props = defineProps<{ truncationWarning: ChartTruncationWarning }>();\n\nconst store = useStore();\nconst isAlertOpen = ref(true);\n\nconst message = computed(() => {\n const w = props.truncationWarning;\n const intro: string[] = [];\n if (w.groups) intro.push('Some groups are hidden');\n if (w.facets) intro.push('Some facets are hidden');\n const lead = intro.join('. ');\n const countParts: string[] = [];\n if (w.groups && w.groupsVisible != null && w.groupsTotal != null) {\n countParts.push(`${w.groupsVisible} of ${formatTruncationTotal(w.groupsTotal)} groups`);\n }\n if (w.facets && w.facetsVisible != null && w.facetsTotal != null) {\n countParts.push(`${w.facetsVisible} of ${formatTruncationTotal(w.facetsTotal)} facets`);\n }\n const countText = countParts.length ? ` Showing ${countParts.join('; ')}.` : '';\n const end = 'Limits can be changed in Axes settings.';\n return `${lead}.${countText} ${end}`;\n});\n\nfunction openAxesSettings() {\n store.value.reactive.currentTab = 'axes';\n store.value.reactive.tabDefaultState.axes.scrollToBottom = true;\n}\n</script>\n<template>\n <div :class=\"$style.alert\">\n <PlNotificationAlert v-model=\"isAlertOpen\" type=\"warning\" closable>\n {{ message }}\n <template #actions>\n <PlBtnPrimary icon=\"arrow-right\" @click.stop=\"() => openAxesSettings()\">Open Axes settings</PlBtnPrimary>\n <PlSpacer />\n </template>\n </PlNotificationAlert>\n </div>\n</template>\n<style module>\n.alert {\n position: fixed;\n bottom: 12px;\n right: 12px;\n width: 256px;\n height: auto;\n z-index: 1;\n}\n</style>\n"],"names":["props","__props","store","useStore","isAlertOpen","ref","message","computed","w","intro","lead","countParts","formatTruncationTotal","countText","openAxesSettings","_createElementBlock","_normalizeClass","$style","_createVNode","_unref","PlNotificationAlert","$event","PlBtnPrimary","_cache","PlSpacer","_createTextVNode","_toDisplayString"],"mappings":";;;;;;;;;;AAOA,UAAMA,IAAQC,GAERC,IAAQC,EAAA,GACRC,IAAcC,EAAI,EAAI,GAEtBC,IAAUC,EAAS,MAAM;AAC7B,YAAMC,IAAIR,EAAM,mBACVS,IAAkB,CAAA;AACxB,MAAID,EAAE,UAAQC,EAAM,KAAK,wBAAwB,GAC7CD,EAAE,UAAQC,EAAM,KAAK,wBAAwB;AACjD,YAAMC,IAAOD,EAAM,KAAK,IAAI,GACtBE,IAAuB,CAAA;AAC7B,MAAIH,EAAE,UAAUA,EAAE,iBAAiB,QAAQA,EAAE,eAAe,QAC1DG,EAAW,KAAK,GAAGH,EAAE,aAAa,OAAOI,EAAsBJ,EAAE,WAAW,CAAC,SAAS,GAEpFA,EAAE,UAAUA,EAAE,iBAAiB,QAAQA,EAAE,eAAe,QAC1DG,EAAW,KAAK,GAAGH,EAAE,aAAa,OAAOI,EAAsBJ,EAAE,WAAW,CAAC,SAAS;AAExF,YAAMK,IAAYF,EAAW,SAAS,YAAYA,EAAW,KAAK,IAAI,CAAC,MAAM;AAE7E,aAAO,GAAGD,CAAI,IAAIG,CAAS;AAAA,IAC7B,CAAC;AAED,aAASC,IAAmB;AAC1B,MAAAZ,EAAM,MAAM,SAAS,aAAa,QAClCA,EAAM,MAAM,SAAS,gBAAgB,KAAK,iBAAiB;AAAA,IAC7D;2BAGEa,EAQM,OAAA;AAAA,MARA,OAAKC,EAAEC,EAAAA,OAAO,KAAK;AAAA,IAAA;MACvBC,EAMsBC,EAAAC,CAAA,GAAA;AAAA,oBANQhB,EAAA;AAAA,sDAAAA,EAAW,QAAAiB;AAAA,QAAE,MAAK;AAAA,QAAU,UAAA;AAAA,MAAA;QAE7C,WACT,MAAyG;AAAA,UAAzGH,EAAyGC,EAAAG,CAAA,GAAA;AAAA,YAA3F,MAAK;AAAA,YAAe,iCAAkBR,KAAgB,CAAA,MAAA,CAAA;AAAA,UAAA;uBAAI,MAAkB,CAAA,GAAAS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,gBAAlB,sBAAkB,EAAA;AAAA,YAAA;;;UAC1FL,EAAYC,EAAAK,CAAA,CAAA;AAAA,QAAA;mBAHd,MAAa;AAAA,UAAVC,EAAAC,EAAApB,EAAA,KAAO,IAAG,KACb,CAAA;AAAA,QAAA;;;;;;"}
@@ -0,0 +1,8 @@
1
+ import './ChartTruncationWarningAlert.css';const t = "_alert_1fz73_2", e = {
2
+ alert: t
3
+ };
4
+ export {
5
+ t as alert,
6
+ e as default
7
+ };
8
+ //# sourceMappingURL=ChartTruncationWarningAlert.vue3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChartTruncationWarningAlert.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DnDBasketChip.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DragAndDrop/DnDBasketChip.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAG3C,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;AAoIF,wBASG"}
1
+ {"version":3,"file":"DnDBasketChip.vue.d.ts","sourceRoot":"","sources":["../../../src/components/DragAndDrop/DnDBasketChip.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;AAmJF,wBASG"}
@@ -1,10 +1,9 @@
1
- import { defineComponent as b, ref as p, computed as y, createElementBlock as i, openBlock as t, createElementVNode as n, normalizeClass as s, createCommentVNode as a, createVNode as v, createBlock as d, unref as o, toDisplayString as m } from "vue";
2
- import { PlIcon16 as l } from "@platforma-sdk/ui-vue";
3
- import _ from "../../assets/drag-and-drop/img/chip-close.svg.js";
1
+ import { defineComponent as p, ref as y, computed as v, createElementBlock as s, openBlock as t, createElementVNode as o, normalizeClass as c, createCommentVNode as d, createVNode as m, createBlock as u, unref as i, toDisplayString as h } from "vue";
2
+ import { PlIcon16 as n } from "@platforma-sdk/ui-vue";
4
3
  const C = {
5
4
  key: 0,
6
5
  class: "dnd-basket-chip__handler"
7
- }, g = { class: "dnd-basket-chip__title-wrapper" }, B = ["title"], V = ["title"], x = ["innerHTML"], w = /* @__PURE__ */ b({
6
+ }, _ = { class: "dnd-basket-chip__title-wrapper" }, g = ["title"], B = ["title"], S = /* @__PURE__ */ p({
8
7
  __name: "DnDBasketChip",
9
8
  props: {
10
9
  error: { type: Boolean },
@@ -12,56 +11,60 @@ const C = {
12
11
  sortable: { type: Boolean }
13
12
  },
14
13
  emits: ["close-chip"],
15
- setup(e, { emit: u }) {
16
- const c = e, h = u, f = p(), r = y(
17
- () => c.info.uniqueValues.join("/")
14
+ setup(e, { emit: k }) {
15
+ const l = e, f = k, b = y(), a = v(
16
+ () => l.info.uniqueValues.join("/")
18
17
  );
19
- function k() {
20
- h("close-chip", c.info.id);
18
+ function r() {
19
+ f("close-chip", l.info.id);
21
20
  }
22
- return (D, H) => (t(), i("div", {
21
+ return (V, x) => (t(), s("div", {
23
22
  ref_key: "chipRoot",
24
- ref: f,
23
+ ref: b,
25
24
  class: "dnd-basket-chip__group"
26
25
  }, [
27
- n("div", {
28
- class: s([{ error: e.error, sortable: e.sortable }, "dnd-basket-chip"])
26
+ o("div", {
27
+ class: c([{ error: e.error, sortable: e.sortable }, "dnd-basket-chip"])
29
28
  }, [
30
- n("div", {
31
- class: s(["dnd-basket-chip__icon", { error: e.error }])
29
+ o("div", {
30
+ class: c(["dnd-basket-chip__icon", { error: e.error }])
32
31
  }, [
33
- e.error ? (t(), d(o(l), {
32
+ e.error ? (t(), u(i(n), {
34
33
  key: 0,
35
34
  name: "warning",
36
- class: s({ error: e.error })
37
- }, null, 8, ["class"])) : (t(), d(o(l), {
35
+ class: c({ error: e.error })
36
+ }, null, 8, ["class"])) : (t(), u(i(n), {
38
37
  key: 1,
39
38
  name: e.info.isSubsetFilter ? "cell-type-subset" : e.info.type === "String" ? "cell-type-txt" : "cell-type-num"
40
39
  }, null, 8, ["name"]))
41
40
  ], 2),
42
- e.sortable ? (t(), i("div", C)) : a("", !0),
43
- v(o(l), { name: "drag-dots" }),
44
- n("div", g, [
45
- n("div", {
41
+ e.sortable ? (t(), s("div", C)) : d("", !0),
42
+ m(i(n), { name: "drag-dots" }),
43
+ o("div", _, [
44
+ o("div", {
46
45
  class: "dnd-basket-chip__title",
47
46
  title: e.info.title
48
- }, m(e.info.title), 9, B),
49
- e.info.nonHomogenous ? (t(), i("div", {
47
+ }, h(e.info.title), 9, g),
48
+ e.info.nonHomogenous ? (t(), s("div", {
50
49
  key: 0,
51
50
  class: "dnd-basket-chip__sub-title",
52
- title: r.value
53
- }, m(r.value), 9, V)) : a("", !0)
51
+ title: a.value
52
+ }, h(a.value), 9, B)) : d("", !0)
54
53
  ]),
55
- n("div", {
54
+ o("div", {
56
55
  class: "dnd-basket-chip__icon-close",
57
- onClick: k,
58
- innerHTML: o(_)
59
- }, null, 8, x)
56
+ onClick: r
57
+ }, [
58
+ m(i(n), {
59
+ name: "close",
60
+ onClick: r
61
+ })
62
+ ])
60
63
  ], 2)
61
64
  ], 512));
62
65
  }
63
66
  });
64
67
  export {
65
- w as default
68
+ S as default
66
69
  };
67
70
  //# sourceMappingURL=DnDBasketChip.vue.js.map