@platforma-sdk/ui-vue 1.42.21 → 1.42.24

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.
@@ -1,10 +1,10 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.42.21 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.24 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder build --target browser-lib
5
5
 
6
6
  Building browser-lib project...
7
- Using default config: /home/runner/_work/platforma/platforma/tools/ts-builder/dist/configs/vite.browser-lib.config.js
7
+ vite.js build --config configs/vite.browser-lib.config.js --mode production
8
8
  vite v6.3.5 building for production...
9
9
  transforming...
10
10
  ✓ 238 modules transformed.
@@ -188,12 +188,12 @@ computing gzip size...
188
188
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  3.84 kB │ gzip: 1.52 kB │ map: 4.99 kB
189
189
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js  3.89 kB │ gzip: 1.38 kB │ map: 5.48 kB
190
190
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js  4.03 kB │ gzip: 1.23 kB │ map: 12.92 kB
191
+ dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.50 kB │ gzip: 1.67 kB │ map: 5.97 kB
191
192
  dist/components/PlAnnotations/components/DynamicForm.vue2.js  4.52 kB │ gzip: 1.41 kB │ map: 6.96 kB
192
- dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.65 kB │ gzip: 1.73 kB │ map: 6.15 kB
193
193
  dist/plugins/Monetization/MonetizationSidebar.vue.js  4.73 kB │ gzip: 1.76 kB │ map: 5.01 kB
194
194
  dist/components/PlMultiSequenceAlignment/chemical-properties.js  4.75 kB │ gzip: 1.67 kB │ map: 11.78 kB
195
195
  dist/components/BlockLayout.vue2.js  4.96 kB │ gzip: 1.83 kB │ map: 2.96 kB
196
- dist/components/PlAnnotations/components/FilterSidebar.vue3.js  5.58 kB │ gzip: 1.63 kB │ map: 0.11 kB
196
+ dist/components/PlAnnotations/components/FilterSidebar.vue3.js  5.48 kB │ gzip: 1.59 kB │ map: 0.11 kB
197
197
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js  5.67 kB │ gzip: 1.67 kB │ map: 0.11 kB
198
198
  dist/internal/createAppV1.js  5.75 kB │ gzip: 1.83 kB │ map: 15.32 kB
199
199
  dist/components/PlTableFilters/PlTableFiltersV2.vue2.js  6.10 kB │ gzip: 2.02 kB │ map: 9.27 kB
@@ -215,7 +215,7 @@ computing gzip size...
215
215
  dist/components/PlAgRowNumHeader.vue.js 44.65 kB │ gzip: 29.29 kB │ map: 3.70 kB
216
216
  dist/AgGridVue/useAgGridOptions.js 49.29 kB │ gzip: 30.15 kB │ map: 16.35 kB
217
217
  dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js 50.33 kB │ gzip: 31.04 kB │ map: 33.70 kB
218
- [vite:dts] Declaration files built in 9561ms.
218
+ [vite:dts] Declaration files built in 8654ms.
219
219
 
220
- ✓ built in 11.42s
220
+ ✓ built in 10.58s
221
221
  Build completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.42.21 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.24 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder types --target browser-lib
5
5
 
6
- Type checking with ./tsconfig.json...
6
+ vue-tsc.js --noEmit --project ./tsconfig.json
package/CHANGELOG.md CHANGED
@@ -1,5 +1,21 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.42.24
4
+
5
+ ### Patch Changes
6
+
7
+ - 448a0c6: remove wrong ui tip
8
+
9
+ ## 1.42.23
10
+
11
+ ### Patch Changes
12
+
13
+ - b14b2fb: update dist builder
14
+ - Updated dependencies [b14b2fb]
15
+ - @milaboratories/biowasm-tools@1.1.2
16
+ - @milaboratories/uikit@2.4.5
17
+ - @platforma-sdk/model@1.42.23
18
+
3
19
  ## 1.42.21
4
20
 
5
21
  ### Patch Changes
@@ -1,11 +1,11 @@
1
- import { defineComponent as E, mergeModels as S, useModel as B, createBlock as m, createCommentVNode as w, openBlock as s, unref as n, withCtx as o, createElementVNode as p, normalizeClass as c, createVNode as f, createTextVNode as y, createElementBlock as M, toDisplayString as g } from "vue";
2
- import { isNil as i } from "../../../lib/util/helpers/dist/utils.js";
1
+ import { defineComponent as E, mergeModels as S, useModel as B, createBlock as m, createCommentVNode as M, openBlock as i, unref as n, withCtx as a, createElementVNode as y, normalizeClass as v, createVNode as p, createTextVNode as c, createElementBlock as N, toDisplayString as g } from "vue";
2
+ import { isNil as s } from "../../../lib/util/helpers/dist/utils.js";
3
3
  import { randomInt as F } from "../../../lib/util/helpers/dist/random.js";
4
- import { PlSidebarItem as N, PlBtnSecondary as V, PlElementList as P, PlEditableTitle as U } from "@milaboratories/uikit";
4
+ import { PlSidebarItem as w, PlBtnSecondary as V, PlElementList as P, PlEditableTitle as U } from "@milaboratories/uikit";
5
5
  import { getFilterUiMetadata as $ } from "@platforma-sdk/model";
6
6
  import { createDefaultFilterMetadata as D } from "../utils.js";
7
7
  import I from "./DynamicForm.vue.js";
8
- const L = { key: 1 }, H = /* @__PURE__ */ E({
8
+ const j = { key: 1 }, H = /* @__PURE__ */ E({
9
9
  __name: "FilterSidebar",
10
10
  props: /* @__PURE__ */ S({
11
11
  columns: {},
@@ -16,21 +16,21 @@ const L = { key: 1 }, H = /* @__PURE__ */ E({
16
16
  stepModifiers: {}
17
17
  }),
18
18
  emits: ["update:step"],
19
- setup(v) {
20
- const a = B(v, "step"), r = v, b = () => {
21
- a.value.filter.filters.push({
19
+ setup(f) {
20
+ const o = B(f, "step"), d = f, x = () => {
21
+ o.value.filter.filters.push({
22
22
  id: F(),
23
23
  isExpanded: !0,
24
24
  type: void 0
25
25
  });
26
26
  };
27
- async function h() {
28
- const t = await r.getValuesForSelectedColumns();
27
+ async function b() {
28
+ const t = await d.getValuesForSelectedColumns();
29
29
  if (!t || t.values.length === 0) return;
30
- const { columnId: l, values: e } = t, d = e.slice(0, 3).join(", ") + (e.length > 3 ? ` and ${e.length - 3} more` : "");
31
- a.value.filter.filters.push({
30
+ const { columnId: l, values: e } = t, r = e.slice(0, 3).join(", ") + (e.length > 3 ? ` and ${e.length - 3} more` : "");
31
+ o.value.filter.filters.push({
32
32
  id: F(),
33
- name: `Selected list (${d})`,
33
+ name: `Selected list (${r})`,
34
34
  isExpanded: !1,
35
35
  type: "or",
36
36
  filters: e.map((u) => ({
@@ -40,79 +40,76 @@ const L = { key: 1 }, H = /* @__PURE__ */ E({
40
40
  }))
41
41
  });
42
42
  }
43
- const x = (t) => {
43
+ const h = (t) => {
44
44
  var l;
45
- return i(t.name) ? ((l = r.columns.find((e) => "column" in t ? e.id === t.column : !1)) == null ? void 0 : l.label) ?? t.type : t.name;
46
- }, k = (t) => i(t.type) ? D() : $(t.type).form, C = (t) => t.type === "or" || t.type === "and" ? t.filters.map((l) => "value" in l && !i(l.value) ? l.value : null).filter((l) => !i(l)).join(", ") : null;
47
- return (t, l) => a.value ? (s(), m(n(N), { key: 0 }, {
48
- "header-content": o(() => [
49
- (s(), m(n(U), {
50
- key: a.value.id,
51
- modelValue: a.value.label,
52
- "onUpdate:modelValue": l[0] || (l[0] = (e) => a.value.label = e),
45
+ return s(t.name) ? ((l = d.columns.find((e) => "column" in t ? e.id === t.column : !1)) == null ? void 0 : l.label) ?? t.type : t.name;
46
+ }, k = (t) => s(t.type) ? D() : $(t.type).form, C = (t) => t.type === "or" || t.type === "and" ? t.filters.map((l) => "value" in l && !s(l.value) ? l.value : null).filter((l) => !s(l)).join(", ") : null;
47
+ return (t, l) => o.value ? (i(), m(n(w), { key: 0 }, {
48
+ "header-content": a(() => [
49
+ (i(), m(n(U), {
50
+ key: o.value.id,
51
+ modelValue: o.value.label,
52
+ "onUpdate:modelValue": l[0] || (l[0] = (e) => o.value.label = e),
53
53
  "max-length": 40,
54
54
  "max-width": "600px",
55
55
  placeholder: "Annotation Name",
56
- autofocus: a.value.label.length === 0
56
+ autofocus: o.value.label.length === 0
57
57
  }, null, 8, ["modelValue", "autofocus"]))
58
58
  ]),
59
- "body-content": o(() => [
60
- p("div", {
61
- class: c(t.$style.root)
59
+ "body-content": a(() => [
60
+ y("div", {
61
+ class: v(t.$style.root)
62
62
  }, [
63
- p("div", {
64
- class: c(t.$style.actions)
63
+ y("div", {
64
+ class: v(t.$style.actions)
65
65
  }, [
66
- f(n(V), {
66
+ p(n(V), {
67
67
  style: { width: "100%" },
68
68
  icon: "add",
69
- onClick: b
69
+ onClick: x
70
70
  }, {
71
- default: o(() => l[2] || (l[2] = [
72
- y(" Filter ")
71
+ default: a(() => l[2] || (l[2] = [
72
+ c(" Filter ")
73
73
  ])),
74
74
  _: 1
75
75
  }),
76
- f(n(V), {
76
+ p(n(V), {
77
77
  style: { width: "100%" },
78
78
  icon: "add",
79
- disabled: !r.hasSelectedColumns,
80
- onClick: h
79
+ disabled: !d.hasSelectedColumns,
80
+ onClick: b
81
81
  }, {
82
- default: o(() => l[3] || (l[3] = [
83
- y(" From selection ")
82
+ default: a(() => l[3] || (l[3] = [
83
+ c(" From selection ")
84
84
  ])),
85
85
  _: 1
86
86
  }, 8, ["disabled"])
87
87
  ], 2),
88
- p("span", {
89
- class: c(t.$style.tip)
90
- }, "Lower annotations override the ones above. Rearrange them by dragging.", 2),
91
- f(n(P), {
92
- items: a.value.filter.filters,
93
- "onUpdate:items": l[1] || (l[1] = (e) => a.value.filter.filters = e),
88
+ p(n(P), {
89
+ items: o.value.filter.filters,
90
+ "onUpdate:items": l[1] || (l[1] = (e) => o.value.filter.filters = e),
94
91
  "get-item-key": (e) => e.id,
95
92
  "is-expanded": (e) => !!e.isExpanded,
96
93
  "on-expand": (e) => e.isExpanded = !e.isExpanded
97
94
  }, {
98
- "item-title": o(({ item: e }) => [
99
- y(g(x(e)), 1)
95
+ "item-title": a(({ item: e }) => [
96
+ c(g(h(e)), 1)
100
97
  ]),
101
- "item-content": o(({ item: e, index: d }) => [
102
- e.type !== "or" && e.type !== "and" ? (s(), m(I, {
98
+ "item-content": a(({ item: e, index: r }) => [
99
+ e.type !== "or" && e.type !== "and" ? (i(), m(I, {
103
100
  key: 0,
104
- modelValue: a.value.filter.filters[d],
105
- "onUpdate:modelValue": (u) => a.value.filter.filters[d] = u,
101
+ modelValue: o.value.filter.filters[r],
102
+ "onUpdate:modelValue": (u) => o.value.filter.filters[r] = u,
106
103
  "form-metadata": k(e),
107
- columns: r.columns
108
- }, null, 8, ["modelValue", "onUpdate:modelValue", "form-metadata", "columns"])) : (s(), M("div", L, g(C(e)), 1))
104
+ columns: d.columns
105
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "form-metadata", "columns"])) : (i(), N("div", j, g(C(e)), 1))
109
106
  ]),
110
107
  _: 1
111
108
  }, 8, ["items", "get-item-key", "is-expanded", "on-expand"])
112
109
  ], 2)
113
110
  ]),
114
111
  _: 1
115
- })) : w("", !0);
112
+ })) : M("", !0);
116
113
  }
117
114
  });
118
115
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/FilterSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isNil, randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { AnnotationStepUi, FilterUi, PObjectId, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { getFilterUiMetadata } from '@platforma-sdk/model';\nimport type { SimplifiedUniversalPColumnEntry } from '../types';\nimport { createDefaultFilterMetadata } from '../utils';\nimport DynamicForm from './DynamicForm.vue';\n\n// Models\nconst step = defineModel<AnnotationStepUi>('step', { required: true });\n// Props\nconst props = defineProps<{\n columns: SimplifiedUniversalPColumnEntry[];\n hasSelectedColumns: boolean;\n getValuesForSelectedColumns: () => Promise<undefined | { columnId: PObjectId; values: string[] }>;\n}>();\n// Actions\nconst addFilterPlaceholder = () => {\n step.value.filter.filters.push({\n id: randomInt(),\n isExpanded: true,\n type: undefined,\n });\n};\n\nasync function addFilterFromSelected() {\n const data = await props.getValuesForSelectedColumns();\n if (!data || data.values.length === 0) return;\n\n const { columnId, values } = data;\n const shortReminder = values.slice(0, 3).join(', ') + (values.length > 3 ? ` and ${values.length - 3} more` : '');\n\n step.value.filter.filters.push({\n id: randomInt(),\n name: `Selected list (${shortReminder})`,\n isExpanded: false,\n type: 'or',\n filters: values.map((value) => ({\n type: 'patternEquals',\n column: columnId as SUniversalPColumnId,\n value,\n })),\n });\n}\n\n// Getters\nconst getColumnLabel = (filter: FilterUi) => {\n if (!isNil(filter.name)) return filter.name;\n return props.columns\n .find((c) => 'column' in filter ? c.id === filter.column : false)?.label\n ?? filter.type;\n};\n\nconst getFormMetadata = (filter: FilterUi) => {\n return !isNil(filter.type) ? getFilterUiMetadata(filter.type).form : createDefaultFilterMetadata();\n};\n\nconst getFilterValues = (filter: FilterUi) => {\n if (filter.type === 'or' || filter.type === 'and') {\n return filter.filters.map((f) => 'value' in f && !isNil(f.value) ? f.value : null).filter((v) => !isNil(v)).join (', ');\n }\n return null;\n};\n</script>\n\n<template>\n <PlSidebarItem v-if=\"step\">\n <template #header-content>\n <PlEditableTitle\n :key=\"step.id\"\n v-model=\"step.label\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Name\"\n :autofocus=\"step.label.length === 0\"\n />\n </template>\n <template #body-content>\n <div :class=\"$style.root\">\n <div :class=\"$style.actions\">\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" @click=\"addFilterPlaceholder\">\n Filter\n </PlBtnSecondary>\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" :disabled=\"!props.hasSelectedColumns\" @click=\"addFilterFromSelected\">\n From selection\n </PlBtnSecondary>\n </div>\n\n <span :class=\"$style.tip\">Lower annotations override the ones above. Rearrange them by dragging.</span>\n\n <PlElementList\n v-model:items=\"step.filter.filters\"\n :get-item-key=\"(item) => item.id!\"\n :is-expanded=\"(item) => Boolean(item.isExpanded)\"\n :on-expand=\"(item) => item.isExpanded = !Boolean(item.isExpanded)\"\n >\n <template #item-title=\"{ item }\">\n {{ getColumnLabel(item) }}\n </template>\n <template #item-content=\"{ item, index }\">\n <template v-if=\"item.type !== 'or' && item.type !== 'and'\">\n <DynamicForm\n v-model=\"step.filter.filters[index]\"\n :form-metadata=\"getFormMetadata(item)\"\n :columns=\"props.columns\"\n />\n </template>\n <template v-else>\n <div>{{ getFilterValues(item) }}</div>\n </template>\n </template>\n </PlElementList>\n </div>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use '@milaboratories/uikit/styles/variables' as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.actions {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n\n.tip {\n margin-top: 12px;\n color: var(--txt-03);\n}\n</style>\n"],"names":["step","_useModel","props","__props","addFilterPlaceholder","randomInt","addFilterFromSelected","data","columnId","values","shortReminder","value","getColumnLabel","filter","isNil","_a","c","getFormMetadata","createDefaultFilterMetadata","getFilterUiMetadata","getFilterValues","f","v"],"mappings":";;;;;;;;;;;;;;;;;;;AAeA,UAAMA,IAAOC,KAA8B,MAA0B,GAE/DC,IAAQC,GAMRC,IAAuB,MAAM;AACjC,MAAAJ,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,YAAY;AAAA,QACZ,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAEA,mBAAeC,IAAwB;AACrC,YAAMC,IAAO,MAAML,EAAM,4BAAA;AACzB,UAAI,CAACK,KAAQA,EAAK,OAAO,WAAW,EAAG;AAEvC,YAAM,EAAE,UAAAC,GAAU,QAAAC,EAAA,IAAWF,GACvBG,IAAgBD,EAAO,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,KAAKA,EAAO,SAAS,IAAI,QAAQA,EAAO,SAAS,CAAC,UAAU;AAE9G,MAAAT,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,MAAM,kBAAkBK,CAAa;AAAA,QACrC,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,SAASD,EAAO,IAAI,CAACE,OAAW;AAAA,UAC9B,MAAM;AAAA,UACN,QAAQH;AAAA,UACR,OAAAG;AAAA,QAAA,EACA;AAAA,MAAA,CACH;AAAA,IACH;AAGA,UAAMC,IAAiB,CAACC,MAAqB;;AAC3C,aAAKC,EAAMD,EAAO,IAAI,MACfE,IAAAb,EAAM,QACV,KAAK,CAACc,MAAM,YAAYH,IAASG,EAAE,OAAOH,EAAO,SAAS,EAAK,MAD3D,gBAAAE,EAC8D,UAChEF,EAAO,OAHoBA,EAAO;AAAA,IAIzC,GAEMI,IAAkB,CAACJ,MACfC,EAAMD,EAAO,IAAI,IAA4CK,EAAA,IAAxCC,EAAoBN,EAAO,IAAI,EAAE,MAG1DO,IAAkB,CAACP,MACnBA,EAAO,SAAS,QAAQA,EAAO,SAAS,QACnCA,EAAO,QAAQ,IAAI,CAACQ,MAAM,WAAWA,KAAK,CAACP,EAAMO,EAAE,KAAK,IAAIA,EAAE,QAAQ,IAAI,EAAE,OAAO,CAACC,MAAM,CAACR,EAAMQ,CAAC,CAAC,EAAE,KAAM,IAAI,IAEjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/FilterSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isNil, randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { AnnotationStepUi, FilterUi, PObjectId, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { getFilterUiMetadata } from '@platforma-sdk/model';\nimport type { SimplifiedUniversalPColumnEntry } from '../types';\nimport { createDefaultFilterMetadata } from '../utils';\nimport DynamicForm from './DynamicForm.vue';\n\n// Models\nconst step = defineModel<AnnotationStepUi>('step', { required: true });\n// Props\nconst props = defineProps<{\n columns: SimplifiedUniversalPColumnEntry[];\n hasSelectedColumns: boolean;\n getValuesForSelectedColumns: () => Promise<undefined | { columnId: PObjectId; values: string[] }>;\n}>();\n// Actions\nconst addFilterPlaceholder = () => {\n step.value.filter.filters.push({\n id: randomInt(),\n isExpanded: true,\n type: undefined,\n });\n};\n\nasync function addFilterFromSelected() {\n const data = await props.getValuesForSelectedColumns();\n if (!data || data.values.length === 0) return;\n\n const { columnId, values } = data;\n const shortReminder = values.slice(0, 3).join(', ') + (values.length > 3 ? ` and ${values.length - 3} more` : '');\n\n step.value.filter.filters.push({\n id: randomInt(),\n name: `Selected list (${shortReminder})`,\n isExpanded: false,\n type: 'or',\n filters: values.map((value) => ({\n type: 'patternEquals',\n column: columnId as SUniversalPColumnId,\n value,\n })),\n });\n}\n\n// Getters\nconst getColumnLabel = (filter: FilterUi) => {\n if (!isNil(filter.name)) return filter.name;\n return props.columns\n .find((c) => 'column' in filter ? c.id === filter.column : false)?.label\n ?? filter.type;\n};\n\nconst getFormMetadata = (filter: FilterUi) => {\n return !isNil(filter.type) ? getFilterUiMetadata(filter.type).form : createDefaultFilterMetadata();\n};\n\nconst getFilterValues = (filter: FilterUi) => {\n if (filter.type === 'or' || filter.type === 'and') {\n return filter.filters.map((f) => 'value' in f && !isNil(f.value) ? f.value : null).filter((v) => !isNil(v)).join (', ');\n }\n return null;\n};\n</script>\n\n<template>\n <PlSidebarItem v-if=\"step\">\n <template #header-content>\n <PlEditableTitle\n :key=\"step.id\"\n v-model=\"step.label\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Name\"\n :autofocus=\"step.label.length === 0\"\n />\n </template>\n <template #body-content>\n <div :class=\"$style.root\">\n <div :class=\"$style.actions\">\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" @click=\"addFilterPlaceholder\">\n Filter\n </PlBtnSecondary>\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" :disabled=\"!props.hasSelectedColumns\" @click=\"addFilterFromSelected\">\n From selection\n </PlBtnSecondary>\n </div>\n\n <PlElementList\n v-model:items=\"step.filter.filters\"\n :get-item-key=\"(item) => item.id!\"\n :is-expanded=\"(item) => Boolean(item.isExpanded)\"\n :on-expand=\"(item) => item.isExpanded = !Boolean(item.isExpanded)\"\n >\n <template #item-title=\"{ item }\">\n {{ getColumnLabel(item) }}\n </template>\n <template #item-content=\"{ item, index }\">\n <template v-if=\"item.type !== 'or' && item.type !== 'and'\">\n <DynamicForm\n v-model=\"step.filter.filters[index]\"\n :form-metadata=\"getFormMetadata(item)\"\n :columns=\"props.columns\"\n />\n </template>\n <template v-else>\n <div>{{ getFilterValues(item) }}</div>\n </template>\n </template>\n </PlElementList>\n </div>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use '@milaboratories/uikit/styles/variables' as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.actions {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n</style>\n"],"names":["step","_useModel","props","__props","addFilterPlaceholder","randomInt","addFilterFromSelected","data","columnId","values","shortReminder","value","getColumnLabel","filter","isNil","_a","c","getFormMetadata","createDefaultFilterMetadata","getFilterUiMetadata","getFilterValues","f","v"],"mappings":";;;;;;;;;;;;;;;;;;;AAeA,UAAMA,IAAOC,KAA8B,MAA0B,GAE/DC,IAAQC,GAMRC,IAAuB,MAAM;AACjC,MAAAJ,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,YAAY;AAAA,QACZ,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAEA,mBAAeC,IAAwB;AACrC,YAAMC,IAAO,MAAML,EAAM,4BAAA;AACzB,UAAI,CAACK,KAAQA,EAAK,OAAO,WAAW,EAAG;AAEvC,YAAM,EAAE,UAAAC,GAAU,QAAAC,EAAA,IAAWF,GACvBG,IAAgBD,EAAO,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,KAAKA,EAAO,SAAS,IAAI,QAAQA,EAAO,SAAS,CAAC,UAAU;AAE9G,MAAAT,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,MAAM,kBAAkBK,CAAa;AAAA,QACrC,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,SAASD,EAAO,IAAI,CAACE,OAAW;AAAA,UAC9B,MAAM;AAAA,UACN,QAAQH;AAAA,UACR,OAAAG;AAAA,QAAA,EACA;AAAA,MAAA,CACH;AAAA,IACH;AAGA,UAAMC,IAAiB,CAACC,MAAqB;;AAC3C,aAAKC,EAAMD,EAAO,IAAI,MACfE,IAAAb,EAAM,QACV,KAAK,CAACc,MAAM,YAAYH,IAASG,EAAE,OAAOH,EAAO,SAAS,EAAK,MAD3D,gBAAAE,EAC8D,UAChEF,EAAO,OAHoBA,EAAO;AAAA,IAIzC,GAEMI,IAAkB,CAACJ,MACfC,EAAMD,EAAO,IAAI,IAA4CK,EAAA,IAAxCC,EAAoBN,EAAO,IAAI,EAAE,MAG1DO,IAAkB,CAACP,MACnBA,EAAO,SAAS,QAAQA,EAAO,SAAS,QACnCA,EAAO,QAAQ,IAAI,CAACQ,MAAM,WAAWA,KAAK,CAACP,EAAMO,EAAE,KAAK,IAAIA,EAAE,QAAQ,IAAI,EAAE,OAAO,CAACC,MAAM,CAACR,EAAMQ,CAAC,CAAC,EAAE,KAAM,IAAI,IAEjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,11 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(":root{--txt-00: #ffffff;--txt-01: light-dark(#110529, #ffffff);--txt-02: #231842;--txt-03: #9d9eae;--txt-mask: #cfd1db;--txt-focus: #07ad3e;--txt-error: #f1222f;--txt-link: #5f31cc;--ic-00: #ffffff;--ic-01: #110529;--ic-02: #cfd1db;--ic-accent: #07ad3e;--border-color-default: #110529;--border-color-hover: #231842;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #e1e3eb;--border-color-div-bw: #ffffff;--btn-accent-default: #845cff;--btn-accent-hover: #9470ff;--btn-accent-press: #6f4dd6;--btn-primary-default: #110529;--btn-primary-hover: #231842;--btn-primary-press: #080214;--btn-sec-hover-white: rgba(255, 255, 255, .5);--btn-sec-hover-grey: light-dark(rgba(155, 171, 204, .16), rgba(131, 131, 163, .16));--btn-sec-press-grey: rgba(155, 171, 204, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--btn-accent-positive-500: #ECFBE5;--dis-00: #ffffff;--dis-01: light-dark(#cfd1db, #3d3d42);--bg-base-dark: #110529;--bg-base-light: #f7f8fa;--bg-elevated-01: #ffffff;--bg-elevated-02: #e1e3eb;--bg-error: #FFF5F5;--filled-V-BG: #d0f0c0;--filled-D-BG: #ffcecc;--filled-N-BG: #faf5aa;--filled-J-BG: #dedbff;--notification-neutral: linear-gradient(90deg, #d6d9ff 0%, #fff 100%);--notification-success: linear-gradient(90deg, #c9f0b6 0%, #fff 100%);--notification-warning: linear-gradient(90deg, #fee0a3 0%, #fff 100%);--notification-error: linear-gradient(90deg, #ffb8b8 0%, #fff 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--gradient-blue-violet: linear-gradient(180deg, #adb8ff 0%, #d6e9ff 100%);--gradient-blue-clear: linear-gradient(180deg, #85beff 0%, #cef 100%);--gradient-orange: linear-gradient(180deg, #ffb766 0%, #ffeaa3 100%);--gradient-mint: linear-gradient(180deg, #7dd1d1 0%, #c8fae9 100%);--gradient-lime: linear-gradient(180deg, #bfe062 0%, #e4ffad 100%);--gradient-rose: linear-gradient(0deg, #ffddd6 0%, #ff99c9 100%);--gradient-red: linear-gradient(0deg, #ffd5cc 0%, #ff9494 100%);--gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--TT-gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--gradient-light-lime: linear-gradient(180deg, #EBFFEB 0%, transparent 100%);--shadow-l: 0px 8px 16px -4px rgba(15, 36, 77, .16), 0px 12px 32px -4px rgba(15, 36, 77, .16);--main-spacing: 24px;--gap-v: 24px;--gap-h: 12px;--border-radius: 6px;--z-splash: 50;--z-slide-shadow: 80;--z-slide-dialog: 81;--z-dialog: 100;--z-dropdown-options: 110;--z-tooltip: 120;--z-context-menu: 1001;--scrollbar-width: 6px}[data-theme=dark]{--txt-00: #ffffff;--txt-01: #FFFFFF;--txt-02: #adaeb8;--txt-03: #60616b;--txt-mask: #3D3D42;--txt-focus: #87e087;--txt-error: #ff5c5c;--txt-link: #9470ff;--ic-00: #ffffff;--ic-01: #FFFFFF;--ic-02: #60616b;--ic-accent: #87e087;--border-color-default: #60616b;--border-color-hover: #adaeb8;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #232329;--border-color-div-bw: #000000;--btn-accent-default: #5f31cc;--btn-accent-hover: #5f31cc;--btn-accent-press: #5f31cc;--btn-primary-default: #5f31cc;--btn-primary-hover: #6d3ddb;--btn-primary-press: #5328b8;--btn-sec-hover-white: rgba(131, 131, 163, .16);--btn-sec-hover-grey: rgba(131, 131, 163, .16);--btn-sec-press-grey: rgba(131, 131, 163, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: #5e5e70;--dis-00: #65656b;--dis-01: #3D3D42;--bg-base-dark: #0d0d0f;--bg-base-light: #0d0d0f;--bg-elevated-01: #1b1b1f;--bg-elevated-02: #2d2d33;--bg-error: #FFF5F5;--filled-V-BG: rgba(66, 184, 66, .4);--filled-D-BG: rgba(229, 83, 229, .4);--filled-N-BG: rgba(83, 82, 102, .4);--filled-J-BG: rgba(132, 92, 255, .4);--notification-neutral: linear-gradient(90deg, #4d4d8f 0%, #292933 100%);--notification-success: linear-gradient(90deg, #305c3e 0%, #292933 100%);--notification-warning: linear-gradient(90deg, #754f2d 0%, #292933 100%);--notification-error: linear-gradient(90deg, #8f3343 0%, #292933 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-clear: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-orange: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-mint: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-rose: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-red: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%)}._root_9d0hc_131{display:flex;flex-direction:column;gap:12px}._actions_9d0hc_137{display:flex;flex-direction:row;gap:12px}._tip_9d0hc_143{margin-top:12px;color:var(--txt-03)}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
- const t = "_root_9d0hc_131", o = "_actions_9d0hc_137", c = "_tip_9d0hc_143", s = {
3
- root: t,
4
- actions: o,
5
- tip: c
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(":root{--txt-00: #ffffff;--txt-01: light-dark(#110529, #ffffff);--txt-02: #231842;--txt-03: #9d9eae;--txt-mask: #cfd1db;--txt-focus: #07ad3e;--txt-error: #f1222f;--txt-link: #5f31cc;--ic-00: #ffffff;--ic-01: #110529;--ic-02: #cfd1db;--ic-accent: #07ad3e;--border-color-default: #110529;--border-color-hover: #231842;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #e1e3eb;--border-color-div-bw: #ffffff;--btn-accent-default: #845cff;--btn-accent-hover: #9470ff;--btn-accent-press: #6f4dd6;--btn-primary-default: #110529;--btn-primary-hover: #231842;--btn-primary-press: #080214;--btn-sec-hover-white: rgba(255, 255, 255, .5);--btn-sec-hover-grey: light-dark(rgba(155, 171, 204, .16), rgba(131, 131, 163, .16));--btn-sec-press-grey: rgba(155, 171, 204, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--btn-accent-positive-500: #ECFBE5;--dis-00: #ffffff;--dis-01: light-dark(#cfd1db, #3d3d42);--bg-base-dark: #110529;--bg-base-light: #f7f8fa;--bg-elevated-01: #ffffff;--bg-elevated-02: #e1e3eb;--bg-error: #FFF5F5;--filled-V-BG: #d0f0c0;--filled-D-BG: #ffcecc;--filled-N-BG: #faf5aa;--filled-J-BG: #dedbff;--notification-neutral: linear-gradient(90deg, #d6d9ff 0%, #fff 100%);--notification-success: linear-gradient(90deg, #c9f0b6 0%, #fff 100%);--notification-warning: linear-gradient(90deg, #fee0a3 0%, #fff 100%);--notification-error: linear-gradient(90deg, #ffb8b8 0%, #fff 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--gradient-blue-violet: linear-gradient(180deg, #adb8ff 0%, #d6e9ff 100%);--gradient-blue-clear: linear-gradient(180deg, #85beff 0%, #cef 100%);--gradient-orange: linear-gradient(180deg, #ffb766 0%, #ffeaa3 100%);--gradient-mint: linear-gradient(180deg, #7dd1d1 0%, #c8fae9 100%);--gradient-lime: linear-gradient(180deg, #bfe062 0%, #e4ffad 100%);--gradient-rose: linear-gradient(0deg, #ffddd6 0%, #ff99c9 100%);--gradient-red: linear-gradient(0deg, #ffd5cc 0%, #ff9494 100%);--gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--TT-gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--gradient-light-lime: linear-gradient(180deg, #EBFFEB 0%, transparent 100%);--shadow-l: 0px 8px 16px -4px rgba(15, 36, 77, .16), 0px 12px 32px -4px rgba(15, 36, 77, .16);--main-spacing: 24px;--gap-v: 24px;--gap-h: 12px;--border-radius: 6px;--z-splash: 50;--z-slide-shadow: 80;--z-slide-dialog: 81;--z-dialog: 100;--z-dropdown-options: 110;--z-tooltip: 120;--z-context-menu: 1001;--scrollbar-width: 6px}[data-theme=dark]{--txt-00: #ffffff;--txt-01: #FFFFFF;--txt-02: #adaeb8;--txt-03: #60616b;--txt-mask: #3D3D42;--txt-focus: #87e087;--txt-error: #ff5c5c;--txt-link: #9470ff;--ic-00: #ffffff;--ic-01: #FFFFFF;--ic-02: #60616b;--ic-accent: #87e087;--border-color-default: #60616b;--border-color-hover: #adaeb8;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #232329;--border-color-div-bw: #000000;--btn-accent-default: #5f31cc;--btn-accent-hover: #5f31cc;--btn-accent-press: #5f31cc;--btn-primary-default: #5f31cc;--btn-primary-hover: #6d3ddb;--btn-primary-press: #5328b8;--btn-sec-hover-white: rgba(131, 131, 163, .16);--btn-sec-hover-grey: rgba(131, 131, 163, .16);--btn-sec-press-grey: rgba(131, 131, 163, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: #5e5e70;--dis-00: #65656b;--dis-01: #3D3D42;--bg-base-dark: #0d0d0f;--bg-base-light: #0d0d0f;--bg-elevated-01: #1b1b1f;--bg-elevated-02: #2d2d33;--bg-error: #FFF5F5;--filled-V-BG: rgba(66, 184, 66, .4);--filled-D-BG: rgba(229, 83, 229, .4);--filled-N-BG: rgba(83, 82, 102, .4);--filled-J-BG: rgba(132, 92, 255, .4);--notification-neutral: linear-gradient(90deg, #4d4d8f 0%, #292933 100%);--notification-success: linear-gradient(90deg, #305c3e 0%, #292933 100%);--notification-warning: linear-gradient(90deg, #754f2d 0%, #292933 100%);--notification-error: linear-gradient(90deg, #8f3343 0%, #292933 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-clear: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-orange: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-mint: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-rose: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-red: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%)}._root_aq5ub_131{display:flex;flex-direction:column;gap:12px}._actions_aq5ub_137{display:flex;flex-direction:row;gap:12px}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
+ const o = "_root_aq5ub_131", t = "_actions_aq5ub_137", s = {
3
+ root: o,
4
+ actions: t
6
5
  };
7
6
  export {
8
- o as actions,
7
+ t as actions,
9
8
  s as default,
10
- t as root,
11
- c as tip
9
+ o as root
12
10
  };
13
11
  //# sourceMappingURL=FilterSidebar.vue3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSidebar.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"FilterSidebar.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.42.21",
3
+ "version": "1.42.24",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "styles": "dist/index.js",
@@ -25,9 +25,9 @@
25
25
  "@vueuse/integrations": "^13.3.0",
26
26
  "d3-format": "^3.1.0",
27
27
  "zod": "~3.23.8",
28
- "@milaboratories/biowasm-tools": "^1.1.1",
29
- "@platforma-sdk/model": "~1.42.20",
30
- "@milaboratories/uikit": "2.4.4"
28
+ "@milaboratories/biowasm-tools": "^1.1.2",
29
+ "@milaboratories/uikit": "2.4.5",
30
+ "@platforma-sdk/model": "~1.42.23"
31
31
  },
32
32
  "devDependencies": {
33
33
  "happy-dom": "^15.11.7",
@@ -42,11 +42,11 @@
42
42
  "yarpm": "^1.2.0",
43
43
  "fast-json-patch": "^3.1.1",
44
44
  "@faker-js/faker": "^9.2.0",
45
- "@milaboratories/ts-configs": "1.0.6",
46
- "@milaboratories/build-configs": "1.0.6",
47
45
  "@milaboratories/eslint-config": "^1.0.4",
48
- "@milaboratories/helpers": "^1.6.20",
49
- "@milaboratories/ts-builder": "1.0.1"
46
+ "@milaboratories/ts-configs": "1.0.6",
47
+ "@milaboratories/helpers": "^1.6.21",
48
+ "@milaboratories/ts-builder": "1.0.4",
49
+ "@milaboratories/build-configs": "1.0.8"
50
50
  },
51
51
  "scripts": {
52
52
  "test": "vitest run --passWithNoTests",
@@ -92,8 +92,6 @@ const getFilterValues = (filter: FilterUi) => {
92
92
  </PlBtnSecondary>
93
93
  </div>
94
94
 
95
- <span :class="$style.tip">Lower annotations override the ones above. Rearrange them by dragging.</span>
96
-
97
95
  <PlElementList
98
96
  v-model:items="step.filter.filters"
99
97
  :get-item-key="(item) => item.id!"
@@ -135,9 +133,4 @@ const getFilterValues = (filter: FilterUi) => {
135
133
  flex-direction: row;
136
134
  gap: 12px;
137
135
  }
138
-
139
- .tip {
140
- margin-top: 12px;
141
- color: var(--txt-03);
142
- }
143
136
  </style>