@milaboratories/graph-maker 1.1.153 → 1.1.155

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 (26) hide show
  1. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.d.ts +2 -0
  2. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.d.ts.map +1 -1
  3. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.js +18 -16
  4. package/dist/GraphMaker/components/AesSettings/FormWrapper.vue.js.map +1 -1
  5. package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
  6. package/dist/GraphMaker/components/Chart.vue.js +177 -120
  7. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  8. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.d.ts.map +1 -1
  9. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +198 -192
  10. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  11. package/dist/GraphMaker/store.d.ts.map +1 -1
  12. package/dist/GraphMaker/store.js +85 -81
  13. package/dist/GraphMaker/store.js.map +1 -1
  14. package/dist/GraphMaker/types.d.ts +1 -0
  15. package/dist/GraphMaker/types.d.ts.map +1 -1
  16. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js +6 -6
  17. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ComponentController.js.map +1 -1
  18. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js +94 -91
  19. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/ControllerBase.js.map +1 -1
  20. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js +2 -2
  21. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/heatmap.js.map +1 -1
  22. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js +50 -49
  23. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot-umap.js.map +1 -1
  24. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js +15 -14
  25. package/dist/node_modules/@milaboratories/pf-plots/dist/controllers/controllersByChartType/scatterplot.js.map +1 -1
  26. package/package.json +2 -2
@@ -15,8 +15,10 @@ declare function __VLS_template(): {
15
15
  type __VLS_TemplateResult = ReturnType<typeof __VLS_template>;
16
16
  declare const __VLS_component: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {
17
17
  "form:close": (...args: any[]) => void;
18
+ "form:open": (...args: any[]) => void;
18
19
  }, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{
19
20
  "onForm:close"?: ((...args: any[]) => any) | undefined;
21
+ "onForm:open"?: ((...args: any[]) => any) | undefined;
20
22
  }>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
21
23
  root: HTMLDivElement;
22
24
  }, any>;
@@ -1 +1 @@
1
- {"version":3,"file":"FormWrapper.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/AesSettings/FormWrapper.vue"],"names":[],"mappings":"AAgCA,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAQF,iBAAS,cAAc;WA2DT,OAAO,IAA6B;;yBAXpB,GAAG;;;;;;EAgBhC;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;OASnB,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":"FormWrapper.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/AesSettings/FormWrapper.vue"],"names":[],"mappings":"AAqCA,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAWF,iBAAS,cAAc;WA2DT,OAAO,IAA6B;;yBAXpB,GAAG;;;;;;EAgBhC;AAUD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;;;;;;;;OASnB,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,35 +1,37 @@
1
- import { defineComponent as a, createBlock as r, openBlock as i, Teleport as m, createElementVNode as e, renderSlot as c, withModifiers as p, createTextVNode as d, resolveDynamicComponent as f, toDisplayString as n } from "vue";
2
- import _ from "../../icons/ArrowLeft.vue.js";
3
- const k = {
1
+ import { defineComponent as c, onMounted as p, createBlock as s, openBlock as n, Teleport as d, createElementVNode as e, renderSlot as f, withModifiers as k, createTextVNode as _, resolveDynamicComponent as u, toDisplayString as i } from "vue";
2
+ import g from "../../icons/ArrowLeft.vue.js";
3
+ const h = {
4
4
  ref: "root",
5
5
  class: "aes-settings-form"
6
- }, u = { class: "aes-settings-form__header" }, $ = /* @__PURE__ */ a({
6
+ }, v = { class: "aes-settings-form__header" }, B = /* @__PURE__ */ c({
7
7
  __name: "FormWrapper",
8
8
  props: {
9
9
  title: {},
10
10
  backTitle: {}
11
11
  },
12
- emits: ["form:close"],
13
- setup(l, { emit: g }) {
14
- const t = l;
15
- return (o, s) => (i(), r(m, { to: "#graph-settings-modal" }, [
16
- e("div", k, [
17
- e("div", u, [
12
+ emits: ["form:close", "form:open"],
13
+ setup(l, { emit: a }) {
14
+ const o = l, m = a;
15
+ return p(() => {
16
+ m("form:open");
17
+ }), (t, r) => (n(), s(d, { to: "#graph-settings-modal" }, [
18
+ e("div", h, [
19
+ e("div", v, [
18
20
  e("div", {
19
- onClick: s[0] || (s[0] = p((h) => o.$emit("form:close"), ["stop"])),
21
+ onClick: r[0] || (r[0] = k((T) => t.$emit("form:close"), ["stop"])),
20
22
  class: "back-link"
21
23
  }, [
22
- (i(), r(f(_))),
23
- d(" " + n(`Back to ${t.backTitle}`), 1)
24
+ (n(), s(u(g))),
25
+ _(" " + i(`Back to ${o.backTitle}`), 1)
24
26
  ]),
25
- e("h3", null, n(t.title), 1)
27
+ e("h3", null, i(o.title), 1)
26
28
  ]),
27
- c(o.$slots, "default")
29
+ f(t.$slots, "default")
28
30
  ], 512)
29
31
  ]));
30
32
  }
31
33
  });
32
34
  export {
33
- $ as default
35
+ B as default
34
36
  };
35
37
  //# sourceMappingURL=FormWrapper.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FormWrapper.vue.js","sources":["../../../../src/GraphMaker/components/AesSettings/FormWrapper.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport ArrowLeft from \"../../icons/ArrowLeft.vue\";\n\nconst props = defineProps<{\n title: string;\n backTitle: string;\n}>();\n\nconst emit = defineEmits([\"form:close\"]);\n\n</script>\n\n<template>\n <Teleport to=\"#graph-settings-modal\">\n <div ref=\"root\" class=\"aes-settings-form\">\n <div class=\"aes-settings-form__header\">\n <div @click.stop=\"$emit('form:close')\" class=\"back-link\">\n <component :is=\"ArrowLeft\" />\n {{ `Back to ${props.backTitle}` }}\n </div>\n <h3>\n {{ props.title }}\n </h3>\n </div>\n <slot/>\n </div>\n </Teleport>\n</template>\n"],"names":["props","__props"],"mappings":";;;;;;;;;;;;;AAGA,UAAMA,IAAQC;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FormWrapper.vue.js","sources":["../../../../src/GraphMaker/components/AesSettings/FormWrapper.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { onMounted } from \"vue\";\nimport ArrowLeft from \"../../icons/ArrowLeft.vue\";\n\nconst props = defineProps<{\n title: string;\n backTitle: string;\n}>();\n\nconst emit = defineEmits([\"form:close\", \"form:open\"]);\nonMounted(() => {\n emit(\"form:open\");\n});\n\n</script>\n\n<template>\n <Teleport to=\"#graph-settings-modal\">\n <div ref=\"root\" class=\"aes-settings-form\">\n <div class=\"aes-settings-form__header\">\n <div @click.stop=\"$emit('form:close')\" class=\"back-link\">\n <component :is=\"ArrowLeft\" />\n {{ `Back to ${props.backTitle}` }}\n </div>\n <h3>\n {{ props.title }}\n </h3>\n </div>\n <slot/>\n </div>\n </Teleport>\n</template>\n"],"names":["props","__props","emit","__emit","onMounted"],"mappings":";;;;;;;;;;;;;AAIA,UAAMA,IAAQC,GAKRC,IAAOC;AACb,WAAAC,EAAU,MAAM;AACd,MAAAF,EAAK,WAAW;AAAA,IAClB,CAAC;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/components/Chart.vue"],"names":[],"mappings":"AAgMA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAY1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,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,CAAA;CAChC,CAAC;AA+FF,iBAAS,cAAc;WAuNT,OAAO,IAA6B;;yBAXrB,GAAG;;;;;;EAgB/B;AA6BD,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/GraphMaker/components/Chart.vue"],"names":[],"mappings":"AA2OA,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAY1D,OAAO,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAMxD,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,CAAA;CAChC,CAAC;AAoIF,iBAAS,cAAc;WA+PT,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,17 +1,20 @@
1
- import { defineComponent as P, ref as v, watch as m, computed as S, createElementBlock as b, openBlock as r, createElementVNode as c, createVNode as U, createCommentVNode as d, createBlock as n, withKeys as E, resolveDynamicComponent as H, renderSlot as I, unref as l, withCtx as O, createTextVNode as q, normalizeClass as k } from "vue";
2
- import { PlNotificationAlert as A, PlDropdown as G, PlAutocomplete as W } from "@platforma-sdk/ui-vue";
3
- import K from "./DendroTable.vue.js";
4
- import M from "./DendroTooltip.vue.js";
5
- import z from "./LassoControls/index.vue.js";
6
- import X from "./Loading.vue.js";
7
- import j from "./Zoom/index.vue.js";
8
- import { MAX_SEARCH_OPTIONS_LIST_LENGTH as w } from "../constantsCommon.js";
9
- import J from "../icons/EditIcon.vue.js";
10
- import { useStore as Q } from "../store.js";
11
- const Y = { class: "chart_container" }, Z = { class: "chart_header" }, x = ["value"], ee = { class: "chart_titleLineSlot" }, te = {
1
+ import { defineComponent as W, ref as h, watch as S, computed as p, createElementBlock as b, openBlock as n, createElementVNode as m, createVNode as P, createCommentVNode as s, createBlock as i, withKeys as j, resolveDynamicComponent as K, renderSlot as z, unref as r, withCtx as T, createTextVNode as k, normalizeClass as H, withModifiers as R } from "vue";
2
+ import { PlNotificationAlert as X, PlDropdown as J, PlAutocomplete as Q, PlBtnGhost as G } from "@platforma-sdk/ui-vue";
3
+ import Y from "./DendroTable.vue.js";
4
+ import Z from "./DendroTooltip.vue.js";
5
+ import x from "./LassoControls/index.vue.js";
6
+ import ee from "./Loading.vue.js";
7
+ import te from "./Zoom/index.vue.js";
8
+ import { MAX_SEARCH_OPTIONS_LIST_LENGTH as N } from "../constantsCommon.js";
9
+ import ae from "../icons/EditIcon.vue.js";
10
+ import { useStore as oe } from "../store.js";
11
+ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["value"], ie = { class: "chart_titleLineSlot" }, se = {
12
12
  key: 0,
13
13
  class: "chart_tabBy"
14
- }, ae = { class: "chart_controls" }, ve = /* @__PURE__ */ P({
14
+ }, ue = {
15
+ key: 1,
16
+ class: "chart_controls"
17
+ }, be = /* @__PURE__ */ W({
15
18
  __name: "Chart",
16
19
  props: {
17
20
  graphStatus: {},
@@ -21,163 +24,217 @@ const Y = { class: "chart_container" }, Z = { class: "chart_header" }, x = ["val
21
24
  chartRef: {}
22
25
  },
23
26
  emits: ["graph-title-update", "dendro-node-select", "dendro-tooltip-btn-click"],
24
- setup(D, { emit: R }) {
25
- const y = R, a = Q(), g = D, h = v(g.graphTitle);
26
- m(() => g.graphTitle, (e) => {
27
- h.value = e;
27
+ setup(O, { emit: $ }) {
28
+ const C = $, a = oe(), V = O, y = h(V.graphTitle);
29
+ S(() => V.graphTitle, (t) => {
30
+ y.value = t;
28
31
  });
29
- const V = S(() => {
30
- var e;
31
- return (e = a.value.reactive.optionsState.components.tabBy) == null ? void 0 : e.selectorStates[0];
32
- }), i = S(() => {
33
- var e;
34
- return (e = V.value) == null ? void 0 : e.selectedSource;
35
- }), C = S(() => {
36
- var e, t;
37
- return (t = (e = V.value) == null ? void 0 : e.selectedFilterValues) == null ? void 0 : t[0];
38
- }), s = v(C.value);
39
- m(() => i.value, (e, t) => {
40
- e !== t && (s.value = C.value);
32
+ const w = p(() => {
33
+ var t;
34
+ return (t = a.value.reactive.optionsState.components.tabBy) == null ? void 0 : t.selectorStates[0];
35
+ }), u = p(() => {
36
+ var t;
37
+ return (t = w.value) == null ? void 0 : t.selectedSource;
38
+ }), B = p(() => {
39
+ var t, e;
40
+ return (e = (t = w.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
41
+ }), c = h(B.value);
42
+ S(() => u.value, (t, e) => {
43
+ t !== e && (c.value = B.value);
41
44
  }, { immediate: !0 });
42
- async function $(e) {
45
+ async function L(t) {
43
46
  if (!a.value.columnsDataStore)
44
47
  return Promise.resolve([]);
45
- const t = await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, e, w);
46
- return t.overflow ? null : t.values;
48
+ const e = await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, N);
49
+ return e.overflow ? null : e.values;
47
50
  }
48
- const p = v();
49
- m(() => i.value, async (e) => {
50
- e !== void 0 && (p.value = await $(e));
51
- }), m(() => p.value, async (e) => {
52
- if (i.value === void 0 || // no tabBy selected
53
- s.value !== void 0 || // tabBy selected and has selected value
54
- e === void 0)
51
+ const f = h();
52
+ S(() => u.value, async (t) => {
53
+ t !== void 0 && (f.value = await L(t));
54
+ }), S(() => f.value, async (t) => {
55
+ if (u.value === void 0 || // no tabBy selected
56
+ c.value !== void 0 || // tabBy selected and has selected value
57
+ t === void 0)
55
58
  return;
56
- let t = e;
57
- if (e === null && (t = await B(i.value, "")), t != null && t.length) {
58
- const u = t[0].value;
59
- s.value = u, f(u);
59
+ let e = t;
60
+ if (t === null && (e = await D(u.value, "")), e != null && e.length) {
61
+ const l = e[0].value;
62
+ c.value = l, g(l);
60
63
  }
61
64
  }, { immediate: !0 });
62
- function f(e) {
63
- const t = a.value.reactive.optionsState.components.tabBy.selectorStates;
64
- t.length && (a.value.reactive.optionsState.components.tabBy.selectorStates = [{
65
- ...t[0],
65
+ function g(t) {
66
+ const e = a.value.reactive.optionsState.components.tabBy.selectorStates;
67
+ e.length && (a.value.reactive.optionsState.components.tabBy.selectorStates = [{
68
+ ...e[0],
66
69
  type: "equals",
67
- selectedFilterValues: [e]
70
+ selectedFilterValues: [t]
68
71
  }]);
69
72
  }
70
- function L(e) {
71
- const t = e.currentTarget;
72
- h.value = t.value, y("graph-title-update", t.value);
73
+ function F(t) {
74
+ const e = t.currentTarget;
75
+ y.value = e.value, C("graph-title-update", e.value);
76
+ }
77
+ function U(t) {
78
+ C("dendro-node-select", t);
73
79
  }
74
- function F(e) {
75
- y("dendro-node-select", e);
80
+ async function D(t, e) {
81
+ return a.value.columnsDataStore ? (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, N, e || void 0)).values : Promise.resolve([]);
76
82
  }
77
- async function B(e, t) {
78
- return a.value.columnsDataStore ? (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, e, w, t || void 0)).values : Promise.resolve([]);
83
+ async function A(t, e) {
84
+ return a.value.columnsDataStore ? (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, 1, void 0, e)).values[0] : Promise.resolve({ value: e, label: e });
85
+ }
86
+ const _ = h(), E = p(() => {
87
+ var e;
88
+ if (a.value.reactive.chartType !== "discrete")
89
+ return !1;
90
+ const t = a.value.reactive.optionsState.components;
91
+ if ((e = t.primaryGrouping) != null && e.selectorStates.length) {
92
+ const l = t.primaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[l];
93
+ if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
94
+ return Object.values(o.hidden).length > 0 && o.order.some((d) => {
95
+ var v;
96
+ return (v = o.hidden) == null ? void 0 : v[d];
97
+ });
98
+ }
99
+ return !1;
100
+ }), I = p(() => {
101
+ var e;
102
+ if (a.value.reactive.chartType !== "discrete")
103
+ return !1;
104
+ const t = a.value.reactive.optionsState.components;
105
+ if ((e = t.secondaryGrouping) != null && e.selectorStates.length) {
106
+ const l = t.secondaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[l];
107
+ if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
108
+ return Object.values(o.hidden).length > 0 && o.order.some((d) => {
109
+ var v;
110
+ return (v = o.hidden) == null ? void 0 : v[d];
111
+ });
112
+ }
113
+ return !1;
114
+ });
115
+ function q() {
116
+ a.value.reactive.tabDefaultState.axes.reorderPrimaryOpen = !0, a.value.reactive.currentTab = "axes";
79
117
  }
80
- async function N(e, t) {
81
- return a.value.columnsDataStore ? (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, e, 1, void 0, t)).values[0] : Promise.resolve({ value: t, label: t });
118
+ function M() {
119
+ a.value.reactive.tabDefaultState.axes.reorderSecondaryOpen = !0, a.value.reactive.currentTab = "axes";
82
120
  }
83
- const T = v();
84
- return (e, t) => {
85
- var u;
86
- return r(), b("div", Y, [
87
- c("div", Z, [
88
- c("input", {
121
+ return (t, e) => {
122
+ var l;
123
+ return n(), b("div", re, [
124
+ m("div", ne, [
125
+ m("input", {
89
126
  class: "chart_title",
90
- value: h.value,
91
- onChange: L,
92
- onKeyup: t[0] || (t[0] = E((o) => {
93
- var _;
94
- (_ = o.target) == null || _.blur();
127
+ value: y.value,
128
+ onChange: F,
129
+ onKeyup: e[0] || (e[0] = j((o) => {
130
+ var d;
131
+ (d = o.target) == null || d.blur();
95
132
  }, ["enter"]))
96
- }, null, 40, x),
97
- (r(), n(H(J), { class: "chart_titleEdit" })),
98
- c("div", ee, [
99
- I(e.$slots, "default")
133
+ }, null, 40, le),
134
+ (n(), i(K(ae), { class: "chart_titleEdit" })),
135
+ m("div", ie, [
136
+ z(t.$slots, "default")
100
137
  ])
101
138
  ]),
102
- U(l(A), {
139
+ P(r(X), {
103
140
  type: "success",
104
- modelValue: l(a).reactive.showTooltipHint,
105
- "onUpdate:modelValue": t[1] || (t[1] = (o) => l(a).reactive.showTooltipHint = o),
141
+ modelValue: r(a).reactive.showTooltipHint,
142
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => r(a).reactive.showTooltipHint = o),
106
143
  class: "chart_tooltipHint",
107
144
  width: "170px"
108
145
  }, {
109
- default: O(() => t[8] || (t[8] = [
110
- q(" Hit enter to pin tooltip ")
146
+ default: T(() => e[10] || (e[10] = [
147
+ k(" Hit enter to pin tooltip ")
111
148
  ])),
112
149
  _: 1
113
150
  }, 8, ["modelValue"]),
114
- i.value ? (r(), b("div", te, [
115
- p.value ? (r(), n(l(G), {
151
+ u.value ? (n(), b("div", se, [
152
+ f.value ? (n(), i(r(J), {
116
153
  key: 0,
117
154
  label: "Show for",
118
- modelValue: s.value,
155
+ modelValue: c.value,
119
156
  "onUpdate:modelValue": [
120
- t[2] || (t[2] = (o) => s.value = o),
121
- t[3] || (t[3] = (o) => f(o))
157
+ e[2] || (e[2] = (o) => c.value = o),
158
+ e[3] || (e[3] = (o) => g(o))
122
159
  ],
123
- options: p.value
124
- }, null, 8, ["modelValue", "options"])) : (r(), n(l(W), {
160
+ options: f.value
161
+ }, null, 8, ["modelValue", "options"])) : (n(), i(r(Q), {
125
162
  key: 1,
126
- modelValue: s.value,
163
+ modelValue: c.value,
127
164
  "onUpdate:modelValue": [
128
- t[4] || (t[4] = (o) => s.value = o),
129
- t[5] || (t[5] = (o) => f(o))
165
+ e[4] || (e[4] = (o) => c.value = o),
166
+ e[5] || (e[5] = (o) => g(o))
130
167
  ],
131
- "options-search": (o) => B(i.value, o),
132
- "model-search": (o) => N(i.value, o)
168
+ "options-search": (o) => D(u.value, o),
169
+ "model-search": (o) => A(u.value, o)
133
170
  }, null, 8, ["modelValue", "options-search", "model-search"]))
134
- ])) : d("", !0),
135
- c("div", {
136
- class: k(["chart_main-content", [{ "chart_main-content__dendro": l(a).reactive.chartType === "dendro" }, "pl-scrollable"]]),
171
+ ])) : s("", !0),
172
+ m("div", {
173
+ class: H(["chart_main-content", [{ "chart_main-content__dendro": r(a).reactive.chartType === "dendro" }, "pl-scrollable"]]),
137
174
  ref_key: "chartContainerRef",
138
- ref: T
175
+ ref: _
139
176
  }, [
140
- c("div", {
177
+ m("div", {
141
178
  id: "chartSvgContainer",
142
- class: k({
143
- chart_loading: l(a).loading.initialCharts && e.graphStatus === "ready",
144
- chart_noDataMapping: e.graphStatus === "notReady",
145
- chart_emptyData: e.graphStatus === "empty",
146
- chart_inconsistent: e.graphStatus === "inconsistent",
147
- chart_error: e.graphStatus === "error",
148
- chart_activeLassoSelection: ((u = l(a).reactive.lassoControlsState) == null ? void 0 : u.mode) === "selection"
179
+ class: H({
180
+ chart_loading: r(a).loading.initialCharts && t.graphStatus === "ready",
181
+ chart_noDataMapping: t.graphStatus === "notReady",
182
+ chart_emptyData: t.graphStatus === "empty",
183
+ chart_inconsistent: t.graphStatus === "inconsistent",
184
+ chart_error: t.graphStatus === "error",
185
+ chart_activeLassoSelection: ((l = r(a).reactive.lassoControlsState) == null ? void 0 : l.mode) === "selection"
149
186
  })
150
187
  }, [
151
- l(a).loading.initialCharts && e.graphStatus === "ready" ? (r(), n(X, { key: 0 })) : d("", !0)
188
+ r(a).loading.initialCharts && t.graphStatus === "ready" ? (n(), i(ee, { key: 0 })) : s("", !0)
152
189
  ], 2),
153
- l(a).reactive.chartType === "dendro" && e.chartData && l(a).reactive.layersSettings.dendro.showTable ? (r(), n(K, {
190
+ r(a).reactive.chartType === "dendro" && t.chartData && r(a).reactive.layersSettings.dendro.showTable ? (n(), i(Y, {
154
191
  key: 0,
155
- chartData: e.chartData,
156
- onRowSelect: F
157
- }, null, 8, ["chartData"])) : d("", !0),
158
- l(a).reactive.dendroInfoByClick ? (r(), n(M, {
192
+ chartData: t.chartData,
193
+ onRowSelect: U
194
+ }, null, 8, ["chartData"])) : s("", !0),
195
+ r(a).reactive.dendroInfoByClick ? (n(), i(Z, {
159
196
  key: 1,
160
- info: l(a).reactive.dendroInfoByClick,
161
- containerRef: T.value,
162
- tooltipBtn: e.dendroTooltipButton,
163
- onTooltipBtnClick: t[6] || (t[6] = (o) => e.$emit("dendro-tooltip-btn-click", o)),
164
- onClose: t[7] || (t[7] = (o) => {
165
- l(a).reactive.dendroInfoByClick = null, e.$emit("dendro-node-select", null);
197
+ info: r(a).reactive.dendroInfoByClick,
198
+ containerRef: _.value,
199
+ tooltipBtn: t.dendroTooltipButton,
200
+ onTooltipBtnClick: e[6] || (e[6] = (o) => t.$emit("dendro-tooltip-btn-click", o)),
201
+ onClose: e[7] || (e[7] = (o) => {
202
+ r(a).reactive.dendroInfoByClick = null, t.$emit("dendro-node-select", null);
166
203
  })
167
- }, null, 8, ["info", "containerRef", "tooltipBtn"])) : d("", !0)
204
+ }, null, 8, ["info", "containerRef", "tooltipBtn"])) : s("", !0)
168
205
  ], 2),
169
- c("div", ae, [
170
- e.graphStatus !== "empty" ? (r(), n(j, { key: 0 })) : d("", !0),
171
- e.graphStatus !== "empty" && l(a).reactive.chartType === "scatterplot-umap" ? (r(), n(z, {
206
+ t.graphStatus !== "empty" ? (n(), b("div", ue, [
207
+ P(te),
208
+ r(a).reactive.chartType === "scatterplot-umap" ? (n(), i(x, {
209
+ key: 0,
210
+ "chart-ref": t.chartRef
211
+ }, null, 8, ["chart-ref"])) : s("", !0),
212
+ E.value ? (n(), i(r(G), {
172
213
  key: 1,
173
- "chart-ref": e.chartRef
174
- }, null, 8, ["chart-ref"])) : d("", !0)
175
- ])
214
+ icon: "view-hide",
215
+ onClick: e[8] || (e[8] = R(() => q(), ["stop"]))
216
+ }, {
217
+ default: T(() => e[11] || (e[11] = [
218
+ k(" Hidden (primary) ")
219
+ ])),
220
+ _: 1
221
+ })) : s("", !0),
222
+ I.value ? (n(), i(r(G), {
223
+ key: 2,
224
+ icon: "view-hide",
225
+ onClick: e[9] || (e[9] = R(() => M(), ["stop"]))
226
+ }, {
227
+ default: T(() => e[12] || (e[12] = [
228
+ k(" Hidden (secondary) ")
229
+ ])),
230
+ _: 1
231
+ })) : s("", !0)
232
+ ])) : s("", !0)
176
233
  ]);
177
234
  };
178
235
  }
179
236
  });
180
237
  export {
181
- ve as default
238
+ be as default
182
239
  };
183
240
  //# sourceMappingURL=Chart.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Chart.vue.js","sources":["../../../src/GraphMaker/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ChartInterface } from '@milaboratories/miplots4';\nimport { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport { ListOption, PlAutocomplete, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../../GraphMaker/components/DendroTable.vue';\nimport DendroTooltip from '../../GraphMaker/components/DendroTooltip.vue';\nimport LassoControls from '../../GraphMaker/components/LassoControls/index.vue';\nimport Loading from '../../GraphMaker/components/Loading.vue';\nimport Zoom from '../../GraphMaker/components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../GraphMaker/constantsCommon.ts';\nimport EditIcon from '../../GraphMaker/icons/EditIcon.vue';\nimport { useStore } from '../../GraphMaker/store.ts';\nimport { GraphStatus } from '../../GraphMaker/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}>();\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]);\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\nasync function loadOptions(sourceId:string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[]|null|undefined>();\nwatch(() => tabBySource.value, async (v) => {\n if (v === undefined) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n});\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\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\nasync function searchFilterOptions(sourceId:string, searchStr:string):Promise<ListOption[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n}\n\nasync function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<ListOption> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({ value: selectedValue, label: selectedValue });\n }\n const r = (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n return r[0];\n}\n\nconst chartContainerRef = ref();\n</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input class=\"chart_title\" :value=\"title\" @change=\"onTitleChange\"\n @keyup.enter=\"(e) => {(e.target as HTMLInputElement)?.blur()}\" />\n <component class=\"chart_titleEdit\" :is=\"EditIcon\" />\n <div class=\"chart_titleLineSlot\">\n <slot></slot>\n </div>\n </div>\n <PlNotificationAlert\n type=\"success\"\n v-model=\"store.reactive.showTooltipHint\"\n class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div class=\"chart_tabBy\" v-if=\"tabBySource\">\n <pl-dropdown\n v-if=\"preloadedOptions\"\n label=\"Show for\"\n v-model=\"tabByLocalValue\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n :options=\"preloadedOptions\"\n />\n <pl-autocomplete\n v-else\n v-model=\"tabByLocalValue\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n :options-search=\"(str) => searchFilterOptions(tabBySource as string, str)\"\n :model-search=\"(v) => searchSelectedFilterValueOptions(tabBySource as string, v as string)\"\n />\n </div>\n <div class=\"chart_main-content\" ref=\"chartContainerRef\"\n :class=\"[{'chart_main-content__dendro': store.reactive.chartType === 'dendro'}, 'pl-scrollable']\">\n <div\n id=\"chartSvgContainer\"\n :class=\"{\n 'chart_loading': store.loading.initialCharts && graphStatus === 'ready',\n 'chart_noDataMapping': graphStatus === 'notReady',\n 'chart_emptyData': graphStatus === 'empty',\n 'chart_inconsistent': graphStatus === 'inconsistent',\n 'chart_error': graphStatus === 'error',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <loading v-if=\"store.loading.initialCharts && graphStatus === 'ready'\" />\n </div>\n <dendro-table\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\"\n @row-select=\"onTableRowSelect\"\n />\n <dendro-tooltip\n v-if=\"store.reactive.dendroInfoByClick\"\n :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\"\n :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id:string) => $emit('dendro-tooltip-btn-click', id)\"\n @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div class=\"chart_controls\">\n <zoom v-if=\"graphStatus !== 'empty'\" />\n <lasso-controls v-if=\"graphStatus !== 'empty' && store.reactive.chartType === 'scatterplot-umap'\" :chart-ref=\"chartRef\"/>\n </div>\n </div>\n</template>\n"],"names":["emit","__emit","store","useStore","props","__props","title","ref","watch","graphTitle","tabByState","computed","_a","tabBySource","tabByFilterValue","_b","tabByLocalValue","value","prevValue","loadOptions","sourceId","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","target","onTableRowSelect","id","searchStr","searchSelectedFilterValueOptions","selectedValue","chartContainerRef"],"mappings":"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"}
1
+ {"version":3,"file":"Chart.vue.js","sources":["../../../src/GraphMaker/components/Chart.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { ChartInterface } from '@milaboratories/miplots4';\nimport { SelectorStateFilter } from '@milaboratories/pf-plots';\nimport { ListOption, PlAutocomplete, PlBtnGhost, PlDropdown, PlNotificationAlert } from '@platforma-sdk/ui-vue';\nimport { computed, ref, watch } from 'vue';\nimport DendroTable from '../../GraphMaker/components/DendroTable.vue';\nimport DendroTooltip from '../../GraphMaker/components/DendroTooltip.vue';\nimport LassoControls from '../../GraphMaker/components/LassoControls/index.vue';\nimport Loading from '../../GraphMaker/components/Loading.vue';\nimport Zoom from '../../GraphMaker/components/Zoom/index.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../GraphMaker/constantsCommon.ts';\nimport EditIcon from '../../GraphMaker/icons/EditIcon.vue';\nimport { useStore } from '../../GraphMaker/store.ts';\nimport { GraphStatus } from '../../GraphMaker/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}>();\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]);\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\nasync function loadOptions(sourceId:string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n const response = await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n return response.overflow ? null : response.values;\n}\nconst preloadedOptions = ref<ListOption[]|null|undefined>();\nwatch(() => tabBySource.value, async (v) => {\n if (v === undefined) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n});\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\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\nasync function searchFilterOptions(sourceId:string, searchStr:string):Promise<ListOption[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n}\n\nasync function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<ListOption> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({ value: selectedValue, label: selectedValue });\n }\n const r = (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, store.value.inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n return r[0];\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</script>\n\n<template>\n <div class=\"chart_container\">\n <div class=\"chart_header\">\n <input class=\"chart_title\" :value=\"title\" @change=\"onTitleChange\"\n @keyup.enter=\"(e) => {(e.target as HTMLInputElement)?.blur()}\" />\n <component class=\"chart_titleEdit\" :is=\"EditIcon\" />\n <div class=\"chart_titleLineSlot\">\n <slot></slot>\n </div>\n </div>\n <PlNotificationAlert\n type=\"success\"\n v-model=\"store.reactive.showTooltipHint\"\n class=\"chart_tooltipHint\"\n width=\"170px\"\n >\n Hit enter to pin tooltip\n </PlNotificationAlert>\n <div class=\"chart_tabBy\" v-if=\"tabBySource\">\n <pl-dropdown\n v-if=\"preloadedOptions\"\n label=\"Show for\"\n v-model=\"tabByLocalValue\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n :options=\"preloadedOptions\"\n />\n <pl-autocomplete\n v-else\n v-model=\"tabByLocalValue\"\n @update:modelValue=\"(v) => onFilterValueUpdate(v as string)\"\n :options-search=\"(str) => searchFilterOptions(tabBySource as string, str)\"\n :model-search=\"(v) => searchSelectedFilterValueOptions(tabBySource as string, v as string)\"\n />\n </div>\n <div class=\"chart_main-content\" ref=\"chartContainerRef\"\n :class=\"[{'chart_main-content__dendro': store.reactive.chartType === 'dendro'}, 'pl-scrollable']\">\n <div\n id=\"chartSvgContainer\"\n :class=\"{\n 'chart_loading': store.loading.initialCharts && graphStatus === 'ready',\n 'chart_noDataMapping': graphStatus === 'notReady',\n 'chart_emptyData': graphStatus === 'empty',\n 'chart_inconsistent': graphStatus === 'inconsistent',\n 'chart_error': graphStatus === 'error',\n 'chart_activeLassoSelection': store.reactive.lassoControlsState?.mode === 'selection'\n }\"\n >\n <loading v-if=\"store.loading.initialCharts && graphStatus === 'ready'\" />\n </div>\n <dendro-table\n v-if=\"store.reactive.chartType === 'dendro' && chartData && store.reactive.layersSettings.dendro.showTable\"\n :chartData=\"chartData\"\n @row-select=\"onTableRowSelect\"\n />\n <dendro-tooltip\n v-if=\"store.reactive.dendroInfoByClick\"\n :info=\"store.reactive.dendroInfoByClick\"\n :containerRef=\"chartContainerRef\"\n :tooltipBtn=\"dendroTooltipButton\"\n @tooltip-btn-click=\"(id:string) => $emit('dendro-tooltip-btn-click', id)\"\n @close=\"\n store.reactive.dendroInfoByClick = null;\n $emit('dendro-node-select', null);\n \"\n />\n </div>\n <div class=\"chart_controls\" v-if=\"graphStatus !== 'empty'\">\n <zoom />\n <lasso-controls 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","tabByLocalValue","value","prevValue","loadOptions","sourceId","response","MAX_SEARCH_OPTIONS_LIST_LENGTH","preloadedOptions","v","opts","availableOptions","searchFilterOptions","nextFilterValue","onFilterValueUpdate","prevSelectorStates","onTitleChange","e","target","onTableRowSelect","id","searchStr","searchSelectedFilterValueOptions","selectedValue","chartContainerRef","hasPrimaryHidden","optionsState","columnName","dataBindAes","hasSecondaryHidden","openAxesSettingsPrimary","openAxesSettingsSecondary"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DiscreteAxesSettingsForm.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue"],"names":[],"mappings":";AAuiCA,wBAMG"}
1
+ {"version":3,"file":"DiscreteAxesSettingsForm.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue"],"names":[],"mappings":";AAymCA,wBAMG"}