@milaboratories/graph-maker 1.1.169 → 1.1.171
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.
- package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/Chart.vue.js +44 -34
- package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts +0 -2
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js +26 -33
- package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js +14 -17
- package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js +49 -50
- package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts +5 -2
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js +46 -43
- package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
- package/dist/GraphMaker/components/DragAndDrop/types.d.ts +6 -3
- package/dist/GraphMaker/components/DragAndDrop/types.d.ts.map +1 -1
- package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +3 -2
- package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.d.ts.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js +40 -43
- package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/DiscreteForm.vue.js +9 -8
- package/dist/GraphMaker/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/useBaskets.d.ts.map +1 -1
- package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js +15 -18
- package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.js +8 -7
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +3 -2
- package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
- package/dist/GraphMaker/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +3 -2
- package/dist/GraphMaker/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
- package/dist/GraphMaker/index.vue.d.ts.map +1 -1
- package/dist/GraphMaker/index.vue.js +49 -48
- package/dist/GraphMaker/index.vue.js.map +1 -1
- package/dist/GraphMaker/store.d.ts +3 -2
- package/dist/GraphMaker/store.d.ts.map +1 -1
- package/dist/GraphMaker/store.js +132 -116
- package/dist/GraphMaker/store.js.map +1 -1
- package/dist/GraphMaker/types.d.ts +8 -1
- package/dist/GraphMaker/types.d.ts.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js +3 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js +3 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +3 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.js +3 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +3 -2
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +7 -6
- package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
- package/dist/GraphMaker/utils/getUsedAesInMapping.js +15 -14
- package/dist/GraphMaker/utils/getUsedAesInMapping.js.map +1 -1
- package/dist/GraphMaker/utils/loadDefaultSources.js +16 -15
- package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts +5 -3
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +66 -72
- package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
- package/dist/node_modules/@milaboratories/helpers/dist/utils.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/Lasso.js +98 -103
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/Lasso.js.map +1 -1
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +2 -2
- package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
- package/dist/node_modules/@milaboratories/pl-model-common/dist/bmodel/code.js +6 -0
- package/dist/node_modules/@milaboratories/pl-model-common/dist/bmodel/code.js.map +1 -0
- package/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js +1 -0
- package/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Chart.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/components/Chart.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Chart.vue.d.ts","sourceRoot":"","sources":["../../../src/GraphMaker/components/Chart.vue"],"names":[],"mappings":"AAkPA,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,CAAC;CACjC,CAAC;AA0IF,iBAAS,cAAc;WAmQT,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,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent as W, ref as h, watch as S, computed as
|
|
1
|
+
import { defineComponent as W, ref as h, watch as S, computed as m, createElementBlock as b, openBlock as n, createElementVNode as f, createVNode as G, 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 P, withModifiers as H } from "vue";
|
|
2
2
|
import { PlNotificationAlert as X, PlDropdown as J, PlAutocomplete as Q, PlBtnGhost as R } from "@platforma-sdk/ui-vue";
|
|
3
3
|
import Y from "./DendroTable.vue.js";
|
|
4
4
|
import Z from "./DendroTooltip.vue.js";
|
|
@@ -25,22 +25,22 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
25
25
|
},
|
|
26
26
|
emits: ["graph-title-update", "dendro-node-select", "dendro-tooltip-btn-click"],
|
|
27
27
|
setup(O, { emit: $ }) {
|
|
28
|
-
const
|
|
28
|
+
const V = $, a = oe(), w = O, y = h(w.graphTitle);
|
|
29
29
|
S(() => w.graphTitle, (t) => {
|
|
30
30
|
y.value = t;
|
|
31
31
|
});
|
|
32
|
-
const
|
|
32
|
+
const B = m(() => {
|
|
33
33
|
var t;
|
|
34
34
|
return (t = a.value.reactive.optionsState.components.tabBy) == null ? void 0 : t.selectorStates[0];
|
|
35
|
-
}), u =
|
|
35
|
+
}), u = m(() => {
|
|
36
36
|
var t;
|
|
37
|
-
return (t =
|
|
38
|
-
}),
|
|
37
|
+
return (t = B.value) == null ? void 0 : t.selectedSource;
|
|
38
|
+
}), C = m(() => {
|
|
39
39
|
var t, e;
|
|
40
|
-
return (e = (t =
|
|
41
|
-
}), c = h(
|
|
40
|
+
return (e = (t = B.value) == null ? void 0 : t.selectedFilterValues) == null ? void 0 : e[0];
|
|
41
|
+
}), c = h(C.value);
|
|
42
42
|
S(() => u.value, (t, e) => {
|
|
43
|
-
t !== e && (c.value =
|
|
43
|
+
t !== e && (c.value = C.value);
|
|
44
44
|
}, { immediate: !0 });
|
|
45
45
|
async function L(t) {
|
|
46
46
|
if (!a.value.columnsDataStore)
|
|
@@ -48,13 +48,13 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
48
48
|
const e = await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, N);
|
|
49
49
|
return e.overflow ? null : e.values;
|
|
50
50
|
}
|
|
51
|
-
const
|
|
51
|
+
const v = h();
|
|
52
52
|
S([
|
|
53
53
|
() => u.value,
|
|
54
54
|
() => a.value.loading.inputGuide
|
|
55
55
|
], async ([t, e]) => {
|
|
56
|
-
t === void 0 || e || (
|
|
57
|
-
}, { immediate: !0 }), S(() =>
|
|
56
|
+
t === void 0 || e || !a.value.columnsDataStore || (v.value = await L(t));
|
|
57
|
+
}, { immediate: !0 }), S(() => v.value, async (t) => {
|
|
58
58
|
if (u.value === void 0 || // no tabBy selected
|
|
59
59
|
c.value !== void 0 || // tabBy selected and has selected value
|
|
60
60
|
t === void 0)
|
|
@@ -75,18 +75,25 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
75
75
|
}
|
|
76
76
|
function F(t) {
|
|
77
77
|
const e = t.currentTarget;
|
|
78
|
-
y.value = e.value,
|
|
78
|
+
y.value = e.value, V("graph-title-update", e.value);
|
|
79
79
|
}
|
|
80
80
|
function U(t) {
|
|
81
|
-
|
|
81
|
+
V("dendro-node-select", t);
|
|
82
82
|
}
|
|
83
83
|
async function D(t, e) {
|
|
84
84
|
return a.value.columnsDataStore ? (await a.value.controller.getUniqueSourceValuesWithLabels(a.value.columnsDataStore, a.value.inputGuide.value, t, N, e || void 0)).values : Promise.resolve([]);
|
|
85
85
|
}
|
|
86
86
|
async function A(t, e) {
|
|
87
|
-
return a.value.columnsDataStore ?
|
|
87
|
+
return a.value.columnsDataStore ? await a.value.controller.getUniqueSourceValuesWithLabels(
|
|
88
|
+
a.value.columnsDataStore,
|
|
89
|
+
a.value.inputGuide.value,
|
|
90
|
+
t,
|
|
91
|
+
1,
|
|
92
|
+
void 0,
|
|
93
|
+
e
|
|
94
|
+
).then((o) => o.values[0]) : Promise.resolve({ value: e, label: " " });
|
|
88
95
|
}
|
|
89
|
-
const _ = h(), E =
|
|
96
|
+
const _ = h(), E = m(() => {
|
|
90
97
|
var e;
|
|
91
98
|
if (a.value.reactive.chartType !== "discrete")
|
|
92
99
|
return !1;
|
|
@@ -95,12 +102,12 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
95
102
|
const l = t.primaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[l];
|
|
96
103
|
if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
|
|
97
104
|
return Object.values(o.hidden).length > 0 && o.order.some((d) => {
|
|
98
|
-
var
|
|
99
|
-
return (
|
|
105
|
+
var p;
|
|
106
|
+
return (p = o.hidden) == null ? void 0 : p[d];
|
|
100
107
|
});
|
|
101
108
|
}
|
|
102
109
|
return !1;
|
|
103
|
-
}), I =
|
|
110
|
+
}), I = m(() => {
|
|
104
111
|
var e;
|
|
105
112
|
if (a.value.reactive.chartType !== "discrete")
|
|
106
113
|
return !1;
|
|
@@ -109,8 +116,8 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
109
116
|
const l = t.secondaryGrouping.selectorStates[0].selectedSource, o = a.value.reactive.dataBindAes[l];
|
|
110
117
|
if ((o == null ? void 0 : o.type) === "categorical" && o.hidden)
|
|
111
118
|
return Object.values(o.hidden).length > 0 && o.order.some((d) => {
|
|
112
|
-
var
|
|
113
|
-
return (
|
|
119
|
+
var p;
|
|
120
|
+
return (p = o.hidden) == null ? void 0 : p[d];
|
|
114
121
|
});
|
|
115
122
|
}
|
|
116
123
|
return !1;
|
|
@@ -124,8 +131,8 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
124
131
|
return (t, e) => {
|
|
125
132
|
var l;
|
|
126
133
|
return n(), b("div", re, [
|
|
127
|
-
|
|
128
|
-
|
|
134
|
+
f("div", ne, [
|
|
135
|
+
f("input", {
|
|
129
136
|
class: "chart_title",
|
|
130
137
|
value: y.value,
|
|
131
138
|
onChange: F,
|
|
@@ -135,11 +142,11 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
135
142
|
}, ["enter"]))
|
|
136
143
|
}, null, 40, le),
|
|
137
144
|
(n(), i(K(ae), { class: "chart_titleEdit" })),
|
|
138
|
-
|
|
145
|
+
f("div", ie, [
|
|
139
146
|
z(t.$slots, "default")
|
|
140
147
|
])
|
|
141
148
|
]),
|
|
142
|
-
|
|
149
|
+
G(r(X), {
|
|
143
150
|
type: "success",
|
|
144
151
|
modelValue: r(a).reactive.showTooltipHint,
|
|
145
152
|
"onUpdate:modelValue": e[1] || (e[1] = (o) => r(a).reactive.showTooltipHint = o),
|
|
@@ -152,7 +159,7 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
152
159
|
_: 1
|
|
153
160
|
}, 8, ["modelValue"]),
|
|
154
161
|
u.value ? (n(), b("div", se, [
|
|
155
|
-
|
|
162
|
+
v.value || v.value === void 0 && r(a).loading.inputGuide ? (n(), i(r(J), {
|
|
156
163
|
key: 0,
|
|
157
164
|
label: "Show for",
|
|
158
165
|
modelValue: c.value,
|
|
@@ -160,7 +167,7 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
160
167
|
e[2] || (e[2] = (o) => c.value = o),
|
|
161
168
|
e[3] || (e[3] = (o) => g(o))
|
|
162
169
|
],
|
|
163
|
-
options:
|
|
170
|
+
options: v.value
|
|
164
171
|
}, null, 8, ["modelValue", "options"])) : (n(), i(r(Q), {
|
|
165
172
|
key: 1,
|
|
166
173
|
label: "Show for",
|
|
@@ -173,15 +180,15 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
173
180
|
"model-search": (o) => A(u.value, o)
|
|
174
181
|
}, null, 8, ["modelValue", "options-search", "model-search"]))
|
|
175
182
|
])) : s("", !0),
|
|
176
|
-
|
|
177
|
-
class:
|
|
183
|
+
f("div", {
|
|
184
|
+
class: P(["chart_main-content", [{ "chart_main-content__dendro": r(a).reactive.chartType === "dendro" }, "pl-scrollable"]]),
|
|
178
185
|
ref_key: "chartContainerRef",
|
|
179
186
|
ref: _
|
|
180
187
|
}, [
|
|
181
|
-
|
|
188
|
+
f("div", {
|
|
182
189
|
id: "chartSvgContainer",
|
|
183
|
-
class:
|
|
184
|
-
chart_loading:
|
|
190
|
+
class: P({
|
|
191
|
+
chart_loading: t.graphStatus === "loading",
|
|
185
192
|
chart_noDataMapping: t.graphStatus === "notReady",
|
|
186
193
|
chart_emptyData: t.graphStatus === "empty",
|
|
187
194
|
chart_inconsistent: t.graphStatus === "inconsistent",
|
|
@@ -189,7 +196,10 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
189
196
|
chart_activeLassoSelection: ((l = r(a).reactive.lassoControlsState) == null ? void 0 : l.mode) === "selection"
|
|
190
197
|
})
|
|
191
198
|
}, [
|
|
192
|
-
|
|
199
|
+
t.graphStatus === "loading" ? (n(), i(ee, {
|
|
200
|
+
key: 0,
|
|
201
|
+
top: 10
|
|
202
|
+
})) : s("", !0)
|
|
193
203
|
], 2),
|
|
194
204
|
r(a).reactive.chartType === "dendro" && t.chartData && r(a).reactive.layersSettings.dendro.showTable ? (n(), i(Y, {
|
|
195
205
|
key: 0,
|
|
@@ -208,7 +218,7 @@ const re = { class: "chart_container" }, ne = { class: "chart_header" }, le = ["
|
|
|
208
218
|
}, null, 8, ["info", "containerRef", "tooltipBtn"])) : s("", !0)
|
|
209
219
|
], 2),
|
|
210
220
|
t.graphStatus !== "empty" ? (n(), b("div", ue, [
|
|
211
|
-
|
|
221
|
+
G(te),
|
|
212
222
|
r(a).reactive.chartType === "scatterplot-umap" ? (n(), i(x, {
|
|
213
223
|
key: 0,
|
|
214
224
|
"chart-ref": t.chartRef
|
|
@@ -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, 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([\n () => tabBySource.value,\n () => store.value.loading.inputGuide\n], async ([v, loading]) => {\n if (v === undefined || loading) {\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\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 label=\"Show for\"\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","loading","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
|
+
{"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([\n () => tabBySource.value,\n () => store.value.loading.inputGuide\n], async ([v, loading]) => {\n if (v === undefined || loading || !store.value.columnsDataStore) {\n return undefined;\n }\n preloadedOptions.value = await loadOptions(v);\n}, {immediate: true});\n\nwatch(() => preloadedOptions.value, async (opts) => {\n if (\n tabBySource.value === undefined || // no tabBy selected\n tabByLocalValue.value !== undefined || // tabBy selected and has selected value\n opts === undefined // options not loaded yet\n ) {\n return;\n }\n let availableOptions = opts;\n if (opts === null) { // options loaded but too many unique values\n availableOptions = await searchFilterOptions(tabBySource.value, '');\n }\n if (availableOptions?.length) {\n const nextFilterValue = availableOptions[0].value as string;\n tabByLocalValue.value = nextFilterValue;\n onFilterValueUpdate(nextFilterValue);\n }\n}, { immediate: true });\n\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: ' '}); // don't show non-human-readable value\n }\n const value = await store.value.controller.getUniqueSourceValuesWithLabels(\n store.value.columnsDataStore, store.value.inputGuide.value,\n sourceId, 1, undefined, selectedValue).then(v => v.values[0]);\n return value;\n}\n\nconst chartContainerRef = ref();\n\nconst hasPrimaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.primaryGrouping?.selectorStates.length) {\n const columnName = optionsState.primaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some(v => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nconst hasSecondaryHidden = computed(() => {\n if (store.value.reactive.chartType !== 'discrete') {\n return false;\n }\n const optionsState = store.value.reactive.optionsState.components;\n if (optionsState.secondaryGrouping?.selectorStates.length) {\n const columnName = optionsState.secondaryGrouping.selectorStates[0].selectedSource;\n const dataBindAes = store.value.reactive.dataBindAes[columnName];\n if (dataBindAes?.type === 'categorical' && dataBindAes.hidden) {\n return Object.values(dataBindAes.hidden).length > 0 && dataBindAes.order.some(v => dataBindAes.hidden?.[v]);\n }\n }\n return false;\n});\nfunction openAxesSettingsPrimary() {\n store.value.reactive.tabDefaultState['axes'].reorderPrimaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\nfunction openAxesSettingsSecondary() {\n store.value.reactive.tabDefaultState['axes'].reorderSecondaryOpen = true;\n store.value.reactive.currentTab = 'axes';\n}\n\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 || (preloadedOptions === undefined && store.loading.inputGuide)\"\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 label=\"Show for\"\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': graphStatus === 'loading',\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=\"graphStatus === 'loading'\" :top=\"10\"/>\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","loading","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,10 +1,8 @@
|
|
|
1
|
-
import { ListOption } from '@platforma-sdk/ui-vue';
|
|
2
1
|
import { ChipInfo } from './types.ts';
|
|
3
2
|
type __VLS_Props = {
|
|
4
3
|
error: boolean;
|
|
5
4
|
info: ChipInfo;
|
|
6
5
|
sortable?: boolean;
|
|
7
|
-
loadOptions: (sourceId: string) => Promise<ListOption<string>[] | null>;
|
|
8
6
|
};
|
|
9
7
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {} & {
|
|
10
8
|
"close-chip": (item: string) => any;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDBasketChip.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDBasketChip.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DnDBasketChip.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDBasketChip.vue"],"names":[],"mappings":"AA4DA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAGtC,KAAK,WAAW,GAAG;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;;;;;;;;AAoIF,wBASG"}
|
|
@@ -1,74 +1,67 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { PlIcon16 as
|
|
3
|
-
import
|
|
4
|
-
|
|
5
|
-
const V = {
|
|
1
|
+
import { defineComponent as k, ref as b, computed as y, createElementBlock as s, openBlock as o, createElementVNode as t, normalizeClass as i, createCommentVNode as c, createVNode as v, createBlock as d, unref as n, toDisplayString as p } from "vue";
|
|
2
|
+
import { PlIcon16 as r } from "@platforma-sdk/ui-vue";
|
|
3
|
+
import C from "../../assets/drag-and-drop/img/chip-close.svg.js";
|
|
4
|
+
const g = {
|
|
6
5
|
key: 0,
|
|
7
6
|
class: "dnd-basket-chip__handler"
|
|
8
|
-
},
|
|
7
|
+
}, B = { class: "dnd-basket-chip__title-wrapper" }, V = ["title"], D = ["title"], H = ["innerHTML"], E = /* @__PURE__ */ k({
|
|
9
8
|
__name: "DnDBasketChip",
|
|
10
9
|
props: {
|
|
11
10
|
error: { type: Boolean },
|
|
12
11
|
info: {},
|
|
13
|
-
sortable: { type: Boolean }
|
|
14
|
-
loadOptions: { type: Function }
|
|
12
|
+
sortable: { type: Boolean }
|
|
15
13
|
},
|
|
16
14
|
emits: ["close-chip"],
|
|
17
|
-
setup(
|
|
18
|
-
const
|
|
19
|
-
|
|
20
|
-
const h = f, _ = c(), a = v(
|
|
21
|
-
() => n.info.uniqueValues.join("/")
|
|
15
|
+
setup(m, { emit: u }) {
|
|
16
|
+
const l = m, h = u, _ = b(), a = y(
|
|
17
|
+
() => l.info.uniqueValues.join("/")
|
|
22
18
|
);
|
|
23
|
-
function
|
|
24
|
-
h("close-chip",
|
|
19
|
+
function f() {
|
|
20
|
+
h("close-chip", l.info.id);
|
|
25
21
|
}
|
|
26
|
-
|
|
27
|
-
return C(async () => {
|
|
28
|
-
b.value = await n.loadOptions(n.info.id);
|
|
29
|
-
}), (e, N) => (o(), s("div", {
|
|
22
|
+
return (e, N) => (o(), s("div", {
|
|
30
23
|
ref_key: "chipRoot",
|
|
31
24
|
ref: _,
|
|
32
25
|
class: "dnd-basket-chip__group"
|
|
33
26
|
}, [
|
|
34
27
|
t("div", {
|
|
35
|
-
class:
|
|
28
|
+
class: i([{ error: e.error, sortable: e.sortable }, "dnd-basket-chip"])
|
|
36
29
|
}, [
|
|
37
30
|
t("div", {
|
|
38
|
-
class:
|
|
31
|
+
class: i(["dnd-basket-chip__icon", { error: e.error }])
|
|
39
32
|
}, [
|
|
40
|
-
e.error ? (o(),
|
|
33
|
+
e.error ? (o(), d(n(r), {
|
|
41
34
|
key: 0,
|
|
42
35
|
name: "warning",
|
|
43
|
-
class:
|
|
44
|
-
}, null, 8, ["class"])) : (o(),
|
|
36
|
+
class: i({ error: e.error })
|
|
37
|
+
}, null, 8, ["class"])) : (o(), d(n(r), {
|
|
45
38
|
key: 1,
|
|
46
39
|
name: e.info.isSubsetFilter ? "cell-type-subset" : e.info.type === "String" ? "cell-type-txt" : "cell-type-num"
|
|
47
40
|
}, null, 8, ["name"]))
|
|
48
41
|
], 2),
|
|
49
|
-
e.sortable ? (o(), s("div",
|
|
50
|
-
|
|
51
|
-
t("div",
|
|
42
|
+
e.sortable ? (o(), s("div", g)) : c("", !0),
|
|
43
|
+
v(n(r), { name: "drag-dots" }),
|
|
44
|
+
t("div", B, [
|
|
52
45
|
t("div", {
|
|
53
46
|
class: "dnd-basket-chip__title",
|
|
54
47
|
title: e.info.title
|
|
55
|
-
},
|
|
48
|
+
}, p(e.info.title), 9, V),
|
|
56
49
|
e.info.nonHomogenous ? (o(), s("div", {
|
|
57
50
|
key: 0,
|
|
58
51
|
class: "dnd-basket-chip__sub-title",
|
|
59
52
|
title: a.value
|
|
60
|
-
},
|
|
53
|
+
}, p(a.value), 9, D)) : c("", !0)
|
|
61
54
|
]),
|
|
62
55
|
t("div", {
|
|
63
|
-
innerHTML:
|
|
56
|
+
innerHTML: n(C),
|
|
64
57
|
class: "dnd-basket-chip__icon-close",
|
|
65
|
-
onClick:
|
|
66
|
-
}, null, 8,
|
|
58
|
+
onClick: f
|
|
59
|
+
}, null, 8, H)
|
|
67
60
|
], 2)
|
|
68
61
|
], 512));
|
|
69
62
|
}
|
|
70
63
|
});
|
|
71
64
|
export {
|
|
72
|
-
|
|
65
|
+
E as default
|
|
73
66
|
};
|
|
74
67
|
//# sourceMappingURL=DnDBasketChip.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDBasketChip.vue.js","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDBasketChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport {
|
|
1
|
+
{"version":3,"file":"DnDBasketChip.vue.js","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDBasketChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlIcon16 } from '@platforma-sdk/ui-vue';\nimport { computed, ref } from 'vue';\nimport { ChipInfo } from './types.ts';\nimport CloseChipIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\n\nconst props = defineProps<{\n error: boolean;\n info: ChipInfo;\n sortable?: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'close-chip', item: ChipInfo['id']): void;\n}>();\n\nconst chipRoot = ref<HTMLElement>();\n\nconst dimensionsTitle = computed(() =>\n props.info.uniqueValues.join('/')\n);\n\nfunction closeChip() {\n emit('close-chip', props.info['id']);\n}\n\n</script>\n<template>\n <div ref=\"chipRoot\" class=\"dnd-basket-chip__group\">\n <div :class=\"{ error, sortable }\" class=\"dnd-basket-chip\">\n <div class=\"dnd-basket-chip__icon\" :class=\"{error}\">\n <PlIcon16 v-if=\"error\" name=\"warning\" :class=\"{error}\" />\n <PlIcon16 v-else :name=\"info.isSubsetFilter ? 'cell-type-subset' : info.type === 'String' ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div v-if=\"sortable\" class=\"dnd-basket-chip__handler\"></div>\n <PlIcon16 name=\"drag-dots\" />\n <div class=\"dnd-basket-chip__title-wrapper\">\n <div class=\"dnd-basket-chip__title\" :title=\"info.title\">\n {{ info.title }}\n </div>\n <div\n v-if=\"info.nonHomogenous\"\n class=\"dnd-basket-chip__sub-title\"\n :title=\"dimensionsTitle\"\n >\n {{ dimensionsTitle }}\n </div>\n </div>\n <div\n v-html=\"CloseChipIcon\"\n class=\"dnd-basket-chip__icon-close\"\n @click=\"closeChip\"\n />\n </div>\n </div>\n</template>\n"],"names":["props","__props","emit","__emit","chipRoot","ref","dimensionsTitle","computed","closeChip"],"mappings":";;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GAMRC,IAAOC,GAIPC,IAAWC,EAAA,GAEXC,IAAkBC;AAAA,MAAS,MAC/BP,EAAM,KAAK,aAAa,KAAK,GAAG;AAAA,IAAA;AAGlC,aAASQ,IAAY;AACnB,MAAAN,EAAK,cAAcF,EAAM,KAAK,EAAK;AAAA,IACrC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDRangeChip.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDRangeChip.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DnDRangeChip.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDRangeChip.vue"],"names":[],"mappings":"AAsEA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAKtC,KAAK,WAAW,GAAG;IACjB,IAAI,EAAE,QAAQ,CAAC;IACf,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC;AAwBF,KAAK,iBAAiB,GAAG;IACzB,QAAQ,EAAE,GAAG,CAAC;CACb,GAAG,WAAW,CAAC;;;;;;;;;;;AA0HhB,wBASG"}
|
|
@@ -1,11 +1,10 @@
|
|
|
1
1
|
import { defineComponent as _, mergeModels as c, useModel as f, reactive as h, watch as b, createElementBlock as v, openBlock as g, createElementVNode as e, normalizeClass as M, createVNode as s, unref as n, toDisplayString as V } from "vue";
|
|
2
2
|
import C from "../../assets/drag-and-drop/img/chip-close.svg.js";
|
|
3
3
|
import { PlIcon16 as O, PlNumberField as m } from "@platforma-sdk/ui-vue";
|
|
4
|
-
|
|
5
|
-
const B = {
|
|
4
|
+
const k = {
|
|
6
5
|
ref: "chipRoot",
|
|
7
6
|
class: "dnd-double-chip__group"
|
|
8
|
-
},
|
|
7
|
+
}, B = { class: "dnd-double-chip__top" }, w = { class: "dnd-double-chip__icon" }, E = ["title"], I = { class: "dnd-double-chip__title" }, y = ["innerHTML"], D = { class: "dnd-double-chip__bottom-range" }, N = { class: "dnd-double-chip__bottom-range-row" }, x = { class: "dnd-double-chip__bottom-range-row" }, T = /* @__PURE__ */ _({
|
|
9
8
|
__name: "DnDRangeChip",
|
|
10
9
|
props: /* @__PURE__ */ c({
|
|
11
10
|
info: {},
|
|
@@ -15,11 +14,9 @@ const B = {
|
|
|
15
14
|
filterModifiers: {}
|
|
16
15
|
}),
|
|
17
16
|
emits: /* @__PURE__ */ c(["close-chip"], ["update:filter"]),
|
|
18
|
-
setup(r, { emit:
|
|
17
|
+
setup(r, { emit: H }) {
|
|
19
18
|
var a, u;
|
|
20
|
-
const p = r
|
|
21
|
-
k();
|
|
22
|
-
const d = f(r, "filter"), l = h({
|
|
19
|
+
const p = r, d = f(r, "filter"), l = h({
|
|
23
20
|
min: (a = d.value) == null ? void 0 : a[0],
|
|
24
21
|
max: (u = d.value) == null ? void 0 : u[1]
|
|
25
22
|
});
|
|
@@ -29,28 +26,28 @@ const B = {
|
|
|
29
26
|
d.value = o;
|
|
30
27
|
},
|
|
31
28
|
{ deep: !0 }
|
|
32
|
-
), (o, t) => (g(), v("div",
|
|
29
|
+
), (o, t) => (g(), v("div", k, [
|
|
33
30
|
e("div", {
|
|
34
31
|
class: M([{ error: o.error }, "dnd-double-chip"])
|
|
35
32
|
}, [
|
|
36
|
-
e("div",
|
|
37
|
-
e("div",
|
|
33
|
+
e("div", B, [
|
|
34
|
+
e("div", w, [
|
|
38
35
|
s(n(O), { name: "cell-type-num" })
|
|
39
36
|
]),
|
|
40
37
|
e("div", {
|
|
41
38
|
class: "dnd-double-chip__title-wrapper",
|
|
42
39
|
title: o.info.title
|
|
43
40
|
}, [
|
|
44
|
-
e("div",
|
|
45
|
-
], 8,
|
|
41
|
+
e("div", I, V(o.info.title), 1)
|
|
42
|
+
], 8, E),
|
|
46
43
|
e("div", {
|
|
47
44
|
innerHTML: n(C),
|
|
48
45
|
class: "dnd-double-chip__icon-close",
|
|
49
46
|
onClick: t[0] || (t[0] = (i) => o.$emit("close-chip", p.info.id))
|
|
50
|
-
}, null, 8,
|
|
47
|
+
}, null, 8, y)
|
|
51
48
|
]),
|
|
52
|
-
e("div",
|
|
53
|
-
e("div",
|
|
49
|
+
e("div", D, [
|
|
50
|
+
e("div", N, [
|
|
54
51
|
s(n(m), {
|
|
55
52
|
label: "Min",
|
|
56
53
|
modelValue: l.min,
|
|
@@ -59,7 +56,7 @@ const B = {
|
|
|
59
56
|
useIncrementButtons: !1
|
|
60
57
|
}, null, 8, ["modelValue"])
|
|
61
58
|
]),
|
|
62
|
-
e("div",
|
|
59
|
+
e("div", x, [
|
|
63
60
|
s(n(m), {
|
|
64
61
|
label: "Max",
|
|
65
62
|
modelValue: l.max,
|
|
@@ -74,6 +71,6 @@ const B = {
|
|
|
74
71
|
}
|
|
75
72
|
});
|
|
76
73
|
export {
|
|
77
|
-
|
|
74
|
+
T as default
|
|
78
75
|
};
|
|
79
76
|
//# sourceMappingURL=DnDRangeChip.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DnDRangeChip.vue.js","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDRangeChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ChipInfo } from './types.ts';\nimport CloseIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\nimport { reactive, watch
|
|
1
|
+
{"version":3,"file":"DnDRangeChip.vue.js","sources":["../../../../src/GraphMaker/components/DragAndDrop/DnDRangeChip.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ChipInfo } from './types.ts';\nimport CloseIcon from '../../assets/drag-and-drop/img/chip-close.svg?raw';\nimport { reactive, watch } from 'vue';\nimport { PlIcon16, PlNumberField } from '@platforma-sdk/ui-vue';\n\nconst props = defineProps<{\n info: ChipInfo;\n error: boolean;\n}>();\n\nconst emit = defineEmits<{\n (e: 'close-chip', id: ChipInfo['id']): void;\n}>();\n\nconst filterModel = defineModel('filter', { required: true });\n\nconst range = reactive({\n min: (filterModel.value as number[])?.[0] as number | undefined,\n max: (filterModel.value as number[])?.[1] as number | undefined\n});\n\nwatch(() => range, (rangeValue) => {\n filterModel.value = rangeValue;\n }, { deep: true }\n);\n\n</script>\n\n<template>\n <div ref=\"chipRoot\" class=\"dnd-double-chip__group\">\n <div :class=\"{ error }\" class=\"dnd-double-chip\">\n <div class=\"dnd-double-chip__top\">\n <div class=\"dnd-double-chip__icon\">\n <PlIcon16 name=\"cell-type-num\" />\n </div>\n <div class=\"dnd-double-chip__title-wrapper\" :title=\"info.title\">\n <div class=\"dnd-double-chip__title\">\n {{ info.title }}\n </div>\n </div>\n <div\n v-html=\"CloseIcon\"\n class=\"dnd-double-chip__icon-close\"\n @click=\"$emit('close-chip', props.info.id)\"\n />\n </div>\n <div class=\"dnd-double-chip__bottom-range\">\n <div class=\"dnd-double-chip__bottom-range-row\">\n <PlNumberField\n label=\"Min\"\n v-model=\"range.min\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n />\n </div>\n <div class=\"dnd-double-chip__bottom-range-row\">\n <PlNumberField\n label=\"Max\"\n v-model=\"range.max\"\n :updateOnEnterOrClickOutside=\"true\"\n :useIncrementButtons=\"false\"\n />\n </div>\n </div>\n </div>\n </div>\n</template>\n"],"names":["props","__props","filterModel","_useModel","range","reactive","_a","_b","watch","rangeValue"],"mappings":";;;;;;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GASRC,IAAcC,EAAWF,GAAC,QAA4B,GAEtDG,IAAQC,EAAS;AAAA,MACrB,MAAMC,IAAAJ,EAAY,UAAZ,gBAAAI,EAAiC;AAAA,MACvC,MAAMC,IAAAL,EAAY,UAAZ,gBAAAK,EAAiC;AAAA,IAAC,CACzC;AAED,WAAAC;AAAA,MAAM,MAAMJ;AAAA,MAAO,CAACK,MAAe;AAC/B,QAAAP,EAAY,QAAQO;AAAA,MACtB;AAAA,MAAG,EAAE,MAAM,GAAA;AAAA,IAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DndBasket.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/DragAndDrop/DndBasket.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"DndBasket.vue.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/components/DragAndDrop/DndBasket.vue"],"names":[],"mappings":"AA6LA,OAAO,EAEL,cAAc,EACd,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB,KAAK,WAAW,GAAG,cAAc,CAAC;;;;;;;;;;;;;;;;;AAkTlC,wBASG"}
|