@platforma-sdk/ui-vue 1.45.35 → 1.45.37

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 (180) hide show
  1. package/.turbo/turbo-build.log +204 -235
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +13 -0
  4. package/dist/AgGridVue/useAgGridOptions.js +2 -3
  5. package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
  6. package/dist/components/BlockLayout.vue2.js +3 -3
  7. package/dist/components/BlockLayout.vue2.js.map +1 -1
  8. package/dist/components/BlockLoader.vue.js.map +1 -1
  9. package/dist/components/LoaderPage.vue.js +2 -2
  10. package/dist/components/LoaderPage.vue.js.map +1 -1
  11. package/dist/components/NotFound.vue.js +3 -3
  12. package/dist/components/NotFound.vue.js.map +1 -1
  13. package/dist/components/PlAdvancedFilter/OperandButton.vue2.js.map +1 -1
  14. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +73 -73
  15. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
  16. package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js +100 -100
  17. package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js.map +1 -1
  18. package/dist/components/PlAgCellFile/PlAgCellFile.vue.js.map +1 -1
  19. package/dist/components/PlAgCellProgress/PlAgCellProgress.vue.js.map +1 -1
  20. package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js +6 -6
  21. package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js.map +1 -1
  22. package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js.map +1 -1
  23. package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js.map +1 -1
  24. package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js +22 -22
  25. package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js.map +1 -1
  26. package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js +3 -3
  27. package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js.map +1 -1
  28. package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js.map +1 -1
  29. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +50 -50
  30. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
  31. package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue.js.map +1 -1
  32. package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue.js.map +1 -1
  33. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +7 -8
  34. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
  35. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js +35 -35
  36. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js.map +1 -1
  37. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +16 -17
  38. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
  39. package/dist/components/PlAgRowNumHeader.vue.js +14 -15
  40. package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
  41. package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js +16 -16
  42. package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js.map +1 -1
  43. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js +6 -6
  44. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js.map +1 -1
  45. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +57 -57
  46. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js.map +1 -1
  47. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +6 -6
  48. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
  49. package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
  50. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js.map +1 -1
  51. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js +7 -7
  52. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js.map +1 -1
  53. package/dist/components/PlBtnExportArchive/Item.vue2.js +23 -23
  54. package/dist/components/PlBtnExportArchive/Item.vue2.js.map +1 -1
  55. package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js.map +1 -1
  56. package/dist/components/PlBtnExportArchive/Summary.vue2.js +22 -22
  57. package/dist/components/PlBtnExportArchive/Summary.vue2.js.map +1 -1
  58. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js +9 -9
  59. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js.map +1 -1
  60. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js +3 -3
  61. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js.map +1 -1
  62. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +9 -9
  63. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
  64. package/dist/components/ValueOrErrorsComponent.vue.js.map +1 -1
  65. package/dist/index.js +48 -50
  66. package/dist/index.js.map +1 -1
  67. package/dist/lib.d.ts +0 -1
  68. package/dist/plugins/Monetization/EndOfPeriod.vue2.js +9 -9
  69. package/dist/plugins/Monetization/EndOfPeriod.vue2.js.map +1 -1
  70. package/dist/plugins/Monetization/LimitCard.vue2.js +40 -40
  71. package/dist/plugins/Monetization/LimitCard.vue2.js.map +1 -1
  72. package/dist/plugins/Monetization/MonetizationSidebar.vue.js +3 -3
  73. package/dist/plugins/Monetization/MonetizationSidebar.vue.js.map +1 -1
  74. package/dist/plugins/Monetization/RunStatus.vue2.js +12 -12
  75. package/dist/plugins/Monetization/RunStatus.vue2.js.map +1 -1
  76. package/dist/plugins/Monetization/UserCabinetCard.vue2.js +22 -22
  77. package/dist/plugins/Monetization/UserCabinetCard.vue2.js.map +1 -1
  78. package/package.json +7 -8
  79. package/src/lib.ts +0 -2
  80. package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js +0 -6
  81. package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js.map +0 -1
  82. package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js +0 -5
  83. package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js.map +0 -1
  84. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.d.ts +0 -9
  85. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.js +0 -10
  86. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.js.map +0 -1
  87. package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js +0 -122
  88. package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js.map +0 -1
  89. package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js +0 -9
  90. package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js.map +0 -1
  91. package/dist/components/PlMultiSequenceAlignment/Legend.vue.d.ts +0 -6
  92. package/dist/components/PlMultiSequenceAlignment/Legend.vue.js +0 -10
  93. package/dist/components/PlMultiSequenceAlignment/Legend.vue.js.map +0 -1
  94. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +0 -28
  95. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js.map +0 -1
  96. package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +0 -13
  97. package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js.map +0 -1
  98. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +0 -25
  99. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.js +0 -10
  100. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.js.map +0 -1
  101. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +0 -138
  102. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +0 -1
  103. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +0 -31
  104. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +0 -1
  105. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.d.ts +0 -8
  106. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js +0 -10
  107. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js.map +0 -1
  108. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js +0 -77
  109. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js.map +0 -1
  110. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js +0 -9
  111. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js.map +0 -1
  112. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +0 -71
  113. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.js +0 -10
  114. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.js.map +0 -1
  115. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +0 -224
  116. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +0 -1
  117. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue3.js +0 -9
  118. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue3.js.map +0 -1
  119. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.d.ts +0 -8
  120. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js +0 -10
  121. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js.map +0 -1
  122. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js +0 -127
  123. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js.map +0 -1
  124. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js +0 -9
  125. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js.map +0 -1
  126. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts +0 -16
  127. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.js +0 -10
  128. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.js.map +0 -1
  129. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +0 -228
  130. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +0 -1
  131. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js +0 -19
  132. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js.map +0 -1
  133. package/dist/components/PlMultiSequenceAlignment/cell-size.d.ts +0 -4
  134. package/dist/components/PlMultiSequenceAlignment/cell-size.js +0 -8
  135. package/dist/components/PlMultiSequenceAlignment/cell-size.js.map +0 -1
  136. package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts +0 -44
  137. package/dist/components/PlMultiSequenceAlignment/chemical-properties.js +0 -132
  138. package/dist/components/PlMultiSequenceAlignment/chemical-properties.js.map +0 -1
  139. package/dist/components/PlMultiSequenceAlignment/data.d.ts +0 -61
  140. package/dist/components/PlMultiSequenceAlignment/data.js +0 -370
  141. package/dist/components/PlMultiSequenceAlignment/data.js.map +0 -1
  142. package/dist/components/PlMultiSequenceAlignment/index.d.ts +0 -1
  143. package/dist/components/PlMultiSequenceAlignment/markup.d.ts +0 -16
  144. package/dist/components/PlMultiSequenceAlignment/markup.js +0 -84
  145. package/dist/components/PlMultiSequenceAlignment/markup.js.map +0 -1
  146. package/dist/components/PlMultiSequenceAlignment/migrations.d.ts +0 -3
  147. package/dist/components/PlMultiSequenceAlignment/migrations.js +0 -24
  148. package/dist/components/PlMultiSequenceAlignment/migrations.js.map +0 -1
  149. package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.d.ts +0 -6
  150. package/dist/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.d.ts +0 -7
  151. package/dist/components/PlMultiSequenceAlignment/residue-counts.d.ts +0 -2
  152. package/dist/components/PlMultiSequenceAlignment/residue-counts.js +0 -13
  153. package/dist/components/PlMultiSequenceAlignment/residue-counts.js.map +0 -1
  154. package/dist/components/PlMultiSequenceAlignment/settings.d.ts +0 -2
  155. package/dist/components/PlMultiSequenceAlignment/settings.js +0 -9
  156. package/dist/components/PlMultiSequenceAlignment/settings.js.map +0 -1
  157. package/dist/components/PlMultiSequenceAlignment/types.d.ts +0 -5
  158. package/dist/components/PlMultiSequenceAlignment/useMiPlots.d.ts +0 -4
  159. package/dist/components/PlMultiSequenceAlignment/useMiPlots.js +0 -19
  160. package/dist/components/PlMultiSequenceAlignment/useMiPlots.js.map +0 -1
  161. package/src/components/PlMultiSequenceAlignment/Consensus.vue +0 -165
  162. package/src/components/PlMultiSequenceAlignment/Legend.vue +0 -44
  163. package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +0 -299
  164. package/src/components/PlMultiSequenceAlignment/PhylogeneticTree.vue +0 -110
  165. package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +0 -314
  166. package/src/components/PlMultiSequenceAlignment/README.md +0 -216
  167. package/src/components/PlMultiSequenceAlignment/SeqLogo.vue +0 -166
  168. package/src/components/PlMultiSequenceAlignment/Toolbar.vue +0 -228
  169. package/src/components/PlMultiSequenceAlignment/cell-size.ts +0 -4
  170. package/src/components/PlMultiSequenceAlignment/chemical-properties.ts +0 -199
  171. package/src/components/PlMultiSequenceAlignment/data.ts +0 -661
  172. package/src/components/PlMultiSequenceAlignment/index.ts +0 -1
  173. package/src/components/PlMultiSequenceAlignment/markup.ts +0 -141
  174. package/src/components/PlMultiSequenceAlignment/migrations.ts +0 -46
  175. package/src/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.ts +0 -54
  176. package/src/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.ts +0 -89
  177. package/src/components/PlMultiSequenceAlignment/residue-counts.ts +0 -124
  178. package/src/components/PlMultiSequenceAlignment/settings.ts +0 -7
  179. package/src/components/PlMultiSequenceAlignment/types.ts +0 -3
  180. package/src/components/PlMultiSequenceAlignment/useMiPlots.ts +0 -23
@@ -1,9 +1,9 @@
1
- import { defineComponent as Z, mergeModels as _, useModel as ee, computed as p, createElementBlock as x, openBlock as n, Fragment as E, createElementVNode as v, createVNode as g, normalizeClass as r, createCommentVNode as b, createBlock as c, unref as a, toDisplayString as le, renderList as te } from "vue";
2
- import { PlIcon16 as k, PlDropdown as T, PlAutocomplete as D, PlTextField as N, Slider as oe, PlToggleSwitch as ue, PlAutocompleteMulti as ae, PlNumberField as ne } from "@milaboratories/uikit";
3
- import { SUPPORTED_FILTER_TYPES as se, DEFAULT_FILTERS as A, DEFAULT_FILTER_TYPE as re } from "./constants.js";
4
- import { parseColumnId as U, isFilteredPColumn as R, stringifyColumnId as q } from "@platforma-sdk/model";
1
+ import { defineComponent as Z, mergeModels as _, useModel as ee, computed as p, createElementBlock as I, openBlock as n, Fragment as T, createElementVNode as v, createVNode as b, normalizeClass as r, createCommentVNode as f, createBlock as c, unref as a, toDisplayString as le, renderList as te } from "vue";
2
+ import { PlIcon16 as B, PlDropdown as N, PlAutocomplete as D, PlTextField as A, Slider as ue, PlToggleSwitch as oe, PlAutocompleteMulti as ae, PlNumberField as ne } from "@milaboratories/uikit";
3
+ import { SUPPORTED_FILTER_TYPES as se, DEFAULT_FILTERS as U, DEFAULT_FILTER_TYPE as re } from "./constants.js";
4
+ import { parseColumnId as M, isFilteredPColumn as R, stringifyColumnId as q } from "@platforma-sdk/model";
5
5
  import ie from "./OperandButton.vue.js";
6
- import { getNormalizedSpec as z, getFilterInfo as B, isNumericFilter as L, isStringFilter as de } from "./utils.js";
6
+ import { getNormalizedSpec as z, getFilterInfo as C, isNumericFilter as L, isStringFilter as de } from "./utils.js";
7
7
  const pe = ["title"], fe = /* @__PURE__ */ Z({
8
8
  __name: "SingleFilter",
9
9
  props: /* @__PURE__ */ _({
@@ -20,60 +20,60 @@ const pe = ["title"], fe = /* @__PURE__ */ Z({
20
20
  modelModifiers: {}
21
21
  }),
22
22
  emits: ["update:modelValue"],
23
- setup(M) {
24
- const y = M, l = ee(M, "modelValue");
25
- async function w(e, t, u) {
26
- return Promise.all(t.map((d) => y.getSuggestModel({ columnId: e, searchStr: d, axisIdx: u })));
23
+ setup(y) {
24
+ const g = y, l = ee(y, "modelValue");
25
+ async function w(e, t, o) {
26
+ return Promise.all(t.map((d) => g.getSuggestModel({ columnId: e, searchStr: d, axisIdx: o })));
27
27
  }
28
- async function h(e, t, u) {
29
- return y.getSuggestModel({ columnId: e, searchStr: t, axisIdx: u });
28
+ async function h(e, t, o) {
29
+ return g.getSuggestModel({ columnId: e, searchStr: t, axisIdx: o });
30
30
  }
31
- async function C(e, t, u) {
32
- return y.getSuggestOptions({ columnId: e, searchStr: t, axisIdx: u });
31
+ async function $(e, t, o) {
32
+ return g.getSuggestOptions({ columnId: e, searchStr: t, axisIdx: o });
33
33
  }
34
34
  function W() {
35
- const e = B(l.value.type);
36
- f.value && e.supportedFor(f.value) && L(l.value) || (f.value && e.supportedFor(f.value) && de(l.value) ? l.value = {
37
- ...A[l.value.type],
35
+ const e = C(l.value.type);
36
+ F.value && e.supportedFor(F.value) && L(l.value) || (F.value && e.supportedFor(F.value) && de(l.value) ? l.value = {
37
+ ...U[l.value.type],
38
38
  value: l.value.value,
39
39
  column: l.value.column
40
40
  } : l.value = {
41
- ...A[l.value.type],
41
+ ...U[l.value.type],
42
42
  column: l.value.column
43
43
  });
44
44
  }
45
45
  function j(e) {
46
46
  if (!e)
47
47
  return;
48
- const t = y.columnOptions.find((i) => i.id === $(e));
48
+ const t = g.columnOptions.find((i) => i.id === E(e));
49
49
  if (!t)
50
50
  return;
51
- const u = B(l.value.type), d = z(t == null ? void 0 : t.spec);
52
- u.supportedFor(d) ? l.value.column = e : l.value = {
53
- ...A[re],
51
+ const o = C(l.value.type), d = z(t == null ? void 0 : t.spec);
52
+ o.supportedFor(d) ? l.value.column = e : l.value = {
53
+ ...U[re],
54
54
  column: e
55
55
  };
56
56
  }
57
- const S = p(() => y.columnOptions.find((t) => t.id === $(l.value.column)) === void 0), X = p(() => {
58
- const e = y.columnOptions.map((t) => ({ value: t.id, label: t.label ?? t }));
59
- return S.value && e.unshift({ value: l.value.column, label: "Inconsistent value" }), e;
57
+ const x = p(() => g.columnOptions.find((t) => t.id === E(l.value.column)) === void 0), X = p(() => {
58
+ const e = g.columnOptions.map((t) => ({ value: t.id, label: t.label ?? t }));
59
+ return x.value && e.unshift({ value: l.value.column, label: "Inconsistent value" }), e;
60
60
  });
61
- function $(e) {
61
+ function E(e) {
62
62
  try {
63
- const t = U(e);
63
+ const t = M(e);
64
64
  return R(t) ? q(t.source) : e;
65
65
  } catch {
66
66
  return e;
67
67
  }
68
68
  }
69
69
  function Y(e) {
70
- const t = $(e), u = y.columnOptions.find((i) => i.id === t), d = ((u == null ? void 0 : u.axesToBeFixed) ?? []).reduce((i, F) => (i[F.idx] = void 0, i), {});
70
+ const t = E(e), o = g.columnOptions.find((i) => i.id === t), d = ((o == null ? void 0 : o.axesToBeFixed) ?? []).reduce((i, V) => (i[V.idx] = void 0, i), {});
71
71
  try {
72
- const i = U(e);
72
+ const i = M(e);
73
73
  if (R(i))
74
74
  return {
75
75
  source: t,
76
- axisFiltersByIndex: i.axisFilters.reduce((F, I) => (F[I[0]] = I[1], F), d)
76
+ axisFiltersByIndex: i.axisFilters.reduce((V, O) => (V[O[0]] = O[1], V), d)
77
77
  };
78
78
  } catch {
79
79
  return { source: e, axisFiltersByIndex: d };
@@ -82,8 +82,8 @@ const pe = ["title"], fe = /* @__PURE__ */ Z({
82
82
  }
83
83
  function G(e) {
84
84
  return Object.keys(e.axisFiltersByIndex).length === 0 ? e.source : q({
85
- source: U(e.source),
86
- axisFilters: Object.entries(e.axisFiltersByIndex).map(([t, u]) => [Number(t), u])
85
+ source: M(e.source),
86
+ axisFilters: Object.entries(e.axisFiltersByIndex).map(([t, o]) => [Number(t), o])
87
87
  });
88
88
  }
89
89
  const s = p({
@@ -98,22 +98,22 @@ const pe = ["title"], fe = /* @__PURE__ */ Z({
98
98
  axisFiltersByIndex: { ...s.value.axisFiltersByIndex, [e]: t }
99
99
  };
100
100
  }
101
- const m = p(() => y.columnOptions.find((e) => e.id === s.value.source)), f = p(() => {
101
+ const m = p(() => g.columnOptions.find((e) => e.id === s.value.source)), F = p(() => {
102
102
  var e;
103
103
  return (e = m.value) != null && e.spec ? z(m.value.spec) : null;
104
104
  }), P = p(() => {
105
105
  var e;
106
- return (e = f.value) == null ? void 0 : e.valueType;
107
- }), O = p(() => {
106
+ return (e = F.value) == null ? void 0 : e.valueType;
107
+ }), k = p(() => {
108
108
  var e;
109
- return ((e = m.value) == null ? void 0 : e.error) || S.value;
109
+ return ((e = m.value) == null ? void 0 : e.error) || x.value;
110
110
  }), J = p(
111
111
  () => [...se].filter(
112
- (e) => l.value.type === e || (f.value ? B(e).supportedFor(f.value) : !0)
113
- ).map((e) => ({ value: e, label: B(e).label }))
112
+ (e) => l.value.type === e || (F.value ? C(e).supportedFor(F.value) : !0)
113
+ ).map((e) => ({ value: e, label: C(e).label }))
114
114
  ), K = p(() => {
115
115
  var e, t;
116
- return l.value.type === "patternFuzzyContainSubsequence" ? ((e = m.value) == null ? void 0 : e.alphabet) === "nucleotide" ? [{ label: "N", value: "N" }] : ((t = m.value) == null ? void 0 : t.alphabet) === "aminoacid" ? [{ label: "X", value: "X" }] : [...new Set(l.value.value.split(""))].sort().map((u) => ({ value: u, label: u })) : [];
116
+ return l.value.type === "patternFuzzyContainSubsequence" ? ((e = m.value) == null ? void 0 : e.alphabet) === "nucleotide" ? [{ label: "N", value: "N" }] : ((t = m.value) == null ? void 0 : t.alphabet) === "aminoacid" ? [{ label: "X", value: "X" }] : [...new Set(l.value.value.split(""))].sort().map((o) => ({ value: o, label: o })) : [];
117
117
  }), Q = p(() => {
118
118
  if (l.value.type !== "patternMatchesRegularExpression")
119
119
  return !1;
@@ -124,97 +124,97 @@ const pe = ["title"], fe = /* @__PURE__ */ Z({
124
124
  }
125
125
  });
126
126
  return (e, t) => {
127
- var u, d, i, F, I;
128
- return n(), x(E, null, [
127
+ var o, d, i, V, O;
128
+ return n(), I(T, null, [
129
129
  v("div", {
130
130
  class: r(e.$style.filterWrapper)
131
131
  }, [
132
- e.enableDnd ? (n(), x("div", {
132
+ y.enableDnd ? (n(), I("div", {
133
133
  key: 0,
134
- class: r([e.$style.top, e.$style.columnChip, { [e.$style.error]: O.value }])
134
+ class: r([e.$style.top, e.$style.columnChip, { [e.$style.error]: k.value }])
135
135
  }, [
136
136
  v("div", {
137
- class: r([e.$style.typeIcon, { [e.$style.error]: O.value }])
137
+ class: r([e.$style.typeIcon, { [e.$style.error]: k.value }])
138
138
  }, [
139
- O.value ? (n(), c(a(k), {
139
+ k.value ? (n(), c(a(B), {
140
140
  key: 0,
141
141
  name: "warning"
142
- })) : (n(), c(a(k), {
142
+ })) : (n(), c(a(B), {
143
143
  key: 1,
144
144
  name: P.value === "String" || P.value === void 0 ? "cell-type-txt" : "cell-type-num"
145
145
  }, null, 8, ["name"]))
146
146
  ], 2),
147
147
  v("div", {
148
148
  class: r(e.$style.titleWrapper),
149
- title: ((u = m.value) == null ? void 0 : u.label) ?? ""
149
+ title: ((o = m.value) == null ? void 0 : o.label) ?? ""
150
150
  }, [
151
151
  v("div", {
152
152
  class: r(e.$style.title)
153
- }, le(S.value ? "Inconsistent value" : ((d = m.value) == null ? void 0 : d.label) ?? l.value.column), 3)
153
+ }, le(x.value ? "Inconsistent value" : ((d = m.value) == null ? void 0 : d.label) ?? l.value.column), 3)
154
154
  ], 10, pe),
155
155
  v("div", {
156
156
  class: r(e.$style.closeIcon),
157
- onClick: t[0] || (t[0] = (o) => e.onDelete(l.value.column))
157
+ onClick: t[0] || (t[0] = (u) => y.onDelete(l.value.column))
158
158
  }, [
159
- g(a(k), { name: "close" })
159
+ b(a(B), { name: "close" })
160
160
  ], 2)
161
- ], 2)) : (n(), x("div", {
161
+ ], 2)) : (n(), I("div", {
162
162
  key: 1,
163
163
  class: r(e.$style.top)
164
164
  }, [
165
- g(a(T), {
165
+ b(a(N), {
166
166
  modelValue: s.value.source,
167
167
  "onUpdate:modelValue": [
168
- t[1] || (t[1] = (o) => s.value.source = o),
168
+ t[1] || (t[1] = (u) => s.value.source = u),
169
169
  j
170
170
  ],
171
- errorStatus: O.value,
171
+ errorStatus: k.value,
172
172
  options: X.value,
173
173
  style: { width: "100%" },
174
174
  "group-position": "top-left"
175
175
  }, null, 8, ["modelValue", "errorStatus", "options"]),
176
176
  v("div", {
177
177
  class: r(e.$style.closeButton),
178
- onClick: t[2] || (t[2] = (o) => e.onDelete(l.value.column))
178
+ onClick: t[2] || (t[2] = (u) => y.onDelete(l.value.column))
179
179
  }, [
180
- g(a(k), { name: "close" })
180
+ b(a(B), { name: "close" })
181
181
  ], 2)
182
182
  ], 2)),
183
- (F = (i = m.value) == null ? void 0 : i.axesToBeFixed) != null && F.length ? (n(), x("div", {
183
+ (V = (i = m.value) == null ? void 0 : i.axesToBeFixed) != null && V.length ? (n(), I("div", {
184
184
  key: 2,
185
185
  class: r(e.$style.fixedAxesBlock)
186
186
  }, [
187
- (n(!0), x(E, null, te((I = m.value) == null ? void 0 : I.axesToBeFixed, (o) => (n(), c(a(D), {
188
- key: o.idx,
189
- modelValue: s.value.axisFiltersByIndex[o.idx],
190
- "onUpdate:modelValue": [(V) => s.value.axisFiltersByIndex[o.idx] = V, (V) => H(o.idx, V)],
191
- label: o.label,
192
- "options-search": (V) => C(s.value.source, V, o.idx),
193
- "model-search": (V) => h(s.value.source, V, o.idx),
194
- disabled: S.value,
187
+ (n(!0), I(T, null, te((O = m.value) == null ? void 0 : O.axesToBeFixed, (u) => (n(), c(a(D), {
188
+ key: u.idx,
189
+ modelValue: s.value.axisFiltersByIndex[u.idx],
190
+ "onUpdate:modelValue": [(S) => s.value.axisFiltersByIndex[u.idx] = S, (S) => H(u.idx, S)],
191
+ label: u.label,
192
+ "options-search": (S) => $(s.value.source, S, u.idx),
193
+ "model-search": (S) => h(s.value.source, S, u.idx),
194
+ disabled: x.value,
195
195
  clearable: !0
196
196
  }, null, 8, ["modelValue", "onUpdate:modelValue", "label", "options-search", "model-search", "disabled"]))), 128))
197
- ], 2)) : b("", !0),
197
+ ], 2)) : f("", !0),
198
198
  v("div", {
199
199
  class: r(l.value.type === "isNA" || l.value.type === "isNotNA" ? e.$style.bottom : e.$style.middle)
200
200
  }, [
201
- g(a(T), {
201
+ b(a(N), {
202
202
  modelValue: l.value.type,
203
203
  "onUpdate:modelValue": [
204
- t[3] || (t[3] = (o) => l.value.type = o),
204
+ t[3] || (t[3] = (u) => l.value.type = u),
205
205
  W
206
206
  ],
207
207
  options: J.value,
208
208
  "group-position": l.value.type === "isNA" || l.value.type === "isNotNA" ? "bottom" : "middle"
209
209
  }, null, 8, ["modelValue", "options", "group-position"])
210
210
  ], 2),
211
- l.value.type === "patternFuzzyContainSubsequence" ? (n(), x(E, { key: 3 }, [
211
+ l.value.type === "patternFuzzyContainSubsequence" ? (n(), I(T, { key: 3 }, [
212
212
  v("div", {
213
213
  class: r(e.$style.middle)
214
214
  }, [
215
- g(a(N), {
215
+ b(a(A), {
216
216
  modelValue: l.value.value,
217
- "onUpdate:modelValue": t[4] || (t[4] = (o) => l.value.value = o),
217
+ "onUpdate:modelValue": t[4] || (t[4] = (u) => l.value.value = u),
218
218
  placeholder: "Substring",
219
219
  "group-position": "middle"
220
220
  }, null, 8, ["modelValue"])
@@ -222,79 +222,79 @@ const pe = ["title"], fe = /* @__PURE__ */ Z({
222
222
  v("div", {
223
223
  class: r(e.$style.innerSection)
224
224
  }, [
225
- g(a(oe), {
225
+ b(a(ue), {
226
226
  modelValue: l.value.maxEdits,
227
- "onUpdate:modelValue": t[5] || (t[5] = (o) => l.value.maxEdits = o),
227
+ "onUpdate:modelValue": t[5] || (t[5] = (u) => l.value.maxEdits = u),
228
228
  max: 5,
229
229
  breakpoints: "",
230
230
  label: "Maximum number of substitutions and indels"
231
231
  }, null, 8, ["modelValue"]),
232
- g(a(ue), {
232
+ b(a(oe), {
233
233
  modelValue: l.value.substitutionsOnly,
234
- "onUpdate:modelValue": t[6] || (t[6] = (o) => l.value.substitutionsOnly = o),
234
+ "onUpdate:modelValue": t[6] || (t[6] = (u) => l.value.substitutionsOnly = u),
235
235
  label: "Substitutions only"
236
236
  }, null, 8, ["modelValue"])
237
237
  ], 2)
238
- ], 64)) : b("", !0),
238
+ ], 64)) : f("", !0),
239
239
  v("div", {
240
240
  class: r(e.$style.bottom)
241
241
  }, [
242
242
  l.value.type === "patternEquals" || l.value.type === "patternNotEquals" ? (n(), c(a(D), {
243
243
  key: 0,
244
244
  modelValue: l.value.value,
245
- "onUpdate:modelValue": t[7] || (t[7] = (o) => l.value.value = o),
246
- "options-search": (o) => C(s.value.source, o),
247
- "model-search": (o) => h(s.value.source, o),
248
- disabled: S.value,
245
+ "onUpdate:modelValue": t[7] || (t[7] = (u) => l.value.value = u),
246
+ "options-search": (u) => $(s.value.source, u),
247
+ "model-search": (u) => h(s.value.source, u),
248
+ disabled: x.value,
249
249
  clearable: !0,
250
250
  "group-position": "bottom"
251
- }, null, 8, ["modelValue", "options-search", "model-search", "disabled"])) : b("", !0),
251
+ }, null, 8, ["modelValue", "options-search", "model-search", "disabled"])) : f("", !0),
252
252
  l.value.type === "inSet" || l.value.type === "notInSet" ? (n(), c(a(ae), {
253
253
  key: 1,
254
254
  modelValue: l.value.value,
255
- "onUpdate:modelValue": t[8] || (t[8] = (o) => l.value.value = o),
256
- "options-search": (o) => C(s.value.source, o),
257
- "model-search": (o) => w(s.value.source, o),
258
- disabled: S.value,
255
+ "onUpdate:modelValue": t[8] || (t[8] = (u) => l.value.value = u),
256
+ "options-search": (u) => $(s.value.source, u),
257
+ "model-search": (u) => w(s.value.source, u),
258
+ disabled: x.value,
259
259
  "group-position": "bottom"
260
- }, null, 8, ["modelValue", "options-search", "model-search", "disabled"])) : b("", !0),
260
+ }, null, 8, ["modelValue", "options-search", "model-search", "disabled"])) : f("", !0),
261
261
  a(L)(l.value) ? (n(), c(a(ne), {
262
262
  key: 2,
263
263
  modelValue: l.value.x,
264
- "onUpdate:modelValue": t[9] || (t[9] = (o) => l.value.x = o),
264
+ "onUpdate:modelValue": t[9] || (t[9] = (u) => l.value.x = u),
265
265
  "group-position": "bottom"
266
- }, null, 8, ["modelValue"])) : b("", !0),
267
- l.value.type === "patternContainSubsequence" || l.value.type === "patternNotContainSubsequence" ? (n(), c(a(N), {
266
+ }, null, 8, ["modelValue"])) : f("", !0),
267
+ l.value.type === "patternContainSubsequence" || l.value.type === "patternNotContainSubsequence" ? (n(), c(a(A), {
268
268
  key: 3,
269
269
  modelValue: l.value.value,
270
- "onUpdate:modelValue": t[10] || (t[10] = (o) => l.value.value = o),
270
+ "onUpdate:modelValue": t[10] || (t[10] = (u) => l.value.value = u),
271
271
  placeholder: "Substring",
272
272
  "group-position": "bottom"
273
- }, null, 8, ["modelValue"])) : b("", !0),
274
- l.value.type === "patternMatchesRegularExpression" ? (n(), c(a(N), {
273
+ }, null, 8, ["modelValue"])) : f("", !0),
274
+ l.value.type === "patternMatchesRegularExpression" ? (n(), c(a(A), {
275
275
  key: 4,
276
276
  modelValue: l.value.value,
277
- "onUpdate:modelValue": t[11] || (t[11] = (o) => l.value.value = o),
277
+ "onUpdate:modelValue": t[11] || (t[11] = (u) => l.value.value = u),
278
278
  error: Q.value ? "Regular expression is not valid" : void 0,
279
279
  placeholder: "Regular expression",
280
280
  "group-position": "bottom"
281
- }, null, 8, ["modelValue", "error"])) : b("", !0),
282
- l.value.type === "patternFuzzyContainSubsequence" ? (n(), c(a(T), {
281
+ }, null, 8, ["modelValue", "error"])) : f("", !0),
282
+ l.value.type === "patternFuzzyContainSubsequence" ? (n(), c(a(N), {
283
283
  key: 5,
284
284
  modelValue: l.value.wildcard,
285
- "onUpdate:modelValue": t[12] || (t[12] = (o) => l.value.wildcard = o),
285
+ "onUpdate:modelValue": t[12] || (t[12] = (u) => l.value.wildcard = u),
286
286
  clearable: "",
287
287
  placeholder: "Wildcard value",
288
288
  options: K.value,
289
289
  "group-position": "bottom"
290
- }, null, 8, ["modelValue", "options"])) : b("", !0)
290
+ }, null, 8, ["modelValue", "options"])) : f("", !0)
291
291
  ], 2)
292
292
  ], 2),
293
- g(ie, {
293
+ b(ie, {
294
294
  class: r(e.$style.buttonWrapper),
295
- active: e.operand,
296
- disabled: e.isLast,
297
- "on-select": e.onChangeOperand
295
+ active: y.operand,
296
+ disabled: y.isLast,
297
+ "on-select": y.onChangeOperand
298
298
  }, null, 8, ["class", "active", "disabled", "on-select"])
299
299
  ], 64);
300
300
  };
@@ -1 +1 @@
1
- {"version":3,"file":"SingleFilter.vue2.js","sources":["../../../src/components/PlAdvancedFilter/SingleFilter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PlAdvancedFilterColumnId, Filter, Operand, SourceOptionInfo } from './types';\nimport { PlIcon16, PlDropdown, PlAutocomplete, PlAutocompleteMulti, PlTextField, PlNumberField, Slider, PlToggleSwitch } from '@milaboratories/uikit';\nimport { computed } from 'vue';\nimport { SUPPORTED_FILTER_TYPES, DEFAULT_FILTER_TYPE, DEFAULT_FILTERS } from './constants';\nimport type { AnchoredPColumnId, AxisFilterByIdx, AxisFilterValue, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { isFilteredPColumn, parseColumnId, stringifyColumnId, type ListOptionBase } from '@platforma-sdk/model';\nimport OperandButton from './OperandButton.vue';\nimport { getFilterInfo, getNormalizedSpec, isNumericFilter, isStringFilter } from './utils';\n\nconst props = defineProps<{\n operand: Operand;\n columnOptions: SourceOptionInfo[];\n enableDnd: boolean;\n isLast: boolean;\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => (Promise<ListOptionBase<string | number>[]>) |\n ((params: { columnId: SUniversalPColumnId; searchStr: string; axisIdx?: number }) => ListOptionBase<string | number>[]);\n getSuggestModel: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => (Promise<ListOptionBase<string | number>>) |\n ((params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => ListOptionBase<string | number>);\n onDelete: (columnId: PlAdvancedFilterColumnId) => void;\n onChangeOperand: (op: Operand) => void;\n}>();\n\nconst filter = defineModel<Filter>({ required: true });\n\nasync function getSuggestModelMultiFn(id: PlAdvancedFilterColumnId, v: string[], axisIdx?: number): Promise<ListOptionBase<string>[]> {\n return Promise.all(v.map((v) => props.getSuggestModel({ columnId: id, searchStr: v, axisIdx }) as Promise<ListOptionBase<string>>));\n}\nasync function getSuggestModelSingleFn(id: PlAdvancedFilterColumnId, v: string, axisIdx?: number): Promise<ListOptionBase<string>> {\n return props.getSuggestModel({ columnId: id, searchStr: v, axisIdx }) as Promise<ListOptionBase<string>>;\n}\nasync function getSuggestOptionsFn(id: PlAdvancedFilterColumnId, str: string, axisIdx?: number): Promise<ListOptionBase<string>[]> {\n return props.getSuggestOptions({ columnId: id, searchStr: str, axisIdx }) as Promise<ListOptionBase<string>[]>;\n}\n\nfunction changeFilterType() {\n const nextFilterInfo = getFilterInfo(filter.value.type);\n if (currentSpec.value && nextFilterInfo.supportedFor(currentSpec.value) && isNumericFilter(filter.value)) {\n // no extra changes, previous filter is compatible with new filter type\n return;\n } else if (currentSpec.value && nextFilterInfo.supportedFor(currentSpec.value) && isStringFilter(filter.value)) {\n // erase extra settings for string filter types, save only value and column (for example regex)\n filter.value = {\n ...DEFAULT_FILTERS[filter.value.type],\n value: filter.value.value,\n column: filter.value.column,\n } as Filter;\n } else {\n filter.value = {\n ...DEFAULT_FILTERS[filter.value.type],\n column: filter.value.column,\n };\n }\n}\n\nfunction changeSourceId(newSourceId?: PlAdvancedFilterColumnId) {\n if (!newSourceId) {\n return;\n }\n const newSourceInfo = props.columnOptions.find((v) => v.id === getSourceId(newSourceId));\n if (!newSourceInfo) {\n return;\n }\n const filterInfo = getFilterInfo(filter.value.type);\n const newSourceSpec = getNormalizedSpec(newSourceInfo?.spec);\n if (filterInfo.supportedFor(newSourceSpec)) { // don't do anything except update source id\n filter.value.column = newSourceId;\n } else { // reset to default filter which fits to any column\n filter.value = {\n ...DEFAULT_FILTERS[DEFAULT_FILTER_TYPE],\n column: newSourceId,\n };\n }\n}\n\nconst inconsistentSourceSelected = computed(() => {\n const selectedOption = props.columnOptions.find((op) => op.id === getSourceId(filter.value.column));\n return selectedOption === undefined;\n});\nconst sourceOptions = computed(() => {\n const options = props.columnOptions.map((v) => ({ value: v.id, label: v.label ?? v }));\n if (inconsistentSourceSelected.value) {\n options.unshift({ value: filter.value.column, label: 'Inconsistent value' });\n }\n return options;\n});\n\nfunction getSourceId(column: PlAdvancedFilterColumnId): PlAdvancedFilterColumnId {\n try {\n const parsedColumnId = parseColumnId(column as SUniversalPColumnId);\n if (isFilteredPColumn(parsedColumnId)) {\n return stringifyColumnId(parsedColumnId.source);\n } else {\n return column;\n }\n } catch {\n return column;\n }\n}\n\n// similar to FilteredPColumnId but source is stringified and axis filters can be undefined\ntype ColumnAsSourceAndFixedAxes = { source: PlAdvancedFilterColumnId; axisFiltersByIndex: Record<number, AxisFilterValue | undefined> };\nfunction getColumnAsSourceAndFixedAxes(column: PlAdvancedFilterColumnId): ColumnAsSourceAndFixedAxes {\n const sourceId = getSourceId(column);\n const option = props.columnOptions.find((op) => op.id === sourceId);\n const axesToBeFixed = (option?.axesToBeFixed ?? []).reduce((res, item) => {\n res[item.idx] = undefined;\n return res;\n }, {} as Record<number, AxisFilterValue | undefined>);\n try {\n const parsedColumnId = parseColumnId(column as SUniversalPColumnId);\n if (isFilteredPColumn(parsedColumnId)) {\n return {\n source: sourceId,\n axisFiltersByIndex: parsedColumnId.axisFilters.reduce((res, item) => {\n res[item[0]] = item[1];\n return res;\n }, axesToBeFixed),\n };\n }\n } catch {\n return { source: column, axisFiltersByIndex: axesToBeFixed };\n }\n return { source: column, axisFiltersByIndex: axesToBeFixed };\n}\n\nfunction stringifyColumn(value: ColumnAsSourceAndFixedAxes): PlAdvancedFilterColumnId {\n if (Object.keys(value.axisFiltersByIndex).length === 0) {\n return value.source;\n }\n return stringifyColumnId({\n source: parseColumnId(value.source as SUniversalPColumnId) as AnchoredPColumnId,\n axisFilters: Object.entries(value.axisFiltersByIndex).map(([idx, value]) => [Number(idx), value] as AxisFilterByIdx),\n });\n}\n\nconst columnAsSourceAndFixedAxes = computed({\n get: () => {\n return getColumnAsSourceAndFixedAxes(filter.value.column);\n },\n set: (value) => {\n filter.value.column = stringifyColumn(value);\n },\n});\nfunction updateAxisFilterValue(idx: number, value: AxisFilterValue | undefined) {\n columnAsSourceAndFixedAxes.value = {\n ...columnAsSourceAndFixedAxes.value,\n axisFiltersByIndex: { ...columnAsSourceAndFixedAxes.value.axisFiltersByIndex, [idx]: value } };\n}\n\nconst currentOption = computed(() => props.columnOptions.find((op) => op.id === columnAsSourceAndFixedAxes.value.source));\nconst currentSpec = computed(() => currentOption.value?.spec ? getNormalizedSpec(currentOption.value.spec) : null);\nconst currentType = computed(() => currentSpec.value?.valueType);\nconst currentError = computed(() => currentOption.value?.error || inconsistentSourceSelected.value);\n\nconst filterTypesOptions = computed(() => [...SUPPORTED_FILTER_TYPES].filter((v) =>\n filter.value.type === v || (currentSpec.value ? getFilterInfo(v).supportedFor(currentSpec.value) : true),\n).map((v) => ({ value: v, label: getFilterInfo(v).label })),\n);\n\nconst wildcardOptions = computed(() => {\n if (filter.value.type === 'patternFuzzyContainSubsequence') {\n if (currentOption.value?.alphabet === 'nucleotide') {\n return [{ label: 'N', value: 'N' }];\n }\n if (currentOption.value?.alphabet === 'aminoacid') {\n return [{ label: 'X', value: 'X' }];\n }\n return [...new Set(filter.value.value.split(''))].sort().map((v) => ({ value: v, label: v }));\n }\n return [];\n});\n\nconst stringMatchesError = computed(() => {\n if (filter.value.type !== 'patternMatchesRegularExpression') {\n return false;\n }\n try {\n new RegExp(filter.value.value);\n return false;\n } catch {\n return true;\n }\n});\n\n</script>\n<template>\n <div :class=\"$style.filterWrapper\">\n <!-- top element - column selector / column label - for all filter types-->\n <div v-if=\"enableDnd\" :class=\"[$style.top, $style.columnChip, {[$style.error]: currentError}]\">\n <div :class=\"[$style.typeIcon, {[$style.error]: currentError}]\">\n <PlIcon16 v-if=\"currentError\" name=\"warning\"/>\n <PlIcon16 v-else :name=\"currentType === 'String' || currentType === undefined ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div :class=\"$style.titleWrapper\" :title=\"currentOption?.label ?? ''\">\n <div :class=\"$style.title\">\n {{ inconsistentSourceSelected ? 'Inconsistent value' : currentOption?.label ?? filter.column }}\n </div>\n </div>\n <div :class=\"$style.closeIcon\" @click=\"onDelete(filter.column)\">\n <PlIcon16 name=\"close\"/>\n </div>\n </div>\n <div v-else :class=\"$style.top\" >\n <PlDropdown\n v-model=\"columnAsSourceAndFixedAxes.source\"\n :errorStatus=\"currentError\"\n :options=\"sourceOptions\"\n :style=\"{width: '100%'}\"\n group-position=\"top-left\"\n @update:model-value=\"changeSourceId\"\n />\n <div :class=\"$style.closeButton\" @click=\"onDelete(filter.column)\">\n <PlIcon16 name=\"close\"/>\n </div>\n </div>\n\n <div v-if=\"currentOption?.axesToBeFixed?.length\" :class=\"$style.fixedAxesBlock\">\n <template v-for=\"value in currentOption?.axesToBeFixed\" :key=\"value.idx\">\n <PlAutocomplete\n v-model=\"columnAsSourceAndFixedAxes.axisFiltersByIndex[value.idx]\"\n :label=\"value.label\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str, value.idx)\"\n :model-search=\"(v) => getSuggestModelSingleFn(columnAsSourceAndFixedAxes.source, v as string, value.idx)\"\n :disabled=\"inconsistentSourceSelected\"\n :clearable=\"true\"\n @update:model-value=\"(v) => updateAxisFilterValue(value.idx, v)\"\n />\n </template>\n </div>\n\n <!-- middle - filter type selector - for all filter types -->\n <div :class=\"filter.type === 'isNA' || filter.type === 'isNotNA' ? $style.bottom : $style.middle\">\n <PlDropdown\n v-model=\"filter.type\"\n :options=\"filterTypesOptions\"\n :group-position=\"filter.type === 'isNA' || filter.type === 'isNotNA' ? 'bottom' : 'middle'\"\n @update:model-value=\"changeFilterType\"\n />\n </div>\n\n <!-- middle - for fuzzy contains filter -->\n <template v-if=\"filter.type === 'patternFuzzyContainSubsequence'\">\n <div :class=\"$style.middle\">\n <PlTextField\n v-model=\"filter.value\"\n placeholder=\"Substring\"\n group-position=\"middle\"\n />\n </div>\n <div :class=\"$style.innerSection\">\n <Slider\n v-model=\"filter.maxEdits\"\n :max=\"5\"\n breakpoints label=\"Maximum number of substitutions and indels\"\n />\n <PlToggleSwitch\n v-model=\"filter.substitutionsOnly\"\n label=\"Substitutions only\"\n />\n </div>\n </template>\n\n <!-- bottom element - individual settings for every filter type -->\n <div :class=\"$style.bottom\">\n <template v-if=\"filter.type === 'patternEquals' || filter.type === 'patternNotEquals'\" >\n <PlAutocomplete\n v-model=\"filter.value\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str)\"\n :model-search=\"(v) => getSuggestModelSingleFn(columnAsSourceAndFixedAxes.source, v as string)\"\n :disabled=\"inconsistentSourceSelected\"\n :clearable=\"true\"\n group-position=\"bottom\"\n />\n </template>\n <template v-if=\"filter.type === 'inSet' || filter.type === 'notInSet'\" >\n <PlAutocompleteMulti\n v-model=\"filter.value\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str)\"\n :model-search=\"(v) => getSuggestModelMultiFn(columnAsSourceAndFixedAxes.source, v as string[])\"\n :disabled=\"inconsistentSourceSelected\"\n group-position=\"bottom\"\n />\n </template>\n <PlNumberField\n v-if=\"isNumericFilter(filter)\"\n v-model=\"filter.x\"\n group-position=\"bottom\"\n />\n <PlTextField\n v-if=\"filter.type === 'patternContainSubsequence' || filter.type === 'patternNotContainSubsequence'\"\n v-model=\"filter.value\"\n placeholder=\"Substring\"\n group-position=\"bottom\"\n />\n <PlTextField\n v-if=\"filter.type === 'patternMatchesRegularExpression'\"\n v-model=\"filter.value\"\n :error=\"stringMatchesError ? 'Regular expression is not valid' : undefined\"\n placeholder=\"Regular expression\"\n group-position=\"bottom\"\n />\n <PlDropdown\n v-if=\"filter.type === 'patternFuzzyContainSubsequence'\"\n v-model=\"filter.wildcard\"\n clearable\n placeholder=\"Wildcard value\"\n :options=\"wildcardOptions\"\n group-position=\"bottom\"\n />\n </div>\n </div>\n <OperandButton\n :class=\"$style.buttonWrapper\"\n :active=\"operand\"\n :disabled=\"isLast\"\n :on-select=\"onChangeOperand\"\n />\n</template>\n\n<style module>\n.filterWrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n margin-bottom: 8px;\n width: 100%;\n cursor: default;\n}\n\n.typeIcon {\n display: inline-flex;\n margin-right: 8px;\n}\n\n.typeIcon.error {\n --icon-color: var(--txt-error);\n}\n\n.closeIcon {\n display: inline-flex;\n margin-left: 12px;\n cursor: pointer;\n}\n\n.titleWrapper {\n flex-grow: 1;\n overflow: hidden;\n}\n.title {\n overflow: hidden;\n color: var(--txt-01);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n\n.columnChip {\n width: 100%;\n display: flex;\n padding: 10px 12px;\n align-items: center;\n border-radius: 6px;\n border: 1px solid var(--txt-01);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n &.error {\n border-color: var(--txt-error);\n }\n}\n\n.innerSection {\n border: 1px solid var(--txt-01);\n border-top: none;\n padding: 16px 12px;\n}\n\n.closeButton {\n border: 1px solid var(--txt-01);\n border-top-right-radius: 6px;\n border-left: none;\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n}\n\n.top {\n position: relative;\n display: flex;\n width: 100%;\n z-index: 1;\n background: #fff;\n}\n\n.fixedAxesBlock {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 12px 8px;\n gap: 12px;\n border-left: 1px solid var(--txt-01);\n border-right: 1px solid var(--txt-01);\n}\n\n.fixedAxesBlock > * {\n background: #fff;\n}\n\n.middle, .bottom {\n position: relative;\n margin-top: -1px;\n background: #fff;\n}\n\n.buttonWrapper {\n margin-bottom: 8px;\n}\n</style>\n"],"names":["props","__props","filter","_useModel","getSuggestModelMultiFn","id","v","axisIdx","getSuggestModelSingleFn","getSuggestOptionsFn","str","changeFilterType","nextFilterInfo","getFilterInfo","currentSpec","isNumericFilter","isStringFilter","DEFAULT_FILTERS","changeSourceId","newSourceId","newSourceInfo","getSourceId","filterInfo","newSourceSpec","getNormalizedSpec","DEFAULT_FILTER_TYPE","inconsistentSourceSelected","computed","op","sourceOptions","options","column","parsedColumnId","parseColumnId","isFilteredPColumn","stringifyColumnId","getColumnAsSourceAndFixedAxes","sourceId","option","axesToBeFixed","res","item","stringifyColumn","value","idx","columnAsSourceAndFixedAxes","updateAxisFilterValue","currentOption","_a","currentType","currentError","filterTypesOptions","SUPPORTED_FILTER_TYPES","wildcardOptions","_b","stringMatchesError"],"mappings":"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"}
1
+ {"version":3,"file":"SingleFilter.vue2.js","sources":["../../../src/components/PlAdvancedFilter/SingleFilter.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PlAdvancedFilterColumnId, Filter, Operand, SourceOptionInfo } from './types';\nimport { PlIcon16, PlDropdown, PlAutocomplete, PlAutocompleteMulti, PlTextField, PlNumberField, Slider, PlToggleSwitch } from '@milaboratories/uikit';\nimport { computed } from 'vue';\nimport { SUPPORTED_FILTER_TYPES, DEFAULT_FILTER_TYPE, DEFAULT_FILTERS } from './constants';\nimport type { AnchoredPColumnId, AxisFilterByIdx, AxisFilterValue, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { isFilteredPColumn, parseColumnId, stringifyColumnId, type ListOptionBase } from '@platforma-sdk/model';\nimport OperandButton from './OperandButton.vue';\nimport { getFilterInfo, getNormalizedSpec, isNumericFilter, isStringFilter } from './utils';\n\nconst props = defineProps<{\n operand: Operand;\n columnOptions: SourceOptionInfo[];\n enableDnd: boolean;\n isLast: boolean;\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => (Promise<ListOptionBase<string | number>[]>) |\n ((params: { columnId: SUniversalPColumnId; searchStr: string; axisIdx?: number }) => ListOptionBase<string | number>[]);\n getSuggestModel: (params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => (Promise<ListOptionBase<string | number>>) |\n ((params: { columnId: PlAdvancedFilterColumnId; searchStr: string; axisIdx?: number }) => ListOptionBase<string | number>);\n onDelete: (columnId: PlAdvancedFilterColumnId) => void;\n onChangeOperand: (op: Operand) => void;\n}>();\n\nconst filter = defineModel<Filter>({ required: true });\n\nasync function getSuggestModelMultiFn(id: PlAdvancedFilterColumnId, v: string[], axisIdx?: number): Promise<ListOptionBase<string>[]> {\n return Promise.all(v.map((v) => props.getSuggestModel({ columnId: id, searchStr: v, axisIdx }) as Promise<ListOptionBase<string>>));\n}\nasync function getSuggestModelSingleFn(id: PlAdvancedFilterColumnId, v: string, axisIdx?: number): Promise<ListOptionBase<string>> {\n return props.getSuggestModel({ columnId: id, searchStr: v, axisIdx }) as Promise<ListOptionBase<string>>;\n}\nasync function getSuggestOptionsFn(id: PlAdvancedFilterColumnId, str: string, axisIdx?: number): Promise<ListOptionBase<string>[]> {\n return props.getSuggestOptions({ columnId: id, searchStr: str, axisIdx }) as Promise<ListOptionBase<string>[]>;\n}\n\nfunction changeFilterType() {\n const nextFilterInfo = getFilterInfo(filter.value.type);\n if (currentSpec.value && nextFilterInfo.supportedFor(currentSpec.value) && isNumericFilter(filter.value)) {\n // no extra changes, previous filter is compatible with new filter type\n return;\n } else if (currentSpec.value && nextFilterInfo.supportedFor(currentSpec.value) && isStringFilter(filter.value)) {\n // erase extra settings for string filter types, save only value and column (for example regex)\n filter.value = {\n ...DEFAULT_FILTERS[filter.value.type],\n value: filter.value.value,\n column: filter.value.column,\n } as Filter;\n } else {\n filter.value = {\n ...DEFAULT_FILTERS[filter.value.type],\n column: filter.value.column,\n };\n }\n}\n\nfunction changeSourceId(newSourceId?: PlAdvancedFilterColumnId) {\n if (!newSourceId) {\n return;\n }\n const newSourceInfo = props.columnOptions.find((v) => v.id === getSourceId(newSourceId));\n if (!newSourceInfo) {\n return;\n }\n const filterInfo = getFilterInfo(filter.value.type);\n const newSourceSpec = getNormalizedSpec(newSourceInfo?.spec);\n if (filterInfo.supportedFor(newSourceSpec)) { // don't do anything except update source id\n filter.value.column = newSourceId;\n } else { // reset to default filter which fits to any column\n filter.value = {\n ...DEFAULT_FILTERS[DEFAULT_FILTER_TYPE],\n column: newSourceId,\n };\n }\n}\n\nconst inconsistentSourceSelected = computed(() => {\n const selectedOption = props.columnOptions.find((op) => op.id === getSourceId(filter.value.column));\n return selectedOption === undefined;\n});\nconst sourceOptions = computed(() => {\n const options = props.columnOptions.map((v) => ({ value: v.id, label: v.label ?? v }));\n if (inconsistentSourceSelected.value) {\n options.unshift({ value: filter.value.column, label: 'Inconsistent value' });\n }\n return options;\n});\n\nfunction getSourceId(column: PlAdvancedFilterColumnId): PlAdvancedFilterColumnId {\n try {\n const parsedColumnId = parseColumnId(column as SUniversalPColumnId);\n if (isFilteredPColumn(parsedColumnId)) {\n return stringifyColumnId(parsedColumnId.source);\n } else {\n return column;\n }\n } catch {\n return column;\n }\n}\n\n// similar to FilteredPColumnId but source is stringified and axis filters can be undefined\ntype ColumnAsSourceAndFixedAxes = { source: PlAdvancedFilterColumnId; axisFiltersByIndex: Record<number, AxisFilterValue | undefined> };\nfunction getColumnAsSourceAndFixedAxes(column: PlAdvancedFilterColumnId): ColumnAsSourceAndFixedAxes {\n const sourceId = getSourceId(column);\n const option = props.columnOptions.find((op) => op.id === sourceId);\n const axesToBeFixed = (option?.axesToBeFixed ?? []).reduce((res, item) => {\n res[item.idx] = undefined;\n return res;\n }, {} as Record<number, AxisFilterValue | undefined>);\n try {\n const parsedColumnId = parseColumnId(column as SUniversalPColumnId);\n if (isFilteredPColumn(parsedColumnId)) {\n return {\n source: sourceId,\n axisFiltersByIndex: parsedColumnId.axisFilters.reduce((res, item) => {\n res[item[0]] = item[1];\n return res;\n }, axesToBeFixed),\n };\n }\n } catch {\n return { source: column, axisFiltersByIndex: axesToBeFixed };\n }\n return { source: column, axisFiltersByIndex: axesToBeFixed };\n}\n\nfunction stringifyColumn(value: ColumnAsSourceAndFixedAxes): PlAdvancedFilterColumnId {\n if (Object.keys(value.axisFiltersByIndex).length === 0) {\n return value.source;\n }\n return stringifyColumnId({\n source: parseColumnId(value.source as SUniversalPColumnId) as AnchoredPColumnId,\n axisFilters: Object.entries(value.axisFiltersByIndex).map(([idx, value]) => [Number(idx), value] as AxisFilterByIdx),\n });\n}\n\nconst columnAsSourceAndFixedAxes = computed({\n get: () => {\n return getColumnAsSourceAndFixedAxes(filter.value.column);\n },\n set: (value) => {\n filter.value.column = stringifyColumn(value);\n },\n});\nfunction updateAxisFilterValue(idx: number, value: AxisFilterValue | undefined) {\n columnAsSourceAndFixedAxes.value = {\n ...columnAsSourceAndFixedAxes.value,\n axisFiltersByIndex: { ...columnAsSourceAndFixedAxes.value.axisFiltersByIndex, [idx]: value } };\n}\n\nconst currentOption = computed(() => props.columnOptions.find((op) => op.id === columnAsSourceAndFixedAxes.value.source));\nconst currentSpec = computed(() => currentOption.value?.spec ? getNormalizedSpec(currentOption.value.spec) : null);\nconst currentType = computed(() => currentSpec.value?.valueType);\nconst currentError = computed(() => currentOption.value?.error || inconsistentSourceSelected.value);\n\nconst filterTypesOptions = computed(() => [...SUPPORTED_FILTER_TYPES].filter((v) =>\n filter.value.type === v || (currentSpec.value ? getFilterInfo(v).supportedFor(currentSpec.value) : true),\n).map((v) => ({ value: v, label: getFilterInfo(v).label })),\n);\n\nconst wildcardOptions = computed(() => {\n if (filter.value.type === 'patternFuzzyContainSubsequence') {\n if (currentOption.value?.alphabet === 'nucleotide') {\n return [{ label: 'N', value: 'N' }];\n }\n if (currentOption.value?.alphabet === 'aminoacid') {\n return [{ label: 'X', value: 'X' }];\n }\n return [...new Set(filter.value.value.split(''))].sort().map((v) => ({ value: v, label: v }));\n }\n return [];\n});\n\nconst stringMatchesError = computed(() => {\n if (filter.value.type !== 'patternMatchesRegularExpression') {\n return false;\n }\n try {\n new RegExp(filter.value.value);\n return false;\n } catch {\n return true;\n }\n});\n\n</script>\n<template>\n <div :class=\"$style.filterWrapper\">\n <!-- top element - column selector / column label - for all filter types-->\n <div v-if=\"enableDnd\" :class=\"[$style.top, $style.columnChip, {[$style.error]: currentError}]\">\n <div :class=\"[$style.typeIcon, {[$style.error]: currentError}]\">\n <PlIcon16 v-if=\"currentError\" name=\"warning\"/>\n <PlIcon16 v-else :name=\"currentType === 'String' || currentType === undefined ? 'cell-type-txt' : 'cell-type-num'\"/>\n </div>\n <div :class=\"$style.titleWrapper\" :title=\"currentOption?.label ?? ''\">\n <div :class=\"$style.title\">\n {{ inconsistentSourceSelected ? 'Inconsistent value' : currentOption?.label ?? filter.column }}\n </div>\n </div>\n <div :class=\"$style.closeIcon\" @click=\"onDelete(filter.column)\">\n <PlIcon16 name=\"close\"/>\n </div>\n </div>\n <div v-else :class=\"$style.top\" >\n <PlDropdown\n v-model=\"columnAsSourceAndFixedAxes.source\"\n :errorStatus=\"currentError\"\n :options=\"sourceOptions\"\n :style=\"{width: '100%'}\"\n group-position=\"top-left\"\n @update:model-value=\"changeSourceId\"\n />\n <div :class=\"$style.closeButton\" @click=\"onDelete(filter.column)\">\n <PlIcon16 name=\"close\"/>\n </div>\n </div>\n\n <div v-if=\"currentOption?.axesToBeFixed?.length\" :class=\"$style.fixedAxesBlock\">\n <template v-for=\"value in currentOption?.axesToBeFixed\" :key=\"value.idx\">\n <PlAutocomplete\n v-model=\"columnAsSourceAndFixedAxes.axisFiltersByIndex[value.idx]\"\n :label=\"value.label\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str, value.idx)\"\n :model-search=\"(v) => getSuggestModelSingleFn(columnAsSourceAndFixedAxes.source, v as string, value.idx)\"\n :disabled=\"inconsistentSourceSelected\"\n :clearable=\"true\"\n @update:model-value=\"(v) => updateAxisFilterValue(value.idx, v)\"\n />\n </template>\n </div>\n\n <!-- middle - filter type selector - for all filter types -->\n <div :class=\"filter.type === 'isNA' || filter.type === 'isNotNA' ? $style.bottom : $style.middle\">\n <PlDropdown\n v-model=\"filter.type\"\n :options=\"filterTypesOptions\"\n :group-position=\"filter.type === 'isNA' || filter.type === 'isNotNA' ? 'bottom' : 'middle'\"\n @update:model-value=\"changeFilterType\"\n />\n </div>\n\n <!-- middle - for fuzzy contains filter -->\n <template v-if=\"filter.type === 'patternFuzzyContainSubsequence'\">\n <div :class=\"$style.middle\">\n <PlTextField\n v-model=\"filter.value\"\n placeholder=\"Substring\"\n group-position=\"middle\"\n />\n </div>\n <div :class=\"$style.innerSection\">\n <Slider\n v-model=\"filter.maxEdits\"\n :max=\"5\"\n breakpoints label=\"Maximum number of substitutions and indels\"\n />\n <PlToggleSwitch\n v-model=\"filter.substitutionsOnly\"\n label=\"Substitutions only\"\n />\n </div>\n </template>\n\n <!-- bottom element - individual settings for every filter type -->\n <div :class=\"$style.bottom\">\n <template v-if=\"filter.type === 'patternEquals' || filter.type === 'patternNotEquals'\" >\n <PlAutocomplete\n v-model=\"filter.value\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str)\"\n :model-search=\"(v) => getSuggestModelSingleFn(columnAsSourceAndFixedAxes.source, v as string)\"\n :disabled=\"inconsistentSourceSelected\"\n :clearable=\"true\"\n group-position=\"bottom\"\n />\n </template>\n <template v-if=\"filter.type === 'inSet' || filter.type === 'notInSet'\" >\n <PlAutocompleteMulti\n v-model=\"filter.value\"\n :options-search=\"(str) => getSuggestOptionsFn(columnAsSourceAndFixedAxes.source, str)\"\n :model-search=\"(v) => getSuggestModelMultiFn(columnAsSourceAndFixedAxes.source, v as string[])\"\n :disabled=\"inconsistentSourceSelected\"\n group-position=\"bottom\"\n />\n </template>\n <PlNumberField\n v-if=\"isNumericFilter(filter)\"\n v-model=\"filter.x\"\n group-position=\"bottom\"\n />\n <PlTextField\n v-if=\"filter.type === 'patternContainSubsequence' || filter.type === 'patternNotContainSubsequence'\"\n v-model=\"filter.value\"\n placeholder=\"Substring\"\n group-position=\"bottom\"\n />\n <PlTextField\n v-if=\"filter.type === 'patternMatchesRegularExpression'\"\n v-model=\"filter.value\"\n :error=\"stringMatchesError ? 'Regular expression is not valid' : undefined\"\n placeholder=\"Regular expression\"\n group-position=\"bottom\"\n />\n <PlDropdown\n v-if=\"filter.type === 'patternFuzzyContainSubsequence'\"\n v-model=\"filter.wildcard\"\n clearable\n placeholder=\"Wildcard value\"\n :options=\"wildcardOptions\"\n group-position=\"bottom\"\n />\n </div>\n </div>\n <OperandButton\n :class=\"$style.buttonWrapper\"\n :active=\"operand\"\n :disabled=\"isLast\"\n :on-select=\"onChangeOperand\"\n />\n</template>\n\n<style module>\n.filterWrapper {\n position: relative;\n display: flex;\n flex-direction: column;\n margin-bottom: 8px;\n width: 100%;\n cursor: default;\n}\n\n.typeIcon {\n display: inline-flex;\n margin-right: 8px;\n}\n\n.typeIcon.error {\n --icon-color: var(--txt-error);\n}\n\n.closeIcon {\n display: inline-flex;\n margin-left: 12px;\n cursor: pointer;\n}\n\n.titleWrapper {\n flex-grow: 1;\n overflow: hidden;\n}\n.title {\n overflow: hidden;\n color: var(--txt-01);\n text-overflow: ellipsis;\n white-space: nowrap;\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n\n.columnChip {\n width: 100%;\n display: flex;\n padding: 10px 12px;\n align-items: center;\n border-radius: 6px;\n border: 1px solid var(--txt-01);\n border-bottom-right-radius: 0;\n border-bottom-left-radius: 0;\n\n &.error {\n border-color: var(--txt-error);\n }\n}\n\n.innerSection {\n border: 1px solid var(--txt-01);\n border-top: none;\n padding: 16px 12px;\n}\n\n.closeButton {\n border: 1px solid var(--txt-01);\n border-top-right-radius: 6px;\n border-left: none;\n width: 40px;\n height: 40px;\n display: flex;\n justify-content: center;\n align-items: center;\n flex-shrink: 0;\n cursor: pointer;\n}\n\n.top {\n position: relative;\n display: flex;\n width: 100%;\n z-index: 1;\n background: #fff;\n}\n\n.fixedAxesBlock {\n position: relative;\n display: flex;\n flex-direction: column;\n padding: 12px 8px;\n gap: 12px;\n border-left: 1px solid var(--txt-01);\n border-right: 1px solid var(--txt-01);\n}\n\n.fixedAxesBlock > * {\n background: #fff;\n}\n\n.middle, .bottom {\n position: relative;\n margin-top: -1px;\n background: #fff;\n}\n\n.buttonWrapper {\n margin-bottom: 8px;\n}\n</style>\n"],"names":["props","__props","filter","_useModel","getSuggestModelMultiFn","id","v","axisIdx","getSuggestModelSingleFn","getSuggestOptionsFn","str","changeFilterType","nextFilterInfo","getFilterInfo","currentSpec","isNumericFilter","isStringFilter","DEFAULT_FILTERS","changeSourceId","newSourceId","newSourceInfo","getSourceId","filterInfo","newSourceSpec","getNormalizedSpec","DEFAULT_FILTER_TYPE","inconsistentSourceSelected","computed","op","sourceOptions","options","column","parsedColumnId","parseColumnId","isFilteredPColumn","stringifyColumnId","getColumnAsSourceAndFixedAxes","sourceId","option","axesToBeFixed","res","item","stringifyColumn","value","idx","columnAsSourceAndFixedAxes","updateAxisFilterValue","currentOption","_a","currentType","currentError","filterTypesOptions","SUPPORTED_FILTER_TYPES","wildcardOptions","_b","stringMatchesError","_createElementVNode","_normalizeClass","$style","_createElementBlock","_createBlock","_unref","PlIcon16","_toDisplayString","_cache","$event","_createVNode","PlDropdown","_d","_c","_openBlock","_Fragment","_renderList","_e","PlAutocomplete","PlTextField","Slider","PlToggleSwitch","PlAutocompleteMulti","PlNumberField","OperandButton"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgCellFile.vue.js","sources":["../../../src/components/PlAgCellFile/PlAgCellFile.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlFileInput } from '@milaboratories/uikit';\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type { ImportFileHandle, ImportProgress } from '@platforma-sdk/model';\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n // this component is intended to be used in ag-grid, params are the main object\n // to communicate with the corresponding cell data\n params: ICellRendererParams<unknown, ImportFileHandle> & {\n extensions?: string[];\n progress?: ImportProgress;\n /**\n * The resolveProgress function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveProgress, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveProgress: (fileHandle: ImportFileHandle | undefined) => {\n * const progresses = app.progresses;\n * if (!fileHandle) return undefined;\n * else return progresses[fileHandle];\n * }\n * }\n */\n resolveProgress?: (v: ImportFileHandle | undefined) => ImportProgress | undefined;\n };\n}>();\n\nconst extensions = computed(() => props.params.extensions);\n\n// extracting cell value and casting it to the type we expect\nconst handle = computed(() => props.params.value as ImportFileHandle | undefined);\n\n/**\n * When value changes in the file input this method forward the value to the ag-grid,\n * which in tern forwards in to the valueSetter in corresponding column.\n * */\nfunction onHandleUpdate(newHandle: ImportFileHandle | undefined) {\n props.params.setValue!(newHandle);\n}\n\nconst currentProgress = computed(() => {\n return props.params.resolveProgress ? props.params.resolveProgress(handle.value) : undefined;\n});\n</script>\n\n<template>\n <div style=\"height: 100%\">\n <PlFileInput\n show-filename-only\n clearable\n cell-style\n file-dialog-title=\"Select any file\"\n :placeholder=\"`Choose file ${extensions ? extensions[0] : ''}`\"\n :extensions=\"extensions\"\n :model-value=\"handle\"\n :progress=\"currentProgress\"\n @update:model-value=\"onHandleUpdate\"\n />\n </div>\n</template>\n"],"names":["props","__props","extensions","computed","handle","onHandleUpdate","newHandle","currentProgress"],"mappings":";;;;;;;;AAMA,UAAMA,IAAQC,GAwBRC,IAAaC,EAAS,MAAMH,EAAM,OAAO,UAAU,GAGnDI,IAASD,EAAS,MAAMH,EAAM,OAAO,KAAqC;AAMhF,aAASK,EAAeC,GAAyC;AAC/D,MAAAN,EAAM,OAAO,SAAUM,CAAS;AAAA,IAClC;AAEA,UAAMC,IAAkBJ,EAAS,MACxBH,EAAM,OAAO,kBAAkBA,EAAM,OAAO,gBAAgBI,EAAO,KAAK,IAAI,MACpF;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlAgCellFile.vue.js","sources":["../../../src/components/PlAgCellFile/PlAgCellFile.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlFileInput } from '@milaboratories/uikit';\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type { ImportFileHandle, ImportProgress } from '@platforma-sdk/model';\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n // this component is intended to be used in ag-grid, params are the main object\n // to communicate with the corresponding cell data\n params: ICellRendererParams<unknown, ImportFileHandle> & {\n extensions?: string[];\n progress?: ImportProgress;\n /**\n * The resolveProgress function is an optional input parameter for the component\n * that allows tracking the file upload progress in real-time.\n * By passing resolveProgress, you can ensure that the component\n * displays accurate progress values for each file as they upload.\n * How to use it in AgGrid\n * cellRendererParams: {\n * resolveProgress: (fileHandle: ImportFileHandle | undefined) => {\n * const progresses = app.progresses;\n * if (!fileHandle) return undefined;\n * else return progresses[fileHandle];\n * }\n * }\n */\n resolveProgress?: (v: ImportFileHandle | undefined) => ImportProgress | undefined;\n };\n}>();\n\nconst extensions = computed(() => props.params.extensions);\n\n// extracting cell value and casting it to the type we expect\nconst handle = computed(() => props.params.value as ImportFileHandle | undefined);\n\n/**\n * When value changes in the file input this method forward the value to the ag-grid,\n * which in tern forwards in to the valueSetter in corresponding column.\n * */\nfunction onHandleUpdate(newHandle: ImportFileHandle | undefined) {\n props.params.setValue!(newHandle);\n}\n\nconst currentProgress = computed(() => {\n return props.params.resolveProgress ? props.params.resolveProgress(handle.value) : undefined;\n});\n</script>\n\n<template>\n <div style=\"height: 100%\">\n <PlFileInput\n show-filename-only\n clearable\n cell-style\n file-dialog-title=\"Select any file\"\n :placeholder=\"`Choose file ${extensions ? extensions[0] : ''}`\"\n :extensions=\"extensions\"\n :model-value=\"handle\"\n :progress=\"currentProgress\"\n @update:model-value=\"onHandleUpdate\"\n />\n </div>\n</template>\n"],"names":["props","__props","extensions","computed","handle","onHandleUpdate","newHandle","currentProgress","_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","PlFileInput"],"mappings":";;;;;;;;AAMA,UAAMA,IAAQC,GAwBRC,IAAaC,EAAS,MAAMH,EAAM,OAAO,UAAU,GAGnDI,IAASD,EAAS,MAAMH,EAAM,OAAO,KAAqC;AAMhF,aAASK,EAAeC,GAAyC;AAC/D,MAAAN,EAAM,OAAO,SAAUM,CAAS;AAAA,IAClC;AAEA,UAAMC,IAAkBJ,EAAS,MACxBH,EAAM,OAAO,kBAAkBA,EAAM,OAAO,gBAAgBI,EAAO,KAAK,IAAI,MACpF;sBAICI,EAAA,GAAAC,EAYM,OAZNC,GAYM;AAAA,MAXJC,EAUEC,EAAAC,CAAA,GAAA;AAAA,QATA,sBAAA;AAAA,QACA,WAAA;AAAA,QACA,cAAA;AAAA,QACA,qBAAkB;AAAA,QACjB,aAAW,eAAiBX,EAAA,QAAaA,EAAA,MAAU,CAAA,IAAA,EAAA;AAAA,QACnD,YAAYA,EAAA;AAAA,QACZ,eAAaE,EAAA;AAAA,QACb,UAAUG,EAAA;AAAA,QACV,uBAAoBF;AAAA,MAAA;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgCellProgress.vue.js","sources":["../../../src/components/PlAgCellProgress/PlAgCellProgress.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PlProgressCellProps } from '@milaboratories/uikit';\nimport { PlProgressCell } from '@milaboratories/uikit';\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\n\nconst props = defineProps<{ params: ICellRendererParams & PlProgressCellProps }>();\n</script>\n\n<template>\n <PlProgressCell v-bind=\"props.params\"/>\n</template>\n"],"names":["props","__props"],"mappings":";;;;;;;;AAKA,UAAMA,IAAQC;;;;"}
1
+ {"version":3,"file":"PlAgCellProgress.vue.js","sources":["../../../src/components/PlAgCellProgress/PlAgCellProgress.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { PlProgressCellProps } from '@milaboratories/uikit';\nimport { PlProgressCell } from '@milaboratories/uikit';\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\n\nconst props = defineProps<{ params: ICellRendererParams & PlProgressCellProps }>();\n</script>\n\n<template>\n <PlProgressCell v-bind=\"props.params\"/>\n</template>\n"],"names":["props","__props","_createBlock","_unref","PlProgressCell","_normalizeProps","_guardReactiveProps"],"mappings":";;;;;;;;AAKA,UAAMA,IAAQC;2BAIZC,EAAuCC,EAAAC,CAAA,GAAAC,EAAAC,EAAfN,EAAM,MAAM,CAAA,GAAA,MAAA,EAAA;AAAA;;"}
@@ -1,15 +1,15 @@
1
- import { defineComponent as a, createElementBlock as r, openBlock as l, createVNode as o, unref as p } from "vue";
1
+ import { defineComponent as a, createElementBlock as l, openBlock as r, createVNode as n, unref as o } from "vue";
2
2
  import { PlStatusTag as s } from "@milaboratories/uikit";
3
- const n = { class: "pl-ag-cell-status-tag d-flex align-center" }, f = /* @__PURE__ */ a({
3
+ const p = { class: "pl-ag-cell-status-tag d-flex align-center" }, f = /* @__PURE__ */ a({
4
4
  __name: "PlAgCellStatusTag",
5
5
  props: {
6
6
  params: {}
7
7
  },
8
- setup(c) {
9
- return (t, m) => {
8
+ setup(t) {
9
+ return (c, m) => {
10
10
  var e;
11
- return l(), r("div", n, [
12
- o(p(s), {
11
+ return r(), l("div", p, [
12
+ n(o(s), {
13
13
  type: (e = t.params) == null ? void 0 : e.type
14
14
  }, null, 8, ["type"])
15
15
  ]);
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgCellStatusTag.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlAgCellStatusTag.vue.js","sources":["../../../src/components/PlAgCellStatusTag/PlAgCellStatusTag.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlStatusTag } from '@milaboratories/uikit';\nimport type { PlStatusTagType } from '@milaboratories/uikit';\n\ndefineProps<{ params?: ICellRendererParams & { type: PlStatusTagType } }>();\n</script>\n\n<template>\n <div class=\"pl-ag-cell-status-tag d-flex align-center\">\n <PlStatusTag :type=\"params?.type\"/>\n </div>\n</template>\n\n<style lang=\"scss\">\n.pl-ag-cell-status-tag{\n height: 100%;\n padding: 0 12px;\n}\n</style>\n"],"names":["_openBlock","_createElementBlock","_hoisted_1","_createVNode","_unref","PlStatusTag","_a","__props"],"mappings":";;;;;;;;;;AASE,aAAAA,EAAA,GAAAC,EAEM,OAFNC,GAEM;AAAA,QADJC,EAAmCC,EAAAC,CAAA,GAAA;AAAA,UAArB,OAAMC,IAAAC,EAAA,WAAA,gBAAAD,EAAQ;AAAA,QAAA;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgChartHistogramCell.vue.js","sources":["../../../src/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport {\n type InferComponentProps,\n PlChartHistogram,\n} from '@milaboratories/uikit';\nimport { computed, ref } from 'vue';\nimport { useElementBounding } from '@vueuse/core';\n\ntype PlChartHistogramSettings = InferComponentProps<typeof PlChartHistogram>['settings'];\n\nconst props = defineProps<{\n params: ICellRendererParams<unknown, PlChartHistogramSettings | undefined>;\n}>();\n\nconst root = ref<HTMLElement>();\n\nconst { width } = useElementBounding(root);\n\nconst settings = computed<PlChartHistogramSettings | undefined>(() => {\n if (!props.params.value) {\n return undefined;\n }\n\n if (!width.value) {\n return undefined;\n }\n\n return { ...props.params.value, compact: true, totalHeight: 24, totalWidth: width.value };\n});\n</script>\n\n<template>\n <div ref=\"root\" class=\"pl-ag-chart-histogram-cell\">\n <PlChartHistogram v-if=\"settings\" :settings=\"settings\" />\n <div v-else class=\"pl-ag-chart-histogram-cell__not-ready \">Not ready</div>\n </div>\n</template>\n\n<style>\n.pl-ag-chart-histogram-cell {\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.pl-ag-chart-histogram-cell__not-ready {\n color: var(--txt-03) !important;\n}\n</style>\n"],"names":["props","__props","root","ref","width","useElementBounding","settings","computed"],"mappings":";;;;;;;;;;;;AAWA,UAAMA,IAAQC,GAIRC,IAAOC,EAAA,GAEP,EAAE,OAAAC,EAAA,IAAUC,EAAmBH,CAAI,GAEnCI,IAAWC,EAA+C,MAAM;AACpE,UAAKP,EAAM,OAAO,SAIbI,EAAM;AAIX,eAAO,EAAE,GAAGJ,EAAM,OAAO,OAAO,SAAS,IAAM,aAAa,IAAI,YAAYI,EAAM,MAAA;AAAA,IACpF,CAAC;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlAgChartHistogramCell.vue.js","sources":["../../../src/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport {\n type InferComponentProps,\n PlChartHistogram,\n} from '@milaboratories/uikit';\nimport { computed, ref } from 'vue';\nimport { useElementBounding } from '@vueuse/core';\n\ntype PlChartHistogramSettings = InferComponentProps<typeof PlChartHistogram>['settings'];\n\nconst props = defineProps<{\n params: ICellRendererParams<unknown, PlChartHistogramSettings | undefined>;\n}>();\n\nconst root = ref<HTMLElement>();\n\nconst { width } = useElementBounding(root);\n\nconst settings = computed<PlChartHistogramSettings | undefined>(() => {\n if (!props.params.value) {\n return undefined;\n }\n\n if (!width.value) {\n return undefined;\n }\n\n return { ...props.params.value, compact: true, totalHeight: 24, totalWidth: width.value };\n});\n</script>\n\n<template>\n <div ref=\"root\" class=\"pl-ag-chart-histogram-cell\">\n <PlChartHistogram v-if=\"settings\" :settings=\"settings\" />\n <div v-else class=\"pl-ag-chart-histogram-cell__not-ready \">Not ready</div>\n </div>\n</template>\n\n<style>\n.pl-ag-chart-histogram-cell {\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.pl-ag-chart-histogram-cell__not-ready {\n color: var(--txt-03) !important;\n}\n</style>\n"],"names":["props","__props","root","ref","width","useElementBounding","settings","computed","_createElementBlock","_createBlock","_unref","PlChartHistogram","_hoisted_1"],"mappings":";;;;;;;;;;;;AAWA,UAAMA,IAAQC,GAIRC,IAAOC,EAAA,GAEP,EAAE,OAAAC,EAAA,IAAUC,EAAmBH,CAAI,GAEnCI,IAAWC,EAA+C,MAAM;AACpE,UAAKP,EAAM,OAAO,SAIbI,EAAM;AAIX,eAAO,EAAE,GAAGJ,EAAM,OAAO,OAAO,SAAS,IAAM,aAAa,IAAI,YAAYI,EAAM,MAAA;AAAA,IACpF,CAAC;2BAICI,EAGM,OAAA;AAAA,eAHG;AAAA,MAAJ,KAAIN;AAAA,MAAO,OAAM;AAAA,IAAA;MACII,EAAA,cAAxBG,EAAyDC,EAAAC,CAAA,GAAA;AAAA;QAAtB,UAAUL,EAAA;AAAA,MAAA,mCAC7CE,EAA0E,OAA1EI,GAA2D,WAAS;AAAA,IAAA;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgChartStackedBarCell.vue.js","sources":["../../../src/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type {\n PlChartStackedBarSettings,\n} from '@milaboratories/uikit';\nimport {\n PlChartStackedBarCompact,\n} from '@milaboratories/uikit';\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n params: ICellRendererParams<unknown, PlChartStackedBarSettings | undefined>;\n}>();\n\nconst settings = computed(() => props.params.value || undefined);\n</script>\n\n<template>\n <div class=\"pl-ag-chart-stacked-bar-cell\">\n <PlChartStackedBarCompact v-if=\"settings\" :settings=\"settings\" />\n <div v-else class=\"pl-ag-chart-stacked-bar-cell__not-ready\">Not ready</div>\n </div>\n</template>\n\n<style>\n.pl-ag-chart-stacked-bar-cell {\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.pl-ag-chart-stacked-bar-cell__not-ready {\n color: var(--txt-03) !important;\n}\n</style>\n"],"names":["props","__props","settings","computed"],"mappings":";;;;;;;;;;;AAUA,UAAMA,IAAQC,GAIRC,IAAWC,EAAS,MAAMH,EAAM,OAAO,SAAS,MAAS;;;;;;;;;"}
1
+ {"version":3,"file":"PlAgChartStackedBarCell.vue.js","sources":["../../../src/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport type {\n PlChartStackedBarSettings,\n} from '@milaboratories/uikit';\nimport {\n PlChartStackedBarCompact,\n} from '@milaboratories/uikit';\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n params: ICellRendererParams<unknown, PlChartStackedBarSettings | undefined>;\n}>();\n\nconst settings = computed(() => props.params.value || undefined);\n</script>\n\n<template>\n <div class=\"pl-ag-chart-stacked-bar-cell\">\n <PlChartStackedBarCompact v-if=\"settings\" :settings=\"settings\" />\n <div v-else class=\"pl-ag-chart-stacked-bar-cell__not-ready\">Not ready</div>\n </div>\n</template>\n\n<style>\n.pl-ag-chart-stacked-bar-cell {\n height: 100%;\n display: flex;\n flex-direction: row;\n align-items: center;\n}\n\n.pl-ag-chart-stacked-bar-cell__not-ready {\n color: var(--txt-03) !important;\n}\n</style>\n"],"names":["props","__props","settings","computed","_openBlock","_createElementBlock","_hoisted_1","_createBlock","_unref","PlChartStackedBarCompact","_hoisted_2"],"mappings":";;;;;;;;;;;AAUA,UAAMA,IAAQC,GAIRC,IAAWC,EAAS,MAAMH,EAAM,OAAO,SAAS,MAAS;sBAI7DI,EAAA,GAAAC,EAGM,OAHNC,GAGM;AAAA,MAF4BJ,EAAA,cAAhCK,EAAiEC,EAAAC,CAAA,GAAA;AAAA;QAAtB,UAAUP,EAAA;AAAA,MAAA,mCACrDG,EAA2E,OAA3EK,GAA4D,WAAS;AAAA,IAAA;;;"}