@milaboratories/graph-maker 1.1.170 → 1.1.172

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. package/dist/GraphMaker/components/AesSettings/AesDataMappingContinuous.vue.js +5 -5
  2. package/dist/GraphMaker/components/AesSettings/AesDataMappingContinuous.vue.js.map +1 -1
  3. package/dist/GraphMaker/components/Chart.vue.d.ts.map +1 -1
  4. package/dist/GraphMaker/components/Chart.vue.js +44 -34
  5. package/dist/GraphMaker/components/Chart.vue.js.map +1 -1
  6. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts +0 -2
  7. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.d.ts.map +1 -1
  8. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js +26 -33
  9. package/dist/GraphMaker/components/DragAndDrop/DnDBasketChip.vue.js.map +1 -1
  10. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.d.ts.map +1 -1
  11. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js +14 -17
  12. package/dist/GraphMaker/components/DragAndDrop/DnDRangeChip.vue.js.map +1 -1
  13. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.d.ts.map +1 -1
  14. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js +49 -50
  15. package/dist/GraphMaker/components/DragAndDrop/DndBasket.vue.js.map +1 -1
  16. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts +5 -2
  17. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.d.ts.map +1 -1
  18. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js +46 -43
  19. package/dist/GraphMaker/components/DragAndDrop/DndDoubleChip.vue.js.map +1 -1
  20. package/dist/GraphMaker/components/DragAndDrop/types.d.ts +6 -3
  21. package/dist/GraphMaker/components/DragAndDrop/types.d.ts.map +1 -1
  22. package/dist/GraphMaker/dataBindAes.d.ts.map +1 -1
  23. package/dist/GraphMaker/dataBindAes.js +90 -92
  24. package/dist/GraphMaker/dataBindAes.js.map +1 -1
  25. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js +3 -2
  26. package/dist/GraphMaker/forms/AxesSettingsForm/DiscreteAxesSettingsForm.vue.js.map +1 -1
  27. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.d.ts.map +1 -1
  28. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js +40 -43
  29. package/dist/GraphMaker/forms/DataMappingForm/DendroForm.vue.js.map +1 -1
  30. package/dist/GraphMaker/forms/DataMappingForm/DiscreteForm.vue.js +9 -8
  31. package/dist/GraphMaker/forms/DataMappingForm/DiscreteForm.vue.js.map +1 -1
  32. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.d.ts.map +1 -1
  33. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js +15 -18
  34. package/dist/GraphMaker/forms/DataMappingForm/useBaskets.js.map +1 -1
  35. package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.js +8 -7
  36. package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot/Scatter.vue.js.map +1 -1
  37. package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js +3 -2
  38. package/dist/GraphMaker/forms/LayersForm/Layer/scatterplot-umap/Scatter.vue.js.map +1 -1
  39. package/dist/GraphMaker/forms/StatisticsForm/DiscreteStatisticsForm.vue.js +3 -2
  40. package/dist/GraphMaker/forms/StatisticsForm/DiscreteStatisticsForm.vue.js.map +1 -1
  41. package/dist/GraphMaker/index.vue.d.ts.map +1 -1
  42. package/dist/GraphMaker/index.vue.js +49 -48
  43. package/dist/GraphMaker/index.vue.js.map +1 -1
  44. package/dist/GraphMaker/store.d.ts +3 -2
  45. package/dist/GraphMaker/store.d.ts.map +1 -1
  46. package/dist/GraphMaker/store.js +132 -116
  47. package/dist/GraphMaker/store.js.map +1 -1
  48. package/dist/GraphMaker/types.d.ts +8 -1
  49. package/dist/GraphMaker/types.d.ts.map +1 -1
  50. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js +3 -2
  51. package/dist/GraphMaker/utils/createChartSettingsForRender/composeBubbleSettings.js.map +1 -1
  52. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js +3 -2
  53. package/dist/GraphMaker/utils/createChartSettingsForRender/composeDiscreteSettings.js.map +1 -1
  54. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js +3 -2
  55. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHeatmapSettings.js.map +1 -1
  56. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.js +3 -2
  57. package/dist/GraphMaker/utils/createChartSettingsForRender/composeHistogramSettings.js.map +1 -1
  58. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js +3 -2
  59. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotSettings.js.map +1 -1
  60. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js +7 -6
  61. package/dist/GraphMaker/utils/createChartSettingsForRender/composeScatterplotUmapSettings.js.map +1 -1
  62. package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.d.ts.map +1 -1
  63. package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js +108 -101
  64. package/dist/GraphMaker/utils/createChartSettingsForRender/getLayersDataFromForms.js.map +1 -1
  65. package/dist/GraphMaker/utils/getUsedAesInMapping.js +15 -14
  66. package/dist/GraphMaker/utils/getUsedAesInMapping.js.map +1 -1
  67. package/dist/GraphMaker/utils/loadDefaultSources.js +16 -15
  68. package/dist/GraphMaker/utils/loadDefaultSources.js.map +1 -1
  69. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts +5 -3
  70. package/dist/GraphMaker/utils/loadUniqueValuesToSave.d.ts.map +1 -1
  71. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js +66 -72
  72. package/dist/GraphMaker/utils/loadUniqueValuesToSave.js.map +1 -1
  73. package/dist/node_modules/@milaboratories/helpers/dist/utils.js.map +1 -1
  74. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js +2 -2
  75. package/dist/node_modules/@milaboratories/miplots4/dist/scatterplot-umap/components/LowerSVG.js.map +1 -1
  76. package/dist/node_modules/@milaboratories/pl-model-common/dist/bmodel/code.js +6 -0
  77. package/dist/node_modules/@milaboratories/pl-model-common/dist/bmodel/code.js.map +1 -0
  78. package/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js +1 -0
  79. package/dist/node_modules/@platforma-sdk/model/dist/render/util/label.js.map +1 -1
  80. 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 w } from "../../constantsCommon.js";
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 o = te(), S = o.value.reactive.optionsState, g = J(o.value.reactive, "optionsState"), n = s(
24
- () => o.value.inputGuide.value
25
- ), x = s(() => o.value.uniqueValuesData.value);
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
- o.value.controller,
31
- o.value.columnsDataStore
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
- o.value.controller,
39
- o.value.columnsDataStore
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
- o.value.controller,
47
- o.value.columnsDataStore,
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
- o.value.reactive.layersSettings.dendro.dotShape = e.length ? { type: "nodeShape", value: e[0] } : de;
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
- o.value.reactive.layersSettings.dendro.dotFill = e.length ? { type: "nodeColor", value: e[0] } : B;
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
- o.value.reactive.layersSettings.dendro.lineColor = e.length ? { type: "lineColor", value: e[0] } : B;
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((t) => {
117
- p.value[t].forEach((a) => {
116
+ return b.forEach((o) => {
117
+ p.value[o].forEach((a) => {
118
118
  e.add(a.value);
119
- }), S.components[t].selectorStates.forEach((a) => {
119
+ }), S.components[o].selectorStates.forEach((a) => {
120
120
  e.add(a.selectedSource);
121
121
  });
122
- }), le(n.value, S.components, x.value, [...e]);
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, t) {
131
- l.value[t] = e;
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((t) => t !== e.chipId);
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, t) {
143
- return o.value.columnsDataStore ? (await o.value.controller.getUniqueSourceValuesWithLabels(o.value.columnsDataStore, n.value, e, w, t)).values : Promise.resolve([]);
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, t) {
146
- return o.value.columnsDataStore ? (await o.value.controller.getUniqueSourceValuesWithLabels(o.value.columnsDataStore, n.value, e, 1, void 0, t)).values : Promise.resolve([]);
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
- if (!o.value.columnsDataStore)
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 t = n.value.components[e];
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: t.multipleSelectors,
164
- required: t.required,
160
+ multiple: o.multipleSelectors,
161
+ required: o.required,
165
162
  disabled: U(e),
166
- readonly: ((c = o.value.readonlyInputs) == null ? void 0 : c.includes(e)) ?? !1,
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
- ([t, a]) => {
192
- (typeof t > "u" || ne("value", n.value)) && a[e] && a[e].length && o.value.controller.changeSelected(
188
+ ([o, a]) => {
189
+ (typeof o > "u" || ne("value", n.value)) && a[e] && a[e].length && t.value.controller.changeSelected(
193
190
  e,
194
- o.value.columnsDataStore,
195
- o.value.reactive.optionsState,
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 = o.value.readonlyInputs) == null ? void 0 : e.includes("value")) ?? !1;
201
+ return ((e = t.value.readonlyInputs) == null ? void 0 : e.includes("value")) ?? !1;
205
202
  });
206
- return (e, t) => (u(), D(ee, null, {
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": t[0] || (t[0] = (a) => l.value.value = a),
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
- t[3] || (t[3] = v("div", { class: "title" }, "Drag to build the chart", -1)),
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: t[1] || (t[1] = (c) => i.value = c),
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
- t[4] || (t[4] = v("div", { class: "title" }, "Metadata", -1)),
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: t[2] || (t[2] = (c) => i.value = c),
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" }, er = /* @__PURE__ */ I({
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: l,
45
- dataStateValues: m,
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(m).y,
63
- "onUpdate:modelValue": t[0] || (t[0] = (o) => r(m).y = o),
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(l),
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(l),
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
- er as default
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":";;;;;;;;;;;;;;;;;;;;;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
+ {"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,EAGX,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;;;;;;;;;;;;;;;EAyNzC"}
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
- }), g = c(() => A(o, u)), M = c(
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), f = c(() => {
40
+ ), s = m(null), g = c(() => {
41
41
  const e = /* @__PURE__ */ new Set();
42
42
  return v.forEach((t) => {
43
- g.value[t].forEach((n) => {
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 w(e) {
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 C(e) {
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 L(e) {
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 P(e) {
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 || g.value[e].length === 0 || s.value !== null && !f.value[s.value].availableBasketIds.has(e);
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
- if (!l.value.columnsDataStore)
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: f.value,
104
+ info: g.value,
108
105
  searchFn: H,
109
106
  searchSelectedValueFn: U,
110
107
  loadOptionsFn: W,
111
108
  listeners: {
112
- "drop-item": L,
113
- "remove-item": P,
109
+ "drop-item": P,
110
+ "remove-item": w,
114
111
  reorder: (a) => x(a, e)
115
112
  }
116
113
  };
117
- return n && (i.selectedFilters = w(e), i.selectedRanges = C(e), i.listeners["select-filter-value"] = (a) => {
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: f,
132
+ chipInfo: g,
136
133
  dataStateValues: b,
137
- dataOptions: g
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 g from "../../AesSelector.vue.js";
5
- import { DEFAULT_BLACK as m, DEFAULT_DOT_SHAPE as f } from "../../../../constantsAesthetic.js";
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", Q = /* @__PURE__ */ F({
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) ? m : e ?? m;
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(g, {
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(g, {
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
- Q as default
89
+ W as default
89
90
  };
90
91
  //# sourceMappingURL=Scatter.vue.js.map