@milaboratories/graph-maker 1.1.201 → 1.1.203
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/components/Chart.vue.js +30 -30
- package/dist/components/Chart.vue.js.map +1 -1
- package/dist/constantsCommon.d.ts.map +1 -1
- package/dist/constantsCommon.js +1 -0
- package/dist/constantsCommon.js.map +1 -1
- package/dist/forms/DataMappingForm/DendroForm.vue.js +42 -42
- package/dist/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
- package/dist/forms/DataMappingForm/useBaskets.js +31 -31
- package/dist/forms/DataMappingForm/useBaskets.js.map +1 -1
- package/dist/index.vue.d.ts.map +1 -1
- package/dist/index.vue.js +128 -122
- package/dist/index.vue.js.map +1 -1
- package/dist/store.d.ts +3 -2
- package/dist/store.d.ts.map +1 -1
- package/dist/store.js +77 -74
- package/dist/store.js.map +1 -1
- package/dist/types.d.ts +4 -2
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import { defineComponent as j, toRef as J, computed as s, ref as k, watch as f,
|
|
|
2
2
|
import { PlDropdown as Z } from "@platforma-sdk/ui-vue";
|
|
3
3
|
import ee from "./Layout/FormLayout.vue.js";
|
|
4
4
|
import { useStore as te } from "../../store.js";
|
|
5
|
-
import { getAllInputsOptions as
|
|
5
|
+
import { getAllInputsOptions as ae, getFreeOptions as oe, getChipInfo as le, hasInputError as ne, getErrorForPlDropdown as re, toSimpleSingle as ue, toSimpleMulti as se, toFiltersMulti as ie } from "./utils.js";
|
|
6
6
|
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";
|
|
@@ -28,7 +28,7 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
28
28
|
g,
|
|
29
29
|
e,
|
|
30
30
|
t.value.controller,
|
|
31
|
-
t.value.columnsDataStore
|
|
31
|
+
t.value.columnsDataStore.value
|
|
32
32
|
);
|
|
33
33
|
}
|
|
34
34
|
function r(e) {
|
|
@@ -36,7 +36,7 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
36
36
|
g,
|
|
37
37
|
e,
|
|
38
38
|
t.value.controller,
|
|
39
|
-
t.value.columnsDataStore
|
|
39
|
+
t.value.columnsDataStore.value
|
|
40
40
|
);
|
|
41
41
|
}
|
|
42
42
|
function A(e) {
|
|
@@ -44,7 +44,7 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
44
44
|
g,
|
|
45
45
|
e,
|
|
46
46
|
t.value.controller,
|
|
47
|
-
t.value.columnsDataStore,
|
|
47
|
+
t.value.columnsDataStore.value,
|
|
48
48
|
n
|
|
49
49
|
);
|
|
50
50
|
}
|
|
@@ -80,11 +80,11 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
80
80
|
t.value.reactive.layersSettings.dendro.lineColor = e.length ? { type: "lineColor", value: e[0] } : B;
|
|
81
81
|
}
|
|
82
82
|
);
|
|
83
|
-
const p = s(() =>
|
|
83
|
+
const p = s(() => ae(
|
|
84
84
|
S,
|
|
85
85
|
n
|
|
86
86
|
)), _ = s(
|
|
87
|
-
() =>
|
|
87
|
+
() => oe(n, b)
|
|
88
88
|
), I = s(
|
|
89
89
|
() => _.value.filter((e) => e.info.kind === "axis")
|
|
90
90
|
), b = [
|
|
@@ -113,11 +113,11 @@ 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[
|
|
118
|
-
e.add(
|
|
119
|
-
}), S.components[
|
|
120
|
-
e.add(
|
|
116
|
+
return b.forEach((a) => {
|
|
117
|
+
p.value[a].forEach((o) => {
|
|
118
|
+
e.add(o.value);
|
|
119
|
+
}), S.components[a].selectorStates.forEach((o) => {
|
|
120
|
+
e.add(o.selectedSource);
|
|
121
121
|
});
|
|
122
122
|
}), le(n.value, S.components, w.value, [...e]);
|
|
123
123
|
});
|
|
@@ -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, a) {
|
|
131
|
+
l.value[a] = 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((a) => a !== e.chipId);
|
|
135
135
|
}
|
|
136
136
|
function P(e) {
|
|
137
137
|
return n.value.components[e].stateConsistency;
|
|
@@ -139,26 +139,26 @@ 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 t.value.columnsDataStore ? (await t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore, n.value, e, x,
|
|
142
|
+
async function z(e, a) {
|
|
143
|
+
return t.value.columnsDataStore.value ? (await t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore.value, n.value, e, x, a)).values : Promise.resolve([]);
|
|
144
144
|
}
|
|
145
|
-
async function R(e,
|
|
146
|
-
return t.value.columnsDataStore ? (await t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore, n.value, e, 1, void 0,
|
|
145
|
+
async function R(e, a) {
|
|
146
|
+
return t.value.columnsDataStore.value ? (await t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore.value, n.value, e, 1, void 0, a)).values : Promise.resolve([]);
|
|
147
147
|
}
|
|
148
148
|
async function N(e) {
|
|
149
|
-
return t.value.columnsDataStore ? t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore, n.value, e, x) : Promise.resolve({ values: [], overflow: !1 });
|
|
149
|
+
return t.value.columnsDataStore.value ? t.value.controller.getUniqueSourceValuesWithLabels(t.value.columnsDataStore.value, n.value, e, x) : Promise.resolve({ values: [], overflow: !1 });
|
|
150
150
|
}
|
|
151
151
|
const K = s(
|
|
152
152
|
() => b.map((e) => {
|
|
153
153
|
var c;
|
|
154
|
-
const
|
|
154
|
+
const a = n.value.components[e];
|
|
155
155
|
return {
|
|
156
156
|
id: e,
|
|
157
157
|
title: T[e],
|
|
158
158
|
isFilter: !1,
|
|
159
159
|
sortable: e === "tableContent",
|
|
160
|
-
multiple:
|
|
161
|
-
required:
|
|
160
|
+
multiple: a.multipleSelectors,
|
|
161
|
+
required: a.required,
|
|
162
162
|
disabled: U(e),
|
|
163
163
|
readonly: ((c = t.value.readonlyInputs) == null ? void 0 : c.includes(e)) ?? !1,
|
|
164
164
|
consistency: P(e),
|
|
@@ -185,12 +185,12 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
185
185
|
["value"].forEach((e) => {
|
|
186
186
|
f(
|
|
187
187
|
[() => l.value[e], () => p.value],
|
|
188
|
-
([
|
|
189
|
-
(typeof
|
|
188
|
+
([a, o]) => {
|
|
189
|
+
(typeof a > "u" || ne("value", n.value)) && o[e] && o[e].length && t.value.controller.changeSelected(
|
|
190
190
|
e,
|
|
191
|
-
t.value.columnsDataStore,
|
|
191
|
+
t.value.columnsDataStore.value,
|
|
192
192
|
t.value.reactive.optionsState,
|
|
193
|
-
[{ selectedSource:
|
|
193
|
+
[{ selectedSource: o[e][0].value }]
|
|
194
194
|
);
|
|
195
195
|
},
|
|
196
196
|
{ immediate: !0 }
|
|
@@ -200,12 +200,12 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
200
200
|
var e;
|
|
201
201
|
return ((e = t.value.readonlyInputs) == null ? void 0 : e.includes("value")) ?? !1;
|
|
202
202
|
});
|
|
203
|
-
return (e,
|
|
203
|
+
return (e, a) => (u(), D(ee, null, {
|
|
204
204
|
dataInputs: E(() => [
|
|
205
205
|
v("div", ve, [
|
|
206
206
|
V(L(Z), {
|
|
207
207
|
modelValue: l.value.value,
|
|
208
|
-
"onUpdate:modelValue":
|
|
208
|
+
"onUpdate:modelValue": a[0] || (a[0] = (o) => l.value.value = o),
|
|
209
209
|
label: "Data source:",
|
|
210
210
|
options: p.value.value,
|
|
211
211
|
disabled: $.value,
|
|
@@ -213,34 +213,34 @@ const ve = { class: "data-form-input-item" }, pe = {
|
|
|
213
213
|
}, null, 8, ["modelValue", "options", "disabled", "error"])
|
|
214
214
|
]),
|
|
215
215
|
I.value.length > 0 ? (u(), d("div", pe, [
|
|
216
|
-
|
|
216
|
+
a[3] || (a[3] = v("div", { class: "title" }, "Drag to build the chart", -1)),
|
|
217
217
|
v("div", me, [
|
|
218
|
-
(u(!0), d(h, null, y(I.value, ({ id:
|
|
219
|
-
key:
|
|
220
|
-
info: m.value[
|
|
221
|
-
onDragstart:
|
|
218
|
+
(u(!0), d(h, null, y(I.value, ({ id: o }) => (u(), D(q, {
|
|
219
|
+
key: o,
|
|
220
|
+
info: m.value[o],
|
|
221
|
+
onDragstart: a[1] || (a[1] = (c) => i.value = c),
|
|
222
222
|
onDragend: F
|
|
223
223
|
}, null, 8, ["info"]))), 128))
|
|
224
224
|
])
|
|
225
225
|
])) : C("", !0),
|
|
226
226
|
_.value.length > 0 ? (u(), d("div", fe, [
|
|
227
|
-
|
|
227
|
+
a[4] || (a[4] = v("div", { class: "title" }, "Metadata", -1)),
|
|
228
228
|
v("div", he, [
|
|
229
|
-
(u(!0), d(h, null, y(_.value, ({ id:
|
|
230
|
-
key:
|
|
231
|
-
info: m.value[
|
|
232
|
-
onDragstart:
|
|
229
|
+
(u(!0), d(h, null, y(_.value, ({ id: o }) => (u(), D(q, {
|
|
230
|
+
key: o,
|
|
231
|
+
info: m.value[o],
|
|
232
|
+
onDragstart: a[2] || (a[2] = (c) => i.value = c),
|
|
233
233
|
onDragend: F
|
|
234
234
|
}, null, 8, ["info"]))), 128))
|
|
235
235
|
])
|
|
236
236
|
])) : C("", !0)
|
|
237
237
|
]),
|
|
238
238
|
chartVar: E(() => [
|
|
239
|
-
(u(!0), d(h, null, y(K.value, (
|
|
240
|
-
key:
|
|
239
|
+
(u(!0), d(h, null, y(K.value, (o) => (u(), d(h, {
|
|
240
|
+
key: o.id
|
|
241
241
|
}, [
|
|
242
|
-
W(
|
|
243
|
-
V(ce, Q({ ref_for: !0 },
|
|
242
|
+
W(o.id) ? (u(), d("div", Se, [
|
|
243
|
+
V(ce, Q({ ref_for: !0 }, o, Y(o.listeners)), null, 16)
|
|
244
244
|
])) : C("", !0)
|
|
245
245
|
], 64))), 128))
|
|
246
246
|
]),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DendroForm.vue.js","sources":["../../../src/forms/DataMappingForm/DendroForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport type {\n DendroUIState,\n InputGuide,\n InputState,\n} from '@milaboratories/pf-plots';\nimport FormLayout from './Layout/FormLayout.vue';\nimport type { Ref } from 'vue';\nimport { computed, watch, 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 type {\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 );\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 ) {\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 <FormLayout>\n <template #dataInputs>\n <div class=\"data-form-input-item\">\n <PlDropdown\n v-model=\"inputStateValues.value\"\n label=\"Data source:\"\n :options=\"options.value\"\n :disabled=\"readonlyValue\"\n :error=\"getErrorForPlDropdown('value', inputGuide)\"\n />\n </div>\n <div v-if=\"freeMandatoryOptions.length > 0\" class=\"metadata-block\">\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 v-if=\"freeOptions.length > 0\" class=\"metadata-block\">\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 #chartVar>\n <template v-for=\"basketProp in basketsData\" :key=\"basketProp.id\">\n <div v-if=\"showBasket(basketProp.id)\" class=\"data-form-input-item\">\n <DndBasket v-bind=\"basketProp\" v-on=\"basketProp.listeners\" />\n </div>\n </template>\n </template>\n </FormLayout>\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","_createBlock","FormLayout","_createElementVNode","_hoisted_1","_createVNode","_unref","PlDropdown","_cache","$event","getErrorForPlDropdown","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_Fragment","_renderList","id","DndChip","_hoisted_4","_hoisted_5","basketProp","_hoisted_6","DndBasket","_mergeProps","_toHandlers"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DendroForm.vue.js","sources":["../../../src/forms/DataMappingForm/DendroForm.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlDropdown } from '@platforma-sdk/ui-vue';\nimport type {\n DendroUIState,\n InputGuide,\n InputState,\n} from '@milaboratories/pf-plots';\nimport FormLayout from './Layout/FormLayout.vue';\nimport type { Ref } from 'vue';\nimport { computed, watch, 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 type {\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.value,\n );\n}\nfunction getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore.value,\n );\n}\nfunction getFiltersMulti(inputName: keyof InputState['components']) {\n return toFiltersMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore.value,\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.value) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, 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.value) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n}\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve({ values: [], overflow: false });\n }\n return store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, 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 ) {\n store.value.controller.changeSelected(\n inputName,\n store.value.columnsDataStore.value!,\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 <FormLayout>\n <template #dataInputs>\n <div class=\"data-form-input-item\">\n <PlDropdown\n v-model=\"inputStateValues.value\"\n label=\"Data source:\"\n :options=\"options.value\"\n :disabled=\"readonlyValue\"\n :error=\"getErrorForPlDropdown('value', inputGuide)\"\n />\n </div>\n <div v-if=\"freeMandatoryOptions.length > 0\" class=\"metadata-block\">\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 v-if=\"freeOptions.length > 0\" class=\"metadata-block\">\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 #chartVar>\n <template v-for=\"basketProp in basketsData\" :key=\"basketProp.id\">\n <div v-if=\"showBasket(basketProp.id)\" class=\"data-form-input-item\">\n <DndBasket v-bind=\"basketProp\" v-on=\"basketProp.listeners\" />\n </div>\n </template>\n </template>\n </FormLayout>\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","_createBlock","FormLayout","_createElementVNode","_hoisted_1","_createVNode","_unref","PlDropdown","_cache","$event","getErrorForPlDropdown","_openBlock","_createElementBlock","_hoisted_2","_hoisted_3","_Fragment","_renderList","id","DndChip","_hoisted_4","_hoisted_5","basketProp","_hoisted_6","DndBasket","_mergeProps","_toHandlers"],"mappings":"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"}
|
|
@@ -2,13 +2,13 @@ import { toRef as N, computed as c, shallowRef as A, ref as S } from "vue";
|
|
|
2
2
|
import { MAX_SEARCH_OPTIONS_LIST_LENGTH as h } from "../../constantsCommon.js";
|
|
3
3
|
import { getAllInputsOptions as X, getFreeMetaOptions as j, getFreeMandatoryOptions as z, getChipInfo as J, toSimpleSingle as Q, toSimpleMulti as T, toFiltersMulti as Y } from "./utils.js";
|
|
4
4
|
function K(l, F, I, D, v, O) {
|
|
5
|
-
const
|
|
5
|
+
const n = l.value.reactive.optionsState, p = N(l.value.reactive, "optionsState"), a = c(() => l.value.inputGuide.value);
|
|
6
6
|
function R(e) {
|
|
7
7
|
return Q(
|
|
8
8
|
p,
|
|
9
9
|
e,
|
|
10
10
|
l.value.controller,
|
|
11
|
-
l.value.columnsDataStore
|
|
11
|
+
l.value.columnsDataStore.value
|
|
12
12
|
);
|
|
13
13
|
}
|
|
14
14
|
function y(e) {
|
|
@@ -16,7 +16,7 @@ function K(l, F, I, D, v, O) {
|
|
|
16
16
|
p,
|
|
17
17
|
e,
|
|
18
18
|
l.value.controller,
|
|
19
|
-
l.value.columnsDataStore
|
|
19
|
+
l.value.columnsDataStore.value
|
|
20
20
|
);
|
|
21
21
|
}
|
|
22
22
|
function V(e) {
|
|
@@ -24,8 +24,8 @@ function K(l, F, I, D, v, O) {
|
|
|
24
24
|
p,
|
|
25
25
|
e,
|
|
26
26
|
l.value.controller,
|
|
27
|
-
l.value.columnsDataStore,
|
|
28
|
-
|
|
27
|
+
l.value.columnsDataStore.value,
|
|
28
|
+
a
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
const b = A({
|
|
@@ -33,29 +33,29 @@ function K(l, F, I, D, v, O) {
|
|
|
33
33
|
}), r = S({
|
|
34
34
|
...I.reduce((e, t) => (e[t] = V(t), e), {}),
|
|
35
35
|
...D.reduce((e, t) => (e[t] = y(t), e), {})
|
|
36
|
-
}), f = c(() => X(
|
|
37
|
-
() => j(
|
|
36
|
+
}), f = c(() => X(n, a)), M = c(
|
|
37
|
+
() => j(a, v)
|
|
38
38
|
), q = c(
|
|
39
|
-
() => z(
|
|
39
|
+
() => z(a, v)
|
|
40
40
|
), s = S(null), g = c(() => {
|
|
41
41
|
const e = /* @__PURE__ */ new Set();
|
|
42
42
|
return v.forEach((t) => {
|
|
43
|
-
f.value[t].forEach((
|
|
44
|
-
e.add(
|
|
45
|
-
}),
|
|
46
|
-
e.add(
|
|
43
|
+
f.value[t].forEach((u) => {
|
|
44
|
+
e.add(u.value);
|
|
45
|
+
}), n.components[t].selectorStates.forEach((u) => {
|
|
46
|
+
e.add(u.selectedSource);
|
|
47
47
|
});
|
|
48
|
-
}), J(
|
|
48
|
+
}), J(a.value, n.components, l.value.uniqueValuesData.value, [...e]);
|
|
49
49
|
});
|
|
50
50
|
function w(e) {
|
|
51
|
-
return
|
|
52
|
-
(t,
|
|
51
|
+
return n.components[e].selectorStates.reduce(
|
|
52
|
+
(t, u) => (u.type !== "range" && (t[u.selectedSource] = u.selectedFilterValues ?? []), t),
|
|
53
53
|
{}
|
|
54
54
|
);
|
|
55
55
|
}
|
|
56
56
|
function C(e) {
|
|
57
|
-
return
|
|
58
|
-
(t,
|
|
57
|
+
return n.components[e].selectorStates.reduce(
|
|
58
|
+
(t, u) => (t[u.selectedSource] = u.selectedFilterRange ? [u.selectedFilterRange.min, u.selectedFilterRange.max] : [0, 0], t),
|
|
59
59
|
{}
|
|
60
60
|
);
|
|
61
61
|
}
|
|
@@ -72,27 +72,27 @@ function K(l, F, I, D, v, O) {
|
|
|
72
72
|
r.value[t] = e;
|
|
73
73
|
}
|
|
74
74
|
function _(e) {
|
|
75
|
-
return
|
|
75
|
+
return a.value.components[e].stateConsistency;
|
|
76
76
|
}
|
|
77
77
|
function G(e) {
|
|
78
|
-
return !
|
|
78
|
+
return !a.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
|
-
return l.value.columnsDataStore ? (await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore,
|
|
81
|
+
return l.value.columnsDataStore.value ? (await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore.value, a.value, e, h, t || void 0)).values : Promise.resolve([]);
|
|
82
82
|
}
|
|
83
83
|
async function U(e, t) {
|
|
84
|
-
return l.value.columnsDataStore ? (await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore,
|
|
84
|
+
return l.value.columnsDataStore.value ? (await l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore.value, a.value, e, 1, void 0, t)).values : Promise.resolve([]);
|
|
85
85
|
}
|
|
86
86
|
async function W(e) {
|
|
87
|
-
return l.value.columnsDataStore ? l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore,
|
|
87
|
+
return l.value.columnsDataStore.value ? l.value.controller.getUniqueSourceValuesWithLabels(l.value.columnsDataStore.value, a.value, e, h) : Promise.resolve({ values: [], overflow: !1 });
|
|
88
88
|
}
|
|
89
89
|
const k = c(
|
|
90
90
|
() => v.map((e) => {
|
|
91
91
|
var m;
|
|
92
|
-
const t =
|
|
92
|
+
const t = a.value.components[e], u = e === "filters" || e === "highlight", i = {
|
|
93
93
|
id: e,
|
|
94
94
|
title: O[e],
|
|
95
|
-
isFilter:
|
|
95
|
+
isFilter: u,
|
|
96
96
|
sortable: e === "tooltipContent",
|
|
97
97
|
multiple: t.multipleSelectors,
|
|
98
98
|
required: t.required,
|
|
@@ -108,15 +108,15 @@ function K(l, F, I, D, v, O) {
|
|
|
108
108
|
listeners: {
|
|
109
109
|
"drop-item": L,
|
|
110
110
|
"remove-item": P,
|
|
111
|
-
reorder: (
|
|
111
|
+
reorder: (o) => x(o, e)
|
|
112
112
|
}
|
|
113
113
|
};
|
|
114
|
-
return
|
|
115
|
-
const d =
|
|
116
|
-
d.type = "equals", d.selectedFilterValues =
|
|
117
|
-
}, i.listeners["select-filter-range"] = (
|
|
118
|
-
const d =
|
|
119
|
-
d.type = "range", d.selectedFilterRange =
|
|
114
|
+
return u && (i.selectedFilters = w(e), i.selectedRanges = C(e), i.listeners["select-filter-value"] = (o) => {
|
|
115
|
+
const d = n.components[e].selectorStates[o.idx];
|
|
116
|
+
d.type = "equals", d.selectedFilterValues = o.v;
|
|
117
|
+
}, i.listeners["select-filter-range"] = (o) => {
|
|
118
|
+
const d = n.components[e].selectorStates[o.idx];
|
|
119
|
+
d.type = "range", d.selectedFilterRange = o.v;
|
|
120
120
|
}), i;
|
|
121
121
|
})
|
|
122
122
|
);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useBaskets.js","sources":["../../../src/forms/DataMappingForm/useBaskets.ts"],"sourcesContent":["import type {\n ChartType,\n ComponentStateFilter,\n InputGuide,\n InputNamesByChartType,\n InputState,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport type { ComputedRef, Ref } from 'vue';\nimport { computed, ref, shallowRef, toRef } from 'vue';\nimport type {\n BasketProps,\n ChipInfo,\n DropItemEvent,\n RemoveItemEvent,\n} from '../../components/DragAndDrop/types';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../constantsCommon';\nimport type { ComputedStore } from '../../store';\nimport type {\n AllStateOptions } from './utils';\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): {\n draggedId: Ref<string | null>;\n cleanDraggedId: () => void;\n basketsData: ComputedRef<BasketProps[]>;\n freeMetaOptions: ComputedRef<ReturnType<typeof getFreeMetaOptions<T>>>;\n freeMandatoryOptions: ComputedRef<ReturnType<typeof getFreeMandatoryOptions<T>>>;\n chipInfo: ComputedRef<Record<string, ChipInfo>>;\n dataStateValues: Ref<Record<DataIds, Ref<string | undefined>>>;\n dataOptions: ComputedRef<AllStateOptions<T>>;\n } {\n const state = store.value.reactive.optionsState as T;\n const stateRef = toRef(store.value.reactive, 'optionsState');\n\n const inputGuide = computed(() => store.value.inputGuide.value) as Ref<InputGuide<T>>;\n\n function getSimpleSingle(inputName: keyof InputState['components']) {\n return toSimpleSingle(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n );\n }\n\n function getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore,\n );\n }\n\n function 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\n const dataStateValues = shallowRef({\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\nconst options = computed(() => {\n return getAllInputsOptions(state, inputGuide);\n});\n\nconst freeMetaOptions = computed(() =>\n getFreeMetaOptions(inputGuide, BASKETS),\n);\nconst freeMandatoryOptions = computed(() =>\n getFreeMandatoryOptions(inputGuide, BASKETS),\n);\n\nconst draggedId = ref<string | null>(null);\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, store.value.uniqueValuesData.value, [...freeAndSelectedIds]);\n});\n\nfunction 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\nfunction 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]\n : [0, 0];\n return res;\n },\n {},\n );\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 commonRemoveItem(event: RemoveItemEvent<BasketIds>) {\n inputStateValues.value[event.basketId]\n = inputStateValues.value[event.basketId].filter((op: string) => op !== event.chipId);\n}\n\nfunction commonReorder(data: ChipInfo['id'][], name: BasketIds) {\n inputStateValues.value[name] = data;\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 || undefined)).values;\n}\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}\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 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 as string[];\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 as { min: number; max: number } | undefined;\n };\n }\n return basketProps;\n }),\n);\n\nfunction cleanDraggedId() {\n draggedId.value = null;\n}\n\nreturn {\n draggedId,\n cleanDraggedId,\n basketsData,\n freeMetaOptions,\n freeMandatoryOptions,\n chipInfo,\n dataStateValues,\n dataOptions: options,\n};\n}\n"],"names":["useBaskets","store","dataKeys","filterBasketKeys","simpleBasketKeys","BASKETS","BASKET_LABELS","state","stateRef","toRef","inputGuide","computed","getSimpleSingle","inputName","toSimpleSingle","getSimpleMulti","toSimpleMulti","getFiltersMulti","toFiltersMulti","dataStateValues","shallowRef","res","key","inputStateValues","ref","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":";;;AA2BO,SAASA,EAKdC,GACAC,GACAC,GACAC,GACAC,GACAC,GAUE;AACF,QAAMC,IAAQN,EAAM,MAAM,SAAS,cAC7BO,IAAWC,EAAMR,EAAM,MAAM,UAAU,cAAc,GAErDS,IAAaC,EAAS,MAAMV,EAAM,MAAM,WAAW,KAAK;AAE9D,WAASW,EAAgBC,GAA2C;AAClE,WAAOC;AAAA,MACLN;AAAA,MACAK;AAAA,MACAZ,EAAM,MAAM;AAAA,MACZA,EAAM,MAAM;AAAA,IAAA;AAAA,EAEhB;AAEA,WAASc,EAAeF,GAA2C;AACjE,WAAOG;AAAA,MACLR;AAAA,MACAK;AAAA,MACAZ,EAAM,MAAM;AAAA,MACZA,EAAM,MAAM;AAAA,IAAA;AAAA,EAEhB;AAEA,WAASgB,EAAgBJ,GAA2C;AAClE,WAAOK;AAAA,MACLV;AAAA,MACAK;AAAA,MACAZ,EAAM,MAAM;AAAA,MACZA,EAAM,MAAM;AAAA,MACZS;AAAA,IAAA;AAAA,EAEJ;AAEA,QAAMS,IAAkBC,EAAW;AAAA,IACjC,GAAGlB,EAAS,OAAO,CAACmB,GAA+CC,OACjED,EAAIC,CAAG,IAAIV,EAAgBU,CAAqC,GACzDD,IACN,CAAA,CAA8C;AAAA,EAAA,CAClD,GAIGE,IAAmBC,EAAsB;AAAA,IAC7C,GAAGrB,EAAiB,OAAO,CAACkB,GAAuBC,OACjDD,EAAIC,CAAG,IAAIL,EAAgBK,CAAqC,GACzDD,IACN,CAAA,CAAsB;AAAA,IACzB,GAAGjB,EAAiB,OAAO,CAACiB,GAAuBC,OACjDD,EAAIC,CAAG,IAAIP,EAAeO,CAAqC,GACxDD,IACN,CAAA,CAAsB;AAAA,EAAA,CAC1B,GAEKI,IAAUd,EAAS,MAChBe,EAAoBnB,GAAOG,CAAU,CAC7C,GAEKiB,IAAkBhB;AAAA,IAAS,MAC/BiB,EAAmBlB,GAAYL,CAAO;AAAA,EAAA,GAElCwB,IAAuBlB;AAAA,IAAS,MACpCmB,EAAwBpB,GAAYL,CAAO;AAAA,EAAA,GAGvC0B,IAAYP,EAAmB,IAAI,GACnCQ,IAAWrB,EAAmC,MAAM;AACxD,UAAMsB,wBAAyB,IAAA;AAC/B,WAAA5B,EAAQ,QAAQ,CAAC6B,MAAS;AACxB,MAAAT,EAAQ,MAAMS,CAAI,EAAE,QAAQ,CAACC,MAAW;AACtC,QAAAF,EAAmB,IAAIE,EAAO,KAAK;AAAA,MACrC,CAAC,GACD5B,EAAM,WAAW2B,CAAI,EAAE,eAAe,QAAQ,CAACE,MAAkB;AAC/D,QAAAH,EAAmB,IAAIG,EAAc,cAAc;AAAA,MACrD,CAAC;AAAA,IACH,CAAC,GACMC,EAAY3B,EAAW,OAAOH,EAAM,YAAYN,EAAM,MAAM,iBAAiB,OAAO,CAAC,GAAGgC,CAAkB,CAAC;AAAA,EACpH,CAAC;AAED,WAASK,EAAiBJ,GAAiB;AACzC,WAAQ3B,EAAM,WAAW2B,CAAI,EAA2B,eAAe;AAAA,MACrE,CAACb,GAA+BkB,OAC1BA,EAAY,SAAS,YACvBlB,EAAIkB,EAAY,cAAc,IAAIA,EAAY,wBAAwB,CAAA,IAEjElB;AAAA,MAET,CAAA;AAAA,IAAC;AAAA,EAEL;AAEA,WAASmB,EAAiBN,GAAiB;AACzC,WAAQ3B,EAAM,WAAW2B,CAAI,EAA2B,eAAe;AAAA,MACrE,CAACb,GAAuCkB,OACtClB,EAAIkB,EAAY,cAAc,IAAIA,EAAY,sBAC1C,CAACA,EAAY,oBAAoB,KAAKA,EAAY,oBAAoB,GAAG,IACzE,CAAC,GAAG,CAAC,GACFlB;AAAA,MAET,CAAA;AAAA,IAAC;AAAA,EAEL;AAEA,WAASoB,EAAsBC,GAAiC;AAC9D,IAAAnB,EAAiB,MAAMmB,EAAM,EAAE,IAAI;AAAA,MACjC,GAAGnB,EAAiB,MAAMmB,EAAM,EAAE;AAAA,MAClCA,EAAM;AAAA,IAAA,GAERX,EAAU,QAAQ;AAAA,EACpB;AAEA,WAASY,EAAiBD,GAAmC;AAC3D,IAAAnB,EAAiB,MAAMmB,EAAM,QAAQ,IAC/BnB,EAAiB,MAAMmB,EAAM,QAAQ,EAAE,OAAO,CAACE,MAAeA,MAAOF,EAAM,MAAM;AAAA,EACzF;AAEA,WAASG,EAAcC,GAAwBZ,GAAiB;AAC9D,IAAAX,EAAiB,MAAMW,CAAI,IAAIY;AAAA,EACjC;AAEA,WAASC,EAAeC,GAAqB;AAC3C,WAAOtC,EAAW,MAAM,WAAWsC,CAAQ,EAAE;AAAA,EAC/C;AAEA,WAASC,EAAYD,GAAqB;AACxC,WACE,CAACtC,EAAW,MAAM,aACfe,EAAQ,MAAMuB,CAAQ,EAAE,WAAW,KAClCjB,EAAU,UAAU,QACnB,CAACC,EAAS,MAAMD,EAAU,KAAK,EAAE,mBAAmB,IAAIiB,CAAQ;AAAA,EAEzE;AAEA,iBAAeE,EAAoBC,GAAkBC,GAAgE;AACnH,WAAKnD,EAAM,MAAM,oBAGT,MAAMA,EAAM,MAAM,WAAW,gCAAgCA,EAAM,MAAM,kBAAkBS,EAAW,OAAOyC,GAAUE,GAAgCD,KAAa,MAAS,GAAG,SAF/K,QAAQ,QAAQ,EAAE;AAAA,EAG7B;AAEA,iBAAeE,EAAiCH,GAAkBI,GAAoE;AACpI,WAAKtD,EAAM,MAAM,oBAGT,MAAMA,EAAM,MAAM,WAAW,gCAAgCA,EAAM,MAAM,kBAAkBS,EAAW,OAAOyC,GAAU,GAAG,QAAWI,CAAa,GAAG,SAFpJ,QAAQ,QAAQ,EAAE;AAAA,EAG7B;AAEA,iBAAeC,EAAYL,GAAkB;AAC3C,WAAKlD,EAAM,MAAM,mBAGVA,EAAM,MAAM,WAAW,gCAAgCA,EAAM,MAAM,kBAAkBS,EAAW,OAAOyC,GAAUE,CAA8B,IAF7I,QAAQ,QAAQ,EAAE,QAAQ,CAAA,GAAI,UAAU,IAAO;AAAA,EAG1D;AAEA,QAAMI,IAAc9C;AAAA,IAAwB,MAC1CN,EAAQ,IAAI,CAAC6B,MAAS;;AACpB,YAAMwB,IAAQhD,EAAW,MAAM,WAAWwB,CAAI,GACxCyB,IAAWzB,MAAS,aAAaA,MAAS,aAE1C0B,IAA2B;AAAA,QAC/B,IAAI1B;AAAA,QACJ,OAAO5B,EAAc4B,CAAI;AAAA,QACzB,UAAAyB;AAAA,QACA,UAAUzB,MAAS;AAAA,QACnB,UAAUwB,EAAM;AAAA,QAChB,UAAUA,EAAM;AAAA,QAChB,UAAUT,EAAYf,CAAI;AAAA,QAC1B,YAAU2B,IAAA5D,EAAM,MAAM,mBAAZ,gBAAA4D,EAA4B,SAAS3B,OAAS;AAAA,QACxD,aAAaa,EAAeb,CAAI;AAAA,QAChC,WAAWH,EAAU;AAAA,QACrB,YAAYR,EAAiB,MAAMW,CAAI;AAAA,QACvC,MAAMF,EAAS;AAAA,QAEf,UAAUkB;AAAA,QACV,uBAAuBI;AAAA,QACvB,eAAeE;AAAA,QAEf,WAAW;AAAA,UACT,aAAaf;AAAA,UACb,eAAeE;AAAA,UACf,SAAW,CAACG,MAA2BD,EAAcC,GAAMZ,CAAI;AAAA,QAAA;AAAA,MACjE;AAEF,aAAIyB,MACFC,EAAY,kBAAkBtB,EAAiBJ,CAAI,GACnD0B,EAAY,iBAAiBpB,EAAiBN,CAAI,GAClD0B,EAAY,UAAU,qBAAqB,IAAI,CAACd,MAAS;AACvD,cAAMV,IAAgB7B,EAAM,WAAW2B,CAAI,EAAE,eAAeY,EAAK,GAAG;AACpE,QAAAV,EAAc,OAAO,UACrBA,EAAc,uBAAuBU,EAAK;AAAA,MAC5C,GACAc,EAAY,UAAU,qBAAqB,IAAI,CAACd,MAAS;AACvD,cAAMV,IAAgB7B,EAAM,WAAW2B,CAAI,EAAE,eAAeY,EAAK,GAAG;AACpE,QAAAV,EAAc,OAAO,SACrBA,EAAc,sBAAsBU,EAAK;AAAA,MAC3C,IAEKc;AAAA,IACT,CAAC;AAAA,EAAA;AAGH,WAASE,IAAiB;AACxB,IAAA/B,EAAU,QAAQ;AAAA,EACpB;AAEA,SAAO;AAAA,IACL,WAAAA;AAAA,IACA,gBAAA+B;AAAA,IACA,aAAAL;AAAA,IACA,iBAAA9B;AAAA,IACA,sBAAAE;AAAA,IACA,UAAAG;AAAA,IACA,iBAAAb;AAAA,IACA,aAAaM;AAAA,EAAA;AAEf;"}
|
|
1
|
+
{"version":3,"file":"useBaskets.js","sources":["../../../src/forms/DataMappingForm/useBaskets.ts"],"sourcesContent":["import type {\n ChartType,\n ComponentStateFilter,\n InputGuide,\n InputNamesByChartType,\n InputState,\n SelectorStateFilter,\n} from '@milaboratories/pf-plots';\nimport type { ComputedRef, Ref } from 'vue';\nimport { computed, ref, shallowRef, toRef } from 'vue';\nimport type {\n BasketProps,\n ChipInfo,\n DropItemEvent,\n RemoveItemEvent,\n} from '../../components/DragAndDrop/types';\nimport { MAX_SEARCH_OPTIONS_LIST_LENGTH } from '../../constantsCommon';\nimport type { ComputedStore } from '../../store';\nimport type {\n AllStateOptions } from './utils';\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): {\n draggedId: Ref<string | null>;\n cleanDraggedId: () => void;\n basketsData: ComputedRef<BasketProps[]>;\n freeMetaOptions: ComputedRef<ReturnType<typeof getFreeMetaOptions<T>>>;\n freeMandatoryOptions: ComputedRef<ReturnType<typeof getFreeMandatoryOptions<T>>>;\n chipInfo: ComputedRef<Record<string, ChipInfo>>;\n dataStateValues: Ref<Record<DataIds, Ref<string | undefined>>>;\n dataOptions: ComputedRef<AllStateOptions<T>>;\n } {\n const state = store.value.reactive.optionsState as T;\n const stateRef = toRef(store.value.reactive, 'optionsState');\n\n const inputGuide = computed(() => store.value.inputGuide.value) as Ref<InputGuide<T>>;\n\n function getSimpleSingle(inputName: keyof InputState['components']) {\n return toSimpleSingle(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore.value,\n );\n }\n\n function getSimpleMulti(inputName: keyof InputState['components']) {\n return toSimpleMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore.value,\n );\n }\n\n function getFiltersMulti(inputName: keyof InputState['components']) {\n return toFiltersMulti(\n stateRef,\n inputName,\n store.value.controller,\n store.value.columnsDataStore.value,\n inputGuide,\n );\n }\n\n const dataStateValues = shallowRef({\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\nconst options = computed(() => {\n return getAllInputsOptions(state, inputGuide);\n});\n\nconst freeMetaOptions = computed(() =>\n getFreeMetaOptions(inputGuide, BASKETS),\n);\nconst freeMandatoryOptions = computed(() =>\n getFreeMandatoryOptions(inputGuide, BASKETS),\n);\n\nconst draggedId = ref<string | null>(null);\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, store.value.uniqueValuesData.value, [...freeAndSelectedIds]);\n});\n\nfunction 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\nfunction 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]\n : [0, 0];\n return res;\n },\n {},\n );\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 commonRemoveItem(event: RemoveItemEvent<BasketIds>) {\n inputStateValues.value[event.basketId]\n = inputStateValues.value[event.basketId].filter((op: string) => op !== event.chipId);\n}\n\nfunction commonReorder(data: ChipInfo['id'][], name: BasketIds) {\n inputStateValues.value[name] = data;\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.value) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, inputGuide.value, sourceId, MAX_SEARCH_OPTIONS_LIST_LENGTH, searchStr || undefined)).values;\n}\n\nasync function searchSelectedFilterValueOptions(sourceId: string, selectedValue: string): Promise<{ value: string; label: string }[]> {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve([]);\n }\n return (await store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, inputGuide.value, sourceId, 1, undefined, selectedValue)).values;\n}\n\nasync function loadOptions(sourceId: string) {\n if (!store.value.columnsDataStore.value) {\n return Promise.resolve({ values: [], overflow: false });\n }\n return store.value.controller.getUniqueSourceValuesWithLabels(store.value.columnsDataStore.value, 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 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 as string[];\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 as { min: number; max: number } | undefined;\n };\n }\n return basketProps;\n }),\n);\n\nfunction cleanDraggedId() {\n draggedId.value = null;\n}\n\nreturn {\n draggedId,\n cleanDraggedId,\n basketsData,\n freeMetaOptions,\n freeMandatoryOptions,\n chipInfo,\n dataStateValues,\n dataOptions: options,\n};\n}\n"],"names":["useBaskets","store","dataKeys","filterBasketKeys","simpleBasketKeys","BASKETS","BASKET_LABELS","state","stateRef","toRef","inputGuide","computed","getSimpleSingle","inputName","toSimpleSingle","getSimpleMulti","toSimpleMulti","getFiltersMulti","toFiltersMulti","dataStateValues","shallowRef","res","key","inputStateValues","ref","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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"}
|
package/dist/index.vue.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../src/index.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.vue.d.ts","sourceRoot":"","sources":["../src/index.vue"],"names":[],"mappings":"AAidA,OAAO,KAAK,EAA0B,gBAAgB,EAAa,MAAM,sBAAsB,CAAC;AAIhG,OAAO,kBAAkB,CAAC;AAS1B,OAAO,KAAK,EAAmC,eAAe,EAAe,MAAM,SAAS,CAAC;AAmF7F,iBAAS,KAAK,SAcb;AAED,iBAAS,aAAa,SASrB;AA0SD,iBAAS,cAAc;WAkMT,OAAO,IAA6B;;+BAbf,GAAG;iCACA,GAAG;8BACN,GAAG;yBACR,GAAG;;;;EAehC;AAgCD,KAAK,oBAAoB,GAAG,UAAU,CAAC,OAAO,cAAc,CAAC,CAAC;AAC9D,QAAA,MAAM,eAAe;gBAhPT,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;IAlY5B;;;;OAIG;;IAEH;;OAEG;;;;;;;;gBAyXO,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;gBADlB,eAAe;gBACb,gBAAgB;;;;;;6FA2P5B,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"}
|