@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
|
@@ -7,7 +7,7 @@ import { DEFAULT_DOT_SHAPE as de } from "../../dataBindAes.js";
|
|
|
7
7
|
import { DEFAULT_BLACK as B } from "../../constantsAesthetic.js";
|
|
8
8
|
import q from "../../components/DragAndDrop/DndChip.vue.js";
|
|
9
9
|
import ce from "../../components/DragAndDrop/DndBasket.vue.js";
|
|
10
|
-
import { MAX_SEARCH_OPTIONS_LIST_LENGTH as
|
|
10
|
+
import { MAX_SEARCH_OPTIONS_LIST_LENGTH as x } from "../../constantsCommon.js";
|
|
11
11
|
const ve = { class: "data-form-input-item" }, pe = {
|
|
12
12
|
key: 0,
|
|
13
13
|
class: "metadata-block"
|
|
@@ -20,31 +20,31 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
20
20
|
}, Le = /* @__PURE__ */ j({
|
|
21
21
|
__name: "DendroForm",
|
|
22
22
|
setup(ge) {
|
|
23
|
-
const
|
|
24
|
-
() =>
|
|
25
|
-
),
|
|
23
|
+
const t = te(), S = t.value.reactive.optionsState, g = J(t.value.reactive, "optionsState"), n = s(
|
|
24
|
+
() => t.value.inputGuide.value
|
|
25
|
+
), w = s(() => t.value.uniqueValuesData.value);
|
|
26
26
|
function O(e) {
|
|
27
27
|
return ue(
|
|
28
28
|
g,
|
|
29
29
|
e,
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
t.value.controller,
|
|
31
|
+
t.value.columnsDataStore
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
function r(e) {
|
|
35
35
|
return se(
|
|
36
36
|
g,
|
|
37
37
|
e,
|
|
38
|
-
|
|
39
|
-
|
|
38
|
+
t.value.controller,
|
|
39
|
+
t.value.columnsDataStore
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
function A(e) {
|
|
43
43
|
return ie(
|
|
44
44
|
g,
|
|
45
45
|
e,
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
t.value.controller,
|
|
47
|
+
t.value.columnsDataStore,
|
|
48
48
|
n
|
|
49
49
|
);
|
|
50
50
|
}
|
|
@@ -67,17 +67,17 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
67
67
|
f(
|
|
68
68
|
() => l.value.nodeShape,
|
|
69
69
|
(e) => {
|
|
70
|
-
|
|
70
|
+
t.value.reactive.layersSettings.dendro.dotShape = e.length ? { type: "nodeShape", value: e[0] } : de;
|
|
71
71
|
}
|
|
72
72
|
), f(
|
|
73
73
|
() => l.value.nodeColor,
|
|
74
74
|
(e) => {
|
|
75
|
-
|
|
75
|
+
t.value.reactive.layersSettings.dendro.dotFill = e.length ? { type: "nodeColor", value: e[0] } : B;
|
|
76
76
|
}
|
|
77
77
|
), f(
|
|
78
78
|
() => l.value.lineColor,
|
|
79
79
|
(e) => {
|
|
80
|
-
|
|
80
|
+
t.value.reactive.layersSettings.dendro.lineColor = e.length ? { type: "lineColor", value: e[0] } : B;
|
|
81
81
|
}
|
|
82
82
|
);
|
|
83
83
|
const p = s(() => oe(
|
|
@@ -113,13 +113,13 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
113
113
|
lineColor: "Line color"
|
|
114
114
|
}, i = k(null), m = s(() => {
|
|
115
115
|
const e = /* @__PURE__ */ new Set();
|
|
116
|
-
return b.forEach((
|
|
117
|
-
p.value[
|
|
116
|
+
return b.forEach((o) => {
|
|
117
|
+
p.value[o].forEach((a) => {
|
|
118
118
|
e.add(a.value);
|
|
119
|
-
}), S.components[
|
|
119
|
+
}), S.components[o].selectorStates.forEach((a) => {
|
|
120
120
|
e.add(a.selectedSource);
|
|
121
121
|
});
|
|
122
|
-
}), le(n.value, S.components,
|
|
122
|
+
}), le(n.value, S.components, w.value, [...e]);
|
|
123
123
|
});
|
|
124
124
|
function G(e) {
|
|
125
125
|
l.value[e.id] = [
|
|
@@ -127,11 +127,11 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
127
127
|
e.draggedId
|
|
128
128
|
], i.value = null;
|
|
129
129
|
}
|
|
130
|
-
function H(e,
|
|
131
|
-
l.value[
|
|
130
|
+
function H(e, o) {
|
|
131
|
+
l.value[o] = e;
|
|
132
132
|
}
|
|
133
133
|
function M(e) {
|
|
134
|
-
l.value[e.basketId] = l.value[e.basketId].filter((
|
|
134
|
+
l.value[e.basketId] = l.value[e.basketId].filter((o) => o !== e.chipId);
|
|
135
135
|
}
|
|
136
136
|
function P(e) {
|
|
137
137
|
return n.value.components[e].stateConsistency;
|
|
@@ -139,31 +139,28 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
139
139
|
function U(e) {
|
|
140
140
|
return !n.value.readyData || p.value[e].length === 0 || i.value !== null && !m.value[i.value].availableBasketIds.has(e);
|
|
141
141
|
}
|
|
142
|
-
async function z(e,
|
|
143
|
-
return
|
|
142
|
+
async function z(e, o) {
|
|
143
|
+
return t.value.columnsDataStore ? (await t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore, n.value, e, x, o)).values : Promise.resolve([]);
|
|
144
144
|
}
|
|
145
|
-
async function R(e,
|
|
146
|
-
return
|
|
145
|
+
async function R(e, o) {
|
|
146
|
+
return t.value.columnsDataStore ? (await t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore, n.value, e, 1, void 0, o)).values : Promise.resolve([]);
|
|
147
147
|
}
|
|
148
148
|
async function N(e) {
|
|
149
|
-
|
|
150
|
-
return Promise.resolve([]);
|
|
151
|
-
const t = await o.value.controller.getUniqueSourceValuesWithLabels(o.value.columnsDataStore, n.value, e, w);
|
|
152
|
-
return t.overflow ? null : t.values;
|
|
149
|
+
return t.value.columnsDataStore ? t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore, n.value, e, x) : Promise.resolve({ values: [], overflow: !1 });
|
|
153
150
|
}
|
|
154
151
|
const K = s(
|
|
155
152
|
() => b.map((e) => {
|
|
156
153
|
var c;
|
|
157
|
-
const
|
|
154
|
+
const o = n.value.components[e];
|
|
158
155
|
return {
|
|
159
156
|
id: e,
|
|
160
157
|
title: T[e],
|
|
161
158
|
isFilter: !1,
|
|
162
159
|
sortable: e === "tableContent",
|
|
163
|
-
multiple:
|
|
164
|
-
required:
|
|
160
|
+
multiple: o.multipleSelectors,
|
|
161
|
+
required: o.required,
|
|
165
162
|
disabled: U(e),
|
|
166
|
-
readonly: ((c =
|
|
163
|
+
readonly: ((c = t.value.readonlyInputs) == null ? void 0 : c.includes(e)) ?? !1,
|
|
167
164
|
consistency: P(e),
|
|
168
165
|
draggedId: i.value,
|
|
169
166
|
droppedIds: l.value[e],
|
|
@@ -188,11 +185,11 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
188
185
|
["value"].forEach((e) => {
|
|
189
186
|
f(
|
|
190
187
|
[() => l.value[e], () => p.value],
|
|
191
|
-
([
|
|
192
|
-
(typeof
|
|
188
|
+
([o, a]) => {
|
|
189
|
+
(typeof o > "u" || ne("value", n.value)) && a[e] && a[e].length && t.value.controller.changeSelected(
|
|
193
190
|
e,
|
|
194
|
-
|
|
195
|
-
|
|
191
|
+
t.value.columnsDataStore,
|
|
192
|
+
t.value.reactive.optionsState,
|
|
196
193
|
[{ selectedSource: a[e][0].value }]
|
|
197
194
|
);
|
|
198
195
|
},
|
|
@@ -201,38 +198,38 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
201
198
|
});
|
|
202
199
|
const $ = s(() => {
|
|
203
200
|
var e;
|
|
204
|
-
return ((e =
|
|
201
|
+
return ((e = t.value.readonlyInputs) == null ? void 0 : e.includes("value")) ?? !1;
|
|
205
202
|
});
|
|
206
|
-
return (e,
|
|
203
|
+
return (e, o) => (u(), D(ee, null, {
|
|
207
204
|
dataInputs: E(() => [
|
|
208
205
|
v("div", ve, [
|
|
209
206
|
V(L(Z), {
|
|
210
207
|
label: "Data source:",
|
|
211
208
|
modelValue: l.value.value,
|
|
212
|
-
"onUpdate:modelValue":
|
|
209
|
+
"onUpdate:modelValue": o[0] || (o[0] = (a) => l.value.value = a),
|
|
213
210
|
options: p.value.value,
|
|
214
211
|
disabled: $.value,
|
|
215
212
|
error: L(re)("value", n.value)
|
|
216
213
|
}, null, 8, ["modelValue", "options", "disabled", "error"])
|
|
217
214
|
]),
|
|
218
215
|
I.value.length > 0 ? (u(), d("div", pe, [
|
|
219
|
-
|
|
216
|
+
o[3] || (o[3] = v("div", { class: "title" }, "Drag to build the chart", -1)),
|
|
220
217
|
v("div", me, [
|
|
221
218
|
(u(!0), d(h, null, y(I.value, ({ id: a }) => (u(), D(q, {
|
|
222
219
|
key: a,
|
|
223
220
|
info: m.value[a],
|
|
224
|
-
onDragstart:
|
|
221
|
+
onDragstart: o[1] || (o[1] = (c) => i.value = c),
|
|
225
222
|
onDragend: F
|
|
226
223
|
}, null, 8, ["info"]))), 128))
|
|
227
224
|
])
|
|
228
225
|
])) : C("", !0),
|
|
229
226
|
_.value.length > 0 ? (u(), d("div", fe, [
|
|
230
|
-
|
|
227
|
+
o[4] || (o[4] = v("div", { class: "title" }, "Metadata", -1)),
|
|
231
228
|
v("div", he, [
|
|
232
229
|
(u(!0), d(h, null, y(_.value, ({ id: a }) => (u(), D(q, {
|
|
233
230
|
key: a,
|
|
234
231
|
info: m.value[a],
|
|
235
|
-
onDragstart:
|
|
232
|
+
onDragstart: o[2] || (o[2] = (c) => i.value = c),
|
|
236
233
|
onDragend: F
|
|
237
234
|
}, null, 8, ["info"]))), 128))
|
|
238
235
|
])
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DendroForm.vue.js","sources":["../../../../src/GraphMaker/forms/DataMappingForm/DendroForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport {\n DendroUIState,\n InputGuide,\n InputState\n} from '@milaboratories/pf-plots';\nimport FormLayout from './Layout/FormLayout.vue';\nimport { computed, watch, Ref, toRef, ref } from 'vue';\nimport { useStore } from '../../store';\nimport {\n getAllInputsOptions,\n toFiltersMulti,\n getErrorForPlDropdown,\n toSimpleMulti,\n getChipInfo,\n toSimpleSingle,\n getFreeOptions,\n hasInputError,\n} from './utils';\nimport { DEFAULT_DOT_SHAPE } from '../../dataBindAes';\nimport { DEFAULT_BLACK } from '../../constantsAesthetic';\nimport {\n BasketProps,\n ChipInfo,\n DropItemEvent,\n RemoveItemEvent\n} from '../../components/DragAndDrop/types';\nimport DndChip from '../../components/DragAndDrop/DndChip.vue';\nimport DndBasket from '../../components/DragAndDrop/DndBasket.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../constantsCommon';\n\ntype BasketIds = Exclude<\n keyof (typeof inputStateValues)['value'] & keyof DendroUIState['components'],\n 'value' | 'filters' | 'tabBy'\n>;\n\nconst store = useStore();\nconst state = store.value.reactive.optionsState as DendroUIState;\nconst stateRef = toRef(store.value.reactive, 'optionsState');\n\nconst inputGuide = computed(\n () => store.value.inputGuide.value\n) as unknown as Ref<InputGuide<DendroUIState>>;\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\n//const nodeSize = toRef(state.data.nodeSize.selectorState, \"selectedSource\");\nfunction getSimpleSingle(inputName: keyof InputState['components']) {\n return toSimpleSingle(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore\n );\n}\nfunction getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n );\n}\nfunction getFiltersMulti(inputName: keyof InputState['components']) {\n return toFiltersMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n )\n}\n\nconst inputStateValues = ref({\n value: getSimpleSingle('value'),\n tableContent: getSimpleMulti('tableContent'),\n heatmapAnnotation: getSimpleMulti('heatmapAnnotation'),\n heatmapForSequence: getSimpleMulti('heatmapForSequence'),\n filters: getFiltersMulti('filters'),\n tabBy: getFiltersMulti('tabBy'),\n height: getSimpleMulti('height'),\n labels: getSimpleMulti('labels'),\n nodeShape: getSimpleMulti('nodeShape'),\n nodeColor: getSimpleMulti('nodeColor'),\n nodeSize: getSimpleMulti('nodeSize'),\n lineColor: getSimpleMulti('lineColor'),\n heatmapAxis: getSimpleMulti('heatmapAxis'),\n heatmapGroup: getSimpleMulti('heatmapGroup'),\n});\nwatch(\n () => inputStateValues.value.nodeShape,\n (value) => {\n store.value.reactive.layersSettings.dendro.dotShape = value.length\n ? { type: 'nodeShape', value: value[0] }\n : DEFAULT_DOT_SHAPE;\n }\n);\nwatch(\n () => inputStateValues.value.nodeColor,\n (value) => {\n store.value.reactive.layersSettings.dendro.dotFill = value.length\n ? { type: 'nodeColor', value: value[0] }\n : DEFAULT_BLACK;\n }\n);\nwatch(\n () => inputStateValues.value.lineColor,\n (value) => {\n store.value.reactive.layersSettings.dendro.lineColor = value.length\n ? { type: 'lineColor', value: value[0] }\n : DEFAULT_BLACK;\n }\n);\n\nconst options = computed(() => {\n return getAllInputsOptions(\n state,\n inputGuide as Ref<InputGuide<DendroUIState>>\n );\n});\n\nconst freeOptions = computed(() =>\n getFreeOptions(inputGuide as Ref<InputGuide<InputState>>, BASKETS)\n);\nconst freeMandatoryOptions = computed(() =>\n freeOptions.value.filter((item) => item.info.kind === 'axis')\n);\nconst BASKETS: BasketIds[] = [\n 'height',\n 'tableContent',\n 'labels',\n 'heatmapAnnotation',\n 'heatmapAxis',\n 'heatmapGroup',\n 'heatmapForSequence',\n 'nodeShape',\n 'nodeColor',\n 'nodeSize',\n 'lineColor',\n];\n\nconst BASKET_LABELS: Record<BasketIds, string> = {\n height: 'Connections length',\n tableContent: 'Table/tooltip content',\n labels: 'Labels',\n heatmapAnnotation: 'Heatmap annotation',\n heatmapAxis: 'Heatmap axis',\n heatmapGroup: 'Heatmap group',\n heatmapForSequence: 'Alignment data',\n nodeShape: 'Node shape',\n nodeColor: 'Node color',\n nodeSize: 'Node size',\n lineColor: 'Line color',\n};\n\nconst draggedId = ref<string | null>(null);\n\nconst chipInfo = computed<Record<string, ChipInfo>>(() => {\n const freeAndSelectedIds = new Set<string>();\n BASKETS.forEach((name) => {\n options.value[name].forEach((option) => {\n freeAndSelectedIds.add(option.value);\n });\n state.components[name].selectorStates.forEach((selectorState) => {\n freeAndSelectedIds.add(selectorState.selectedSource);\n });\n });\n return getChipInfo(inputGuide.value, state.components, labelsInfo.value, [...freeAndSelectedIds]);\n});\n\nfunction commonDropItemHandler(event: DropItemEvent<BasketIds>) {\n inputStateValues.value[event.id] = [\n ...inputStateValues.value[event.id],\n event.draggedId,\n ];\n draggedId.value = null;\n}\n\nfunction commonReorder(data: ChipInfo['id'][], name: BasketIds) {\n inputStateValues.value[name] = data;\n}\n\nfunction commonRemoveItem(event: RemoveItemEvent<BasketIds>) {\n inputStateValues.value[event.basketId] = inputStateValues.value[\n event.basketId\n ].filter((op) => op !== event.chipId);\n}\n\nfunction getConsistency(basketId: BasketIds) {\n return inputGuide.value.components[basketId].stateConsistency;\n}\n\nfunction getDisabled(basketId: BasketIds) {\n return (\n !inputGuide.value.readyData ||\n options.value[basketId].length === 0 ||\n (draggedId.value !== null &&\n !chipInfo.value[draggedId.value].availableBasketIds.has(basketId))\n );\n}\n\nasync function searchFilterOptions(sourceId:string, searchStr:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr)).values;\n}\nasync function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\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, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n return response.overflow ? null : response.values;\n}\n\nconst basketsData = computed<BasketProps[]>(() =>\n BASKETS.map((name) => {\n const guide = inputGuide.value.components[name];\n\n const basketProps: BasketProps = {\n id: name,\n title: BASKET_LABELS[name],\n isFilter: false,\n sortable: name === 'tableContent',\n multiple: guide.multipleSelectors,\n required: guide.required,\n disabled: getDisabled(name),\n readonly: store.value.readonlyInputs?.includes(name) ?? false,\n consistency: getConsistency(name),\n draggedId: draggedId.value,\n droppedIds: inputStateValues.value[name],\n info: chipInfo.value,\n\n searchFn: searchFilterOptions,\n searchSelectedValueFn: searchSelectedFilterValueOptions,\n loadOptionsFn: loadOptions,\n\n listeners: {\n 'drop-item': commonDropItemHandler,\n 'remove-item': commonRemoveItem,\n reorder: (data: ChipInfo['id'][]) => commonReorder(data, name)\n },\n };\n return basketProps;\n })\n);\n\nfunction showBasket(basketId: BasketProps['id']) {\n if (basketId === 'heatmapAxis' || basketId === 'heatmapGroup') {\n return inputStateValues.value.heatmapAnnotation !== null;\n }\n return true;\n}\n\nfunction cleanDraggedId() {\n draggedId.value = null;\n}\n\nconst autoFillInputs: (keyof typeof inputStateValues.value)[] = ['value'];\n\nautoFillInputs.forEach((inputName) => {\n watch(\n [() => inputStateValues.value[inputName], () => options.value],\n ([v, vOptions]) => {\n if (\n (typeof v === 'undefined' ||\n hasInputError('value', inputGuide.value)) &&\n vOptions[inputName] &&\n vOptions[inputName].length\n ) {store.value.controller.changeSelected(\n inputName,\n store.value.columnsDataStore!,\n store.value.reactive.optionsState,\n [{selectedSource: vOptions[inputName][0].value}]\n\n );\n }\n },\n { immediate: true }\n );\n});\n\nconst readonlyValue = computed(() => store.value.readonlyInputs?.includes('value') ?? false);\n\n</script>\n\n<template>\n <form-layout>\n <template v-slot:dataInputs>\n <div class=\"data-form-input-item\">\n <pl-dropdown\n label=\"Data source:\"\n v-model=\"inputStateValues.value\"\n :options=\"options.value\"\n :disabled=\"readonlyValue\"\n :error=\"getErrorForPlDropdown('value', inputGuide)\"\n />\n </div>\n <div class=\"metadata-block\" v-if=\"freeMandatoryOptions.length > 0\">\n <div class=\"title\">Drag to build the chart</div>\n <div class=\"metadata-block__items\">\n <DndChip\n v-for=\"{ id } in freeMandatoryOptions\"\n :key=\"id\"\n :info=\"chipInfo[id]\"\n @dragstart=\"draggedId = $event\"\n @dragend=\"cleanDraggedId\"\n />\n </div>\n </div>\n <div class=\"metadata-block\" v-if=\"freeOptions.length > 0\">\n <div class=\"title\">Metadata</div>\n <div class=\"metadata-block__items\">\n <DndChip\n v-for=\"{ id } in freeOptions\"\n :key=\"id\"\n :info=\"chipInfo[id]\"\n @dragstart=\"draggedId = $event\"\n @dragend=\"cleanDraggedId\"\n />\n </div>\n </div>\n </template>\n\n <template v-slot:chartVar>\n <template v-for=\"basketProp in basketsData\" :key=\"basketProp.id\">\n <div class=\"data-form-input-item\" v-if=\"showBasket(basketProp.id)\">\n <DndBasket v-bind=\"basketProp\" v-on=\"basketProp.listeners\" />\n </div>\n </template>\n </template>\n </form-layout>\n</template>\n"],"names":["store","useStore","state","stateRef","toRef","inputGuide","computed","labelsInfo","getSimpleSingle","inputName","toSimpleSingle","getSimpleMulti","toSimpleMulti","getFiltersMulti","toFiltersMulti","inputStateValues","ref","watch","value","DEFAULT_DOT_SHAPE","DEFAULT_BLACK","options","getAllInputsOptions","freeOptions","getFreeOptions","BASKETS","freeMandatoryOptions","item","BASKET_LABELS","draggedId","chipInfo","freeAndSelectedIds","name","option","selectorState","getChipInfo","commonDropItemHandler","event","commonReorder","data","commonRemoveItem","op","getConsistency","basketId","getDisabled","searchFilterOptions","sourceId","searchStr","MAX_SEARCH_OPTIONS_LIST_LENGTH","searchSelectedFilterValueOptions","selectedValue","loadOptions","response","basketsData","guide","_a","showBasket","cleanDraggedId","v","vOptions","hasInputError","readonlyValue"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DendroForm.vue.js","sources":["../../../../src/GraphMaker/forms/DataMappingForm/DendroForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport {\n DendroUIState,\n InputGuide,\n InputState\n} from '@milaboratories/pf-plots';\nimport FormLayout from './Layout/FormLayout.vue';\nimport { computed, watch, Ref, toRef, ref } from 'vue';\nimport { useStore } from '../../store';\nimport {\n getAllInputsOptions,\n toFiltersMulti,\n getErrorForPlDropdown,\n toSimpleMulti,\n getChipInfo,\n toSimpleSingle,\n getFreeOptions,\n hasInputError,\n} from './utils';\nimport { DEFAULT_DOT_SHAPE } from '../../dataBindAes';\nimport { DEFAULT_BLACK } from '../../constantsAesthetic';\nimport {\n BasketProps,\n ChipInfo,\n DropItemEvent,\n RemoveItemEvent\n} from '../../components/DragAndDrop/types';\nimport DndChip from '../../components/DragAndDrop/DndChip.vue';\nimport DndBasket from '../../components/DragAndDrop/DndBasket.vue';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../constantsCommon';\n\ntype BasketIds = Exclude<\n keyof (typeof inputStateValues)['value'] & keyof DendroUIState['components'],\n 'value' | 'filters' | 'tabBy'\n>;\n\nconst store = useStore();\nconst state = store.value.reactive.optionsState as DendroUIState;\nconst stateRef = toRef(store.value.reactive, 'optionsState');\n\nconst inputGuide = computed(\n () => store.value.inputGuide.value\n) as unknown as Ref<InputGuide<DendroUIState>>;\nconst labelsInfo = computed(() => store.value.uniqueValuesData.value);\n\n//const nodeSize = toRef(state.data.nodeSize.selectorState, \"selectedSource\");\nfunction getSimpleSingle(inputName: keyof InputState['components']) {\n return toSimpleSingle(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore\n );\n}\nfunction getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n );\n}\nfunction getFiltersMulti(inputName: keyof InputState['components']) {\n return toFiltersMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n )\n}\n\nconst inputStateValues = ref({\n value: getSimpleSingle('value'),\n tableContent: getSimpleMulti('tableContent'),\n heatmapAnnotation: getSimpleMulti('heatmapAnnotation'),\n heatmapForSequence: getSimpleMulti('heatmapForSequence'),\n filters: getFiltersMulti('filters'),\n tabBy: getFiltersMulti('tabBy'),\n height: getSimpleMulti('height'),\n labels: getSimpleMulti('labels'),\n nodeShape: getSimpleMulti('nodeShape'),\n nodeColor: getSimpleMulti('nodeColor'),\n nodeSize: getSimpleMulti('nodeSize'),\n lineColor: getSimpleMulti('lineColor'),\n heatmapAxis: getSimpleMulti('heatmapAxis'),\n heatmapGroup: getSimpleMulti('heatmapGroup'),\n});\nwatch(\n () => inputStateValues.value.nodeShape,\n (value) => {\n store.value.reactive.layersSettings.dendro.dotShape = value.length\n ? { type: 'nodeShape', value: value[0] }\n : DEFAULT_DOT_SHAPE;\n }\n);\nwatch(\n () => inputStateValues.value.nodeColor,\n (value) => {\n store.value.reactive.layersSettings.dendro.dotFill = value.length\n ? { type: 'nodeColor', value: value[0] }\n : DEFAULT_BLACK;\n }\n);\nwatch(\n () => inputStateValues.value.lineColor,\n (value) => {\n store.value.reactive.layersSettings.dendro.lineColor = value.length\n ? { type: 'lineColor', value: value[0] }\n : DEFAULT_BLACK;\n }\n);\n\nconst options = computed(() => {\n return getAllInputsOptions(\n state,\n inputGuide as Ref<InputGuide<DendroUIState>>\n );\n});\n\nconst freeOptions = computed(() =>\n getFreeOptions(inputGuide as Ref<InputGuide<InputState>>, BASKETS)\n);\nconst freeMandatoryOptions = computed(() =>\n freeOptions.value.filter((item) => item.info.kind === 'axis')\n);\nconst BASKETS: BasketIds[] = [\n 'height',\n 'tableContent',\n 'labels',\n 'heatmapAnnotation',\n 'heatmapAxis',\n 'heatmapGroup',\n 'heatmapForSequence',\n 'nodeShape',\n 'nodeColor',\n 'nodeSize',\n 'lineColor',\n];\n\nconst BASKET_LABELS: Record<BasketIds, string> = {\n height: 'Connections length',\n tableContent: 'Table/tooltip content',\n labels: 'Labels',\n heatmapAnnotation: 'Heatmap annotation',\n heatmapAxis: 'Heatmap axis',\n heatmapGroup: 'Heatmap group',\n heatmapForSequence: 'Alignment data',\n nodeShape: 'Node shape',\n nodeColor: 'Node color',\n nodeSize: 'Node size',\n lineColor: 'Line color',\n};\n\nconst draggedId = ref<string | null>(null);\n\nconst chipInfo = computed<Record<string, ChipInfo>>(() => {\n const freeAndSelectedIds = new Set<string>();\n BASKETS.forEach((name) => {\n options.value[name].forEach((option) => {\n freeAndSelectedIds.add(option.value);\n });\n state.components[name].selectorStates.forEach((selectorState) => {\n freeAndSelectedIds.add(selectorState.selectedSource);\n });\n });\n return getChipInfo(inputGuide.value, state.components, labelsInfo.value, [...freeAndSelectedIds]);\n});\n\nfunction commonDropItemHandler(event: DropItemEvent<BasketIds>) {\n inputStateValues.value[event.id] = [\n ...inputStateValues.value[event.id],\n event.draggedId,\n ];\n draggedId.value = null;\n}\n\nfunction commonReorder(data: ChipInfo['id'][], name: BasketIds) {\n inputStateValues.value[name] = data;\n}\n\nfunction commonRemoveItem(event: RemoveItemEvent<BasketIds>) {\n inputStateValues.value[event.basketId] = inputStateValues.value[\n event.basketId\n ].filter((op) => op !== event.chipId);\n}\n\nfunction getConsistency(basketId: BasketIds) {\n return inputGuide.value.components[basketId].stateConsistency;\n}\n\nfunction getDisabled(basketId: BasketIds) {\n return (\n !inputGuide.value.readyData ||\n options.value[basketId].length === 0 ||\n (draggedId.value !== null &&\n !chipInfo.value[draggedId.value].availableBasketIds.has(basketId))\n );\n}\n\nasync function searchFilterOptions(sourceId:string, searchStr:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr)).values;\n}\nasync function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n}\nasync function loadOptions(sourceId:string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({values: [], overflow: false});\n }\n return store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n}\n\nconst basketsData = computed<BasketProps[]>(() =>\n BASKETS.map((name) => {\n const guide = inputGuide.value.components[name];\n\n const basketProps: BasketProps = {\n id: name,\n title: BASKET_LABELS[name],\n isFilter: false,\n sortable: name === 'tableContent',\n multiple: guide.multipleSelectors,\n required: guide.required,\n disabled: getDisabled(name),\n readonly: store.value.readonlyInputs?.includes(name) ?? false,\n consistency: getConsistency(name),\n draggedId: draggedId.value,\n droppedIds: inputStateValues.value[name],\n info: chipInfo.value,\n\n searchFn: searchFilterOptions,\n searchSelectedValueFn: searchSelectedFilterValueOptions,\n loadOptionsFn: loadOptions,\n\n listeners: {\n 'drop-item': commonDropItemHandler,\n 'remove-item': commonRemoveItem,\n reorder: (data: ChipInfo['id'][]) => commonReorder(data, name)\n },\n };\n return basketProps;\n })\n);\n\nfunction showBasket(basketId: BasketProps['id']) {\n if (basketId === 'heatmapAxis' || basketId === 'heatmapGroup') {\n return inputStateValues.value.heatmapAnnotation !== null;\n }\n return true;\n}\n\nfunction cleanDraggedId() {\n draggedId.value = null;\n}\n\nconst autoFillInputs: (keyof typeof inputStateValues.value)[] = ['value'];\n\nautoFillInputs.forEach((inputName) => {\n watch(\n [() => inputStateValues.value[inputName], () => options.value],\n ([v, vOptions]) => {\n if (\n (typeof v === 'undefined' ||\n hasInputError('value', inputGuide.value)) &&\n vOptions[inputName] &&\n vOptions[inputName].length\n ) {store.value.controller.changeSelected(\n inputName,\n store.value.columnsDataStore!,\n store.value.reactive.optionsState,\n [{selectedSource: vOptions[inputName][0].value}]\n\n );\n }\n },\n { immediate: true }\n );\n});\n\nconst readonlyValue = computed(() => store.value.readonlyInputs?.includes('value') ?? false);\n\n</script>\n\n<template>\n <form-layout>\n <template v-slot:dataInputs>\n <div class=\"data-form-input-item\">\n <pl-dropdown\n label=\"Data source:\"\n v-model=\"inputStateValues.value\"\n :options=\"options.value\"\n :disabled=\"readonlyValue\"\n :error=\"getErrorForPlDropdown('value', inputGuide)\"\n />\n </div>\n <div class=\"metadata-block\" v-if=\"freeMandatoryOptions.length > 0\">\n <div class=\"title\">Drag to build the chart</div>\n <div class=\"metadata-block__items\">\n <DndChip\n v-for=\"{ id } in freeMandatoryOptions\"\n :key=\"id\"\n :info=\"chipInfo[id]\"\n @dragstart=\"draggedId = $event\"\n @dragend=\"cleanDraggedId\"\n />\n </div>\n </div>\n <div class=\"metadata-block\" v-if=\"freeOptions.length > 0\">\n <div class=\"title\">Metadata</div>\n <div class=\"metadata-block__items\">\n <DndChip\n v-for=\"{ id } in freeOptions\"\n :key=\"id\"\n :info=\"chipInfo[id]\"\n @dragstart=\"draggedId = $event\"\n @dragend=\"cleanDraggedId\"\n />\n </div>\n </div>\n </template>\n\n <template v-slot:chartVar>\n <template v-for=\"basketProp in basketsData\" :key=\"basketProp.id\">\n <div class=\"data-form-input-item\" v-if=\"showBasket(basketProp.id)\">\n <DndBasket v-bind=\"basketProp\" v-on=\"basketProp.listeners\" />\n </div>\n </template>\n </template>\n </form-layout>\n</template>\n"],"names":["store","useStore","state","stateRef","toRef","inputGuide","computed","labelsInfo","getSimpleSingle","inputName","toSimpleSingle","getSimpleMulti","toSimpleMulti","getFiltersMulti","toFiltersMulti","inputStateValues","ref","watch","value","DEFAULT_DOT_SHAPE","DEFAULT_BLACK","options","getAllInputsOptions","freeOptions","getFreeOptions","BASKETS","freeMandatoryOptions","item","BASKET_LABELS","draggedId","chipInfo","freeAndSelectedIds","name","option","selectorState","getChipInfo","commonDropItemHandler","event","commonReorder","data","commonRemoveItem","op","getConsistency","basketId","getDisabled","searchFilterOptions","sourceId","searchStr","MAX_SEARCH_OPTIONS_LIST_LENGTH","searchSelectedFilterValueOptions","selectedValue","loadOptions","basketsData","guide","_a","showBasket","cleanDraggedId","v","vOptions","hasInputError","readonlyValue"],"mappings":"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"}
|
|
@@ -4,6 +4,7 @@ import { useStore as F } from "../../store.js";
|
|
|
4
4
|
import { getErrorForPlDropdown as O } from "./utils.js";
|
|
5
5
|
import "../../constantsAesthetic.js";
|
|
6
6
|
import "../../../node_modules/@milaboratories/pf-plots/dist/index.js";
|
|
7
|
+
import "../../../node_modules/@milaboratories/pl-model-common/dist/bmodel/code.js";
|
|
7
8
|
import "../../../node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js";
|
|
8
9
|
import "../../../node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js";
|
|
9
10
|
import "../../../node_modules/@milaboratories/pl-model-common/dist/plid.js";
|
|
@@ -16,7 +17,7 @@ import x from "./Layout/FormLayout.vue.js";
|
|
|
16
17
|
import A from "./Layout/OptionsList.vue.js";
|
|
17
18
|
import L from "./Layout/MandatoryOptions.vue.js";
|
|
18
19
|
import { useBaskets as T } from "./useBaskets.js";
|
|
19
|
-
const U = { class: "data-form-input-item" },
|
|
20
|
+
const U = { class: "data-form-input-item" }, ar = /* @__PURE__ */ I({
|
|
20
21
|
__name: "DiscreteForm",
|
|
21
22
|
setup(C) {
|
|
22
23
|
const e = F();
|
|
@@ -41,8 +42,8 @@ const U = { class: "data-form-input-item" }, er = /* @__PURE__ */ I({
|
|
|
41
42
|
basketsData: y,
|
|
42
43
|
freeMetaOptions: g,
|
|
43
44
|
freeMandatoryOptions: _,
|
|
44
|
-
chipInfo:
|
|
45
|
-
dataStateValues:
|
|
45
|
+
chipInfo: m,
|
|
46
|
+
dataStateValues: l,
|
|
46
47
|
dataOptions: B
|
|
47
48
|
} = T(
|
|
48
49
|
e,
|
|
@@ -59,8 +60,8 @@ const U = { class: "data-form-input-item" }, er = /* @__PURE__ */ I({
|
|
|
59
60
|
dataInputs: a(() => [
|
|
60
61
|
h("div", U, [
|
|
61
62
|
i(r(k), {
|
|
62
|
-
modelValue: r(
|
|
63
|
-
"onUpdate:modelValue": t[0] || (t[0] = (o) => r(
|
|
63
|
+
modelValue: r(l).y,
|
|
64
|
+
"onUpdate:modelValue": t[0] || (t[0] = (o) => r(l).y = o),
|
|
64
65
|
options: r(B).y,
|
|
65
66
|
disabled: d.value,
|
|
66
67
|
error: r(O)("y", r(e).inputGuide.value),
|
|
@@ -72,14 +73,14 @@ const U = { class: "data-form-input-item" }, er = /* @__PURE__ */ I({
|
|
|
72
73
|
mandatoryOptions: a(() => [
|
|
73
74
|
i(L, {
|
|
74
75
|
options: r(_),
|
|
75
|
-
chipInfo: r(
|
|
76
|
+
chipInfo: r(m),
|
|
76
77
|
onDraggedIdUpdate: t[1] || (t[1] = (o) => s.value = o)
|
|
77
78
|
}, null, 8, ["options", "chipInfo"])
|
|
78
79
|
]),
|
|
79
80
|
metadataOptions: a(() => [
|
|
80
81
|
i(A, {
|
|
81
82
|
options: r(g),
|
|
82
|
-
chipInfo: r(
|
|
83
|
+
chipInfo: r(m),
|
|
83
84
|
onDraggedIdUpdate: t[2] || (t[2] = (o) => s.value = o)
|
|
84
85
|
}, null, 8, ["options", "chipInfo"])
|
|
85
86
|
]),
|
|
@@ -96,6 +97,6 @@ const U = { class: "data-form-input-item" }, er = /* @__PURE__ */ I({
|
|
|
96
97
|
}
|
|
97
98
|
});
|
|
98
99
|
export {
|
|
99
|
-
|
|
100
|
+
ar as default
|
|
100
101
|
};
|
|
101
102
|
//# sourceMappingURL=DiscreteForm.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiscreteForm.vue.js","sources":["../../../../src/GraphMaker/forms/DataMappingForm/DiscreteForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport { DiscreteUIState } from '@milaboratories/pf-plots';\nimport { computed, watch} from 'vue';\nimport { useStore } from '../../store';\nimport { getErrorForPlDropdown } from './utils';\nimport { checkStatisticsInputsValidity } from '../../utils';\nimport DndBasket from '../../components/DragAndDrop/DndBasket.vue';\nimport FormLayout from './Layout/FormLayout.vue';\nimport OptionsList from './Layout/OptionsList.vue';\nimport MandatoryOptionsList from './Layout/MandatoryOptions.vue';\nimport { useBaskets } from './useBaskets';\n\nconst store = useStore();\n\nwatch(\n () => store.value.commonHelpersData.primaryGroups.value,\n checkStatisticsInputsValidity(store)\n);\n\ntype BasketIds = Exclude<keyof DiscreteUIState['components'], 'y'>;\ntype DataIds = keyof DiscreteUIState['components'] & 'y'\n\nconst BASKETS: BasketIds[] = [\n 'filters',\n 'primaryGrouping',\n 'secondaryGrouping',\n 'tabBy',\n 'facetBy'\n];\nconst BASKET_LABELS: Record<BasketIds, string> = {\n filters: 'Filter',\n primaryGrouping: 'Primary grouping',\n secondaryGrouping: 'Secondary grouping',\n tabBy: 'Tab by',\n facetBy: 'Facet by'\n};\n\nconst {\n draggedId,\n basketsData,\n freeMetaOptions,\n freeMandatoryOptions,\n chipInfo,\n dataStateValues,\n dataOptions\n} = useBaskets<DiscreteUIState, BasketIds, DataIds>(\n store,\n ['y'],\n ['filters', 'tabBy'],\n ['primaryGrouping', 'secondaryGrouping', 'facetBy'],\n BASKETS,\n BASKET_LABELS\n);\n\nconst readonlyY = computed(() => store.value.readonlyInputs?.includes('y') ?? false);\n</script>\n\n<template>\n <form-layout>\n <template v-slot:dataInputs>\n <div class=\"data-form-input-item\">\n <pl-dropdown\n v-model=\"dataStateValues.y\"\n :options=\"dataOptions.y\"\n :disabled=\"readonlyY\"\n :error=\"getErrorForPlDropdown('y', store.inputGuide.value)\"\n label=\"Y:\"\n :clearable=\"!readonlyY\"\n />\n </div>\n </template>\n <template v-slot:mandatoryOptions>\n <MandatoryOptionsList\n :options=\"freeMandatoryOptions\"\n :chipInfo=\"chipInfo\"\n @dragged-id-update=\"draggedId = $event\"\n />\n </template>\n <template v-slot:metadataOptions>\n <OptionsList\n :options=\"freeMetaOptions\"\n :chipInfo=\"chipInfo\"\n @dragged-id-update=\"draggedId = $event\"\n />\n </template>\n <template v-slot:chartVar>\n <div\n v-for=\"basketProp in basketsData\"\n :key=\"basketProp.id\"\n class=\"data-form-input-item\"\n >\n <DndBasket v-bind=\"basketProp\" v-on=\"basketProp.listeners\" />\n </div>\n </template>\n </form-layout>\n</template>\n"],"names":["store","useStore","watch","checkStatisticsInputsValidity","BASKETS","BASKET_LABELS","draggedId","basketsData","freeMetaOptions","freeMandatoryOptions","chipInfo","dataStateValues","dataOptions","useBaskets","readonlyY","computed","_a"],"mappings":"
|
|
1
|
+
{"version":3,"file":"DiscreteForm.vue.js","sources":["../../../../src/GraphMaker/forms/DataMappingForm/DiscreteForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport { DiscreteUIState } from '@milaboratories/pf-plots';\nimport { computed, watch} from 'vue';\nimport { useStore } from '../../store';\nimport { getErrorForPlDropdown } from './utils';\nimport { checkStatisticsInputsValidity } from '../../utils';\nimport DndBasket from '../../components/DragAndDrop/DndBasket.vue';\nimport FormLayout from './Layout/FormLayout.vue';\nimport OptionsList from './Layout/OptionsList.vue';\nimport MandatoryOptionsList from './Layout/MandatoryOptions.vue';\nimport { useBaskets } from './useBaskets';\n\nconst store = useStore();\n\nwatch(\n () => store.value.commonHelpersData.primaryGroups.value,\n checkStatisticsInputsValidity(store)\n);\n\ntype BasketIds = Exclude<keyof DiscreteUIState['components'], 'y'>;\ntype DataIds = keyof DiscreteUIState['components'] & 'y'\n\nconst BASKETS: BasketIds[] = [\n 'filters',\n 'primaryGrouping',\n 'secondaryGrouping',\n 'tabBy',\n 'facetBy'\n];\nconst BASKET_LABELS: Record<BasketIds, string> = {\n filters: 'Filter',\n primaryGrouping: 'Primary grouping',\n secondaryGrouping: 'Secondary grouping',\n tabBy: 'Tab by',\n facetBy: 'Facet by'\n};\n\nconst {\n draggedId,\n basketsData,\n freeMetaOptions,\n freeMandatoryOptions,\n chipInfo,\n dataStateValues,\n dataOptions\n} = useBaskets<DiscreteUIState, BasketIds, DataIds>(\n store,\n ['y'],\n ['filters', 'tabBy'],\n ['primaryGrouping', 'secondaryGrouping', 'facetBy'],\n BASKETS,\n BASKET_LABELS\n);\n\nconst readonlyY = computed(() => store.value.readonlyInputs?.includes('y') ?? false);\n</script>\n\n<template>\n <form-layout>\n <template v-slot:dataInputs>\n <div class=\"data-form-input-item\">\n <pl-dropdown\n v-model=\"dataStateValues.y\"\n :options=\"dataOptions.y\"\n :disabled=\"readonlyY\"\n :error=\"getErrorForPlDropdown('y', store.inputGuide.value)\"\n label=\"Y:\"\n :clearable=\"!readonlyY\"\n />\n </div>\n </template>\n <template v-slot:mandatoryOptions>\n <MandatoryOptionsList\n :options=\"freeMandatoryOptions\"\n :chipInfo=\"chipInfo\"\n @dragged-id-update=\"draggedId = $event\"\n />\n </template>\n <template v-slot:metadataOptions>\n <OptionsList\n :options=\"freeMetaOptions\"\n :chipInfo=\"chipInfo\"\n @dragged-id-update=\"draggedId = $event\"\n />\n </template>\n <template v-slot:chartVar>\n <div\n v-for=\"basketProp in basketsData\"\n :key=\"basketProp.id\"\n class=\"data-form-input-item\"\n >\n <DndBasket v-bind=\"basketProp\" v-on=\"basketProp.listeners\" />\n </div>\n </template>\n </form-layout>\n</template>\n"],"names":["store","useStore","watch","checkStatisticsInputsValidity","BASKETS","BASKET_LABELS","draggedId","basketsData","freeMetaOptions","freeMandatoryOptions","chipInfo","dataStateValues","dataOptions","useBaskets","readonlyY","computed","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AAaA,UAAMA,IAAQC,EAAA;AAEd,IAAAC;AAAA,MACE,MAAMF,EAAM,MAAM,kBAAkB,cAAc;AAAA,MAClDG,EAA8BH,CAAK;AAAA,IAAA;AAMrC,UAAMI,IAAuB;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,GAEIC,IAA2C;AAAA,MAC/C,SAAS;AAAA,MACT,iBAAiB;AAAA,MACjB,mBAAmB;AAAA,MACnB,OAAO;AAAA,MACP,SAAS;AAAA,IAAA,GAGL;AAAA,MACJ,WAAAC;AAAA,MACA,aAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,sBAAAC;AAAA,MACA,UAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,aAAAC;AAAA,IAAA,IACEC;AAAA,MACFb;AAAA,MACA,CAAC,GAAG;AAAA,MACJ,CAAC,WAAW,OAAO;AAAA,MACnB,CAAC,mBAAmB,qBAAqB,SAAS;AAAA,MAClDI;AAAA,MACAC;AAAA,IAAA,GAGIS,IAAYC,EAAS,MAAA;;AAAM,eAAAC,IAAAhB,EAAM,MAAM,mBAAZ,gBAAAgB,EAA4B,SAAS,SAAQ;AAAA,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBaskets.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/forms/DataMappingForm/useBaskets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,qBAAqB,EACrB,UAAU,
|
|
1
|
+
{"version":3,"file":"useBaskets.d.ts","sourceRoot":"","sources":["../../../../src/GraphMaker/forms/DataMappingForm/useBaskets.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EAGT,qBAAqB,EACrB,UAAU,EAEX,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAiB,GAAG,EAAS,MAAM,KAAK,CAAC;AAChD,OAAO,EACL,WAAW,EACX,QAAQ,EAGT,MAAM,oCAAoC,CAAC;AAE5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,wBAAgB,UAAU,CACxB,CAAC,SAAS,UAAU,EACpB,SAAS,SAAS,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,qBAAqB,CAAC,SAAS,CAAC,EAC1E,OAAO,SAAS,MAAM,CAAC,CAAC,YAAY,CAAC,GAAG,qBAAqB,CAAC,SAAS,CAAC,EAExE,KAAK,EAAE,aAAa,EACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,gBAAgB,EAAE,SAAS,EAAE,EAC7B,gBAAgB,EAAE,SAAS,EAAE,EAC7B,OAAO,EAAE,SAAS,EAAE,EACpB,aAAa,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC;;;;;;;;;;;;;;;EAwNzC"}
|
|
@@ -33,39 +33,39 @@ function B(l, h, I, D, v, O) {
|
|
|
33
33
|
}), r = m({
|
|
34
34
|
...I.reduce((e, t) => (e[t] = V(t), e), {}),
|
|
35
35
|
...D.reduce((e, t) => (e[t] = R(t), e), {})
|
|
36
|
-
}),
|
|
36
|
+
}), f = c(() => A(o, u)), M = c(
|
|
37
37
|
() => X(u, v)
|
|
38
38
|
), q = c(
|
|
39
39
|
() => j(u, v)
|
|
40
|
-
), s = m(null),
|
|
40
|
+
), s = m(null), g = c(() => {
|
|
41
41
|
const e = /* @__PURE__ */ new Set();
|
|
42
42
|
return v.forEach((t) => {
|
|
43
|
-
|
|
43
|
+
f.value[t].forEach((n) => {
|
|
44
44
|
e.add(n.value);
|
|
45
45
|
}), o.components[t].selectorStates.forEach((n) => {
|
|
46
46
|
e.add(n.selectedSource);
|
|
47
47
|
});
|
|
48
48
|
}), z(u.value, o.components, l.value.uniqueValuesData.value, [...e]);
|
|
49
49
|
});
|
|
50
|
-
function
|
|
50
|
+
function C(e) {
|
|
51
51
|
return o.components[e].selectorStates.reduce(
|
|
52
52
|
(t, n) => (n.type !== "range" && (t[n.selectedSource] = n.selectedFilterValues ?? []), t),
|
|
53
53
|
{}
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
|
-
function
|
|
56
|
+
function L(e) {
|
|
57
57
|
return o.components[e].selectorStates.reduce(
|
|
58
58
|
(t, n) => (t[n.selectedSource] = n.selectedFilterRange ? [n.selectedFilterRange.min, n.selectedFilterRange.max] : [0, 0], t),
|
|
59
59
|
{}
|
|
60
60
|
);
|
|
61
61
|
}
|
|
62
|
-
function
|
|
62
|
+
function P(e) {
|
|
63
63
|
r.value[e.id] = [
|
|
64
64
|
...r.value[e.id],
|
|
65
65
|
e.draggedId
|
|
66
66
|
], s.value = null;
|
|
67
67
|
}
|
|
68
|
-
function
|
|
68
|
+
function w(e) {
|
|
69
69
|
r.value[e.basketId] = r.value[e.basketId].filter((t) => t !== e.chipId);
|
|
70
70
|
}
|
|
71
71
|
function x(e, t) {
|
|
@@ -75,7 +75,7 @@ function B(l, h, I, D, v, O) {
|
|
|
75
75
|
return u.value.components[e].stateConsistency;
|
|
76
76
|
}
|
|
77
77
|
function G(e) {
|
|
78
|
-
return !u.value.readyData ||
|
|
78
|
+
return !u.value.readyData || f.value[e].length === 0 || s.value !== null && !g.value[s.value].availableBasketIds.has(e);
|
|
79
79
|
}
|
|
80
80
|
async function H(e, t) {
|
|
81
81
|
return l.value.columnsDataStore ? (await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore, u.value, e, F, t || void 0)).values : Promise.resolve([]);
|
|
@@ -84,10 +84,7 @@ function B(l, h, I, D, v, O) {
|
|
|
84
84
|
return l.value.columnsDataStore ? (await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore, u.value, e, 1, void 0, t)).values : Promise.resolve([]);
|
|
85
85
|
}
|
|
86
86
|
async function W(e) {
|
|
87
|
-
|
|
88
|
-
return Promise.resolve([]);
|
|
89
|
-
const t = await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore, u.value, e, F);
|
|
90
|
-
return t.overflow ? null : t.values;
|
|
87
|
+
return l.value.columnsDataStore ? l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore, u.value, e, F) : Promise.resolve({ values: [], overflow: !1 });
|
|
91
88
|
}
|
|
92
89
|
const k = c(
|
|
93
90
|
() => v.map((e) => {
|
|
@@ -104,17 +101,17 @@ function B(l, h, I, D, v, O) {
|
|
|
104
101
|
consistency: _(e),
|
|
105
102
|
draggedId: s.value,
|
|
106
103
|
droppedIds: r.value[e],
|
|
107
|
-
info:
|
|
104
|
+
info: g.value,
|
|
108
105
|
searchFn: H,
|
|
109
106
|
searchSelectedValueFn: U,
|
|
110
107
|
loadOptionsFn: W,
|
|
111
108
|
listeners: {
|
|
112
|
-
"drop-item":
|
|
113
|
-
"remove-item":
|
|
109
|
+
"drop-item": P,
|
|
110
|
+
"remove-item": w,
|
|
114
111
|
reorder: (a) => x(a, e)
|
|
115
112
|
}
|
|
116
113
|
};
|
|
117
|
-
return n && (i.selectedFilters =
|
|
114
|
+
return n && (i.selectedFilters = C(e), i.selectedRanges = L(e), i.listeners["select-filter-value"] = (a) => {
|
|
118
115
|
const d = o.components[e].selectorStates[a.idx];
|
|
119
116
|
d.type = "equals", d.selectedFilterValues = a.v;
|
|
120
117
|
}, i.listeners["select-filter-range"] = (a) => {
|
|
@@ -132,9 +129,9 @@ function B(l, h, I, D, v, O) {
|
|
|
132
129
|
basketsData: k,
|
|
133
130
|
freeMetaOptions: M,
|
|
134
131
|
freeMandatoryOptions: q,
|
|
135
|
-
chipInfo:
|
|
132
|
+
chipInfo: g,
|
|
136
133
|
dataStateValues: b,
|
|
137
|
-
dataOptions:
|
|
134
|
+
dataOptions: f
|
|
138
135
|
};
|
|
139
136
|
}
|
|
140
137
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBaskets.js","sources":["../../../../src/GraphMaker/forms/DataMappingForm/useBaskets.ts"],"sourcesContent":["import {\n ChartType,\n ComponentStateFilter,\n InputGuide,\n InputNamesByChartType,\n InputState,\n PValue,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport { computed, ref, Ref, toRef } from 'vue';\nimport {\n BasketProps,\n ChipInfo,\n DropItemEvent,\n RemoveItemEvent\n} from '../../components/DragAndDrop/types';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../constantsCommon';\nimport { ComputedStore } from '../../store';\nimport {\n getAllInputsOptions, getChipInfo, getFreeMandatoryOptions, getFreeMetaOptions,\n toFiltersMulti,\n toSimpleMulti,\n toSimpleSingle\n} from './utils';\n\nexport function useBaskets<\n T extends InputState,\n BasketIds extends keyof T['components'] & InputNamesByChartType[ChartType],\n DataIds extends keyof T['components'] & InputNamesByChartType[ChartType]\n>(\n store: ComputedStore,\n dataKeys: DataIds[],\n filterBasketKeys: BasketIds[],\n simpleBasketKeys: BasketIds[],\n BASKETS: BasketIds[],\n BASKET_LABELS: Record<BasketIds, string>\n) {\nconst state = store.value.reactive.optionsState as T;\nconst stateRef = toRef(store.value.reactive, 'optionsState');\n\nconst inputGuide = computed(() => store.value.inputGuide.value) as Ref<InputGuide<T>>;\n\nfunction getSimpleSingle(inputName: keyof InputState['components']) {\n return toSimpleSingle(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore\n );\n}\n\nfunction getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n );\n}\n\nfunction getFiltersMulti(inputName: keyof InputState['components']) {\n return toFiltersMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n );\n}\n\nconst dataStateValues = ref({\n ...dataKeys.reduce((res:Record<DataIds, Ref<string|undefined>>, key:DataIds) => {\n res[key] = getSimpleSingle(key as keyof InputState['components']);\n return res;\n }, {} as Record<DataIds, Ref<string|undefined>>),\n})\n\ntype InputStateValues = Record<BasketIds, Ref<string[]>>;\n\nconst inputStateValues = ref<InputStateValues>({\n ...filterBasketKeys.reduce((res:InputStateValues, key) => {\n res[key] = getFiltersMulti(key as keyof InputState['components']);\n return res;\n }, {} as InputStateValues),\n ...simpleBasketKeys.reduce((res:InputStateValues, key) => {\n res[key] = getSimpleMulti(key as keyof InputState['components']);\n return res;\n }, {} as InputStateValues)\n });\n\n const options = computed(() => {\n return getAllInputsOptions(state, inputGuide as Ref<InputGuide<InputState>>);\n });\n\n const freeMetaOptions = computed(() =>\n getFreeMetaOptions(inputGuide, BASKETS)\n );\n const freeMandatoryOptions = computed(() =>\n getFreeMandatoryOptions(inputGuide, BASKETS)\n );\n\n const draggedId = ref<string | null>(null);\n const chipInfo = computed<Record<string, ChipInfo>>(() => {\n const freeAndSelectedIds = new Set<string>();\n BASKETS.forEach((name) => {\n options.value[name].forEach((option) => {\n freeAndSelectedIds.add(option.value);\n });\n state.components[name].selectorStates.forEach((selectorState) => {\n freeAndSelectedIds.add(selectorState.selectedSource);\n });\n });\n return getChipInfo(inputGuide.value, state.components, store.value.uniqueValuesData.value, [...freeAndSelectedIds]);\n });\n\n function getFiltersValues(name: BasketIds) {\n return (state.components[name] as ComponentStateFilter).selectorStates.reduce(\n (res: Record<string, string[]>, filterState) => {\n if (filterState.type !== 'range') {\n res[filterState.selectedSource] = filterState.selectedFilterValues ?? [];\n }\n return res;\n },\n {}\n );\n }\n\n function getFiltersRanges(name: BasketIds) {\n return (state.components[name] as ComponentStateFilter).selectorStates.reduce(\n (res: Record<string, [number, number]>, filterState) => {\n res[filterState.selectedSource] = filterState.selectedFilterRange ?\n [filterState.selectedFilterRange.min, filterState.selectedFilterRange.max] : [0, 0];\n return res;\n },\n {}\n );\n }\n\n function commonDropItemHandler(event: DropItemEvent<BasketIds>) {\n inputStateValues.value[event.id] = [\n ...inputStateValues.value[event.id],\n event.draggedId\n ];\n draggedId.value = null;\n }\n\n function commonRemoveItem(event: RemoveItemEvent<BasketIds>) {\n inputStateValues.value[event.basketId] =\n inputStateValues.value[event.basketId].filter((op:string) => op !== event.chipId);\n }\n\n function commonReorder(data: ChipInfo['id'][], name: BasketIds) {\n inputStateValues.value[name] = data;\n }\n\n function getConsistency(basketId: BasketIds) {\n return inputGuide.value.components[basketId].stateConsistency;\n }\n\n function getDisabled(basketId: BasketIds) {\n return (\n !inputGuide.value.readyData ||\n options.value[basketId].length === 0 ||\n (draggedId.value !== null &&\n !chipInfo.value[draggedId.value].availableBasketIds.has(basketId))\n );\n }\n\n async function searchFilterOptions(sourceId:string, searchStr:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n }\n\n async function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n }\n\n async 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, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n return response.overflow ? null : response.values;\n }\n\n const basketsData = computed<BasketProps[]>(() =>\n BASKETS.map((name) => {\n const guide = inputGuide.value.components[name];\n const isFilter = name === 'filters' || name === 'highlight';\n\n const basketProps: BasketProps = {\n id: name,\n title: BASKET_LABELS[name],\n isFilter,\n sortable: name === 'tooltipContent',\n multiple: guide.multipleSelectors,\n required: guide.required,\n disabled: getDisabled(name),\n readonly: store.value.readonlyInputs?.includes(name) ?? false,\n consistency: getConsistency(name),\n draggedId: draggedId.value,\n droppedIds: inputStateValues.value[name],\n info: chipInfo.value,\n\n searchFn: searchFilterOptions,\n searchSelectedValueFn: searchSelectedFilterValueOptions,\n loadOptionsFn: loadOptions,\n\n listeners: {\n 'drop-item': commonDropItemHandler,\n 'remove-item': commonRemoveItem,\n 'reorder': (data: ChipInfo['id'][]) => commonReorder(data, name)\n }\n };\n if (isFilter) {\n basketProps.selectedFilters = getFiltersValues(name);\n basketProps.selectedRanges = getFiltersRanges(name);\n basketProps.listeners['select-filter-value'] = (data) => {\n const selectorState = state.components[name].selectorStates[data.idx] as SelectorStateFilter;\n selectorState.type = 'equals';\n selectorState.selectedFilterValues = data.v;\n };\n basketProps.listeners['select-filter-range'] = (data) => {\n const selectorState = state.components[name].selectorStates[data.idx] as SelectorStateFilter;\n selectorState.type = 'range';\n selectorState.selectedFilterRange = data.v;\n };\n }\n return basketProps;\n })\n );\n\n function cleanDraggedId() {\n draggedId.value = null;\n }\n \n return {\n draggedId,\n cleanDraggedId,\n basketsData,\n freeMetaOptions,\n freeMandatoryOptions,\n chipInfo,\n dataStateValues,\n dataOptions: options\n }\n}"],"names":["useBaskets","store","dataKeys","filterBasketKeys","simpleBasketKeys","BASKETS","BASKET_LABELS","state","stateRef","toRef","inputGuide","computed","getSimpleSingle","inputName","toSimpleSingle","getSimpleMulti","toSimpleMulti","getFiltersMulti","toFiltersMulti","dataStateValues","ref","res","key","inputStateValues","options","getAllInputsOptions","freeMetaOptions","getFreeMetaOptions","freeMandatoryOptions","getFreeMandatoryOptions","draggedId","chipInfo","freeAndSelectedIds","name","option","selectorState","getChipInfo","getFiltersValues","filterState","getFiltersRanges","commonDropItemHandler","event","commonRemoveItem","op","commonReorder","data","getConsistency","basketId","getDisabled","searchFilterOptions","sourceId","searchStr","MAX_SEARCH_OPTIONS_LIST_LENGTH","searchSelectedFilterValueOptions","selectedValue","loadOptions","response","basketsData","guide","isFilter","basketProps","_a","cleanDraggedId"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useBaskets.js","sources":["../../../../src/GraphMaker/forms/DataMappingForm/useBaskets.ts"],"sourcesContent":["import {\n ChartType,\n ComponentStateFilter,\n InputGuide,\n InputNamesByChartType,\n InputState,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport { computed, ref, Ref, toRef } from 'vue';\nimport {\n BasketProps,\n ChipInfo,\n DropItemEvent,\n RemoveItemEvent\n} from '../../components/DragAndDrop/types';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../constantsCommon';\nimport { ComputedStore } from '../../store';\nimport {\n getAllInputsOptions, getChipInfo, getFreeMandatoryOptions, getFreeMetaOptions,\n toFiltersMulti,\n toSimpleMulti,\n toSimpleSingle\n} from './utils';\n\nexport function useBaskets<\n T extends InputState,\n BasketIds extends keyof T['components'] & InputNamesByChartType[ChartType],\n DataIds extends keyof T['components'] & InputNamesByChartType[ChartType]\n>(\n store: ComputedStore,\n dataKeys: DataIds[],\n filterBasketKeys: BasketIds[],\n simpleBasketKeys: BasketIds[],\n BASKETS: BasketIds[],\n BASKET_LABELS: Record<BasketIds, string>\n) {\nconst state = store.value.reactive.optionsState as T;\nconst stateRef = toRef(store.value.reactive, 'optionsState');\n\nconst inputGuide = computed(() => store.value.inputGuide.value) as Ref<InputGuide<T>>;\n\nfunction getSimpleSingle(inputName: keyof InputState['components']) {\n return toSimpleSingle(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore\n );\n}\n\nfunction getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n );\n}\n\nfunction getFiltersMulti(inputName: keyof InputState['components']) {\n return toFiltersMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n inputGuide\n );\n}\n\nconst dataStateValues = ref({\n ...dataKeys.reduce((res:Record<DataIds, Ref<string|undefined>>, key:DataIds) => {\n res[key] = getSimpleSingle(key as keyof InputState['components']);\n return res;\n }, {} as Record<DataIds, Ref<string|undefined>>),\n})\n\ntype InputStateValues = Record<BasketIds, Ref<string[]>>;\n\nconst inputStateValues = ref<InputStateValues>({\n ...filterBasketKeys.reduce((res:InputStateValues, key) => {\n res[key] = getFiltersMulti(key as keyof InputState['components']);\n return res;\n }, {} as InputStateValues),\n ...simpleBasketKeys.reduce((res:InputStateValues, key) => {\n res[key] = getSimpleMulti(key as keyof InputState['components']);\n return res;\n }, {} as InputStateValues)\n });\n\n const options = computed(() => {\n return getAllInputsOptions(state, inputGuide as Ref<InputGuide<InputState>>);\n });\n\n const freeMetaOptions = computed(() =>\n getFreeMetaOptions(inputGuide, BASKETS)\n );\n const freeMandatoryOptions = computed(() =>\n getFreeMandatoryOptions(inputGuide, BASKETS)\n );\n\n const draggedId = ref<string | null>(null);\n const chipInfo = computed<Record<string, ChipInfo>>(() => {\n const freeAndSelectedIds = new Set<string>();\n BASKETS.forEach((name) => {\n options.value[name].forEach((option) => {\n freeAndSelectedIds.add(option.value);\n });\n state.components[name].selectorStates.forEach((selectorState) => {\n freeAndSelectedIds.add(selectorState.selectedSource);\n });\n });\n return getChipInfo(inputGuide.value, state.components, store.value.uniqueValuesData.value, [...freeAndSelectedIds]);\n });\n\n function getFiltersValues(name: BasketIds) {\n return (state.components[name] as ComponentStateFilter).selectorStates.reduce(\n (res: Record<string, string[]>, filterState) => {\n if (filterState.type !== 'range') {\n res[filterState.selectedSource] = filterState.selectedFilterValues ?? [];\n }\n return res;\n },\n {}\n );\n }\n\n function getFiltersRanges(name: BasketIds) {\n return (state.components[name] as ComponentStateFilter).selectorStates.reduce(\n (res: Record<string, [number, number]>, filterState) => {\n res[filterState.selectedSource] = filterState.selectedFilterRange ?\n [filterState.selectedFilterRange.min, filterState.selectedFilterRange.max] : [0, 0];\n return res;\n },\n {}\n );\n }\n\n function commonDropItemHandler(event: DropItemEvent<BasketIds>) {\n inputStateValues.value[event.id] = [\n ...inputStateValues.value[event.id],\n event.draggedId\n ];\n draggedId.value = null;\n }\n\n function commonRemoveItem(event: RemoveItemEvent<BasketIds>) {\n inputStateValues.value[event.basketId] =\n inputStateValues.value[event.basketId].filter((op:string) => op !== event.chipId);\n }\n\n function commonReorder(data: ChipInfo['id'][], name: BasketIds) {\n inputStateValues.value[name] = data;\n }\n\n function getConsistency(basketId: BasketIds) {\n return inputGuide.value.components[basketId].stateConsistency;\n }\n\n function getDisabled(basketId: BasketIds) {\n return (\n !inputGuide.value.readyData ||\n options.value[basketId].length === 0 ||\n (draggedId.value !== null &&\n !chipInfo.value[draggedId.value].availableBasketIds.has(basketId))\n );\n }\n\n async function searchFilterOptions(sourceId:string, searchStr:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n }\n\n async function searchSelectedFilterValueOptions(sourceId:string, selectedValue:string):Promise<{value:string, label:string}[]> {\n if (!store.value.columnsDataStore) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n }\n\n async function loadOptions(sourceId:string) {\n if (!store.value.columnsDataStore) {\n return Promise.resolve({values: [], overflow: false});\n }\n return store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH);\n }\n\n const basketsData = computed<BasketProps[]>(() =>\n BASKETS.map((name) => {\n const guide = inputGuide.value.components[name];\n const isFilter = name === 'filters' || name === 'highlight';\n\n const basketProps: BasketProps = {\n id: name,\n title: BASKET_LABELS[name],\n isFilter,\n sortable: name === 'tooltipContent',\n multiple: guide.multipleSelectors,\n required: guide.required,\n disabled: getDisabled(name),\n readonly: store.value.readonlyInputs?.includes(name) ?? false,\n consistency: getConsistency(name),\n draggedId: draggedId.value,\n droppedIds: inputStateValues.value[name],\n info: chipInfo.value,\n\n searchFn: searchFilterOptions,\n searchSelectedValueFn: searchSelectedFilterValueOptions,\n loadOptionsFn: loadOptions,\n\n listeners: {\n 'drop-item': commonDropItemHandler,\n 'remove-item': commonRemoveItem,\n 'reorder': (data: ChipInfo['id'][]) => commonReorder(data, name)\n }\n };\n if (isFilter) {\n basketProps.selectedFilters = getFiltersValues(name);\n basketProps.selectedRanges = getFiltersRanges(name);\n basketProps.listeners['select-filter-value'] = (data) => {\n const selectorState = state.components[name].selectorStates[data.idx] as SelectorStateFilter;\n selectorState.type = 'equals';\n selectorState.selectedFilterValues = data.v;\n };\n basketProps.listeners['select-filter-range'] = (data) => {\n const selectorState = state.components[name].selectorStates[data.idx] as SelectorStateFilter;\n selectorState.type = 'range';\n selectorState.selectedFilterRange = data.v;\n };\n }\n return basketProps;\n })\n );\n\n function cleanDraggedId() {\n draggedId.value = null;\n }\n \n return {\n draggedId,\n cleanDraggedId,\n basketsData,\n freeMetaOptions,\n freeMandatoryOptions,\n chipInfo,\n dataStateValues,\n dataOptions: options\n }\n}"],"names":["useBaskets","store","dataKeys","filterBasketKeys","simpleBasketKeys","BASKETS","BASKET_LABELS","state","stateRef","toRef","inputGuide","computed","getSimpleSingle","inputName","toSimpleSingle","getSimpleMulti","toSimpleMulti","getFiltersMulti","toFiltersMulti","dataStateValues","ref","res","key","inputStateValues","options","getAllInputsOptions","freeMetaOptions","getFreeMetaOptions","freeMandatoryOptions","getFreeMandatoryOptions","draggedId","chipInfo","freeAndSelectedIds","name","option","selectorState","getChipInfo","getFiltersValues","filterState","getFiltersRanges","commonDropItemHandler","event","commonRemoveItem","op","commonReorder","data","getConsistency","basketId","getDisabled","searchFilterOptions","sourceId","searchStr","MAX_SEARCH_OPTIONS_LIST_LENGTH","searchSelectedFilterValueOptions","selectedValue","loadOptions","basketsData","guide","isFilter","basketProps","_a","cleanDraggedId"],"mappings":"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"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".dot-size-selector{margin-top:24px}.dot-size-selector__row{margin:12px 0}")),document.head.appendChild(e)}}catch(t){console.error("vite-plugin-css-injected-by-js",t)}})();
|
|
2
2
|
import { defineComponent as F, computed as n, createElementBlock as U, openBlock as C, Fragment as E, createVNode as p } from "vue";
|
|
3
3
|
import { useStore as x } from "../../../../store.js";
|
|
4
|
-
import
|
|
5
|
-
import { DEFAULT_BLACK as
|
|
4
|
+
import m from "../../AesSelector.vue.js";
|
|
5
|
+
import { DEFAULT_BLACK as g, DEFAULT_DOT_SHAPE as f } from "../../../../constantsAesthetic.js";
|
|
6
6
|
import { DEFAULT_DOT_RANGE as L, DEFAULT_DOT_SIZE as S, isAestheticMapping as T } from "../../../../dataBindAes.js";
|
|
7
7
|
import { isContinuousDataMapping as v } from "../../../../constantsCommon.js";
|
|
8
8
|
import z from "../../DotSizeSelector.vue.js";
|
|
9
9
|
|
|
10
|
+
import "../../../../../node_modules/@milaboratories/pl-model-common/dist/bmodel/code.js";
|
|
10
11
|
import "../../../../../node_modules/@milaboratories/pl-model-common/dist/drivers/blob.js";
|
|
11
12
|
import { readAnnotation as B, Annotation as k } from "../../../../../node_modules/@milaboratories/pl-model-common/dist/drivers/pframe/spec/spec.js";
|
|
12
13
|
import "../../../../../node_modules/@milaboratories/pl-model-common/dist/plid.js";
|
|
13
14
|
import "../../../../../node_modules/@milaboratories/pl-model-common/dist/ref.js";
|
|
14
15
|
import "../../../../../node_modules/@platforma-sdk/model/dist/render/util/label.js";
|
|
15
16
|
import "../../../../../node_modules/@milaboratories/pl-error-like/dist/error_like_shape.js";
|
|
16
|
-
const a = "dots",
|
|
17
|
+
const a = "dots", W = /* @__PURE__ */ F({
|
|
17
18
|
__name: "Scatter",
|
|
18
19
|
setup(w) {
|
|
19
20
|
const s = x(), r = s.value.reactive.optionsState, y = n(
|
|
@@ -24,7 +25,7 @@ const a = "dots", Q = /* @__PURE__ */ F({
|
|
|
24
25
|
}
|
|
25
26
|
const c = n(() => {
|
|
26
27
|
const e = l.value.dotFill, t = r.components.grouping.selectorStates.map((o) => o.selectedSource);
|
|
27
|
-
return i(e) && t.length ? t.includes(e.value) ? e : { type: "grouping", value: t[0] } : t.length ? { type: "grouping", value: t[0] } : i(e) ?
|
|
28
|
+
return i(e) && t.length ? t.includes(e.value) ? e : { type: "grouping", value: t[0] } : t.length ? { type: "grouping", value: t[0] } : i(e) ? g : e ?? g;
|
|
28
29
|
}), d = n(() => {
|
|
29
30
|
const e = l.value.dotShape, t = r.components.shape.selectorStates.map((o) => o.selectedSource);
|
|
30
31
|
return i(e) && t.length ? e.value === t[0] ? e : { type: "shape", value: t[0] } : t.length ? { type: "shape", value: t[0] } : i(e) ? f : e ?? f;
|
|
@@ -56,7 +57,7 @@ const a = "dots", Q = /* @__PURE__ */ F({
|
|
|
56
57
|
return !1;
|
|
57
58
|
});
|
|
58
59
|
return (e, t) => (C(), U(E, null, [
|
|
59
|
-
p(
|
|
60
|
+
p(m, {
|
|
60
61
|
label: "Dot color",
|
|
61
62
|
"form-title": "Dot color Settings",
|
|
62
63
|
"form-back-title": "Layers",
|
|
@@ -67,7 +68,7 @@ const a = "dots", Q = /* @__PURE__ */ F({
|
|
|
67
68
|
withoutFixed: typeof c.value == "object",
|
|
68
69
|
onAesUpdate: t[0] || (t[0] = (o, u) => A(o, u, "dotFill"))
|
|
69
70
|
}, null, 8, ["selected", "disabled", "withoutFixed"]),
|
|
70
|
-
p(
|
|
71
|
+
p(m, {
|
|
71
72
|
label: "Dot shape",
|
|
72
73
|
"form-title": "Dot shape Settings",
|
|
73
74
|
"form-back-title": "Layers",
|
|
@@ -85,6 +86,6 @@ const a = "dots", Q = /* @__PURE__ */ F({
|
|
|
85
86
|
}
|
|
86
87
|
});
|
|
87
88
|
export {
|
|
88
|
-
|
|
89
|
+
W as default
|
|
89
90
|
};
|
|
90
91
|
//# sourceMappingURL=Scatter.vue.js.map
|