@platforma-sdk/ui-vue 1.48.5 → 1.48.6

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,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.48.5 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.48.6 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...
@@ -76,16 +76,16 @@ computing gzip size...
76
76
  dist/components/PlAnnotations/components/PlAnnotations.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
77
77
  dist/components/PlAnnotations/components/FilterSidebar.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
78
78
  dist/components/PlAgDataTable/PlAgDataTableV2.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
79
- dist/plugins/Monetization/UserCabinetCard.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
80
79
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/clean.js  0.30 kB │ gzip: 0.23 kB │ map: 0.65 kB
80
+ dist/plugins/Monetization/UserCabinetCard.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
81
81
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/prerelease.js  0.30 kB │ gzip: 0.22 kB │ map: 0.68 kB
82
82
  dist/components/PlTableFilters/PlTableFiltersV2.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
83
83
  dist/components/PlAdvancedFilter/PlAdvancedFilter.vue.js  0.30 kB │ gzip: 0.22 kB │ map: 0.11 kB
84
84
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/to-comparators.js  0.30 kB │ gzip: 0.23 kB │ map: 0.78 kB
85
85
  dist/components/PlBtnExportArchive/PlBtnExportArchive.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
86
86
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
87
- dist/components/PlAnnotations/components/AnnotationsSidebar.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
88
87
  dist/components/PlAgDataTable/PlAgDataTableSheets.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
88
+ dist/components/PlAnnotations/components/AnnotationsSidebar.vue.js  0.31 kB │ gzip: 0.22 kB │ map: 0.11 kB
89
89
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/valid.js  0.31 kB │ gzip: 0.22 kB │ map: 0.76 kB
90
90
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js  0.32 kB │ gzip: 0.23 kB │ map: 0.12 kB
91
91
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/satisfies.js  0.32 kB │ gzip: 0.23 kB │ map: 0.74 kB
@@ -186,11 +186,11 @@ computing gzip size...
186
186
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/subset.js  3.51 kB │ gzip: 1.04 kB │ map: 11.66 kB
187
187
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js  3.51 kB │ gzip: 1.38 kB │ map: 4.73 kB
188
188
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js  3.67 kB │ gzip: 1.01 kB │ map: 5.45 kB
189
- dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js  3.80 kB │ gzip: 1.45 kB │ map: 5.60 kB
189
+ dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js  3.84 kB │ gzip: 1.47 kB │ map: 5.66 kB
190
190
  dist/plugins/Monetization/LimitCard.vue2.js  3.84 kB │ gzip: 1.15 kB │ map: 9.38 kB
191
191
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  3.85 kB │ gzip: 1.53 kB │ map: 6.90 kB
192
192
  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
193
- dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.22 kB │ gzip: 1.53 kB │ map: 7.29 kB
193
+ dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.21 kB │ gzip: 1.53 kB │ map: 7.29 kB
194
194
  dist/plugins/Monetization/MonetizationSidebar.vue.js  4.71 kB │ gzip: 1.75 kB │ map: 6.69 kB
195
195
  dist/components/BlockLayout.vue2.js  4.97 kB │ gzip: 1.84 kB │ map: 3.90 kB
196
196
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js  5.65 kB │ gzip: 1.67 kB │ map: 0.11 kB
@@ -215,7 +215,7 @@ computing gzip size...
215
215
  dist/components/PlAgRowNumHeader.vue.js 44.59 kB │ gzip: 29.26 kB │ map: 4.04 kB
216
216
  dist/AgGridVue/useAgGridOptions.js 48.98 kB │ gzip: 30.09 kB │ map: 15.74 kB
217
217
  dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js 50.37 kB │ gzip: 31.06 kB │ map: 34.73 kB
218
- [vite:dts] Declaration files built in 5022ms.
218
+ [vite:dts] Declaration files built in 8755ms.
219
219
 
220
- ✓ built in 6.88s
220
+ ✓ built in 12.03s
221
221
  Build completed successfully
@@ -1,5 +1,5 @@
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.48.5 lint /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.48.6 lint /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > eslint .
5
5
 
@@ -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.48.5 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.48.6 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder types --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json --customConditions ,
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.48.6
4
+
5
+ ### Patch Changes
6
+
7
+ - ce1303d: annotations: reorder labels execution
8
+
3
9
  ## 1.48.5
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"names":[],"mappings":"AAgIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA4B3C,KAAK,iBAAiB,GAAG;IACzB,YAAY,EAAE,UAAU,CAAC;IACzB,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACrC,CAAC;;;;;;;;;;;AA+MF,wBAQG"}
1
+ {"version":3,"file":"AnnotationsSidebar.vue.d.ts","sourceRoot":"","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"names":[],"mappings":"AAiIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AA4B3C,KAAK,iBAAiB,GAAG;IACzB,YAAY,EAAE,UAAU,CAAC;IACzB,gBAAgB,CAAC,EAAE,SAAS,GAAG,MAAM,CAAC;CACrC,CAAC;;;;;;;;;;;AAiNF,wBAQG"}
@@ -1,8 +1,8 @@
1
- import { defineComponent as S, mergeModels as k, useModel as m, createBlock as I, openBlock as V, unref as a, createSlots as C, withCtx as n, createVNode as i, withModifiers as p, createTextVNode as r, normalizeClass as s, createElementVNode as v, toDisplayString as P } from "vue";
1
+ import { defineComponent as S, mergeModels as k, useModel as u, createBlock as I, openBlock as V, unref as o, createSlots as C, withCtx as n, createVNode as i, withModifiers as p, createTextVNode as r, normalizeClass as s, createElementVNode as v, toDisplayString as h } from "vue";
2
2
  import f from "./style.module.css.js";
3
3
  import { randomInt as b } from "../../../lib/util/helpers/dist/random.js";
4
- import { PlSidebarItem as M, PlBtnGhost as $, PlEditableTitle as h, PlTextField as w, PlElementList as x, PlBtnSecondary as A } from "@milaboratories/uikit";
5
- const N = /* @__PURE__ */ S({
4
+ import { PlSidebarItem as P, PlBtnGhost as w, PlEditableTitle as A, PlElementList as M, PlTextField as $, PlBtnSecondary as x } from "@milaboratories/uikit";
5
+ const U = /* @__PURE__ */ S({
6
6
  __name: "AnnotationsSidebar",
7
7
  props: {
8
8
  annotation: { required: !0 },
@@ -11,26 +11,26 @@ const N = /* @__PURE__ */ S({
11
11
  selectedStepIdModifiers: {}
12
12
  },
13
13
  emits: /* @__PURE__ */ k(["delete-schema"], ["update:annotation", "update:selectedStepId"]),
14
- setup(u, { emit: c }) {
15
- const l = m(u, "annotation"), d = m(u, "selectedStepId"), g = c;
14
+ setup(m, { emit: c }) {
15
+ const l = u(m, "annotation"), d = u(m, "selectedStepId"), g = c;
16
16
  function y() {
17
- const o = b();
17
+ const a = b();
18
18
  l.value.steps.push({
19
- id: o,
19
+ id: a,
20
20
  label: "",
21
21
  filter: {
22
22
  id: b(),
23
23
  type: "and",
24
24
  filters: []
25
25
  }
26
- }), d.value = o;
26
+ }), d.value = a;
27
27
  }
28
- return (o, e) => (V(), I(a(M), null, C({
28
+ return (a, e) => (V(), I(o(P), null, C({
29
29
  "header-content": n(() => [
30
- i(a(h), {
30
+ i(o(A), {
31
31
  modelValue: l.value.title,
32
32
  "onUpdate:modelValue": e[0] || (e[0] = (t) => l.value.title = t),
33
- class: s({ [a(f).flashing]: l.value.title.length === 0 }),
33
+ class: s({ [o(f).flashing]: l.value.title.length === 0 }),
34
34
  "max-length": 40,
35
35
  "max-width": "600px",
36
36
  placeholder: "Annotation Title",
@@ -38,7 +38,7 @@ const N = /* @__PURE__ */ S({
38
38
  }, null, 8, ["modelValue", "class", "autofocus"])
39
39
  ]),
40
40
  "footer-content": n(() => [
41
- i(a($), {
41
+ i(o(w), {
42
42
  icon: "delete-bin",
43
43
  reverse: "",
44
44
  disabled: l.value.steps.length === 0,
@@ -56,34 +56,35 @@ const N = /* @__PURE__ */ S({
56
56
  name: "body-content",
57
57
  fn: n(() => [
58
58
  v("div", {
59
- class: s([o.$style.root, { [a(f).disabled]: l.value.title.length === 0 }])
59
+ class: s([a.$style.root, { [o(f).disabled]: l.value.title.length === 0 }])
60
60
  }, [
61
61
  v("span", {
62
- class: s(o.$style.tip)
63
- }, "Lower annotations override the ones above. Rearrange them by dragging.", 2),
64
- i(a(w), {
65
- "model-value": l.value.defaultValue ?? "",
66
- label: "Default label",
67
- clearable: "",
68
- onClick: e[1] || (e[1] = p(() => {
69
- }, ["stop"])),
70
- "onUpdate:modelValue": e[2] || (e[2] = (t) => l.value.defaultValue = t === "" ? void 0 : t)
71
- }, null, 8, ["model-value"]),
72
- i(a(x), {
62
+ class: s(a.$style.tip)
63
+ }, "Above annotations override the ones below. Rearrange them by dragging.", 2),
64
+ i(o(M), {
73
65
  items: l.value.steps,
74
- "onUpdate:items": e[3] || (e[3] = (t) => l.value.steps = t),
66
+ "onUpdate:items": e[1] || (e[1] = (t) => l.value.steps = t),
75
67
  "get-item-key": (t) => t.id,
76
68
  "is-active": (t) => t.id === d.value,
77
- "item-class": o.$style.stepItem,
78
- class: s(o.$style.steps),
79
- onItemClick: e[4] || (e[4] = (t) => d.value = t.id)
69
+ "item-class": a.$style.stepItem,
70
+ class: s(a.$style.steps),
71
+ onItemClick: e[2] || (e[2] = (t) => d.value = t.id)
80
72
  }, {
81
73
  "item-title": n(({ item: t }) => [
82
- r(P(t.label), 1)
74
+ r(h(t.label), 1)
83
75
  ]),
84
76
  _: 1
85
77
  }, 8, ["items", "get-item-key", "is-active", "item-class", "class"]),
86
- i(a(A), {
78
+ i(o($), {
79
+ "model-value": l.value.defaultValue ?? "",
80
+ label: "Label remaining with",
81
+ placeholder: "No label",
82
+ clearable: "",
83
+ onClick: e[3] || (e[3] = p(() => {
84
+ }, ["stop"])),
85
+ "onUpdate:modelValue": e[4] || (e[4] = (t) => l.value.defaultValue = t === "" ? void 0 : t)
86
+ }, null, 8, ["model-value"]),
87
+ i(o(x), {
87
88
  icon: "add",
88
89
  onClick: y
89
90
  }, {
@@ -100,6 +101,6 @@ const N = /* @__PURE__ */ S({
100
101
  }
101
102
  });
102
103
  export {
103
- N as default
104
+ U as default
104
105
  };
105
106
  //# sourceMappingURL=AnnotationsSidebar.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AnnotationsSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from './style.module.css';\n\nimport { randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from '@milaboratories/uikit';\nimport type { Annotation } from '../types';\n\n// Models\nconst annotation = defineModel<Annotation>('annotation', { required: true });\nconst selectedStepId = defineModel<undefined | number>('selectedStepId');\n// Emits\nconst emits = defineEmits<{\n (e: 'delete-schema'): void;\n}>();\n// Actions\nfunction handleAddStep() {\n const id = randomInt();\n annotation.value.steps.push({\n id,\n label: '',\n filter: {\n id: randomInt(),\n type: 'and',\n filters: [],\n },\n });\n selectedStepId.value = id;\n};\n</script>\n\n<template>\n <PlSidebarItem>\n <template #header-content>\n <PlEditableTitle\n v-model=\"annotation.title\"\n :class=\"{ [$commonStyle.flashing]: annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"annotation.title.length === 0\"\n />\n </template>\n <template v-if=\"annotation\" #body-content>\n <div :class=\"[$style.root, { [$commonStyle.disabled]: annotation.title.length === 0 }]\">\n <span :class=\"$style.tip\">Lower annotations override the ones above. Rearrange them by dragging.</span>\n\n <PlTextField\n :model-value=\"annotation.defaultValue ?? ''\"\n label=\"Default label\"\n clearable\n @click.stop\n @update:model-value=\"annotation.defaultValue = $event === '' ? undefined : $event\"\n />\n\n <PlElementList\n v-model:items=\"annotation.steps\"\n :get-item-key=\"(item) => item.id\"\n :is-active=\"(item) => item.id === selectedStepId\"\n :item-class=\"$style.stepItem\"\n :class=\"$style.steps\"\n @item-click=\"(item) => selectedStepId = item.id\"\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n\n <PlBtnSecondary icon=\"add\" @click=\"handleAddStep\">\n Add label\n </PlBtnSecondary>\n </div>\n </template>\n <template #footer-content>\n <PlBtnGhost\n icon=\"delete-bin\"\n reverse\n :disabled=\"annotation.steps.length === 0\"\n @click.stop=\"emits('delete-schema')\"\n >\n Delete Schema\n </PlBtnGhost>\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.tip {\n color: var(--txt-03);\n}\n\n.steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.stepItem {\n cursor: pointer;\n}\n</style>\n"],"names":["annotation","_useModel","selectedStepId","__props","emits","__emit","handleAddStep","id","randomInt","_createBlock","_unref","PlSidebarItem","_createSlots","_createVNode","PlEditableTitle","_cache","$event","_normalizeClass","PlBtnGhost","_createElementVNode","$style","$commonStyle","PlTextField","PlElementList","item","_withCtx","_createTextVNode","_toDisplayString","PlBtnSecondary"],"mappings":";;;;;;;;;;;;;;AAeA,UAAMA,IAAaC,KAAwB,YAAgC,GACrEC,IAAiBD,EAA+BE,GAAC,gBAAgB,GAEjEC,IAAQC;AAId,aAASC,IAAgB;AACvB,YAAMC,IAAKC,EAAA;AACX,MAAAR,EAAW,MAAM,MAAM,KAAK;AAAA,QAC1B,IAAAO;AAAA,QACA,OAAO;AAAA,QACP,QAAQ;AAAA,UACN,IAAIC,EAAA;AAAA,UACJ,MAAM;AAAA,UACN,SAAS,CAAA;AAAA,QAAC;AAAA,MACZ,CACD,GACDN,EAAe,QAAQK;AAAA,IACzB;2BAIEE,EAmDgBC,EAAAC,CAAA,GAAA,MAAAC,EAAA;AAAA,MAlDH,oBACT,MAOE;AAAA,QAPFC,EAOEH,EAAAI,CAAA,GAAA;AAAA,UANS,YAAAd,EAAA,MAAW;AAAA,UAAX,uBAAAe,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAhB,EAAA,MAAW,QAAKgB;AAAA,UACxB,OAAKC,EAAA,EAAA,CAAKP,KAAa,QAAQ,GAAGV,EAAA,MAAW,MAAM,WAAM,GAAA;AAAA,UACzD,cAAY;AAAA,UACb,aAAU;AAAA,UACV,aAAY;AAAA,UACX,WAAWA,EAAA,MAAW,MAAM,WAAM;AAAA,QAAA;;MAiC5B,oBACT,MAOa;AAAA,QAPba,EAOaH,EAAAQ,CAAA,GAAA;AAAA,UANX,MAAK;AAAA,UACL,SAAA;AAAA,UACC,UAAUlB,EAAA,MAAW,MAAM,WAAM;AAAA,UACjC,kCAAYI,EAAK,eAAA,GAAA,CAAA,MAAA,CAAA;AAAA,QAAA;qBACnB,MAED,CAAA,GAAAW,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,cAFC,mBAED,EAAA;AAAA,UAAA;;;;;;MAtCcf,EAAA;cAAa;AAAA,cAC3B,MA2BM;AAAA,UA3BNmB,EA2BM,OAAA;AAAA,YA3BA,OAAKF,EAAA,CAAGG,EAAAA,OAAO,MAAI,EAAA,CAAKV,EAAAW,CAAA,EAAa,QAAQ,GAAGrB,EAAA,MAAW,MAAM,WAAM,GAAA,CAAA;AAAA,UAAA;YAC3EmB,EAAuG,QAAA;AAAA,cAAhG,OAAKF,EAAEG,EAAAA,OAAO,GAAG;AAAA,YAAA,GAAE,0EAAsE,CAAA;AAAA,YAEhGP,EAMEH,EAAAY,CAAA,GAAA;AAAA,cALC,eAAatB,EAAA,MAAW,gBAAY;AAAA,cACrC,OAAM;AAAA,cACN,WAAA;AAAA,cACC,2BAAD,MAAA;AAAA,cAAA,GAAW,CAAA,MAAA,CAAA;AAAA,cACV,uBAAkBe,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAEhB,QAAW,eAAegB,MAAM,KAAU,SAAYA;AAAA,YAAA;YAG7EH,EAWgBH,EAAAa,CAAA,GAAA;AAAA,cAVN,OAAOvB,EAAA,MAAW;AAAA,cAAX,kBAAAe,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA,CAAAC,MAAAhB,EAAA,MAAW,QAAKgB;AAAA,cAC9B,gBAAY,CAAGQ,MAASA,EAAK;AAAA,cAC7B,cAAYA,MAASA,EAAK,OAAOtB,EAAA;AAAA,cACjC,cAAYkB,EAAAA,OAAO;AAAA,cACnB,OAAKH,EAAEG,EAAAA,OAAO,KAAK;AAAA,cACnB,8BAAaI,MAAStB,UAAiBsB,EAAK;AAAA,YAAA;cAElC,cAAUC,EACnB,CAAgB,EADO,MAAAD,QAAI;AAAA,gBACxBE,EAAAC,EAAAH,EAAK,KAAK,GAAA,CAAA;AAAA,cAAA;;;YAIjBX,EAEiBH,EAAAkB,CAAA,GAAA;AAAA,cAFD,MAAK;AAAA,cAAO,SAAOtB;AAAA,YAAA;yBAAe,MAElD,CAAA,GAAAS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAA;AAAA,kBAFkD,eAElD,EAAA;AAAA,cAAA;;;;;;;;;;"}
1
+ {"version":3,"file":"AnnotationsSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/AnnotationsSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport $commonStyle from './style.module.css';\n\nimport { randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnGhost,\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n PlTextField,\n} from '@milaboratories/uikit';\nimport type { Annotation } from '../types';\n\n// Models\nconst annotation = defineModel<Annotation>('annotation', { required: true });\nconst selectedStepId = defineModel<undefined | number>('selectedStepId');\n// Emits\nconst emits = defineEmits<{\n (e: 'delete-schema'): void;\n}>();\n// Actions\nfunction handleAddStep() {\n const id = randomInt();\n annotation.value.steps.push({\n id,\n label: '',\n filter: {\n id: randomInt(),\n type: 'and',\n filters: [],\n },\n });\n selectedStepId.value = id;\n};\n</script>\n\n<template>\n <PlSidebarItem>\n <template #header-content>\n <PlEditableTitle\n v-model=\"annotation.title\"\n :class=\"{ [$commonStyle.flashing]: annotation.title.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Title\"\n :autofocus=\"annotation.title.length === 0\"\n />\n </template>\n <template v-if=\"annotation\" #body-content>\n <div :class=\"[$style.root, { [$commonStyle.disabled]: annotation.title.length === 0 }]\">\n <span :class=\"$style.tip\">Above annotations override the ones below. Rearrange them by dragging.</span>\n\n <PlElementList\n v-model:items=\"annotation.steps\"\n :get-item-key=\"(item) => item.id\"\n :is-active=\"(item) => item.id === selectedStepId\"\n :item-class=\"$style.stepItem\"\n :class=\"$style.steps\"\n @item-click=\"(item) => selectedStepId = item.id\"\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n\n <PlTextField\n :model-value=\"annotation.defaultValue ?? ''\"\n label=\"Label remaining with\"\n placeholder=\"No label\"\n clearable\n @click.stop\n @update:model-value=\"annotation.defaultValue = $event === '' ? undefined : $event\"\n />\n\n <PlBtnSecondary icon=\"add\" @click=\"handleAddStep\">\n Add label\n </PlBtnSecondary>\n </div>\n </template>\n <template #footer-content>\n <PlBtnGhost\n icon=\"delete-bin\"\n reverse\n :disabled=\"annotation.steps.length === 0\"\n @click.stop=\"emits('delete-schema')\"\n >\n Delete Schema\n </PlBtnGhost>\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.tip {\n color: var(--txt-03);\n}\n\n.steps {\n display: flex;\n flex-direction: column;\n gap: 6px;\n}\n\n.stepItem {\n cursor: pointer;\n}\n</style>\n"],"names":["annotation","_useModel","selectedStepId","__props","emits","__emit","handleAddStep","id","randomInt","_createBlock","_unref","PlSidebarItem","_createSlots","_createVNode","PlEditableTitle","_cache","$event","_normalizeClass","PlBtnGhost","_createElementVNode","$style","$commonStyle","PlElementList","item","_withCtx","_createTextVNode","_toDisplayString","PlTextField","PlBtnSecondary"],"mappings":"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"}
@@ -2,7 +2,7 @@ import { defineComponent as V, mergeModels as q, useModel as E, computed as k, c
2
2
  import { randomInt as i } from "../../../lib/util/helpers/dist/random.js";
3
3
  import { PlSidebarItem as T, PlBtnSecondary as g, PlEditableTitle as A } from "@milaboratories/uikit";
4
4
  import P from "../../PlAdvancedFilter/PlAdvancedFilter.vue.js";
5
- import v from "./style.module.css.js";
5
+ import b from "./style.module.css.js";
6
6
  const M = /* @__PURE__ */ V({
7
7
  __name: "FilterSidebar",
8
8
  props: /* @__PURE__ */ q({
@@ -16,7 +16,7 @@ const M = /* @__PURE__ */ V({
16
16
  }),
17
17
  emits: ["update:step"],
18
18
  setup(m) {
19
- const e = E(m, "step"), l = m, b = k(() => l.hasSelectedColumns !== void 0 && l.getValuesForSelectedColumns !== void 0), S = () => {
19
+ const e = E(m, "step"), l = m, v = k(() => l.hasSelectedColumns !== void 0 && l.getValuesForSelectedColumns !== void 0), S = () => {
20
20
  e.value.filter.filters.push({
21
21
  id: i(),
22
22
  isExpanded: !0,
@@ -70,10 +70,10 @@ const M = /* @__PURE__ */ V({
70
70
  key: e.value.id,
71
71
  modelValue: e.value.label,
72
72
  "onUpdate:modelValue": t[0] || (t[0] = (o) => e.value.label = o),
73
- class: d({ [s(v).flashing]: e.value.label.length === 0 }),
73
+ class: d({ [s(b).flashing]: e.value.label.length === 0 }),
74
74
  "max-length": 40,
75
75
  "max-width": "600px",
76
- placeholder: "Filter Name",
76
+ placeholder: "Label",
77
77
  autofocus: e.value.label.length === 0
78
78
  }, null, 8, ["modelValue", "class", "autofocus"]))
79
79
  ]),
@@ -81,7 +81,7 @@ const M = /* @__PURE__ */ V({
81
81
  c(s(P), {
82
82
  filters: e.value.filter,
83
83
  "onUpdate:filters": t[1] || (t[1] = (o) => e.value.filter = o),
84
- class: d([n.$style.root, { [s(v).disabled]: e.value.label.length === 0 }]),
84
+ class: d([n.$style.root, { [s(b).disabled]: e.value.label.length === 0 }]),
85
85
  items: l.columns,
86
86
  "supported-filters": y,
87
87
  "get-suggest-options": l.getSuggestOptions,
@@ -101,7 +101,7 @@ const M = /* @__PURE__ */ V({
101
101
  ])]),
102
102
  _: 1
103
103
  }),
104
- b.value ? (u(), r(s(g), {
104
+ v.value ? (u(), r(s(g), {
105
105
  key: 0,
106
106
  icon: "add",
107
107
  disabled: !l.hasSelectedColumns,
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/FilterSidebar.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type Props = {\n columns: PlAdvancedFilterItem[];\n\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; axisIdx?: number; searchStr: string; searchType: 'value' | 'label' }) =>\n ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n\n hasSelectedColumns?: boolean;\n getValuesForSelectedColumns?: () => Promise<undefined | { columnId: PObjectId; values: string[] }>;\n};\n</script>\n<script setup lang=\"ts\">\nimport { randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnSecondary,\n PlEditableTitle,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { ListOptionBase, PObjectId, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { computed } from 'vue';\nimport type { PlAdvancedFilterFilter, PlAdvancedFilterSupportedFilters } from '../../PlAdvancedFilter';\nimport { PlAdvancedFilter, type PlAdvancedFilterItem } from '../../PlAdvancedFilter';\nimport type { PlAdvancedFilterColumnId } from '../../PlAdvancedFilter/types';\nimport type { Filter } from '../types';\n\nimport $commonStyle from './style.module.css';\n\n// Models\nconst step = defineModel<Filter>('step', { required: true });\n// Props\nconst props = defineProps<Props>();\n// State\nconst withSelection = computed(() => {\n return props.hasSelectedColumns !== undefined && props.getValuesForSelectedColumns !== undefined;\n});\n// Actions\nconst addFilterPlaceholder = () => {\n step.value.filter.filters.push({\n id: randomInt(),\n isExpanded: true,\n type: 'or',\n filters: [\n {\n id: randomInt(),\n type: 'isNA',\n column: props.columns[0].id as SUniversalPColumnId,\n },\n ],\n });\n};\n\nasync function addFilterFromSelected() {\n if (props.hasSelectedColumns === undefined || props.getValuesForSelectedColumns === undefined) return;\n\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, i) => ({\n id: i,\n type: 'patternEquals',\n column: columnId as SUniversalPColumnId,\n value,\n })),\n });\n}\n\nconst supportedFilters = [\n 'isNA',\n 'isNotNA',\n 'greaterThan',\n 'greaterThanOrEqual',\n 'lessThan',\n 'lessThanOrEqual',\n 'patternEquals',\n 'patternNotEquals',\n 'patternContainSubsequence',\n 'patternNotContainSubsequence',\n 'equal',\n 'notEqual',\n 'topN',\n 'bottomN',\n] as typeof PlAdvancedFilterSupportedFilters[number][];\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 :class=\"{ [$commonStyle.flashing]: step.label.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Filter Name\"\n :autofocus=\"step.label.length === 0\"\n />\n </template>\n <template #body-content>\n <PlAdvancedFilter\n v-model:filters=\"(step.filter as PlAdvancedFilterFilter)\"\n :class=\"[$style.root, { [$commonStyle.disabled]: step.label.length === 0 }]\"\n :items=\"props.columns\"\n :supported-filters=\"supportedFilters\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :enable-dnd=\"false\"\n :enable-add-group-button=\"true\"\n >\n <template #add-group-buttons>\n <div :class=\"$style.actions\">\n <PlBtnSecondary icon=\"add\" @click=\"addFilterPlaceholder\">\n Add Filter\n </PlBtnSecondary>\n <PlBtnSecondary v-if=\"withSelection\" icon=\"add\" :disabled=\"!props.hasSelectedColumns\" @click=\"addFilterFromSelected\">\n From selection\n </PlBtnSecondary>\n </div>\n </template>\n </PlAdvancedFilter>\n </template>\n </PlSidebarItem>\n</template>\n\n<style module>\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","withSelection","computed","addFilterPlaceholder","randomInt","addFilterFromSelected","data","columnId","values","shortReminder","value","i","supportedFilters","_createBlock","_unref","PlSidebarItem","PlEditableTitle","_cache","$event","_normalizeClass","_createVNode","PlAdvancedFilter","$style","$commonStyle","_createElementVNode","PlBtnSecondary"],"mappings":"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"}
1
+ {"version":3,"file":"FilterSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/FilterSidebar.vue"],"sourcesContent":["<script lang=\"ts\">\nexport type Props = {\n columns: PlAdvancedFilterItem[];\n\n getSuggestOptions: (params: { columnId: PlAdvancedFilterColumnId; axisIdx?: number; searchStr: string; searchType: 'value' | 'label' }) =>\n ListOptionBase<string | number>[] | Promise<ListOptionBase<string | number>[]>;\n\n hasSelectedColumns?: boolean;\n getValuesForSelectedColumns?: () => Promise<undefined | { columnId: PObjectId; values: string[] }>;\n};\n</script>\n<script setup lang=\"ts\">\nimport { randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnSecondary,\n PlEditableTitle,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { ListOptionBase, PObjectId, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { computed } from 'vue';\nimport type { PlAdvancedFilterFilter, PlAdvancedFilterSupportedFilters } from '../../PlAdvancedFilter';\nimport { PlAdvancedFilter, type PlAdvancedFilterItem } from '../../PlAdvancedFilter';\nimport type { PlAdvancedFilterColumnId } from '../../PlAdvancedFilter/types';\nimport type { Filter } from '../types';\n\nimport $commonStyle from './style.module.css';\n\n// Models\nconst step = defineModel<Filter>('step', { required: true });\n// Props\nconst props = defineProps<Props>();\n// State\nconst withSelection = computed(() => {\n return props.hasSelectedColumns !== undefined && props.getValuesForSelectedColumns !== undefined;\n});\n// Actions\nconst addFilterPlaceholder = () => {\n step.value.filter.filters.push({\n id: randomInt(),\n isExpanded: true,\n type: 'or',\n filters: [\n {\n id: randomInt(),\n type: 'isNA',\n column: props.columns[0].id as SUniversalPColumnId,\n },\n ],\n });\n};\n\nasync function addFilterFromSelected() {\n if (props.hasSelectedColumns === undefined || props.getValuesForSelectedColumns === undefined) return;\n\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, i) => ({\n id: i,\n type: 'patternEquals',\n column: columnId as SUniversalPColumnId,\n value,\n })),\n });\n}\n\nconst supportedFilters = [\n 'isNA',\n 'isNotNA',\n 'greaterThan',\n 'greaterThanOrEqual',\n 'lessThan',\n 'lessThanOrEqual',\n 'patternEquals',\n 'patternNotEquals',\n 'patternContainSubsequence',\n 'patternNotContainSubsequence',\n 'equal',\n 'notEqual',\n 'topN',\n 'bottomN',\n] as typeof PlAdvancedFilterSupportedFilters[number][];\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 :class=\"{ [$commonStyle.flashing]: step.label.length === 0 }\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Label\"\n :autofocus=\"step.label.length === 0\"\n />\n </template>\n <template #body-content>\n <PlAdvancedFilter\n v-model:filters=\"(step.filter as PlAdvancedFilterFilter)\"\n :class=\"[$style.root, { [$commonStyle.disabled]: step.label.length === 0 }]\"\n :items=\"props.columns\"\n :supported-filters=\"supportedFilters\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :enable-dnd=\"false\"\n :enable-add-group-button=\"true\"\n >\n <template #add-group-buttons>\n <div :class=\"$style.actions\">\n <PlBtnSecondary icon=\"add\" @click=\"addFilterPlaceholder\">\n Add Filter\n </PlBtnSecondary>\n <PlBtnSecondary v-if=\"withSelection\" icon=\"add\" :disabled=\"!props.hasSelectedColumns\" @click=\"addFilterFromSelected\">\n From selection\n </PlBtnSecondary>\n </div>\n </template>\n </PlAdvancedFilter>\n </template>\n </PlSidebarItem>\n</template>\n\n<style module>\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","withSelection","computed","addFilterPlaceholder","randomInt","addFilterFromSelected","data","columnId","values","shortReminder","value","i","supportedFilters","_createBlock","_unref","PlSidebarItem","PlEditableTitle","_cache","$event","_normalizeClass","_createVNode","PlAdvancedFilter","$style","$commonStyle","_createElementVNode","PlBtnSecondary"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlAnnotations.vue2.js","sources":["../../../../src/components/PlAnnotations/components/PlAnnotations.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Props as BaseProps } from './FilterSidebar.vue';\nexport type Props = BaseProps & {\n onDeleteSchema?: () => void;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, effect, shallowRef } from 'vue';\n\nimport { isNil } from '@milaboratories/helpers';\nimport { PlSidebarGroup, useConfirm } from '@milaboratories/uikit';\n\nimport type { Annotation } from '../types';\nimport AnnotationsSidebar from './AnnotationsSidebar.vue';\nimport FilterSidebar from './FilterSidebar.vue';\n\n// Models\nconst annotation = defineModel<Annotation>('annotation', { required: true });\n// Props\nconst props = defineProps<Props>();\n// State\nconst selectedStepId = shallowRef<number | undefined>(undefined);\nconst selectedStep = computed(() => {\n return isNil(selectedStepId.value) || isNil(annotation.value)\n ? undefined\n : annotation.value.steps.find((step) => step.id === selectedStepId.value);\n});\n\n// Watchers\neffect(function setDefaultStepId() {\n if (selectedStepId.value === undefined && annotation.value.steps.length > 0) {\n selectedStepId.value = annotation.value.steps[0].id;\n }\n});\n// Hooks\nconst confirmResetSchema = useConfirm({\n title: 'Reset Schema',\n message: 'Are you sure you want to reset the schema? This action cannot be undone.',\n confirmLabel: 'Yes, reset',\n cancelLabel: 'No, cancel',\n});\n// Actions\nasync function handleDeleteSchema() {\n if (await confirmResetSchema()) {\n selectedStepId.value = undefined;\n props.onDeleteSchema?.();\n }\n}\n\n</script>\n\n<template>\n <PlSidebarGroup>\n <template #item-0>\n <AnnotationsSidebar\n v-model:annotation=\"annotation\"\n v-model:selectedStepId=\"selectedStepId\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n @delete-schema=\"handleDeleteSchema\"\n />\n </template>\n <template #item-1>\n <FilterSidebar\n v-if=\"selectedStep\"\n v-model:step=\"selectedStep\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :selectedStepId=\"selectedStepId\"\n :hasSelectedColumns=\"props.hasSelectedColumns\"\n :getValuesForSelectedColumns=\"props.getValuesForSelectedColumns\"\n />\n </template>\n </PlSidebarGroup>\n</template>\n\n<style module>\n.sidebarItem {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["annotation","_useModel","props","__props","selectedStepId","shallowRef","selectedStep","computed","isNil","step","effect","confirmResetSchema","useConfirm","handleDeleteSchema","_a","_createBlock","_unref","PlSidebarGroup","_createVNode","AnnotationsSidebar","$event","_normalizeClass","$style","FilterSidebar"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAAaC,KAAwB,YAAgC,GAErEC,IAAQC,GAERC,IAAiBC,EAA+B,MAAS,GACzDC,IAAeC,EAAS,MACrBC,EAAMJ,EAAe,KAAK,KAAKI,EAAMR,EAAW,KAAK,IACxD,SACAA,EAAW,MAAM,MAAM,KAAK,CAACS,MAASA,EAAK,OAAOL,EAAe,KAAK,CAC3E;AAGD,IAAAM,EAAO,WAA4B;AACjC,MAAIN,EAAe,UAAU,UAAaJ,EAAW,MAAM,MAAM,SAAS,MACxEI,EAAe,QAAQJ,EAAW,MAAM,MAAM,CAAC,EAAE;AAAA,IAErD,CAAC;AAED,UAAMW,IAAqBC,EAAW;AAAA,MACpC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,aAAa;AAAA,IAAA,CACd;AAED,mBAAeC,IAAqB;;AAClC,MAAI,MAAMF,QACRP,EAAe,QAAQ,SACvBU,IAAAZ,EAAM,mBAAN,QAAAY,EAAA,KAAAZ;AAAA,IAEJ;2BAKEa,EAsBiBC,EAAAC,CAAA,GAAA,MAAA;AAAA,MArBJ,YACT,MAME;AAAA,QANFC,EAMEC,GAAA;AAAA,UALQ,YAAYnB,EAAA;AAAA,wDAAAA,EAAU,QAAAoB;AAAA,UACtB,gBAAgBhB,EAAA;AAAA,4DAAAA,EAAc,QAAAgB;AAAA,UACrC,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,gBAAeW;AAAA,QAAA;;MAGT,YACT,MASE;AAAA,QARMP,EAAA,cADRS,EASEQ,GAAA;AAAA;UAPQ,MAAMjB,EAAA;AAAA,kDAAAA,EAAY,QAAAc;AAAA,UACzB,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,uBAAqBA,EAAM;AAAA,UAC3B,gBAAgBE,EAAA;AAAA,UAChB,oBAAoBF,EAAM;AAAA,UAC1B,6BAA6BA,EAAM;AAAA,QAAA;;;;;;"}
1
+ {"version":3,"file":"PlAnnotations.vue2.js","sources":["../../../../src/components/PlAnnotations/components/PlAnnotations.vue"],"sourcesContent":["<script lang=\"ts\">\nimport type { Props as BaseProps } from './FilterSidebar.vue';\nexport type Props = BaseProps & {\n onDeleteSchema?: () => void;\n};\n</script>\n\n<script setup lang=\"ts\">\nimport { computed, effect, shallowRef } from 'vue';\n\nimport { isNil } from '@milaboratories/helpers';\nimport { PlSidebarGroup, useConfirm } from '@milaboratories/uikit';\n\nimport type { Annotation } from '../types';\nimport AnnotationsSidebar from './AnnotationsSidebar.vue';\nimport FilterSidebar from './FilterSidebar.vue';\n\n// Models\nconst annotation = defineModel<Annotation>('annotation', { required: true });\n// Props\nconst props = defineProps<Props>();\n// State\nconst selectedStepId = shallowRef<number | undefined>(undefined);\nconst selectedStep = computed(() => {\n return isNil(selectedStepId.value) || isNil(annotation.value)\n ? undefined\n : annotation.value.steps.find((step) => step.id === selectedStepId.value);\n});\n\n// Watchers\neffect(function setDefaultStepId() {\n if (selectedStepId.value === undefined && annotation.value.steps.length > 0) {\n selectedStepId.value = annotation.value.steps[0].id;\n }\n});\n// Hooks\nconst confirmResetSchema = useConfirm({\n title: 'Reset Schema',\n message: 'Are you sure you want to reset the schema? This action cannot be undone.',\n confirmLabel: 'Yes, reset',\n cancelLabel: 'No, cancel',\n});\n// Actions\nasync function handleDeleteSchema() {\n if (await confirmResetSchema()) {\n selectedStepId.value = undefined;\n props.onDeleteSchema?.();\n }\n}\n\n</script>\n\n<template>\n <PlSidebarGroup>\n <template #item-0>\n <AnnotationsSidebar\n v-model:annotation=\"annotation\"\n v-model:selectedStepId=\"selectedStepId\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n @delete-schema=\"handleDeleteSchema\"\n />\n </template>\n <template #item-1>\n <FilterSidebar\n v-if=\"selectedStep\"\n v-model:step=\"selectedStep\"\n :class=\"$style.sidebarItem\"\n :columns=\"props.columns\"\n :get-suggest-options=\"props.getSuggestOptions\"\n :selectedStepId=\"selectedStepId\"\n :hasSelectedColumns=\"props.hasSelectedColumns\"\n :getValuesForSelectedColumns=\"props.getValuesForSelectedColumns\"\n />\n </template>\n </PlSidebarGroup>\n</template>\n\n<style module>\n.sidebarItem {\n width: 100%;\n height: 100%;\n}\n</style>\n"],"names":["annotation","_useModel","props","__props","selectedStepId","shallowRef","selectedStep","computed","isNil","step","effect","confirmResetSchema","useConfirm","handleDeleteSchema","_a","_createBlock","_unref","PlSidebarGroup","_createVNode","AnnotationsSidebar","$event","_normalizeClass","$style","FilterSidebar"],"mappings":";;;;;;;;;;;;;;;;;;;AAkBA,UAAMA,IAAaC,KAAwB,YAAgC,GAErEC,IAAQC,GAERC,IAAiBC,EAA+B,MAAS,GACzDC,IAAeC,EAAS,MACrBC,EAAMJ,EAAe,KAAK,KAAKI,EAAMR,EAAW,KAAK,IACxD,SACAA,EAAW,MAAM,MAAM,KAAK,CAACS,MAASA,EAAK,OAAOL,EAAe,KAAK,CAC3E;AAGD,IAAAM,EAAO,WAA4B;AACjC,MAAIN,EAAe,UAAU,UAAaJ,EAAW,MAAM,MAAM,SAAS,MACxEI,EAAe,QAAQJ,EAAW,MAAM,MAAM,CAAC,EAAE;AAAA,IAErD,CAAC;AAED,UAAMW,IAAqBC,EAAW;AAAA,MACpC,OAAO;AAAA,MACP,SAAS;AAAA,MACT,cAAc;AAAA,MACd,aAAa;AAAA,IAAA,CACd;AAED,mBAAeC,IAAqB;;AAClC,MAAI,MAAMF,QACRP,EAAe,QAAQ,SACvBU,IAAAZ,EAAM,mBAAN,QAAAY,EAAA,KAAAZ;AAAA,IAEJ;2BAKEa,EAsBiBC,EAAAC,CAAA,GAAA,MAAA;AAAA,MArBJ,YACT,MAME;AAAA,QANFC,EAMEC,GAAA;AAAA,UALQ,YAAYnB,EAAA;AAAA,wDAAAA,EAAU,QAAAoB;AAAA,UACtB,gBAAgBhB,EAAA;AAAA,4DAAAA,EAAc,QAAAgB;AAAA,UACrC,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,gBAAeW;AAAA,QAAA;;MAGT,YATW,MAWxB;AAAA,QAAYP,EAAA,cADRS,EASEQ,GAAA;AAAA;UAPQ,MAAMjB,EAAA;AAAA,kDAAAA,EAAY,QAAAc;AAAA,UACzB,OAAKC,EAAEC,EAAAA,OAAO,WAAW;AAAA,UACzB,SAASpB,EAAM;AAAA,UACf,uBAAqBA,EAAM;AAAA,UAC3B,gBAAgBE,EAAA;AAAA,UAChB,oBAAoBF,EAAM;AAAA,UAC1B,6BAA6BA,EAAM;AAAA,QAAA;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.48.5",
3
+ "version": "1.48.6",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "styles": "dist/index.js",
@@ -26,9 +26,9 @@
26
26
  "zod": "~3.23.8",
27
27
  "@zip.js/zip.js": "^2.8.2",
28
28
  "es-toolkit": "^1.39.10",
29
+ "@milaboratories/ptabler-expression-js": "1.1.7",
29
30
  "@milaboratories/biowasm-tools": "2.0.0",
30
31
  "@milaboratories/uikit": "2.8.2",
31
- "@milaboratories/ptabler-expression-js": "1.1.7",
32
32
  "@platforma-sdk/model": "1.48.4"
33
33
  },
34
34
  "devDependencies": {
@@ -44,11 +44,11 @@
44
44
  "yarpm": "^1.2.0",
45
45
  "fast-json-patch": "^3.1.1",
46
46
  "@faker-js/faker": "^9.2.0",
47
- "@milaboratories/build-configs": "1.2.1",
47
+ "@milaboratories/ts-configs": "1.2.0",
48
48
  "@milaboratories/eslint-config": "1.0.5",
49
- "@milaboratories/ts-builder": "1.2.1",
50
49
  "@milaboratories/helpers": "1.12.0",
51
- "@milaboratories/ts-configs": "1.2.0"
50
+ "@milaboratories/build-configs": "1.2.1",
51
+ "@milaboratories/ts-builder": "1.2.1"
52
52
  },
53
53
  "scripts": {
54
54
  "test": "vitest run --passWithNoTests",
@@ -49,15 +49,7 @@ function handleAddStep() {
49
49
  </template>
50
50
  <template v-if="annotation" #body-content>
51
51
  <div :class="[$style.root, { [$commonStyle.disabled]: annotation.title.length === 0 }]">
52
- <span :class="$style.tip">Lower annotations override the ones above. Rearrange them by dragging.</span>
53
-
54
- <PlTextField
55
- :model-value="annotation.defaultValue ?? ''"
56
- label="Default label"
57
- clearable
58
- @click.stop
59
- @update:model-value="annotation.defaultValue = $event === '' ? undefined : $event"
60
- />
52
+ <span :class="$style.tip">Above annotations override the ones below. Rearrange them by dragging.</span>
61
53
 
62
54
  <PlElementList
63
55
  v-model:items="annotation.steps"
@@ -72,6 +64,15 @@ function handleAddStep() {
72
64
  </template>
73
65
  </PlElementList>
74
66
 
67
+ <PlTextField
68
+ :model-value="annotation.defaultValue ?? ''"
69
+ label="Label remaining with"
70
+ placeholder="No label"
71
+ clearable
72
+ @click.stop
73
+ @update:model-value="annotation.defaultValue = $event === '' ? undefined : $event"
74
+ />
75
+
75
76
  <PlBtnSecondary icon="add" @click="handleAddStep">
76
77
  Add label
77
78
  </PlBtnSecondary>
@@ -99,7 +99,7 @@ const supportedFilters = [
99
99
  :class="{ [$commonStyle.flashing]: step.label.length === 0 }"
100
100
  :max-length="40"
101
101
  max-width="600px"
102
- placeholder="Filter Name"
102
+ placeholder="Label"
103
103
  :autofocus="step.label.length === 0"
104
104
  />
105
105
  </template>