@platforma-sdk/ui-vue 1.42.15 → 1.42.19

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 (78) hide show
  1. package/.turbo/turbo-build.log +33 -28
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +14 -0
  4. package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js +5 -5
  5. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +41 -41
  6. package/dist/components/PlAgDataTable/sources/table-source-v2.d.ts.map +1 -1
  7. package/dist/components/PlAgDataTable/sources/table-source-v2.js +124 -125
  8. package/dist/components/PlAgDataTable/sources/table-source-v2.js.map +1 -1
  9. package/dist/components/PlAgDataTable/sources/table-state-v2.js +3 -3
  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/PlAgGridColumnManager/PlAgGridColumnManager.vue.d.ts.map +1 -1
  14. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js +7 -86
  15. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js.map +1 -1
  16. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js +103 -2
  17. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js.map +1 -1
  18. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue3.js +9 -0
  19. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue3.js.map +1 -0
  20. package/dist/components/PlAgGridColumnManager/useFilteredItems.d.ts +15 -0
  21. package/dist/components/PlAgGridColumnManager/useFilteredItems.d.ts.map +1 -0
  22. package/dist/components/PlAgGridColumnManager/useFilteredItems.js +35 -0
  23. package/dist/components/PlAgGridColumnManager/useFilteredItems.js.map +1 -0
  24. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +12 -12
  25. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +2 -2
  26. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.d.ts.map +1 -1
  27. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js +21 -20
  28. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js.map +1 -1
  29. package/dist/components/PlMultiSequenceAlignment/data.d.ts.map +1 -1
  30. package/dist/components/PlMultiSequenceAlignment/data.js +170 -185
  31. package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
  32. package/dist/components/PlTableFilters/filters-state.js +8 -8
  33. package/dist/components/PlTableFilters/filters_logic.d.ts.map +1 -1
  34. package/dist/components/PlTableFilters/filters_logic.js +67 -77
  35. package/dist/components/PlTableFilters/filters_logic.js.map +1 -1
  36. package/dist/defineApp.js +20 -20
  37. package/dist/internal/UpdateSerializer.js +3 -3
  38. package/dist/lib/model/common/dist/index.js +523 -414
  39. package/dist/lib/model/common/dist/index.js.map +1 -1
  40. package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js +1 -1
  41. package/dist/lib/ui/uikit/dist/components/PlAccordion/{ExpandTransition.vue.js → ExpandTransition.vue2.js} +1 -1
  42. package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue2.js.map +1 -0
  43. package/dist/lib/ui/uikit/dist/components/PlAccordion/PlAccordionSection.vue2.js +1 -1
  44. package/dist/lib/ui/uikit/dist/components/PlAutocomplete/PlAutocomplete.vue.js +1 -1
  45. package/dist/lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js +1 -1
  46. package/dist/lib/ui/uikit/dist/components/PlDropdownLegacy/PlDropdownLegacy.vue.js +1 -1
  47. package/dist/lib/ui/uikit/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js +1 -1
  48. package/dist/lib/ui/uikit/dist/components/PlFileDialog/Local.vue.js +6 -6
  49. package/dist/lib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js +28 -28
  50. package/dist/lib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js.map +1 -1
  51. package/dist/lib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js +89 -63
  52. package/dist/lib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js.map +1 -1
  53. package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js +1 -1
  54. package/dist/lib/ui/uikit/dist/components/PlTextArea/PlTextArea.vue.js +1 -1
  55. package/dist/lib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js +1 -1
  56. package/dist/lib/ui/uikit/dist/generated/components/svg/images/{SvgRequired.vue.js → SvgRequired.vue2.js} +1 -1
  57. package/dist/lib/ui/uikit/dist/generated/components/svg/images/SvgRequired.vue2.js.map +1 -0
  58. package/dist/lib/ui/uikit/dist/helpers/dom.js.map +1 -1
  59. package/dist/lib/ui/uikit/dist/helpers/downloadContent.js +32 -0
  60. package/dist/lib/ui/uikit/dist/helpers/downloadContent.js.map +1 -0
  61. package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js +201 -159
  62. package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js.map +1 -1
  63. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +521 -517
  64. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js.map +1 -1
  65. package/dist/lib.js +52 -50
  66. package/dist/lib.js.map +1 -1
  67. package/dist/sdk/model/dist/index.js +410 -406
  68. package/dist/sdk/model/dist/index.js.map +1 -1
  69. package/package.json +6 -6
  70. package/src/components/PlAgDataTable/sources/table-source-v2.ts +20 -16
  71. package/src/components/PlAgDataTable/sources/value-rendering.ts +15 -7
  72. package/src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue +28 -4
  73. package/src/components/PlAgGridColumnManager/useFilteredItems.ts +68 -0
  74. package/src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue +1 -0
  75. package/src/components/PlMultiSequenceAlignment/data.ts +12 -12
  76. package/src/components/PlTableFilters/filters_logic.ts +18 -15
  77. package/dist/lib/ui/uikit/dist/components/PlAccordion/ExpandTransition.vue.js.map +0 -1
  78. package/dist/lib/ui/uikit/dist/generated/components/svg/images/SvgRequired.vue.js.map +0 -1
@@ -1,89 +1,10 @@
1
- import { defineComponent as b, toRefs as k, ref as d, watch as V, computed as w, createElementBlock as y, openBlock as g, createBlock as D, createCommentVNode as T, createVNode as r, unref as l, Teleport as P, withModifiers as M, withCtx as a, createTextVNode as m, toDisplayString as N } from "vue";
2
- import "../../lib/ui/uikit/dist/index.js";
3
- import { PlAgDataTableRowNumberColId as B } from "../PlAgDataTable/sources/row-number.js";
4
- import { usePlBlockPageTitleTeleportTarget as G } from "../../lib/ui/uikit/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js";
5
- import h from "../../lib/ui/uikit/dist/components/PlBtnGhost/PlBtnGhost.vue.js";
6
- import x from "../../lib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js";
7
- import A from "../../lib/ui/uikit/dist/components/PlElementList/PlElementList.vue.js";
8
- const j = /* @__PURE__ */ b({
9
- __name: "PlAgGridColumnManager",
10
- props: {
11
- api: {},
12
- width: {}
13
- },
14
- setup(p) {
15
- const f = p, { api: n } = k(f), i = d([]);
16
- V(
17
- () => n.value,
18
- (o) => {
19
- o.isDestroyed() || (o.addEventListener("displayedColumnsChanged", (t) => {
20
- i.value = t.api.getAllGridColumns();
21
- }), i.value = o.getAllGridColumns(), i.value.length > 0 && o.moveColumns(i.value, 0));
22
- },
23
- { immediate: !0 }
24
- );
25
- const c = w(() => i.value.map((o) => ({
26
- column: o,
27
- id: o.getId(),
28
- label: o.getColDef().headerName
29
- }))), s = d(!1), u = G("PlAgGridColumnManager");
30
- return (o, t) => (g(), y("div", null, [
31
- l(u) ? (g(), D(P, {
32
- key: 0,
33
- to: l(u)
34
- }, [
35
- r(l(h), {
36
- icon: "columns",
37
- onClick: t[0] || (t[0] = M((e) => s.value = !s.value, ["stop"]))
38
- }, {
39
- default: a(() => t[2] || (t[2] = [
40
- m(" Columns ")
41
- ])),
42
- _: 1
43
- })
44
- ], 8, ["to"])) : T("", !0),
45
- r(l(x), {
46
- modelValue: s.value,
47
- "onUpdate:modelValue": t[1] || (t[1] = (e) => s.value = e),
48
- width: o.width,
49
- "close-on-outside-click": ""
50
- }, {
51
- title: a(() => t[3] || (t[3] = [
52
- m("Manage Columns")
53
- ])),
54
- default: a(() => [
55
- r(l(A), {
56
- items: c.value,
57
- "get-item-key": (e) => e.id,
58
- "is-draggable": (e) => !e.column.getColDef().lockPosition,
59
- "on-sort": (e, v) => {
60
- if (!l(n).isDestroyed()) {
61
- const C = i.value[e];
62
- l(n).moveColumns([C], v);
63
- }
64
- return !0;
65
- },
66
- "on-toggle": (e) => {
67
- l(n).isDestroyed() || l(n).setColumnsVisible([e.column], !e.column.isVisible());
68
- },
69
- "is-toggled": (e) => !e.column.isVisible(),
70
- "is-toggable": (e) => e.id !== l(B),
71
- "is-pinned": (e) => !!e.column.getColDef().lockPosition,
72
- "is-pinnable": () => !1,
73
- "disable-removing": ""
74
- }, {
75
- "item-title": a(({ item: e }) => [
76
- m(N(e.label), 1)
77
- ]),
78
- _: 1
79
- }, 8, ["items", "get-item-key", "is-draggable", "on-sort", "on-toggle", "is-toggled", "is-toggable", "is-pinned"])
80
- ]),
81
- _: 1
82
- }, 8, ["modelValue", "width"])
83
- ]));
84
- }
85
- });
1
+ import o from "./PlAgGridColumnManager.vue2.js";
2
+ import s from "./PlAgGridColumnManager.vue3.js";
3
+ import r from "../../_virtual/_plugin-vue_export-helper.js";
4
+ const t = {
5
+ $style: s
6
+ }, c = /* @__PURE__ */ r(o, [["__cssModules", t]]);
86
7
  export {
87
- j as default
8
+ c as default
88
9
  };
89
10
  //# sourceMappingURL=PlAgGridColumnManager.vue.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgGridColumnManager.vue.js","sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { type Column, type DisplayedColumnsChangedEvent, type GridApi } from 'ag-grid-enterprise';\nimport { PlBtnGhost, PlSlideModal, PlElementList, usePlBlockPageTitleTeleportTarget } from '@milaboratories/uikit';\nimport { ref, toRefs, watch, computed } from 'vue';\nimport { PlAgDataTableRowNumberColId } from '../PlAgDataTable/sources/row-number';\n\nconst props = defineProps<{\n /**\n * The GridApi is an API interface provided by the table/grid component\n * for interacting programmatically with the grid's features and functionality.\n * It allows you to control and manipulate grid behavior, access data, and\n * trigger specific actions.\n */\n api: GridApi;\n /**\n * Css Column Manager (Panel) modal width (default value is `368px`)\n */\n width?: string;\n}>();\n\nconst { api: gridApi } = toRefs(props);\n\nconst columns = ref<Column[]>([]);\nwatch(\n () => gridApi.value,\n (gridApi) => {\n if (gridApi.isDestroyed()) return;\n\n gridApi.addEventListener('displayedColumnsChanged', (event: DisplayedColumnsChangedEvent) => {\n columns.value = event.api.getAllGridColumns();\n });\n\n columns.value = gridApi.getAllGridColumns();\n if (columns.value.length > 0) {\n gridApi.moveColumns(columns.value, 0);\n }\n },\n { immediate: true },\n);\n\nconst items = computed(() => {\n return columns.value.map((col) => ({\n column: col,\n id: col.getId(),\n label: col.getColDef().headerName!,\n }));\n});\n\nconst slideModal = ref(false);\nconst teleportTarget = usePlBlockPageTitleTeleportTarget('PlAgGridColumnManager');\n</script>\n\n<template>\n <div>\n <Teleport v-if=\"teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost icon=\"columns\" @click.stop=\"slideModal = !slideModal\">\n Columns\n </PlBtnGhost>\n </Teleport>\n\n <PlSlideModal v-model=\"slideModal\" :width=\"width\" close-on-outside-click>\n <template #title>Manage Columns</template>\n <PlElementList\n :items=\"items\"\n :get-item-key=\"(item) => item.id\"\n :is-draggable=\"(item) => !item.column.getColDef().lockPosition\"\n :on-sort=\"(fromIndex, toIndex) => {\n if (!gridApi.isDestroyed()) {\n const columnToMove = columns[fromIndex];\n gridApi.moveColumns([columnToMove], toIndex);\n }\n return true; // Let PlElementList handle the visual update\n }\"\n :on-toggle=\"(item) => {\n if (!gridApi.isDestroyed()) {\n gridApi.setColumnsVisible([item.column], !item.column.isVisible());\n }\n }\"\n :is-toggled=\"(item) => !item.column.isVisible()\"\n :is-toggable=\"(item) => item.id !== PlAgDataTableRowNumberColId\"\n :is-pinned=\"(item) => !!item.column.getColDef().lockPosition\"\n :is-pinnable=\"() => false\"\n disable-removing\n >\n <template #item-title=\"{ item }\">\n {{ item.label }}\n </template>\n </PlElementList>\n </PlSlideModal>\n </div>\n</template>\n"],"names":["props","__props","gridApi","toRefs","columns","ref","watch","event","items","computed","col","slideModal","teleportTarget","usePlBlockPageTitleTeleportTarget"],"mappings":";;;;;;;;;;;;;;AAMA,UAAMA,IAAQC,GAcR,EAAE,KAAKC,MAAYC,EAAOH,CAAK,GAE/BI,IAAUC,EAAc,EAAE;AAChC,IAAAC;AAAA,MACE,MAAMJ,EAAQ;AAAA,MACd,CAACA,MAAY;AACPA,QAAAA,EAAQ,kBAEZA,EAAQ,iBAAiB,2BAA2B,CAACK,MAAwC;AACnF,UAAAH,EAAA,QAAQG,EAAM,IAAI,kBAAkB;AAAA,QAAA,CAC7C,GAEOH,EAAA,QAAQF,EAAQ,kBAAkB,GACtCE,EAAQ,MAAM,SAAS,KACzBF,EAAQ,YAAYE,EAAQ,OAAO,CAAC;AAAA,MAExC;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IACpB;AAEM,UAAAI,IAAQC,EAAS,MACdL,EAAQ,MAAM,IAAI,CAACM,OAAS;AAAA,MACjC,QAAQA;AAAA,MACR,IAAIA,EAAI,MAAM;AAAA,MACd,OAAOA,EAAI,YAAY;AAAA,IAAA,EACvB,CACH,GAEKC,IAAaN,EAAI,EAAK,GACtBO,IAAiBC,EAAkC,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlAgGridColumnManager.vue.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;"}
@@ -1,5 +1,106 @@
1
- import f from "./PlAgGridColumnManager.vue.js";
1
+ import { defineComponent as w, toRefs as D, ref as p, watch as T, computed as P, createElementBlock as f, openBlock as m, createBlock as M, createCommentVNode as N, createVNode as u, unref as t, Teleport as h, withModifiers as B, withCtx as d, createTextVNode as v, createElementVNode as G, Fragment as I, renderList as A, normalizeClass as E, toDisplayString as R } from "vue";
2
+ import "../../lib/ui/uikit/dist/index.js";
3
+ import { PlAgDataTableRowNumberColId as $ } from "../PlAgDataTable/sources/row-number.js";
4
+ import { useFilteredItems as q } from "./useFilteredItems.js";
5
+ import { usePlBlockPageTitleTeleportTarget as x } from "../../lib/ui/uikit/dist/layout/PlBlockPage/usePlBlockPageTitleTeleportTarget.js";
6
+ import F from "../../lib/ui/uikit/dist/components/PlBtnGhost/PlBtnGhost.vue.js";
7
+ import L from "../../lib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js";
8
+ import S from "../../lib/ui/uikit/dist/components/PlSearchField/PlSearchField.vue.js";
9
+ import U from "../../lib/ui/uikit/dist/components/PlElementList/PlElementList.vue.js";
10
+ const Y = /* @__PURE__ */ w({
11
+ __name: "PlAgGridColumnManager",
12
+ props: {
13
+ api: {},
14
+ width: {}
15
+ },
16
+ setup(C) {
17
+ const b = C, { api: n } = D(b), i = p([]);
18
+ T(
19
+ () => n.value,
20
+ (l) => {
21
+ l.isDestroyed() || (l.addEventListener("displayedColumnsChanged", (o) => {
22
+ i.value = o.api.getAllGridColumns();
23
+ }), i.value = l.getAllGridColumns(), i.value.length > 0 && l.moveColumns(i.value, 0));
24
+ },
25
+ { immediate: !0 }
26
+ );
27
+ const V = P(() => i.value.map((l) => ({
28
+ column: l,
29
+ id: l.getId(),
30
+ label: l.getColDef().headerName
31
+ }))), s = p(""), a = p(!1), c = x("PlAgGridColumnManager"), { filteredItems: k, segments: y } = q(() => ({
32
+ items: V.value,
33
+ query: s.value,
34
+ getStrings: (l) => [l.label]
35
+ }));
36
+ return (l, o) => (m(), f("div", null, [
37
+ t(c) ? (m(), M(h, {
38
+ key: 0,
39
+ to: t(c)
40
+ }, [
41
+ u(t(F), {
42
+ icon: "columns",
43
+ onClick: o[0] || (o[0] = B((e) => a.value = !a.value, ["stop"]))
44
+ }, {
45
+ default: d(() => o[3] || (o[3] = [
46
+ v(" Columns ")
47
+ ])),
48
+ _: 1
49
+ })
50
+ ], 8, ["to"])) : N("", !0),
51
+ u(t(L), {
52
+ modelValue: a.value,
53
+ "onUpdate:modelValue": o[2] || (o[2] = (e) => a.value = e),
54
+ width: l.width,
55
+ "close-on-outside-click": ""
56
+ }, {
57
+ title: d(() => o[4] || (o[4] = [
58
+ v("Manage Columns")
59
+ ])),
60
+ default: d(() => [
61
+ u(t(S), {
62
+ modelValue: s.value,
63
+ "onUpdate:modelValue": o[1] || (o[1] = (e) => s.value = e),
64
+ clearable: ""
65
+ }, null, 8, ["modelValue"]),
66
+ u(t(U), {
67
+ items: t(k),
68
+ "get-item-key": (e) => e.id,
69
+ "is-draggable": (e) => !e.column.getColDef().lockPosition,
70
+ "on-sort": (e, r) => {
71
+ if (!t(n).isDestroyed()) {
72
+ const g = i.value[e];
73
+ t(n).moveColumns([g], r);
74
+ }
75
+ return !0;
76
+ },
77
+ "on-toggle": (e) => {
78
+ t(n).isDestroyed() || t(n).setColumnsVisible([e.column], !e.column.isVisible());
79
+ },
80
+ "is-toggled": (e) => !e.column.isVisible(),
81
+ "is-toggable": (e) => e.id !== t($),
82
+ "is-pinned": (e) => !!e.column.getColDef().lockPosition,
83
+ "is-pinnable": () => !1,
84
+ "disable-dragging": s.value.length > 0,
85
+ "disable-removing": ""
86
+ }, {
87
+ "item-title": d(({ item: e }) => [
88
+ G("span", null, [
89
+ (m(!0), f(I, null, A(t(y).get(e.label), (r, g) => (m(), f("span", {
90
+ key: g,
91
+ class: E({ [l.$style.match]: r.match })
92
+ }, R(r.value), 3))), 128))
93
+ ])
94
+ ]),
95
+ _: 1
96
+ }, 8, ["items", "get-item-key", "is-draggable", "on-sort", "on-toggle", "is-toggled", "is-toggable", "is-pinned", "disable-dragging"])
97
+ ]),
98
+ _: 1
99
+ }, 8, ["modelValue", "width"])
100
+ ]));
101
+ }
102
+ });
2
103
  export {
3
- f as default
104
+ Y as default
4
105
  };
5
106
  //# sourceMappingURL=PlAgGridColumnManager.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlAgGridColumnManager.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
1
+ {"version":3,"file":"PlAgGridColumnManager.vue2.js","sources":["../../../src/components/PlAgGridColumnManager/PlAgGridColumnManager.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { PlBtnGhost, PlElementList, PlSearchField, PlSlideModal, usePlBlockPageTitleTeleportTarget } from '@milaboratories/uikit';\nimport { type Column, type DisplayedColumnsChangedEvent, type GridApi } from 'ag-grid-enterprise';\nimport { computed, ref, toRefs, watch } from 'vue';\nimport { PlAgDataTableRowNumberColId } from '../PlAgDataTable/sources/row-number';\nimport { useFilteredItems } from './useFilteredItems';\n\nconst props = defineProps<{\n /**\n * The GridApi is an API interface provided by the table/grid component\n * for interacting programmatically with the grid's features and functionality.\n * It allows you to control and manipulate grid behavior, access data, and\n * trigger specific actions.\n */\n api: GridApi;\n /**\n * Css Column Manager (Panel) modal width (default value is `368px`)\n */\n width?: string;\n}>();\n\nconst { api: gridApi } = toRefs(props);\n\nconst columns = ref<Column[]>([]);\nwatch(\n () => gridApi.value,\n (gridApi) => {\n if (gridApi.isDestroyed()) return;\n\n gridApi.addEventListener('displayedColumnsChanged', (event: DisplayedColumnsChangedEvent) => {\n columns.value = event.api.getAllGridColumns();\n });\n\n columns.value = gridApi.getAllGridColumns();\n if (columns.value.length > 0) {\n gridApi.moveColumns(columns.value, 0);\n }\n },\n { immediate: true },\n);\n\nconst items = computed(() => {\n return columns.value.map((col) => ({\n column: col,\n id: col.getId(),\n label: col.getColDef().headerName!,\n }));\n});\n\nconst query = ref('');\n\nconst slideModal = ref(false);\nconst teleportTarget = usePlBlockPageTitleTeleportTarget('PlAgGridColumnManager');\n\nconst { filteredItems, segments } = useFilteredItems(() => ({\n items: items.value,\n query: query.value,\n getStrings: (item) => [item.label],\n}));\n</script>\n\n<template>\n <div>\n <Teleport v-if=\"teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost icon=\"columns\" @click.stop=\"slideModal = !slideModal\">\n Columns\n </PlBtnGhost>\n </Teleport>\n\n <PlSlideModal v-model=\"slideModal\" :width=\"width\" close-on-outside-click>\n <template #title>Manage Columns</template>\n <PlSearchField v-model=\"query\" clearable />\n <PlElementList\n :items=\"filteredItems\"\n :get-item-key=\"(item) => item.id\"\n :is-draggable=\"(item) => !item.column.getColDef().lockPosition\"\n :on-sort=\"(fromIndex, toIndex) => {\n if (!gridApi.isDestroyed()) {\n const columnToMove = columns[fromIndex];\n gridApi.moveColumns([columnToMove], toIndex);\n }\n return true; // Let PlElementList handle the visual update\n }\"\n :on-toggle=\"(item) => {\n if (!gridApi.isDestroyed()) {\n gridApi.setColumnsVisible([item.column], !item.column.isVisible());\n }\n }\"\n :is-toggled=\"(item) => !item.column.isVisible()\"\n :is-toggable=\"(item) => item.id !== PlAgDataTableRowNumberColId\"\n :is-pinned=\"(item) => !!item.column.getColDef().lockPosition\"\n :is-pinnable=\"() => false\"\n :disable-dragging=\"query.length > 0\"\n disable-removing\n >\n <template #item-title=\"{ item }\">\n <span>\n <span\n v-for=\"(segment, i) of segments.get(item.label)\"\n :key=\"i\"\n :class=\"{ [$style.match]: segment.match }\"\n >{{ segment.value }}</span>\n </span>\n </template>\n </PlElementList>\n </PlSlideModal>\n </div>\n</template>\n\n<style module>\n.match {\n background-color: var(--color-active-select);\n border-radius: 2px;\n}\n</style>\n"],"names":["props","__props","gridApi","toRefs","columns","ref","watch","event","items","computed","col","query","slideModal","teleportTarget","usePlBlockPageTitleTeleportTarget","filteredItems","segments","useFilteredItems","item"],"mappings":";;;;;;;;;;;;;;;;AAOA,UAAMA,IAAQC,GAcR,EAAE,KAAKC,MAAYC,EAAOH,CAAK,GAE/BI,IAAUC,EAAc,EAAE;AAChC,IAAAC;AAAA,MACE,MAAMJ,EAAQ;AAAA,MACd,CAACA,MAAY;AACPA,QAAAA,EAAQ,kBAEZA,EAAQ,iBAAiB,2BAA2B,CAACK,MAAwC;AACnF,UAAAH,EAAA,QAAQG,EAAM,IAAI,kBAAkB;AAAA,QAAA,CAC7C,GAEOH,EAAA,QAAQF,EAAQ,kBAAkB,GACtCE,EAAQ,MAAM,SAAS,KACzBF,EAAQ,YAAYE,EAAQ,OAAO,CAAC;AAAA,MAExC;AAAA,MACA,EAAE,WAAW,GAAK;AAAA,IACpB;AAEM,UAAAI,IAAQC,EAAS,MACdL,EAAQ,MAAM,IAAI,CAACM,OAAS;AAAA,MACjC,QAAQA;AAAA,MACR,IAAIA,EAAI,MAAM;AAAA,MACd,OAAOA,EAAI,YAAY;AAAA,IAAA,EACvB,CACH,GAEKC,IAAQN,EAAI,EAAE,GAEdO,IAAaP,EAAI,EAAK,GACtBQ,IAAiBC,EAAkC,uBAAuB,GAE1E,EAAE,eAAAC,GAAe,UAAAC,EAAS,IAAIC,EAAiB,OAAO;AAAA,MAC1D,OAAOT,EAAM;AAAA,MACb,OAAOG,EAAM;AAAA,MACb,YAAY,CAACO,MAAS,CAACA,EAAK,KAAK;AAAA,IAAA,EACjC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,9 @@
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._match_pckgk_2{background-color:var(--color-active-select);border-radius:2px}")),document.head.appendChild(e)}}catch(c){console.error("vite-plugin-css-injected-by-js",c)}})();
2
+ const t = "_match_pckgk_2", c = {
3
+ match: t
4
+ };
5
+ export {
6
+ c as default,
7
+ t as match
8
+ };
9
+ //# sourceMappingURL=PlAgGridColumnManager.vue3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PlAgGridColumnManager.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
@@ -0,0 +1,15 @@
1
+ import { MaybeRefOrGetter } from 'vue';
2
+ export declare function useFilteredItems<T>(props: MaybeRefOrGetter<{
3
+ items: T[];
4
+ query: string;
5
+ getStrings: (item: T) => Iterable<string>;
6
+ }>): {
7
+ filteredItems: import('vue').ComputedRef<T[]>;
8
+ segments: import('vue').ComputedRef<Map<string, StringSegment[]>>;
9
+ };
10
+ type StringSegment = {
11
+ value: string;
12
+ match: boolean;
13
+ };
14
+ export {};
15
+ //# sourceMappingURL=useFilteredItems.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilteredItems.d.ts","sourceRoot":"","sources":["../../../src/components/PlAgGridColumnManager/useFilteredItems.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,gBAAgB,EAAW,MAAM,KAAK,CAAC;AAE/D,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,KAAK,EAAE,gBAAgB,CAAC;IACtB,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,QAAQ,CAAC,MAAM,CAAC,CAAC;CAC3C,CAAC;;;EA0BH;AA+BD,KAAK,aAAa,GAAG;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,OAAO,CAAC;CAChB,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { computed as m, toValue as g } from "vue";
2
+ function d(t) {
3
+ const o = m(() => {
4
+ const { items: f, query: u, getStrings: r } = g(t), s = [], e = /* @__PURE__ */ new Map();
5
+ for (const l of f) {
6
+ let n = !1;
7
+ for (const c of r(l)) {
8
+ let i = e.get(c);
9
+ i || (i = p(c, u), e.set(c, i)), !n && (!u || i.some(({ match: a }) => a)) && (s.push(l), n = !0);
10
+ }
11
+ }
12
+ return { filteredItems: s, segments: e };
13
+ });
14
+ return {
15
+ filteredItems: m(() => o.value.filteredItems),
16
+ segments: m(() => o.value.segments)
17
+ };
18
+ }
19
+ function p(t, o) {
20
+ if (!o) return [{ value: t, match: !1 }];
21
+ const f = t.toLowerCase(), u = o.toLowerCase(), r = [];
22
+ let s = 0;
23
+ for (; ; ) {
24
+ const e = f.indexOf(u, s), l = e + o.length;
25
+ if (e < 0) break;
26
+ s !== e && r.push({ value: t.slice(s, e), match: !1 });
27
+ const n = r.at(-1);
28
+ n != null && n.match ? n.value += t.slice(e, l) : r.push({ value: t.slice(e, l), match: !0 }), s = l;
29
+ }
30
+ return s < t.length && r.push({ value: t.slice(s), match: !1 }), r;
31
+ }
32
+ export {
33
+ d as useFilteredItems
34
+ };
35
+ //# sourceMappingURL=useFilteredItems.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useFilteredItems.js","sources":["../../../src/components/PlAgGridColumnManager/useFilteredItems.ts"],"sourcesContent":["import { computed, type MaybeRefOrGetter, toValue } from 'vue';\n\nexport function useFilteredItems<T>(\n props: MaybeRefOrGetter<{\n items: T[];\n query: string;\n getStrings: (item: T) => Iterable<string>;\n }>,\n) {\n const result = computed(() => {\n const { items, query, getStrings } = toValue(props);\n const filteredItems: T[] = [];\n const segments = new Map<string, StringSegment[]>();\n for (const item of items) {\n let kept = false;\n for (const string of getStrings(item)) {\n let stringSegments = segments.get(string);\n if (!stringSegments) {\n stringSegments = matchSubstrings(string, query);\n segments.set(string, stringSegments);\n }\n if (!kept && (!query || stringSegments.some(({ match }) => match))) {\n filteredItems.push(item);\n kept = true;\n }\n }\n }\n return { filteredItems, segments };\n });\n return {\n filteredItems: computed(() => result.value.filteredItems),\n segments: computed(() => result.value.segments),\n };\n}\n\n// Very naïve implementation of substring matching, doesn't handle Unicode well\n// Maybe one day we'll have nice things: https://github.com/tc39/ecma402/issues/506\nfunction matchSubstrings(haystack: string, needle: string): StringSegment[] {\n if (!needle) return [{ value: haystack, match: false }];\n const haystackLower = haystack.toLowerCase();\n const needleLower = needle.toLowerCase();\n const result: StringSegment[] = [];\n let prevEnd = 0;\n while (true) {\n const start = haystackLower.indexOf(needleLower, prevEnd);\n const end = start + needle.length;\n if (start < 0) break;\n if (prevEnd !== start) {\n result.push({ value: haystack.slice(prevEnd, start), match: false });\n }\n const prevSegment = result.at(-1);\n if (prevSegment?.match) {\n prevSegment.value += haystack.slice(start, end);\n } else {\n result.push({ value: haystack.slice(start, end), match: true });\n }\n prevEnd = end;\n }\n if (prevEnd < haystack.length) {\n result.push({ value: haystack.slice(prevEnd), match: false });\n }\n return result;\n}\n\ntype StringSegment = {\n value: string;\n match: boolean;\n};\n"],"names":["useFilteredItems","props","result","computed","items","query","getStrings","toValue","filteredItems","segments","item","kept","string","stringSegments","matchSubstrings","match","haystack","needle","haystackLower","needleLower","prevEnd","start","end","prevSegment"],"mappings":";AAEO,SAASA,EACdC,GAKA;AACM,QAAAC,IAASC,EAAS,MAAM;AAC5B,UAAM,EAAE,OAAAC,GAAO,OAAAC,GAAO,YAAAC,EAAW,IAAIC,EAAQN,CAAK,GAC5CO,IAAqB,CAAC,GACtBC,wBAAe,IAA6B;AAClD,eAAWC,KAAQN,GAAO;AACxB,UAAIO,IAAO;AACA,iBAAAC,KAAUN,EAAWI,CAAI,GAAG;AACjC,YAAAG,IAAiBJ,EAAS,IAAIG,CAAM;AACxC,QAAKC,MACcA,IAAAC,EAAgBF,GAAQP,CAAK,GACrCI,EAAA,IAAIG,GAAQC,CAAc,IAEjC,CAACF,MAAS,CAACN,KAASQ,EAAe,KAAK,CAAC,EAAE,OAAAE,EAAA,MAAYA,CAAK,OAC9DP,EAAc,KAAKE,CAAI,GAChBC,IAAA;AAAA,MACT;AAAA,IACF;AAEK,WAAA,EAAE,eAAAH,GAAe,UAAAC,EAAS;AAAA,EAAA,CAClC;AACM,SAAA;AAAA,IACL,eAAeN,EAAS,MAAMD,EAAO,MAAM,aAAa;AAAA,IACxD,UAAUC,EAAS,MAAMD,EAAO,MAAM,QAAQ;AAAA,EAChD;AACF;AAIA,SAASY,EAAgBE,GAAkBC,GAAiC;AACtE,MAAA,CAACA,EAAe,QAAA,CAAC,EAAE,OAAOD,GAAU,OAAO,IAAO;AAChD,QAAAE,IAAgBF,EAAS,YAAY,GACrCG,IAAcF,EAAO,YAAY,GACjCf,IAA0B,CAAC;AACjC,MAAIkB,IAAU;AACd,aAAa;AACX,UAAMC,IAAQH,EAAc,QAAQC,GAAaC,CAAO,GAClDE,IAAMD,IAAQJ,EAAO;AAC3B,QAAII,IAAQ,EAAG;AACf,IAAID,MAAYC,KACPnB,EAAA,KAAK,EAAE,OAAOc,EAAS,MAAMI,GAASC,CAAK,GAAG,OAAO,IAAO;AAE/D,UAAAE,IAAcrB,EAAO,GAAG,EAAE;AAChC,IAAIqB,KAAA,QAAAA,EAAa,QACfA,EAAY,SAASP,EAAS,MAAMK,GAAOC,CAAG,IAEvCpB,EAAA,KAAK,EAAE,OAAOc,EAAS,MAAMK,GAAOC,CAAG,GAAG,OAAO,IAAM,GAEtDF,IAAAE;AAAA,EAAA;AAER,SAAAF,IAAUJ,EAAS,UACdd,EAAA,KAAK,EAAE,OAAOc,EAAS,MAAMI,CAAO,GAAG,OAAO,IAAO,GAEvDlB;AACT;"}
@@ -1,12 +1,12 @@
1
1
  import { defineComponent as g, mergeModels as O, useModel as D, computed as c, watch as _, resolveComponent as h, createElementBlock as v, createCommentVNode as V, openBlock as u, normalizeClass as B, Fragment as i, renderList as S, createBlock as p, unref as s, withCtx as j, createTextVNode as w, toDisplayString as U } from "vue";
2
- import { isNil as Q } from "../../../lib/util/helpers/dist/index.js";
2
+ import { isNil as R } from "../../../lib/util/helpers/dist/index.js";
3
3
  import "../../../lib/ui/uikit/dist/index.js";
4
- import { getFilterUiMetadata as R, getFilterUiTypeOptions as x } from "../../../sdk/model/dist/index.js";
4
+ import { getFilterUiMetadata as x, getFilterUiTypeOptions as z } from "../../../sdk/model/dist/index.js";
5
5
  import k from "../../../lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js";
6
- import z from "../../../lib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js";
6
+ import E from "../../../lib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js";
7
7
  import T from "../../../lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js";
8
- import E from "../../../lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
9
- const I = { key: 7 }, J = /* @__PURE__ */ g({
8
+ import I from "../../../lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
9
+ const L = { key: 7 }, K = /* @__PURE__ */ g({
10
10
  __name: "DynamicForm",
11
11
  props: /* @__PURE__ */ O({
12
12
  columns: {},
@@ -25,8 +25,8 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
25
25
  }), f = c(() => {
26
26
  const o = t.value;
27
27
  if (o.type && typeof o.type == "string")
28
- return R(o.type);
29
- }), M = c(() => x(b.value)), F = c(() => d.columns.map((o) => ({ label: o.label, value: o.id }))), C = c(() => {
28
+ return x(o.type);
29
+ }), M = c(() => z(b.value)), F = c(() => d.columns.map((o) => ({ label: o.label, value: o.id }))), C = c(() => {
30
30
  const o = f.value, n = b.value;
31
31
  return o && n ? d.columns.filter((r) => o.supportedFor(n, r.obj)).map((r) => ({
32
32
  label: r.label,
@@ -41,7 +41,7 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
41
41
  for (const [n, r] of Object.entries(o))
42
42
  if (t.value[n] === void 0) {
43
43
  const l = r.defaultValue();
44
- Q(l) || (t.value[n] = l);
44
+ R(l) || (t.value[n] = l);
45
45
  }
46
46
  },
47
47
  { immediate: !0, deep: !0 }
@@ -66,7 +66,7 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
66
66
  label: l.label ?? e,
67
67
  options: M.value,
68
68
  "onUpdate:modelValue": (a) => m(e, a)
69
- }, null, 8, ["model-value", "label", "options", "onUpdate:modelValue"])) : l.fieldType === "string" ? (u(), p(s(z), {
69
+ }, null, 8, ["model-value", "label", "options", "onUpdate:modelValue"])) : l.fieldType === "string" ? (u(), p(s(E), {
70
70
  key: 2,
71
71
  "model-value": t.value[e],
72
72
  label: l.label ?? e,
@@ -88,7 +88,7 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
88
88
  label: l.label ?? e,
89
89
  clearable: !0,
90
90
  "onUpdate:modelValue": (a) => m(e, a)
91
- }, null, 8, ["model-value", "label", "onUpdate:modelValue"])) : l.fieldType === "boolean" || l.fieldType === "boolean?" ? (u(), p(s(E), {
91
+ }, null, 8, ["model-value", "label", "onUpdate:modelValue"])) : l.fieldType === "boolean" || l.fieldType === "boolean?" ? (u(), p(s(I), {
92
92
  key: 6,
93
93
  "model-value": !!t.value[e],
94
94
  label: l.label ?? e,
@@ -98,13 +98,13 @@ const I = { key: 7 }, J = /* @__PURE__ */ g({
98
98
  w(U(l.label ?? e), 1)
99
99
  ]),
100
100
  _: 2
101
- }, 1032, ["model-value", "label", "onUpdate:modelValue"])) : (u(), v("pre", I, "TODO:" + U(l.fieldType), 1))
101
+ }, 1032, ["model-value", "label", "onUpdate:modelValue"])) : (u(), v("pre", L, "TODO:" + U(l.fieldType), 1))
102
102
  ], 64))), 128))
103
103
  ], 2)) : V("", !0);
104
104
  };
105
105
  }
106
106
  });
107
107
  export {
108
- J as default
108
+ K as default
109
109
  };
110
110
  //# sourceMappingURL=DynamicForm.vue2.js.map
@@ -8,7 +8,7 @@ import D from "../../../lib/ui/uikit/dist/components/PlSidebar/PlSidebarItem.vue
8
8
  import V from "../../../lib/ui/uikit/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js";
9
9
  import j from "../../../lib/ui/uikit/dist/components/PlElementList/PlElementList.vue.js";
10
10
  import q from "../../../lib/ui/uikit/dist/components/PlEditableTitle/PlEditableTitle.vue.js";
11
- const I = { key: 1 }, K = /* @__PURE__ */ E({
11
+ const I = { key: 1 }, O = /* @__PURE__ */ E({
12
12
  __name: "FilterSidebar",
13
13
  props: /* @__PURE__ */ S({
14
14
  columns: {},
@@ -119,6 +119,6 @@ const I = { key: 1 }, K = /* @__PURE__ */ E({
119
119
  }
120
120
  });
121
121
  export {
122
- K as default
122
+ O as default
123
123
  };
124
124
  //# sourceMappingURL=FilterSidebar.vue2.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PlAppErrorNotificationAlert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue"],"names":[],"mappings":"AA2DA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,wCAAwC,CAAC;AAIhD,MAAM,MAAM,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAC;;AA0J9D,wBAOG"}
1
+ {"version":3,"file":"PlAppErrorNotificationAlert.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue"],"names":[],"mappings":"AA4DA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAEhD,OAAO,wCAAwC,CAAC;AAIhD,MAAM,MAAM,WAAW,GAAG;IAAE,WAAW,EAAE,MAAM,CAAA;CAAE,CAAC;AAElD,KAAK,WAAW,GAAG;IAAE,MAAM,EAAE,YAAY,CAAC,gBAAgB,CAAC,CAAA;CAAE,CAAC;;AA4J9D,wBAOG"}
@@ -1,5 +1,5 @@
1
1
  (function(){"use strict";try{if(typeof document<"u"){var t=document.createElement("style");t.appendChild(document.createTextNode(".pl-app-notification-alert{position:fixed;bottom:12px;right:12px;width:256px;height:auto;z-index:87}.pl-app-notification-alert__content{display:flex;flex-direction:column;gap:12px;max-height:100%}.pl-app-notification-alert__item{position:relative}.pl-app-notification-alert__title{color:var(--txt-01);font-size:14px;font-style:normal;font-weight:600;line-height:20px;margin-bottom:6px}")),document.head.appendChild(t)}}catch(e){console.error("vite-plugin-css-injected-by-js",e)}})();
2
- import { defineComponent as x, ref as c, computed as y, watch as E, createElementBlock as n, openBlock as p, createVNode as o, unref as r, withCtx as l, createElementVNode as v, Fragment as k, renderList as w, toDisplayString as C, createTextVNode as u } from "vue";
2
+ import { defineComponent as x, ref as c, computed as w, watch as y, createElementBlock as i, openBlock as p, createVNode as t, unref as r, withCtx as l, createElementVNode as v, Fragment as E, renderList as k, toDisplayString as C, createTextVNode as u } from "vue";
3
3
 
4
4
  import "../../lib/ui/uikit/dist/index.js";
5
5
  import b from "../../lib/ui/uikit/dist/components/PlDialogModal/PlDialogModal.vue.js";
@@ -13,20 +13,20 @@ const B = { class: "pl-app-notification-alert" }, M = { class: "pl-app-notificat
13
13
  errors: {}
14
14
  },
15
15
  setup(_) {
16
- const d = _, s = c(!1), i = c(!0), g = y(() => Object.entries(d.errors).filter((a) => !!a[1]));
16
+ const d = _, s = c(!1), n = c(!0), g = w(() => Object.entries(d.errors).filter((a) => !!a[1]));
17
17
  function V() {
18
18
  s.value = !0;
19
19
  }
20
- return E(
20
+ return y(
21
21
  () => d.errors,
22
22
  (a) => {
23
- i.value = Object.values(a).some((e) => !!e);
23
+ n.value = Object.values(a).some((e) => !!e);
24
24
  },
25
25
  { immediate: !0, deep: !0 }
26
- ), (a, e) => (p(), n("div", B, [
27
- o(r(b), {
26
+ ), (a, e) => (p(), i("div", B, [
27
+ t(r(b), {
28
28
  modelValue: s.value,
29
- "onUpdate:modelValue": e[0] || (e[0] = (t) => s.value = t),
29
+ "onUpdate:modelValue": e[0] || (e[0] = (o) => s.value = o),
30
30
  width: "720px",
31
31
  style: { "max-height": "100vh" }
32
32
  }, {
@@ -35,31 +35,32 @@ const B = { class: "pl-app-notification-alert" }, M = { class: "pl-app-notificat
35
35
  ])),
36
36
  default: l(() => [
37
37
  v("div", M, [
38
- (p(!0), n(k, null, w(g.value, (t) => {
38
+ (p(!0), i(E, null, k(g.value, (o) => {
39
39
  var m, f;
40
- return p(), n("div", {
41
- key: t[0],
40
+ return p(), i("div", {
41
+ key: o[0],
42
42
  class: "pl-app-notification-alert__item"
43
43
  }, [
44
- v("div", S, "Block output: " + C(t[0]), 1),
45
- o(r(A), {
46
- value: (m = t[1]) == null ? void 0 : m.message,
47
- valueToCopy: "fullMessage" in (t[1] ?? {}) ? t[1].fullMessage : (f = t[1]) == null ? void 0 : f.message
48
- }, null, 8, ["value", "valueToCopy"])
44
+ v("div", S, "Block output: " + C(o[0]), 1),
45
+ t(r(A), {
46
+ value: (m = o[1]) == null ? void 0 : m.message,
47
+ valueToCopy: "fullMessage" in (o[1] ?? {}) ? o[1].fullMessage : (f = o[1]) == null ? void 0 : f.message,
48
+ "download-filename": `output-${o[0]}-error.txt`
49
+ }, null, 8, ["value", "valueToCopy", "download-filename"])
49
50
  ]);
50
51
  }), 128))
51
52
  ])
52
53
  ]),
53
54
  _: 1
54
55
  }, 8, ["modelValue"]),
55
- o(r(N), {
56
- modelValue: i.value,
57
- "onUpdate:modelValue": e[1] || (e[1] = (t) => i.value = t),
56
+ t(r(N), {
57
+ modelValue: n.value,
58
+ "onUpdate:modelValue": e[1] || (e[1] = (o) => n.value = o),
58
59
  type: "error",
59
60
  closable: ""
60
61
  }, {
61
62
  actions: l(() => [
62
- o(r(O), {
63
+ t(r(O), {
63
64
  icon: "arrow-right",
64
65
  onClick: V
65
66
  }, {
@@ -68,7 +69,7 @@ const B = { class: "pl-app-notification-alert" }, M = { class: "pl-app-notificat
68
69
  ])),
69
70
  _: 1
70
71
  }),
71
- o(r(h))
72
+ t(r(h))
72
73
  ]),
73
74
  default: l(() => [
74
75
  e[4] || (e[4] = u(" Some outputs have errors. "))
@@ -1 +1 @@
1
- {"version":3,"file":"PlAppErrorNotificationAlert.vue.js","sources":["../../../src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { BlockOutputsBase } from '@platforma-sdk/model';\nimport type { OutputErrors } from '../../types';\n// @TODO module\nimport './pl-app-error-notification-alert.scss';\nimport { PlBtnPrimary, PlDialogModal, PlNotificationAlert, PlSpacer, PlLogView } from '@milaboratories/uikit';\nimport { computed, ref, watch } from 'vue';\n\nexport type FullMessage = { fullMessage: string };\n\nconst props = defineProps<{ errors: OutputErrors<BlockOutputsBase> }>();\n\nconst isModalOpen = ref(false);\n\nconst isAlertOpen = ref(true);\n\nconst existingErrors = computed(() => Object.entries(props.errors).filter((item) => !!item[1]));\n\nfunction showErrors() {\n isModalOpen.value = true;\n}\n\n// @TODO (temp)\nwatch(\n () => props.errors,\n (errors) => {\n isAlertOpen.value = Object.values(errors).some((v) => !!v);\n },\n { immediate: true, deep: true },\n);\n</script>\n<template>\n <div class=\"pl-app-notification-alert\">\n <PlDialogModal v-model=\"isModalOpen\" width=\"720px\" style=\"max-height: 100vh\">\n <template #title> Errors </template>\n <div class=\"pl-app-notification-alert__content\">\n <template v-for=\"item in existingErrors\" :key=\"item[0]\">\n <div class=\"pl-app-notification-alert__item\">\n <div class=\"pl-app-notification-alert__title\">Block output: {{ item[0] }}</div>\n <PlLogView\n :value=\"item[1]?.message\"\n :valueToCopy=\"'fullMessage' in (item[1] ?? {}) ? (item[1] as unknown as FullMessage).fullMessage : item[1]?.message\"\n />\n </div>\n </template>\n </div>\n </PlDialogModal>\n\n <PlNotificationAlert v-model=\"isAlertOpen\" type=\"error\" closable>\n Some outputs have errors.\n <template #actions>\n <PlBtnPrimary icon=\"arrow-right\" @click=\"showErrors\">See errors</PlBtnPrimary>\n <PlSpacer />\n </template>\n </PlNotificationAlert>\n </div>\n</template>\n"],"names":["props","__props","isModalOpen","ref","isAlertOpen","existingErrors","computed","item","showErrors","watch","errors","v"],"mappings":";;;;;;;;;;;;;;AAUA,UAAMA,IAAQC,GAERC,IAAcC,EAAI,EAAK,GAEvBC,IAAcD,EAAI,EAAI,GAEtBE,IAAiBC,EAAS,MAAM,OAAO,QAAQN,EAAM,MAAM,EAAE,OAAO,CAACO,MAAS,CAAC,CAACA,EAAK,CAAC,CAAC,CAAC;AAE9F,aAASC,IAAa;AACpB,MAAAN,EAAY,QAAQ;AAAA,IAAA;AAItB,WAAAO;AAAA,MACE,MAAMT,EAAM;AAAA,MACZ,CAACU,MAAW;AACE,QAAAN,EAAA,QAAQ,OAAO,OAAOM,CAAM,EAAE,KAAK,CAACC,MAAM,CAAC,CAACA,CAAC;AAAA,MAC3D;AAAA,MACA,EAAE,WAAW,IAAM,MAAM,GAAK;AAAA,IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"PlAppErrorNotificationAlert.vue.js","sources":["../../../src/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport type { BlockOutputsBase } from '@platforma-sdk/model';\nimport type { OutputErrors } from '../../types';\n// @TODO module\nimport './pl-app-error-notification-alert.scss';\nimport { PlBtnPrimary, PlDialogModal, PlNotificationAlert, PlSpacer, PlLogView } from '@milaboratories/uikit';\nimport { computed, ref, watch } from 'vue';\n\nexport type FullMessage = { fullMessage: string };\n\nconst props = defineProps<{ errors: OutputErrors<BlockOutputsBase> }>();\n\nconst isModalOpen = ref(false);\n\nconst isAlertOpen = ref(true);\n\nconst existingErrors = computed(() => Object.entries(props.errors).filter((item) => !!item[1]));\n\nfunction showErrors() {\n isModalOpen.value = true;\n}\n\n// @TODO (temp)\nwatch(\n () => props.errors,\n (errors) => {\n isAlertOpen.value = Object.values(errors).some((v) => !!v);\n },\n { immediate: true, deep: true },\n);\n</script>\n<template>\n <div class=\"pl-app-notification-alert\">\n <PlDialogModal v-model=\"isModalOpen\" width=\"720px\" style=\"max-height: 100vh\">\n <template #title> Errors </template>\n <div class=\"pl-app-notification-alert__content\">\n <template v-for=\"item in existingErrors\" :key=\"item[0]\">\n <div class=\"pl-app-notification-alert__item\">\n <div class=\"pl-app-notification-alert__title\">Block output: {{ item[0] }}</div>\n <PlLogView\n :value=\"item[1]?.message\"\n :valueToCopy=\"'fullMessage' in (item[1] ?? {}) ? (item[1] as unknown as FullMessage).fullMessage : item[1]?.message\"\n :download-filename=\"`output-${item[0]}-error.txt`\"\n />\n </div>\n </template>\n </div>\n </PlDialogModal>\n\n <PlNotificationAlert v-model=\"isAlertOpen\" type=\"error\" closable>\n Some outputs have errors.\n <template #actions>\n <PlBtnPrimary icon=\"arrow-right\" @click=\"showErrors\">See errors</PlBtnPrimary>\n <PlSpacer />\n </template>\n </PlNotificationAlert>\n </div>\n</template>\n"],"names":["props","__props","isModalOpen","ref","isAlertOpen","existingErrors","computed","item","showErrors","watch","errors","v"],"mappings":";;;;;;;;;;;;;;AAUA,UAAMA,IAAQC,GAERC,IAAcC,EAAI,EAAK,GAEvBC,IAAcD,EAAI,EAAI,GAEtBE,IAAiBC,EAAS,MAAM,OAAO,QAAQN,EAAM,MAAM,EAAE,OAAO,CAACO,MAAS,CAAC,CAACA,EAAK,CAAC,CAAC,CAAC;AAE9F,aAASC,IAAa;AACpB,MAAAN,EAAY,QAAQ;AAAA,IAAA;AAItB,WAAAO;AAAA,MACE,MAAMT,EAAM;AAAA,MACZ,CAACU,MAAW;AACE,QAAAN,EAAA,QAAQ,OAAO,OAAOM,CAAM,EAAE,KAAK,CAACC,MAAM,CAAC,CAACA,CAAC;AAAA,MAC3D;AAAA,MACA,EAAE,WAAW,IAAM,MAAM,GAAK;AAAA,IAChC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,yCAAyC,EAC9C,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,cAAc,EAGpB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI9D,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,eAAO,MAAM,yBAAyB;YAoB5B,YAAY,GAAG,SAAS;6BACP,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO;;;;;CAnB/D,CAAC;AAEF,eAAO,MAAM,sBAAsB;YAsCzB,YAAY,GAAG,SAAS;uBACb,SAAS,EAAE,GAAG,SAAS;;;;;CArC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB;YAyG1B,YAAY,GAAG,SAAS;uBACb,SAAS,EAAE,GAAG,SAAS;;;;;CAxG3C,CAAC;AAEF,eAAO,MAAM,wBAAwB;YA0I3B,YAAY,GAAG,SAAS;uBACb,SAAS,EAAE,GAAG,SAAS;oBAC1B,cAAc,EAAE,GAAG,SAAS;eACjC,gBAAgB,GAAG,SAAS;iBAC1B,yCAAyC;qBACrC,gCAAgC,CAAC,iBAAiB,CAAC;;;;;CA7IrE,CAAC;AA2XF,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,yCAAyC,EAC9C,KAAK,gCAAgC,EACrC,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,cAAc,EAMpB,MAAM,sBAAsB,CAAC;AAU9B,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI9D,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,eAAO,MAAM,yBAAyB;YAoB5B,YAAY,GAAG,SAAS;6BACP,CAAC,MAAM,EAAE,gBAAgB,KAAK,OAAO;;;;;CAnB/D,CAAC;AAEF,eAAO,MAAM,sBAAsB;YAsCzB,YAAY,GAAG,SAAS;uBACb,SAAS,EAAE,GAAG,SAAS;;;;;CArC3C,CAAC;AAEF,eAAO,MAAM,uBAAuB;YAyG1B,YAAY,GAAG,SAAS;uBACb,SAAS,EAAE,GAAG,SAAS;;;;;CAxG3C,CAAC;AAEF,eAAO,MAAM,wBAAwB;YA0I3B,YAAY,GAAG,SAAS;uBACb,SAAS,EAAE,GAAG,SAAS;oBAC1B,cAAc,EAAE,GAAG,SAAS;eACjC,gBAAgB,GAAG,SAAS;iBAC1B,yCAAyC;qBACrC,gCAAgC,CAAC,iBAAiB,CAAC;;;;;CA7IrE,CAAC;AAwXF,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,CAAC,EAAE;QACf,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,eAAe,CAAC;KACzB,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;CACf,CAAC"}