@platforma-sdk/ui-vue 1.42.14 → 1.42.18

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 (56) hide show
  1. package/.turbo/turbo-build.log +25 -24
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +16 -0
  4. package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js +5 -5
  5. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +21 -21
  6. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts.map +1 -1
  7. package/dist/components/PlAgDataTable/sources/table-source-v2.js +122 -123
  8. package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
  9. package/dist/components/PlAgDataTable/sources/table-state-v2.js +9 -9
  10. package/dist/components/PlAgDataTable/sources/value-rendering.d.ts.map +1 -1
  11. package/dist/components/PlAgDataTable/sources/value-rendering.js +24 -25
  12. package/dist/components/PlAgDataTable/sources/value-rendering.js.map +1 -1
  13. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +12 -12
  14. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +2 -2
  15. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.d.ts.map +1 -1
  16. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js +21 -20
  17. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js.map +1 -1
  18. package/dist/components/PlMultiSequenceAlignment/data.d.ts.map +1 -1
  19. package/dist/components/PlMultiSequenceAlignment/data.js +169 -184
  20. package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
  21. package/dist/components/PlTableFilters/filters-state.js +8 -8
  22. package/dist/components/PlTableFilters/filters_logic.d.ts.map +1 -1
  23. package/dist/components/PlTableFilters/filters_logic.js +67 -77
  24. package/dist/components/PlTableFilters/filters_logic.js.map +1 -1
  25. package/dist/defineApp.js +20 -20
  26. package/dist/internal/UpdateSerializer.js +3 -3
  27. package/dist/lib/model/common/dist/index.js +576 -444
  28. package/dist/lib/model/common/dist/index.js.map +1 -1
  29. package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js +1 -1
  30. package/dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js +1 -1
  31. package/dist/lib/ui/uikit/dist/components/PlFileDialog/Local.vue.js +6 -6
  32. package/dist/lib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js +17 -17
  33. package/dist/lib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js.map +1 -1
  34. package/dist/lib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js +89 -63
  35. package/dist/lib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js.map +1 -1
  36. package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js +1 -1
  37. package/dist/lib/ui/uikit/dist/helpers/dom.js.map +1 -1
  38. package/dist/lib/ui/uikit/dist/helpers/downloadContent.js +32 -0
  39. package/dist/lib/ui/uikit/dist/helpers/downloadContent.js.map +1 -0
  40. package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js +257 -192
  41. package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js.map +1 -1
  42. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +473 -457
  43. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js.map +1 -1
  44. package/dist/lib.js +52 -50
  45. package/dist/lib.js.map +1 -1
  46. package/dist/sdk/model/dist/index.js +542 -526
  47. package/dist/sdk/model/dist/index.js.map +1 -1
  48. package/package.json +3 -3
  49. package/src/components/PlAgDataTable/sources/table-source-v2.ts +20 -16
  50. package/src/components/PlAgDataTable/sources/value-rendering.ts +15 -7
  51. package/src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue +1 -0
  52. package/src/components/PlMultiSequenceAlignment/data.ts +12 -12
  53. package/src/components/PlTableFilters/filters_logic.ts +18 -15
  54. package/.turbo/turbo-test.log +0 -565
  55. package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue.js +0 -27
  56. package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue.js.map +0 -1
@@ -1,14 +1,15 @@
1
- import { getRawPlatformaInstance as l } from "../../sdk/model/dist/index.js";
2
- import d from "../../_virtual/index.js";
3
- function E(e, r, n) {
4
- if (!r.some((a) => a.value === e.type)) return !1;
5
- if (i(e.type) && n.length > 0) {
6
- const a = p(e);
7
- return n.some((s) => s.value === a);
1
+ import { getRawPlatformaInstance as d } from "../../sdk/model/dist/index.js";
2
+ import h from "../../_virtual/index.js";
3
+ import { readAnnotationJson as p, readDomain as i, readAnnotation as u, parseJson as m, Annotation as a, Domain as c } from "../../lib/model/common/dist/index.js";
4
+ function w(e, r, n) {
5
+ if (!r.some((s) => s.value === e.type)) return !1;
6
+ if (l(e.type) && n.length > 0) {
7
+ const s = g(e);
8
+ return n.some((o) => o.value === s);
8
9
  }
9
10
  return !0;
10
11
  }
11
- function g(e) {
12
+ function _(e) {
12
13
  switch (e) {
13
14
  case "isNotNA":
14
15
  return "Is not NA";
@@ -44,7 +45,7 @@ function g(e) {
44
45
  throw Error(`unsupported filter type: ${e}`);
45
46
  }
46
47
  }
47
- const m = [
48
+ const b = [
48
49
  "isNotNA",
49
50
  "isNA",
50
51
  "number_equals",
@@ -54,7 +55,7 @@ const m = [
54
55
  "number_lessThan",
55
56
  "number_lessThanOrEqualTo",
56
57
  "number_between"
57
- ], h = [
58
+ ], f = [
58
59
  "isNotNA",
59
60
  "isNA",
60
61
  "string_equals",
@@ -65,20 +66,20 @@ const m = [
65
66
  "string_doesNotMatch",
66
67
  "string_containsFuzzyMatch"
67
68
  ];
68
- function q(e) {
69
- return ((e.type === "column" ? e.spec.valueType : e.spec.type) === "String" ? h : m).filter((t) => e.type === "axis" ? t !== "isNotNA" && t !== "isNA" : !0).map((t) => ({ value: t, text: g(t) }));
69
+ function A(e) {
70
+ return ((e.type === "column" ? e.spec.valueType : e.spec.type) === "String" ? f : b).filter((t) => e.type === "axis" ? t !== "isNotNA" && t !== "isNA" : !0).map((t) => ({ value: t, text: _(t) }));
70
71
  }
71
- const _ = [
72
+ const N = [
72
73
  "number_equals",
73
74
  "number_notEquals",
74
75
  "string_equals",
75
76
  "string_notEquals"
76
- ], i = (e) => _.includes(e), y = (e) => i(e.type);
77
- function T(e, r) {
78
- var n, t;
79
- return ((t = (n = e.spec.annotations) == null ? void 0 : n["pl7.app/label"]) == null ? void 0 : t.trim()) ?? "Unlabeled " + e.type + " " + r.toString();
77
+ ], l = (e) => N.includes(e), v = (e) => l(e.type);
78
+ function M(e, r) {
79
+ var n;
80
+ return ((n = u(e.spec, a.Label)) == null ? void 0 : n.trim()) ?? "Unlabeled " + e.type + " " + r.toString();
80
81
  }
81
- function p(e) {
82
+ function g(e) {
82
83
  const r = e.type;
83
84
  switch (r) {
84
85
  case "isNotNA":
@@ -105,7 +106,7 @@ function p(e) {
105
106
  throw Error(`unsupported filter type: ${r}`);
106
107
  }
107
108
  }
108
- function b(e, r) {
109
+ function E(e, r) {
109
110
  switch (e) {
110
111
  case "isNotNA":
111
112
  case "isNA":
@@ -144,76 +145,65 @@ function b(e, r) {
144
145
  throw Error(`unsupported filter type: ${e}`);
145
146
  }
146
147
  }
147
- function w(e, r, n) {
148
- let t = p(e);
149
- return i(r) && n !== void 0 && n.length > 0 && !n.some((a) => a.value === t) && (t = n[0].value), b(r, t);
148
+ function F(e, r, n) {
149
+ let t = g(e);
150
+ return l(r) && n !== void 0 && n.length > 0 && !n.some((s) => s.value === t) && (t = n[0].value), E(r, t);
150
151
  }
151
- function v(e, r) {
152
- var o, c;
152
+ function O(e, r) {
153
153
  const n = Number(r);
154
154
  if (!Number.isFinite(n)) throw Error("Model value is not a number.");
155
155
  const t = e.type === "column" ? e.spec.valueType : e.spec.type;
156
156
  if ((t === "Int" || t === "Long") && !Number.isInteger(n)) throw Error("Model value is not an integer.");
157
- const a = (o = e.spec.annotations) == null ? void 0 : o["pl7.app/min"];
158
- if (a !== void 0) {
159
- const u = Number(a);
160
- if (Number.isFinite(u) && n < Number(a))
161
- throw Error("Model value is too low.");
162
- }
163
- const s = (c = e.spec.annotations) == null ? void 0 : c["pl7.app/max"];
164
- if (s !== void 0) {
165
- const u = Number(s);
166
- if (Number.isFinite(u) && n > Number(s))
167
- throw Error("Model value is too high.");
168
- }
157
+ const s = p(e.spec, a.Min);
158
+ if (s !== void 0 && Number.isFinite(s) && n < s)
159
+ throw Error("Model value is too low.");
160
+ const o = p(e.spec, a.Max);
161
+ if (o !== void 0 && Number.isFinite(o) && n > o)
162
+ throw Error("Model value is too high.");
169
163
  return n;
170
164
  }
171
- function A(e, r) {
172
- var t, a;
173
- const n = ((t = e.spec.domain) == null ? void 0 : t["pl7.app/alphabet"]) ?? ((a = e.spec.annotations) == null ? void 0 : a["pl7.app/alphabet"]);
165
+ function z(e, r) {
166
+ const n = i(e.spec, c.Alphabet) ?? u(e.spec, a.Alphabet);
174
167
  if (n === "nucleotide" && !/^[AaTtGgCcNn]+$/.test(r)) throw Error("Model value is not a nucleotide.");
175
168
  if (n === "aminoacid" && !/^[AaCcDdEeFfGgHhIiKkLlMmNnPpQqRrSsTtVvWwYyXx*_]+$/.test(r)) throw Error("Model value is not an aminoacid.");
176
169
  return r;
177
170
  }
178
- function M(e) {
171
+ function C(e) {
179
172
  try {
180
173
  return new RegExp(e), e;
181
174
  } catch (r) {
182
175
  throw r instanceof SyntaxError ? Error("Model value is not a regexp.") : r;
183
176
  }
184
177
  }
185
- function F(e, r) {
186
- var a, s;
187
- const n = ((a = e.spec.domain) == null ? void 0 : a["pl7.app/alphabet"]) ?? ((s = e.spec.annotations) == null ? void 0 : s["pl7.app/alphabet"]);
178
+ function x(e, r) {
179
+ const n = i(e.spec, c.Alphabet) ?? u(e.spec, a.Alphabet);
188
180
  return n === "nucleotide" ? [{
189
181
  label: "N",
190
182
  value: "N"
191
183
  }] : n === "aminoacid" ? [{
192
184
  label: "X",
193
185
  value: "X"
194
- }] : [...new Set(r).keys()].sort().map((o) => ({
195
- label: o,
196
- value: o
186
+ }] : [...new Set(r).keys()].sort().map((s) => ({
187
+ label: s,
188
+ value: s
197
189
  }));
198
190
  }
199
- function O(e) {
200
- var n;
201
- const r = (n = e.spec.annotations) == null ? void 0 : n["pl7.app/discreteValues"];
191
+ function I(e) {
192
+ const r = u(e.spec, a.DiscreteValues);
202
193
  if (!r) return [];
203
194
  try {
204
- return JSON.parse(r).map((a) => ({
205
- label: a.toString(),
206
- value: a
195
+ return m(r).map((t) => ({
196
+ label: `${t}`,
197
+ value: t
207
198
  }));
208
- } catch (t) {
209
- return console.error(`Column ${e.id} has invalid 'pl7.app/discreteValues' annotation: '${r}'`, t), [];
199
+ } catch (n) {
200
+ return console.error(`Column ${e.id} has invalid '${a.DiscreteValues}' annotation: '${r}'`, n), [];
210
201
  }
211
202
  }
212
- function C(e) {
213
- var r, n;
214
- return d.gt(l().sdkInfo.sdkVersion, "1.14.0") && (e.type === "column" ? e.spec.valueType : e.spec.type) === "String" && (((r = e.spec.domain) == null ? void 0 : r["pl7.app/alphabet"]) ?? ((n = e.spec.annotations) == null ? void 0 : n["pl7.app/alphabet"])) !== void 0;
203
+ function S(e) {
204
+ return h.gt(d().sdkInfo.sdkVersion, "1.14.0") && (e.type === "column" ? e.spec.valueType : e.spec.type) === "String" && (i(e.spec, c.Alphabet) ?? u(e.spec, a.Alphabet)) !== void 0;
215
205
  }
216
- function x(e, r) {
206
+ function D(e, r) {
217
207
  const n = r.type;
218
208
  switch (n) {
219
209
  case "isNotNA":
@@ -326,24 +316,24 @@ function x(e, r) {
326
316
  }
327
317
  }
328
318
  export {
329
- w as changeFilter,
330
- _ as filterTypesDiscrete,
331
- m as filterTypesNumber,
332
- h as filterTypesString,
333
- T as getColumnName,
334
- b as getFilterDefault,
335
- g as getFilterLabel,
336
- q as getFilterOptions,
337
- p as getFilterReference,
338
- C as isAlphabetic,
339
- y as isFilterDiscrete,
340
- i as isFilterDiscreteType,
341
- E as isFilterValid,
342
- O as makeDiscreteOptions,
343
- x as makePredicate,
344
- F as makeWildcardOptions,
345
- v as parseNumber,
346
- M as parseRegex,
347
- A as parseString
319
+ F as changeFilter,
320
+ N as filterTypesDiscrete,
321
+ b as filterTypesNumber,
322
+ f as filterTypesString,
323
+ M as getColumnName,
324
+ E as getFilterDefault,
325
+ _ as getFilterLabel,
326
+ A as getFilterOptions,
327
+ g as getFilterReference,
328
+ S as isAlphabetic,
329
+ v as isFilterDiscrete,
330
+ l as isFilterDiscreteType,
331
+ w as isFilterValid,
332
+ I as makeDiscreteOptions,
333
+ D as makePredicate,
334
+ x as makeWildcardOptions,
335
+ O as parseNumber,
336
+ C as parseRegex,
337
+ z as parseString
348
338
  };
349
339
  //# sourceMappingURL=filters_logic.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filters_logic.js","sources":["../../../src/components/PlTableFilters/filters_logic.ts"],"sourcesContent":["import type {\n PlTableFilterNumberEquals,\n PlTableFilterNumberNotEquals,\n PlTableFilterStringEquals,\n PlTableFilterStringNotEquals,\n} from '@platforma-sdk/model';\nimport {\n type SingleValuePredicateV2,\n type PlTableFilterType,\n type PlTableFilterNumberType,\n type PlTableFilterStringType,\n type PlTableFilter,\n type PTableColumnSpec,\n getRawPlatformaInstance,\n} from '@platforma-sdk/model';\nimport semver from 'semver';\nimport type { ListOption } from '@milaboratories/uikit';\n\nexport function isFilterValid(\n filter: PlTableFilter,\n options: ListOption<number | string>[],\n discreteOptions: ListOption<number | string>[],\n): boolean {\n const validOption = options.some((o) => o.value === filter.type);\n if (!validOption) return false;\n\n if (isFilterDiscreteType(filter.type) && discreteOptions.length > 0) {\n const reference = getFilterReference(filter);\n return discreteOptions.some((option) => option.value === reference);\n }\n\n return true;\n}\n\nexport function getFilterLabel(type: PlTableFilterType): string {\n switch (type) {\n case 'isNotNA':\n return 'Is not NA';\n case 'isNA':\n return 'Is NA';\n case 'number_equals':\n case 'string_equals':\n return 'Equals';\n case 'number_notEquals':\n case 'string_notEquals':\n return 'Not equals';\n case 'number_greaterThan':\n return 'Greater than';\n case 'number_greaterThanOrEqualTo':\n return 'Greater than or equal to';\n case 'number_lessThan':\n return 'Less than';\n case 'number_lessThanOrEqualTo':\n return 'Less than or equal to';\n case 'number_between':\n return 'Between';\n case 'string_contains':\n return 'Contains';\n case 'string_doesNotContain':\n return 'Does not contain';\n case 'string_matches':\n return 'Matches';\n case 'string_doesNotMatch':\n return 'Does not match';\n case 'string_containsFuzzyMatch':\n return 'Contains fuzzy match';\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n\nexport const filterTypesNumber: PlTableFilterNumberType[] = [\n 'isNotNA',\n 'isNA',\n 'number_equals',\n 'number_notEquals',\n 'number_greaterThan',\n 'number_greaterThanOrEqualTo',\n 'number_lessThan',\n 'number_lessThanOrEqualTo',\n 'number_between',\n] as const;\n\nexport const filterTypesString: PlTableFilterStringType[] = [\n 'isNotNA',\n 'isNA',\n 'string_equals',\n 'string_notEquals',\n 'string_contains',\n 'string_doesNotContain',\n 'string_matches',\n 'string_doesNotMatch',\n 'string_containsFuzzyMatch',\n] as const;\n\nexport function getFilterOptions(column: PTableColumnSpec): ListOption<PlTableFilterType>[] {\n const valueType = column.type === 'column' ? column.spec.valueType : column.spec.type;\n const types: PlTableFilterType[] = valueType === 'String' ? filterTypesString : filterTypesNumber;\n return types\n .filter((type) => column.type === 'axis' ? type !== 'isNotNA' && type !== 'isNA' : true)\n .map((type) => ({ value: type, text: getFilterLabel(type) }));\n}\n\nexport type PlTableFilterDiscrete =\n | PlTableFilterNumberEquals\n | PlTableFilterNumberNotEquals\n | PlTableFilterStringEquals\n | PlTableFilterStringNotEquals;\n\nexport type PlTableFilterDiscreteType = PlTableFilterDiscrete['type'];\n\nexport const filterTypesDiscrete: PlTableFilterDiscreteType[] = [\n 'number_equals',\n 'number_notEquals',\n 'string_equals',\n 'string_notEquals',\n] as const;\n\nexport const isFilterDiscreteType = (\n filter: PlTableFilterType,\n): filter is PlTableFilterDiscreteType => {\n return (filterTypesDiscrete as PlTableFilterType[]).includes(filter);\n};\n\nexport const isFilterDiscrete = (filter: PlTableFilter): filter is PlTableFilterDiscrete => {\n return isFilterDiscreteType(filter.type);\n};\n\nexport function getColumnName(column: PTableColumnSpec, index: string | number) {\n return column.spec.annotations?.['pl7.app/label']?.trim() ?? 'Unlabeled ' + column.type + ' ' + index.toString();\n}\n\nexport function getFilterReference(filter: PlTableFilter): undefined | number | string {\n const type = filter.type;\n switch (type) {\n case 'isNotNA':\n case 'isNA':\n return undefined;\n case 'number_equals':\n case 'number_notEquals':\n case 'number_greaterThan':\n case 'number_greaterThanOrEqualTo':\n case 'number_lessThan':\n case 'number_lessThanOrEqualTo':\n return filter.reference;\n case 'number_between':\n return filter.lowerBound;\n case 'string_equals':\n case 'string_notEquals':\n case 'string_contains':\n case 'string_doesNotContain':\n case 'string_matches':\n case 'string_doesNotMatch':\n case 'string_containsFuzzyMatch':\n return filter.reference;\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n\nexport function getFilterDefault(type: PlTableFilterType, reference?: undefined | number | string): PlTableFilter {\n switch (type) {\n case 'isNotNA':\n case 'isNA':\n return { type };\n case 'number_equals':\n case 'number_notEquals':\n case 'number_greaterThan':\n case 'number_greaterThanOrEqualTo':\n case 'number_lessThan':\n case 'number_lessThanOrEqualTo':\n return { type, reference: typeof reference === 'number' ? reference : 0 };\n case 'number_between':\n return {\n type,\n lowerBound: typeof reference === 'number' ? reference : 0,\n includeLowerBound: true,\n upperBound: 100,\n includeUpperBound: false,\n };\n case 'string_equals':\n case 'string_notEquals':\n case 'string_contains':\n case 'string_doesNotContain':\n case 'string_matches':\n case 'string_doesNotMatch':\n return { type, reference: typeof reference === 'string' ? reference : '' };\n case 'string_containsFuzzyMatch':\n return {\n type,\n reference: typeof reference === 'string' ? reference : '',\n maxEdits: 2,\n substitutionsOnly: false,\n wildcard: undefined,\n };\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n\nexport function changeFilter(\n filter: PlTableFilter,\n type: PlTableFilterType,\n discreteOptions: ListOption<number | string>[],\n): PlTableFilter {\n let reference = getFilterReference(filter);\n if (isFilterDiscreteType(type)\n && discreteOptions !== undefined\n && discreteOptions.length > 0\n && !discreteOptions.some((option) => option.value === reference)) {\n reference = discreteOptions[0].value;\n }\n return getFilterDefault(type, reference);\n}\n\nexport function parseNumber(column: PTableColumnSpec, value: string): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed)) throw Error('Model value is not a number.');\n\n const type = column.type === 'column' ? column.spec.valueType : column.spec.type;\n if ((type === 'Int' || type === 'Long') && !Number.isInteger(parsed)) throw Error('Model value is not an integer.');\n\n const min = column.spec.annotations?.['pl7.app/min'];\n if (min !== undefined) {\n const minValue = Number(min);\n if (Number.isFinite(minValue) && parsed < Number(min)) {\n throw Error('Model value is too low.');\n }\n }\n\n const max = column.spec.annotations?.['pl7.app/max'];\n if (max !== undefined) {\n const maxValue = Number(max);\n if (Number.isFinite(maxValue) && parsed > Number(max)) {\n throw Error('Model value is too high.');\n }\n }\n\n return parsed;\n}\n\nexport function parseString(column: PTableColumnSpec, value: string): string {\n const alphabet = column.spec.domain?.['pl7.app/alphabet'] ?? column.spec.annotations?.['pl7.app/alphabet'];\n if (alphabet === 'nucleotide' && !/^[AaTtGgCcNn]+$/.test(value)) throw Error('Model value is not a nucleotide.');\n if (alphabet === 'aminoacid' && !/^[AaCcDdEeFfGgHhIiKkLlMmNnPpQqRrSsTtVvWwYyXx*_]+$/.test(value)) throw Error('Model value is not an aminoacid.');\n return value;\n}\n\nexport function parseRegex(value: string): string {\n try {\n new RegExp(value);\n return value;\n } catch (err: unknown) {\n if (err instanceof SyntaxError) throw Error('Model value is not a regexp.');\n throw err;\n }\n}\n\nexport function makeWildcardOptions(\n column: PTableColumnSpec,\n reference: string,\n): ListOption<string>[] {\n const alphabet = column.spec.domain?.['pl7.app/alphabet']\n ?? column.spec.annotations?.['pl7.app/alphabet'];\n if (alphabet === 'nucleotide') {\n return [{\n label: 'N',\n value: 'N',\n }];\n }\n if (alphabet === 'aminoacid') {\n return [{\n label: 'X',\n value: 'X',\n }];\n }\n\n const chars = [...new Set<string>(reference).keys()];\n return chars.sort().map((char) => ({\n label: char,\n value: char,\n }));\n}\n\nexport function makeDiscreteOptions(column: PTableColumnSpec): ListOption<number | string>[] {\n const discreteValuesAnnotation = column.spec.annotations?.['pl7.app/discreteValues'];\n if (!discreteValuesAnnotation) return [];\n\n try {\n const discreteValues: (string | number)[] = JSON.parse(discreteValuesAnnotation);\n return discreteValues.map((v) => ({\n label: v.toString(),\n value: v,\n }));\n } catch (err: unknown) {\n console.error(`Column ${column.id} has invalid 'pl7.app/discreteValues' annotation: '${discreteValuesAnnotation}'`, err);\n return [];\n }\n}\n\nexport function isAlphabetic(column: PTableColumnSpec): boolean {\n return semver.gt(getRawPlatformaInstance().sdkInfo.sdkVersion, '1.14.0')\n && (column.type === 'column' ? column.spec.valueType : column.spec.type) === 'String'\n && (column.spec.domain?.['pl7.app/alphabet'] ?? column.spec.annotations?.['pl7.app/alphabet']) !== undefined;\n}\n\nexport function makePredicate(alphabetic: boolean, filter: PlTableFilter): SingleValuePredicateV2 {\n const type = filter.type;\n switch (type) {\n case 'isNotNA':\n return {\n operator: 'Not',\n operand: {\n operator: 'IsNA',\n },\n };\n case 'isNA':\n return {\n operator: 'IsNA',\n };\n case 'number_equals':\n return {\n operator: 'Equal',\n reference: filter.reference,\n };\n case 'string_equals':\n return {\n operator: alphabetic ? 'IEqual' : 'Equal',\n reference: filter.reference as string,\n };\n case 'number_notEquals':\n return {\n operator: 'Not',\n operand: {\n operator: 'Equal',\n reference: filter.reference,\n },\n };\n case 'string_notEquals':\n return {\n operator: 'Not',\n operand: {\n operator: alphabetic ? 'IEqual' : 'Equal',\n reference: filter.reference,\n },\n };\n case 'number_greaterThan':\n return {\n operator: 'Greater',\n reference: filter.reference,\n };\n case 'number_greaterThanOrEqualTo':\n return {\n operator: 'GreaterOrEqual',\n reference: filter.reference,\n };\n case 'number_lessThan':\n return {\n operator: 'Less',\n reference: filter.reference,\n };\n case 'number_lessThanOrEqualTo':\n return {\n operator: 'LessOrEqual',\n reference: filter.reference,\n };\n case 'number_between':\n return {\n operator: 'And',\n operands: [\n {\n operator: filter.includeLowerBound ? 'GreaterOrEqual' : 'Greater',\n reference: filter.lowerBound,\n },\n {\n operator: filter.includeUpperBound ? 'LessOrEqual' : 'Less',\n reference: filter.upperBound,\n },\n ],\n };\n case 'string_contains':\n return {\n operator: alphabetic ? 'StringIContains' : 'StringContains',\n substring: filter.reference,\n };\n case 'string_doesNotContain':\n return {\n operator: 'Not',\n operand: {\n operator: alphabetic ? 'StringIContains' : 'StringContains',\n substring: filter.reference,\n },\n };\n case 'string_matches':\n return {\n operator: 'Matches',\n regex: filter.reference,\n };\n case 'string_doesNotMatch':\n return {\n operator: 'Not',\n operand: {\n operator: 'Matches',\n regex: filter.reference,\n },\n };\n case 'string_containsFuzzyMatch':\n return {\n operator: alphabetic ? 'StringIContainsFuzzy' : 'StringContainsFuzzy',\n reference: filter.reference,\n maxEdits: filter.maxEdits,\n substitutionsOnly: filter.substitutionsOnly,\n wildcard: filter.wildcard,\n };\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n"],"names":["isFilterValid","filter","options","discreteOptions","o","isFilterDiscreteType","reference","getFilterReference","option","getFilterLabel","type","filterTypesNumber","filterTypesString","getFilterOptions","column","filterTypesDiscrete","isFilterDiscrete","getColumnName","index","_b","_a","getFilterDefault","changeFilter","parseNumber","value","parsed","min","minValue","max","maxValue","parseString","alphabet","parseRegex","err","makeWildcardOptions","char","makeDiscreteOptions","discreteValuesAnnotation","v","isAlphabetic","semver","getRawPlatformaInstance","makePredicate","alphabetic"],"mappings":"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"}
1
+ {"version":3,"file":"filters_logic.js","sources":["../../../src/components/PlTableFilters/filters_logic.ts"],"sourcesContent":["import type {\n PlTableFilterNumberEquals,\n PlTableFilterNumberNotEquals,\n PlTableFilterStringEquals,\n PlTableFilterStringNotEquals,\n} from '@platforma-sdk/model';\nimport {\n type SingleValuePredicateV2,\n type PlTableFilterType,\n type PlTableFilterNumberType,\n type PlTableFilterStringType,\n type PlTableFilter,\n type PTableColumnSpec,\n getRawPlatformaInstance,\n readDomain,\n Annotation,\n Domain,\n readAnnotation,\n parseJson,\n readAnnotationJson,\n} from '@platforma-sdk/model';\nimport semver from 'semver';\nimport type { ListOption } from '@milaboratories/uikit';\n\nexport function isFilterValid(\n filter: PlTableFilter,\n options: ListOption<number | string>[],\n discreteOptions: ListOption<number | string>[],\n): boolean {\n const validOption = options.some((o) => o.value === filter.type);\n if (!validOption) return false;\n\n if (isFilterDiscreteType(filter.type) && discreteOptions.length > 0) {\n const reference = getFilterReference(filter);\n return discreteOptions.some((option) => option.value === reference);\n }\n\n return true;\n}\n\nexport function getFilterLabel(type: PlTableFilterType): string {\n switch (type) {\n case 'isNotNA':\n return 'Is not NA';\n case 'isNA':\n return 'Is NA';\n case 'number_equals':\n case 'string_equals':\n return 'Equals';\n case 'number_notEquals':\n case 'string_notEquals':\n return 'Not equals';\n case 'number_greaterThan':\n return 'Greater than';\n case 'number_greaterThanOrEqualTo':\n return 'Greater than or equal to';\n case 'number_lessThan':\n return 'Less than';\n case 'number_lessThanOrEqualTo':\n return 'Less than or equal to';\n case 'number_between':\n return 'Between';\n case 'string_contains':\n return 'Contains';\n case 'string_doesNotContain':\n return 'Does not contain';\n case 'string_matches':\n return 'Matches';\n case 'string_doesNotMatch':\n return 'Does not match';\n case 'string_containsFuzzyMatch':\n return 'Contains fuzzy match';\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n\nexport const filterTypesNumber: PlTableFilterNumberType[] = [\n 'isNotNA',\n 'isNA',\n 'number_equals',\n 'number_notEquals',\n 'number_greaterThan',\n 'number_greaterThanOrEqualTo',\n 'number_lessThan',\n 'number_lessThanOrEqualTo',\n 'number_between',\n] as const;\n\nexport const filterTypesString: PlTableFilterStringType[] = [\n 'isNotNA',\n 'isNA',\n 'string_equals',\n 'string_notEquals',\n 'string_contains',\n 'string_doesNotContain',\n 'string_matches',\n 'string_doesNotMatch',\n 'string_containsFuzzyMatch',\n] as const;\n\nexport function getFilterOptions(column: PTableColumnSpec): ListOption<PlTableFilterType>[] {\n const valueType = column.type === 'column' ? column.spec.valueType : column.spec.type;\n const types: PlTableFilterType[] = valueType === 'String' ? filterTypesString : filterTypesNumber;\n return types\n .filter((type) => column.type === 'axis' ? type !== 'isNotNA' && type !== 'isNA' : true)\n .map((type) => ({ value: type, text: getFilterLabel(type) }));\n}\n\nexport type PlTableFilterDiscrete =\n | PlTableFilterNumberEquals\n | PlTableFilterNumberNotEquals\n | PlTableFilterStringEquals\n | PlTableFilterStringNotEquals;\n\nexport type PlTableFilterDiscreteType = PlTableFilterDiscrete['type'];\n\nexport const filterTypesDiscrete: PlTableFilterDiscreteType[] = [\n 'number_equals',\n 'number_notEquals',\n 'string_equals',\n 'string_notEquals',\n] as const;\n\nexport const isFilterDiscreteType = (\n filter: PlTableFilterType,\n): filter is PlTableFilterDiscreteType => {\n return (filterTypesDiscrete as PlTableFilterType[]).includes(filter);\n};\n\nexport const isFilterDiscrete = (filter: PlTableFilter): filter is PlTableFilterDiscrete => {\n return isFilterDiscreteType(filter.type);\n};\n\nexport function getColumnName(column: PTableColumnSpec, index: string | number) {\n return readAnnotation(column.spec, Annotation.Label)?.trim() ?? 'Unlabeled ' + column.type + ' ' + index.toString();\n}\n\nexport function getFilterReference(filter: PlTableFilter): undefined | number | string {\n const type = filter.type;\n switch (type) {\n case 'isNotNA':\n case 'isNA':\n return undefined;\n case 'number_equals':\n case 'number_notEquals':\n case 'number_greaterThan':\n case 'number_greaterThanOrEqualTo':\n case 'number_lessThan':\n case 'number_lessThanOrEqualTo':\n return filter.reference;\n case 'number_between':\n return filter.lowerBound;\n case 'string_equals':\n case 'string_notEquals':\n case 'string_contains':\n case 'string_doesNotContain':\n case 'string_matches':\n case 'string_doesNotMatch':\n case 'string_containsFuzzyMatch':\n return filter.reference;\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n\nexport function getFilterDefault(type: PlTableFilterType, reference?: undefined | number | string): PlTableFilter {\n switch (type) {\n case 'isNotNA':\n case 'isNA':\n return { type };\n case 'number_equals':\n case 'number_notEquals':\n case 'number_greaterThan':\n case 'number_greaterThanOrEqualTo':\n case 'number_lessThan':\n case 'number_lessThanOrEqualTo':\n return { type, reference: typeof reference === 'number' ? reference : 0 };\n case 'number_between':\n return {\n type,\n lowerBound: typeof reference === 'number' ? reference : 0,\n includeLowerBound: true,\n upperBound: 100,\n includeUpperBound: false,\n };\n case 'string_equals':\n case 'string_notEquals':\n case 'string_contains':\n case 'string_doesNotContain':\n case 'string_matches':\n case 'string_doesNotMatch':\n return { type, reference: typeof reference === 'string' ? reference : '' };\n case 'string_containsFuzzyMatch':\n return {\n type,\n reference: typeof reference === 'string' ? reference : '',\n maxEdits: 2,\n substitutionsOnly: false,\n wildcard: undefined,\n };\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n\nexport function changeFilter(\n filter: PlTableFilter,\n type: PlTableFilterType,\n discreteOptions: ListOption<number | string>[],\n): PlTableFilter {\n let reference = getFilterReference(filter);\n if (isFilterDiscreteType(type)\n && discreteOptions !== undefined\n && discreteOptions.length > 0\n && !discreteOptions.some((option) => option.value === reference)) {\n reference = discreteOptions[0].value;\n }\n return getFilterDefault(type, reference);\n}\n\nexport function parseNumber(column: PTableColumnSpec, value: string): number {\n const parsed = Number(value);\n if (!Number.isFinite(parsed)) throw Error('Model value is not a number.');\n\n const type = column.type === 'column' ? column.spec.valueType : column.spec.type;\n if ((type === 'Int' || type === 'Long') && !Number.isInteger(parsed)) throw Error('Model value is not an integer.');\n\n const min = readAnnotationJson(column.spec, Annotation.Min);\n if (min !== undefined) {\n if (Number.isFinite(min) && parsed < min) {\n throw Error('Model value is too low.');\n }\n }\n\n const max = readAnnotationJson(column.spec, Annotation.Max);\n if (max !== undefined) {\n if (Number.isFinite(max) && parsed > max) {\n throw Error('Model value is too high.');\n }\n }\n\n return parsed;\n}\n\nexport function parseString(column: PTableColumnSpec, value: string): string {\n const alphabet = readDomain(column.spec, Domain.Alphabet) ?? readAnnotation(column.spec, Annotation.Alphabet);\n if (alphabet === 'nucleotide' && !/^[AaTtGgCcNn]+$/.test(value)) throw Error('Model value is not a nucleotide.');\n if (alphabet === 'aminoacid' && !/^[AaCcDdEeFfGgHhIiKkLlMmNnPpQqRrSsTtVvWwYyXx*_]+$/.test(value)) throw Error('Model value is not an aminoacid.');\n return value;\n}\n\nexport function parseRegex(value: string): string {\n try {\n new RegExp(value);\n return value;\n } catch (err: unknown) {\n if (err instanceof SyntaxError) throw Error('Model value is not a regexp.');\n throw err;\n }\n}\n\nexport function makeWildcardOptions(\n column: PTableColumnSpec,\n reference: string,\n): ListOption<string>[] {\n const alphabet = readDomain(column.spec, Domain.Alphabet) ?? readAnnotation(column.spec, Annotation.Alphabet);\n if (alphabet === 'nucleotide') {\n return [{\n label: 'N',\n value: 'N',\n }];\n }\n if (alphabet === 'aminoacid') {\n return [{\n label: 'X',\n value: 'X',\n }];\n }\n\n const chars = [...new Set<string>(reference).keys()];\n return chars.sort().map((char) => ({\n label: char,\n value: char,\n }));\n}\n\nexport function makeDiscreteOptions(column: PTableColumnSpec): ListOption<number | string>[] {\n const discreteValuesAnnotation = readAnnotation(column.spec, Annotation.DiscreteValues);\n if (!discreteValuesAnnotation) return [];\n\n try {\n const discreteValues = parseJson<number[] | string[]>(discreteValuesAnnotation);\n return discreteValues.map((v) => ({\n label: `${v}`,\n value: v,\n }));\n } catch (err: unknown) {\n console.error(`Column ${column.id} has invalid '${Annotation.DiscreteValues}' annotation: '${discreteValuesAnnotation}'`, err);\n return [];\n }\n}\n\nexport function isAlphabetic(column: PTableColumnSpec): boolean {\n return semver.gt(getRawPlatformaInstance().sdkInfo.sdkVersion, '1.14.0')\n && (column.type === 'column' ? column.spec.valueType : column.spec.type) === 'String'\n && (readDomain(column.spec, Domain.Alphabet) ?? readAnnotation(column.spec, Annotation.Alphabet)) !== undefined;\n}\n\nexport function makePredicate(alphabetic: boolean, filter: PlTableFilter): SingleValuePredicateV2 {\n const type = filter.type;\n switch (type) {\n case 'isNotNA':\n return {\n operator: 'Not',\n operand: {\n operator: 'IsNA',\n },\n };\n case 'isNA':\n return {\n operator: 'IsNA',\n };\n case 'number_equals':\n return {\n operator: 'Equal',\n reference: filter.reference,\n };\n case 'string_equals':\n return {\n operator: alphabetic ? 'IEqual' : 'Equal',\n reference: filter.reference as string,\n };\n case 'number_notEquals':\n return {\n operator: 'Not',\n operand: {\n operator: 'Equal',\n reference: filter.reference,\n },\n };\n case 'string_notEquals':\n return {\n operator: 'Not',\n operand: {\n operator: alphabetic ? 'IEqual' : 'Equal',\n reference: filter.reference,\n },\n };\n case 'number_greaterThan':\n return {\n operator: 'Greater',\n reference: filter.reference,\n };\n case 'number_greaterThanOrEqualTo':\n return {\n operator: 'GreaterOrEqual',\n reference: filter.reference,\n };\n case 'number_lessThan':\n return {\n operator: 'Less',\n reference: filter.reference,\n };\n case 'number_lessThanOrEqualTo':\n return {\n operator: 'LessOrEqual',\n reference: filter.reference,\n };\n case 'number_between':\n return {\n operator: 'And',\n operands: [\n {\n operator: filter.includeLowerBound ? 'GreaterOrEqual' : 'Greater',\n reference: filter.lowerBound,\n },\n {\n operator: filter.includeUpperBound ? 'LessOrEqual' : 'Less',\n reference: filter.upperBound,\n },\n ],\n };\n case 'string_contains':\n return {\n operator: alphabetic ? 'StringIContains' : 'StringContains',\n substring: filter.reference,\n };\n case 'string_doesNotContain':\n return {\n operator: 'Not',\n operand: {\n operator: alphabetic ? 'StringIContains' : 'StringContains',\n substring: filter.reference,\n },\n };\n case 'string_matches':\n return {\n operator: 'Matches',\n regex: filter.reference,\n };\n case 'string_doesNotMatch':\n return {\n operator: 'Not',\n operand: {\n operator: 'Matches',\n regex: filter.reference,\n },\n };\n case 'string_containsFuzzyMatch':\n return {\n operator: alphabetic ? 'StringIContainsFuzzy' : 'StringContainsFuzzy',\n reference: filter.reference,\n maxEdits: filter.maxEdits,\n substitutionsOnly: filter.substitutionsOnly,\n wildcard: filter.wildcard,\n };\n default:\n throw Error(`unsupported filter type: ${type satisfies never}`);\n }\n}\n"],"names":["isFilterValid","filter","options","discreteOptions","o","isFilterDiscreteType","reference","getFilterReference","option","getFilterLabel","type","filterTypesNumber","filterTypesString","getFilterOptions","column","filterTypesDiscrete","isFilterDiscrete","getColumnName","index","readAnnotation","Annotation","getFilterDefault","changeFilter","parseNumber","value","parsed","min","readAnnotationJson","max","parseString","alphabet","readDomain","Domain","parseRegex","err","makeWildcardOptions","char","makeDiscreteOptions","discreteValuesAnnotation","parseJson","v","isAlphabetic","semver","getRawPlatformaInstance","makePredicate","alphabetic"],"mappings":"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"}
package/dist/defineApp.js CHANGED
@@ -1,5 +1,5 @@
1
- import { notEmpty as g } from "./lib/util/helpers/dist/index.js";
2
- import { getPlatformaApiVersion as V } from "./sdk/model/dist/index.js";
1
+ import { notEmpty as V } from "./lib/util/helpers/dist/index.js";
2
+ import { getPlatformaApiVersion as g } from "./sdk/model/dist/index.js";
3
3
  import { inject as k, reactive as h, markRaw as A } from "vue";
4
4
  import { createAppV1 as j } from "./internal/createAppV1.js";
5
5
  import { createAppV2 as w } from "./internal/createAppV2.js";
@@ -9,18 +9,18 @@ const m = Symbol("sdk-vue");
9
9
  function $() {
10
10
  return k(m);
11
11
  }
12
- function C(e, p, l = {}) {
12
+ function C(e, p, d = {}) {
13
13
  let u;
14
14
  y();
15
- const d = e.apiVersion ?? 1, f = V(), b = async () => {
16
- if (f !== d)
17
- throw new Error(`Block requested API version ${f} but runtime API version is ${d}.
15
+ const l = e.apiVersion ?? 1, f = g(), b = async () => {
16
+ if (f !== l)
17
+ throw new Error(`Block requested API version ${f} but runtime API version is ${l}.
18
18
  Please update the desktop app to use the latest API version.`);
19
- e.apiVersion === void 0 || e.apiVersion === 1 ? await e.loadBlockState().then((o) => {
19
+ e.apiVersion === void 0 || e.apiVersion === 1 ? await e.loadBlockState().then((r) => {
20
20
  a.loaded = !0;
21
- const t = j(o, e, l), i = p(t), c = Object.fromEntries(
22
- Object.entries(i.routes).map(([s, r]) => {
23
- const n = typeof r == "function" ? r() : r;
21
+ const t = j(r, e, d), i = p(t), c = Object.fromEntries(
22
+ Object.entries(i.routes).map(([s, o]) => {
23
+ const n = typeof o == "function" ? o() : o;
24
24
  return [s, A(n)];
25
25
  })
26
26
  );
@@ -30,19 +30,19 @@ function C(e, p, l = {}) {
30
30
  return c[s];
31
31
  }
32
32
  });
33
- }) : e.apiVersion === 2 && await e.loadBlockState().then((o) => {
34
- const t = O(o);
33
+ }) : e.apiVersion === 2 && await e.loadBlockState().then((r) => {
34
+ const t = O(r);
35
35
  a.loaded = !0;
36
- const i = w(t, e, l), c = p(i), s = Object.fromEntries(
37
- Object.entries(c.routes).map(([r, n]) => {
36
+ const i = w(t, e, d), c = p(i), s = Object.fromEntries(
37
+ Object.entries(c.routes).map(([o, n]) => {
38
38
  const v = typeof n == "function" ? n() : n;
39
- return [r, A(v)];
39
+ return [o, A(v)];
40
40
  })
41
41
  );
42
42
  u = Object.assign(i, {
43
43
  ...c,
44
- getRoute(r) {
45
- return s[r];
44
+ getRoute(o) {
45
+ return s[o];
46
46
  }
47
47
  });
48
48
  });
@@ -51,12 +51,12 @@ function C(e, p, l = {}) {
51
51
  error: void 0,
52
52
  // Href to get typed query parameters for a specific route
53
53
  useApp() {
54
- return g(u, "App is not loaded");
54
+ return V(u, "App is not loaded");
55
55
  },
56
56
  // @todo type portability issue with Vue
57
57
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
- install(o) {
59
- o.provide(m, this), b().catch((t) => {
58
+ install(r) {
59
+ r.provide(m, this), b().catch((t) => {
60
60
  console.error("load initial state error", t), a.error = t;
61
61
  });
62
62
  }
@@ -1,6 +1,6 @@
1
- var u = Object.defineProperty;
2
- var c = (e, t, r) => t in e ? u(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
- var i = (e, t, r) => c(e, typeof t != "symbol" ? t + "" : t, r);
1
+ var c = Object.defineProperty;
2
+ var u = (e, t, r) => t in e ? c(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r;
3
+ var i = (e, t, r) => u(e, typeof t != "symbol" ? t + "" : t, r);
4
4
  import { delay as a } from "../lib/util/helpers/dist/index.js";
5
5
  import "../sdk/model/dist/index.js";
6
6
  import { hasAbortError as h } from "../lib/model/common/dist/index.js";