@platforma-sdk/ui-vue 1.45.35 → 1.45.37

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (180) hide show
  1. package/.turbo/turbo-build.log +204 -235
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +13 -0
  4. package/dist/AgGridVue/useAgGridOptions.js +2 -3
  5. package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
  6. package/dist/components/BlockLayout.vue2.js +3 -3
  7. package/dist/components/BlockLayout.vue2.js.map +1 -1
  8. package/dist/components/BlockLoader.vue.js.map +1 -1
  9. package/dist/components/LoaderPage.vue.js +2 -2
  10. package/dist/components/LoaderPage.vue.js.map +1 -1
  11. package/dist/components/NotFound.vue.js +3 -3
  12. package/dist/components/NotFound.vue.js.map +1 -1
  13. package/dist/components/PlAdvancedFilter/OperandButton.vue2.js.map +1 -1
  14. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js +73 -73
  15. package/dist/components/PlAdvancedFilter/PlAdvancedFilter.vue2.js.map +1 -1
  16. package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js +100 -100
  17. package/dist/components/PlAdvancedFilter/SingleFilter.vue2.js.map +1 -1
  18. package/dist/components/PlAgCellFile/PlAgCellFile.vue.js.map +1 -1
  19. package/dist/components/PlAgCellProgress/PlAgCellProgress.vue.js.map +1 -1
  20. package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js +6 -6
  21. package/dist/components/PlAgCellStatusTag/PlAgCellStatusTag.vue.js.map +1 -1
  22. package/dist/components/PlAgChartHistogramCell/PlAgChartHistogramCell.vue.js.map +1 -1
  23. package/dist/components/PlAgChartStackedBarCell/PlAgChartStackedBarCell.vue.js.map +1 -1
  24. package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js +22 -22
  25. package/dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js.map +1 -1
  26. package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js +3 -3
  27. package/dist/components/PlAgCsvExporter/PlAgCsvExporter.vue.js.map +1 -1
  28. package/dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js.map +1 -1
  29. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js +50 -50
  30. package/dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js.map +1 -1
  31. package/dist/components/PlAgDataTable/PlAgOverlayLoading.vue.js.map +1 -1
  32. package/dist/components/PlAgDataTable/PlAgOverlayNoRows.vue.js.map +1 -1
  33. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +7 -8
  34. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
  35. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js +35 -35
  36. package/dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js.map +1 -1
  37. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +16 -17
  38. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
  39. package/dist/components/PlAgRowNumHeader.vue.js +14 -15
  40. package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
  41. package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js +16 -16
  42. package/dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js.map +1 -1
  43. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js +6 -6
  44. package/dist/components/PlAnnotations/components/AnnotationsSidebar.vue2.js.map +1 -1
  45. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js +57 -57
  46. package/dist/components/PlAnnotations/components/DynamicForm.vue2.js.map +1 -1
  47. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +6 -6
  48. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
  49. package/dist/components/PlAnnotations/components/PlAnnotations.vue2.js.map +1 -1
  50. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js.map +1 -1
  51. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js +7 -7
  52. package/dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js.map +1 -1
  53. package/dist/components/PlBtnExportArchive/Item.vue2.js +23 -23
  54. package/dist/components/PlBtnExportArchive/Item.vue2.js.map +1 -1
  55. package/dist/components/PlBtnExportArchive/PlBtnExportArchive.vue2.js.map +1 -1
  56. package/dist/components/PlBtnExportArchive/Summary.vue2.js +22 -22
  57. package/dist/components/PlBtnExportArchive/Summary.vue2.js.map +1 -1
  58. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js +9 -9
  59. package/dist/components/PlTableFilters/PlTableAddFilterV2.vue.js.map +1 -1
  60. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js +3 -3
  61. package/dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js.map +1 -1
  62. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js +9 -9
  63. package/dist/components/PlTableFilters/PlTableFiltersV2.vue2.js.map +1 -1
  64. package/dist/components/ValueOrErrorsComponent.vue.js.map +1 -1
  65. package/dist/index.js +48 -50
  66. package/dist/index.js.map +1 -1
  67. package/dist/lib.d.ts +0 -1
  68. package/dist/plugins/Monetization/EndOfPeriod.vue2.js +9 -9
  69. package/dist/plugins/Monetization/EndOfPeriod.vue2.js.map +1 -1
  70. package/dist/plugins/Monetization/LimitCard.vue2.js +40 -40
  71. package/dist/plugins/Monetization/LimitCard.vue2.js.map +1 -1
  72. package/dist/plugins/Monetization/MonetizationSidebar.vue.js +3 -3
  73. package/dist/plugins/Monetization/MonetizationSidebar.vue.js.map +1 -1
  74. package/dist/plugins/Monetization/RunStatus.vue2.js +12 -12
  75. package/dist/plugins/Monetization/RunStatus.vue2.js.map +1 -1
  76. package/dist/plugins/Monetization/UserCabinetCard.vue2.js +22 -22
  77. package/dist/plugins/Monetization/UserCabinetCard.vue2.js.map +1 -1
  78. package/package.json +7 -8
  79. package/src/lib.ts +0 -2
  80. package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js +0 -6
  81. package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js.map +0 -1
  82. package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js +0 -5
  83. package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js.map +0 -1
  84. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.d.ts +0 -9
  85. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.js +0 -10
  86. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.js.map +0 -1
  87. package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js +0 -122
  88. package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js.map +0 -1
  89. package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js +0 -9
  90. package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js.map +0 -1
  91. package/dist/components/PlMultiSequenceAlignment/Legend.vue.d.ts +0 -6
  92. package/dist/components/PlMultiSequenceAlignment/Legend.vue.js +0 -10
  93. package/dist/components/PlMultiSequenceAlignment/Legend.vue.js.map +0 -1
  94. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +0 -28
  95. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js.map +0 -1
  96. package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +0 -13
  97. package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js.map +0 -1
  98. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +0 -25
  99. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.js +0 -10
  100. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.js.map +0 -1
  101. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +0 -138
  102. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +0 -1
  103. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +0 -31
  104. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +0 -1
  105. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.d.ts +0 -8
  106. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js +0 -10
  107. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js.map +0 -1
  108. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js +0 -77
  109. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js.map +0 -1
  110. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js +0 -9
  111. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js.map +0 -1
  112. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +0 -71
  113. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.js +0 -10
  114. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.js.map +0 -1
  115. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +0 -224
  116. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +0 -1
  117. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue3.js +0 -9
  118. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue3.js.map +0 -1
  119. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.d.ts +0 -8
  120. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js +0 -10
  121. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js.map +0 -1
  122. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js +0 -127
  123. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js.map +0 -1
  124. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js +0 -9
  125. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js.map +0 -1
  126. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts +0 -16
  127. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.js +0 -10
  128. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.js.map +0 -1
  129. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +0 -228
  130. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +0 -1
  131. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js +0 -19
  132. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js.map +0 -1
  133. package/dist/components/PlMultiSequenceAlignment/cell-size.d.ts +0 -4
  134. package/dist/components/PlMultiSequenceAlignment/cell-size.js +0 -8
  135. package/dist/components/PlMultiSequenceAlignment/cell-size.js.map +0 -1
  136. package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts +0 -44
  137. package/dist/components/PlMultiSequenceAlignment/chemical-properties.js +0 -132
  138. package/dist/components/PlMultiSequenceAlignment/chemical-properties.js.map +0 -1
  139. package/dist/components/PlMultiSequenceAlignment/data.d.ts +0 -61
  140. package/dist/components/PlMultiSequenceAlignment/data.js +0 -370
  141. package/dist/components/PlMultiSequenceAlignment/data.js.map +0 -1
  142. package/dist/components/PlMultiSequenceAlignment/index.d.ts +0 -1
  143. package/dist/components/PlMultiSequenceAlignment/markup.d.ts +0 -16
  144. package/dist/components/PlMultiSequenceAlignment/markup.js +0 -84
  145. package/dist/components/PlMultiSequenceAlignment/markup.js.map +0 -1
  146. package/dist/components/PlMultiSequenceAlignment/migrations.d.ts +0 -3
  147. package/dist/components/PlMultiSequenceAlignment/migrations.js +0 -24
  148. package/dist/components/PlMultiSequenceAlignment/migrations.js.map +0 -1
  149. package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.d.ts +0 -6
  150. package/dist/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.d.ts +0 -7
  151. package/dist/components/PlMultiSequenceAlignment/residue-counts.d.ts +0 -2
  152. package/dist/components/PlMultiSequenceAlignment/residue-counts.js +0 -13
  153. package/dist/components/PlMultiSequenceAlignment/residue-counts.js.map +0 -1
  154. package/dist/components/PlMultiSequenceAlignment/settings.d.ts +0 -2
  155. package/dist/components/PlMultiSequenceAlignment/settings.js +0 -9
  156. package/dist/components/PlMultiSequenceAlignment/settings.js.map +0 -1
  157. package/dist/components/PlMultiSequenceAlignment/types.d.ts +0 -5
  158. package/dist/components/PlMultiSequenceAlignment/useMiPlots.d.ts +0 -4
  159. package/dist/components/PlMultiSequenceAlignment/useMiPlots.js +0 -19
  160. package/dist/components/PlMultiSequenceAlignment/useMiPlots.js.map +0 -1
  161. package/src/components/PlMultiSequenceAlignment/Consensus.vue +0 -165
  162. package/src/components/PlMultiSequenceAlignment/Legend.vue +0 -44
  163. package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +0 -299
  164. package/src/components/PlMultiSequenceAlignment/PhylogeneticTree.vue +0 -110
  165. package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +0 -314
  166. package/src/components/PlMultiSequenceAlignment/README.md +0 -216
  167. package/src/components/PlMultiSequenceAlignment/SeqLogo.vue +0 -166
  168. package/src/components/PlMultiSequenceAlignment/Toolbar.vue +0 -228
  169. package/src/components/PlMultiSequenceAlignment/cell-size.ts +0 -4
  170. package/src/components/PlMultiSequenceAlignment/chemical-properties.ts +0 -199
  171. package/src/components/PlMultiSequenceAlignment/data.ts +0 -661
  172. package/src/components/PlMultiSequenceAlignment/index.ts +0 -1
  173. package/src/components/PlMultiSequenceAlignment/markup.ts +0 -141
  174. package/src/components/PlMultiSequenceAlignment/migrations.ts +0 -46
  175. package/src/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.ts +0 -54
  176. package/src/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.ts +0 -89
  177. package/src/components/PlMultiSequenceAlignment/residue-counts.ts +0 -124
  178. package/src/components/PlMultiSequenceAlignment/settings.ts +0 -7
  179. package/src/components/PlMultiSequenceAlignment/types.ts +0 -3
  180. package/src/components/PlMultiSequenceAlignment/useMiPlots.ts +0 -23
@@ -1,4 +1,4 @@
1
- import { defineComponent as w, computed as i, createElementBlock as u, openBlock as r, normalizeClass as t, createElementVNode as n, toDisplayString as o, createTextVNode as y, createCommentVNode as p, normalizeStyle as b } from "vue";
1
+ import { defineComponent as w, computed as o, createElementBlock as r, openBlock as i, normalizeClass as a, createElementVNode as n, toDisplayString as d, createTextVNode as f, createCommentVNode as m, normalizeStyle as $ } from "vue";
2
2
  const F = { key: 0 }, N = { key: 1 }, A = { key: 0 }, C = { key: 1 }, T = /* @__PURE__ */ w({
3
3
  __name: "LimitCard",
4
4
  props: {
@@ -9,70 +9,70 @@ const F = { key: 0 }, N = { key: 1 }, A = { key: 0 }, C = { key: 1 }, T = /* @__
9
9
  available: {},
10
10
  unit: {}
11
11
  },
12
- setup(B) {
13
- const l = B, s = i(() => l.available === null ? null : l.available + l.toSpend + l.used), v = i(() => l.available === null ? !1 : l.available < 0), $ = i(() => l.available === null ? null : l.available + l.toSpend), m = (e) => Math.max(0, Math.min(100, e)), g = i(() => s.value === null || s.value === 0 || v.value ? 0 : m(l.toSpend / s.value * 100)), S = i(() => s.value === null || s.value === 0 ? 0 : m(l.used / s.value * 100)), k = i(() => l.available === null || s.value === null || s.value === 0 ? 100 : v.value ? 0 : m(l.available / s.value * 100)), c = i(() => l.type === "unique_launches" ? "Runs Limits" : l.type === "volume_limit" ? "Volume Limits" : l.label), L = (e) => (e / 1024 / 1024 / 1024).toFixed(2) + " GB", d = (e) => l.type === "volume_limit" ? L(e) : e, f = (e) => Number(e.toFixed(2)) > 0;
14
- return (e, a) => (r(), u("div", {
15
- class: t(e.$style.container)
12
+ setup(s) {
13
+ const l = s, u = o(() => l.available === null ? null : l.available + l.toSpend + l.used), y = o(() => l.available === null ? !1 : l.available < 0), c = o(() => l.available === null ? null : l.available + l.toSpend), p = (e) => Math.max(0, Math.min(100, e)), g = o(() => u.value === null || u.value === 0 || y.value ? 0 : p(l.toSpend / u.value * 100)), S = o(() => u.value === null || u.value === 0 ? 0 : p(l.used / u.value * 100)), k = o(() => l.available === null || u.value === null || u.value === 0 ? 100 : y.value ? 0 : p(l.available / u.value * 100)), B = o(() => l.type === "unique_launches" ? "Runs Limits" : l.type === "volume_limit" ? "Volume Limits" : l.label), L = (e) => (e / 1024 / 1024 / 1024).toFixed(2) + " GB", v = (e) => l.type === "volume_limit" ? L(e) : e, b = (e) => Number(e.toFixed(2)) > 0;
14
+ return (e, t) => (i(), r("div", {
15
+ class: a(e.$style.container)
16
16
  }, [
17
17
  n("span", {
18
- class: t(e.$style.label)
19
- }, o(c.value), 3),
18
+ class: a(e.$style.label)
19
+ }, d(B.value), 3),
20
20
  n("div", {
21
- class: t(e.$style.content)
21
+ class: a(e.$style.content)
22
22
  }, [
23
23
  n("div", {
24
- class: t(e.$style.contentAvailable)
24
+ class: a(e.$style.contentAvailable)
25
25
  }, [
26
26
  n("div", null, [
27
- a[0] || (a[0] = y(" Available: ")),
28
- a[1] || (a[1] = n("div", { style: { flex: "1" } }, null, -1)),
29
- $.value !== null ? (r(), u("span", F, [
30
- n("strong", null, o(d($.value)), 1),
31
- y(" / " + o(d(e.available + e.toSpend + e.used)), 1)
32
- ])) : (r(), u("span", N, "Unlimited"))
27
+ t[0] || (t[0] = f(" Available: ", -1)),
28
+ t[1] || (t[1] = n("div", { style: { flex: "1" } }, null, -1)),
29
+ c.value !== null ? (i(), r("span", F, [
30
+ n("strong", null, d(v(c.value)), 1),
31
+ f(" / " + d(v(s.available + s.toSpend + s.used)), 1)
32
+ ])) : (i(), r("span", N, "Unlimited"))
33
33
  ]),
34
34
  n("div", {
35
- class: t([e.$style.afterRun, { [e.$style.exceeded]: v.value }])
35
+ class: a([e.$style.afterRun, { [e.$style.exceeded]: y.value }])
36
36
  }, [
37
- v.value ? (r(), u("span", A, "Too many files selected")) : p("", !0),
38
- a[2] || (a[2] = n("span", { style: { flex: "1" } }, null, -1)),
39
- a[3] || (a[3] = n("span", null, "After run:", -1)),
40
- e.available !== null ? (r(), u("span", C, o(d(e.available)) + " / " + o(d(e.available + e.toSpend + e.used)), 1)) : p("", !0)
37
+ y.value ? (i(), r("span", A, "Too many files selected")) : m("", !0),
38
+ t[2] || (t[2] = n("span", { style: { flex: "1" } }, null, -1)),
39
+ t[3] || (t[3] = n("span", null, "After run:", -1)),
40
+ s.available !== null ? (i(), r("span", C, d(v(s.available)) + " / " + d(v(s.available + s.toSpend + s.used)), 1)) : m("", !0)
41
41
  ], 2),
42
42
  n("div", {
43
- class: t([e.$style.progressBar, { [e.$style.exceeded]: v.value }])
43
+ class: a([e.$style.progressBar, { [e.$style.exceeded]: y.value }])
44
44
  }, [
45
- f(k.value) ? (r(), u("span", {
45
+ b(k.value) ? (i(), r("span", {
46
46
  key: 0,
47
- class: t(e.$style.progressBarAvailable),
48
- style: b({ width: `${k.value.toFixed(2)}%` })
49
- }, null, 6)) : p("", !0),
50
- f(g.value) ? (r(), u("span", {
47
+ class: a(e.$style.progressBarAvailable),
48
+ style: $({ width: `${k.value.toFixed(2)}%` })
49
+ }, null, 6)) : m("", !0),
50
+ b(g.value) ? (i(), r("span", {
51
51
  key: 1,
52
- class: t(e.$style.progressBarToSpend),
53
- style: b({ width: `${g.value.toFixed(2)}%` })
54
- }, null, 6)) : p("", !0),
55
- f(S.value) ? (r(), u("span", {
52
+ class: a(e.$style.progressBarToSpend),
53
+ style: $({ width: `${g.value.toFixed(2)}%` })
54
+ }, null, 6)) : m("", !0),
55
+ b(S.value) ? (i(), r("span", {
56
56
  key: 2,
57
- class: t(e.$style.progressBarUsed),
58
- style: b({ width: `${S.value.toFixed(2)}%` })
59
- }, null, 6)) : p("", !0)
57
+ class: a(e.$style.progressBarUsed),
58
+ style: $({ width: `${S.value.toFixed(2)}%` })
59
+ }, null, 6)) : m("", !0)
60
60
  ], 2)
61
61
  ], 2),
62
62
  n("div", {
63
- class: t(e.$style.legends)
63
+ class: a(e.$style.legends)
64
64
  }, [
65
65
  n("div", {
66
- class: t(e.$style.toSpendLegend)
66
+ class: a(e.$style.toSpendLegend)
67
67
  }, [
68
- a[4] || (a[4] = n("span", null, null, -1)),
69
- y(" To spend: " + o(d(e.toSpend)), 1)
68
+ t[4] || (t[4] = n("span", null, null, -1)),
69
+ f(" To spend: " + d(v(s.toSpend)), 1)
70
70
  ], 2),
71
71
  n("div", {
72
- class: t(e.$style.usedLegend)
72
+ class: a(e.$style.usedLegend)
73
73
  }, [
74
- a[5] || (a[5] = n("span", null, null, -1)),
75
- y(" Used: " + o(d(e.used)), 1)
74
+ t[5] || (t[5] = n("span", null, null, -1)),
75
+ f(" Used: " + d(v(s.used)), 1)
76
76
  ], 2)
77
77
  ], 2)
78
78
  ], 2)
@@ -1 +1 @@
1
- {"version":3,"file":"LimitCard.vue2.js","sources":["../../../src/plugins/Monetization/LimitCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n type: 'unique_launches' | 'volume_limit';\n label: string;\n used: number;\n toSpend: number;\n available: number | null; // If available is null it means Unlimited\n unit?: string;\n}>();\n\nconst total = computed(() => {\n if (props.available === null) return null;\n return props.available + props.toSpend + props.used;\n});\n\nconst exceeded = computed(() => {\n if (props.available === null) return false;\n return props.available < 0;\n});\n\nconst availableNow = computed(() => {\n if (props.available === null) return null;\n return props.available + props.toSpend;\n});\n\nconst clampPercentage = (n: number) => Math.max(0, Math.min(100, n));\n\nconst toSpendPercentage = computed(() => {\n if (total.value === null) return 0;\n if (total.value === 0) return 0;\n if (exceeded.value) return 0;\n return clampPercentage((props.toSpend / total.value) * 100);\n});\n\nconst usedPercentage = computed(() => {\n if (total.value === null) return 0;\n if (total.value === 0) return 0;\n return clampPercentage((props.used / total.value) * 100);\n});\n\nconst availablePercentage = computed(() => {\n if (props.available === null) return 100;\n if (total.value === null) return 100;\n if (total.value === 0) return 100;\n if (exceeded.value) return 0;\n return clampPercentage(props.available / total.value * 100);\n});\n\nconst computedLabel = computed(() => {\n if (props.type === 'unique_launches') return 'Runs Limits';\n if (props.type === 'volume_limit') return 'Volume Limits';\n return props.label;\n});\n\nconst toGB = (v: number) => {\n return (v / 1024 / 1024 / 1024).toFixed(2) + ' GB';\n};\n\nconst formatUnit = (v: number) => {\n if (props.type === 'volume_limit') return toGB(v);\n return v;\n};\n\nconst showBar = (n: number) => {\n return Number(n.toFixed(2)) > 0;\n};\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <span :class=\"$style.label\">{{ computedLabel }}</span>\n <div :class=\"$style.content\">\n <div :class=\"$style.contentAvailable\">\n <div>\n Available:\n <div style=\"flex: 1\" />\n <span v-if=\"availableNow !== null\"><strong>{{ formatUnit(availableNow) }}</strong> / {{ formatUnit(available! + toSpend + used) }}</span>\n <span v-else>Unlimited</span>\n </div>\n <div :class=\"[$style.afterRun, { [$style.exceeded]: exceeded }]\">\n <span v-if=\"exceeded\">Too many files selected</span>\n <span style=\"flex: 1\" />\n <span>After run:</span>\n <span v-if=\"available !== null\">{{ formatUnit(available) }} / {{ formatUnit(available + toSpend + used) }}</span>\n </div>\n <div :class=\"[$style.progressBar, { [$style.exceeded]: exceeded }]\">\n <span v-if=\"showBar(availablePercentage)\" :class=\"$style.progressBarAvailable\" :style=\"{ width: `${availablePercentage.toFixed(2)}%` }\" />\n <span v-if=\"showBar(toSpendPercentage)\" :class=\"$style.progressBarToSpend\" :style=\"{ width: `${toSpendPercentage.toFixed(2)}%` }\" />\n <span v-if=\"showBar(usedPercentage)\" :class=\"$style.progressBarUsed\" :style=\"{ width: `${usedPercentage.toFixed(2)}%` }\" />\n </div>\n </div>\n <div :class=\"$style.legends\">\n <div :class=\"$style.toSpendLegend\">\n <span/>\n To spend: {{ formatUnit(toSpend) }}\n </div>\n <div :class=\"$style.usedLegend\">\n <span/>\n Used: {{ formatUnit(used) }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n background-color: var(--bg-base-light);\n border-radius: 6px;\n padding: 10px 12px 16px 12px;\n color: var(--txt-01);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n border: 1px solid var(--border-color-div-grey);\n}\n\n.label {\n display: block;\n min-height: 36px;\n margin-bottom: 8px;\n color: var(--txt-01);\n font-size: 14px;\n font-weight: 600;\n line-height: 20px; /* 142.857% */\n}\n\n.content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.contentAvailable {\n display: flex;\n flex-direction: column;\n gap: 6px;\n > div {\n display: flex;\n align-items: flex-start;\n }\n >div:first-child {\n gap: 8px;\n strong {\n font-size: 28px;\n font-weight: 500;\n line-height: 36px; /* 128.571% */\n letter-spacing: -0.56px;\n }\n }\n}\n\n.afterRun {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 4px;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px;\n color: var(--txt-03);\n &.exceeded {\n color: var(--txt-error);\n }\n}\n\n.progressBar {\n width: 100%;\n height: 12px;\n background-color: #E0E0E0;\n display: flex;\n align-items: center;\n border: 1px solid var(--border-color-default);\n > span {\n display: block;\n height: 100%;\n outline: 1px solid var(--border-color-default);\n }\n &.exceeded {\n opacity: 0.2;\n }\n}\n\n.progressBarAvailable {\n background: linear-gradient(270deg, #A1E59C 0%, #D0F5B0 98.81%);\n}\n\n.progressBarUsed {\n background-color: #FFCECC;\n}\n\n.progressBarToSpend {\n background-color: #FAF5AA;\n}\n\n.legends {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n\n span {\n display: block;\n border-radius: 1px;\n border: 1px solid var(--border-color-default);\n width: 12px;\n height: 12px;\n }\n}\n\n.usedLegend {\n display: flex;\n align-items: center;\n gap: 8px;\n span {\n background: #FFCECC;\n }\n}\n\n.toSpendLegend {\n display: flex;\n align-items: center;\n gap: 8px;\n span {\n background: #FAF5AA;\n }\n}\n</style>\n"],"names":["props","__props","total","computed","exceeded","availableNow","clampPercentage","n","toSpendPercentage","usedPercentage","availablePercentage","computedLabel","toGB","v","formatUnit","showBar"],"mappings":";;;;;;;;;;;;AAGA,UAAMA,IAAQC,GASRC,IAAQC,EAAS,MACjBH,EAAM,cAAc,OAAa,OAC9BA,EAAM,YAAYA,EAAM,UAAUA,EAAM,IAChD,GAEKI,IAAWD,EAAS,MACpBH,EAAM,cAAc,OAAa,KAC9BA,EAAM,YAAY,CAC1B,GAEKK,IAAeF,EAAS,MACxBH,EAAM,cAAc,OAAa,OAC9BA,EAAM,YAAYA,EAAM,OAChC,GAEKM,IAAkB,CAACC,MAAc,KAAK,IAAI,GAAG,KAAK,IAAI,KAAKA,CAAC,CAAC,GAE7DC,IAAoBL,EAAS,MAC7BD,EAAM,UAAU,QAChBA,EAAM,UAAU,KAChBE,EAAS,QAAc,IACpBE,EAAiBN,EAAM,UAAUE,EAAM,QAAS,GAAG,CAC3D,GAEKO,IAAiBN,EAAS,MAC1BD,EAAM,UAAU,QAChBA,EAAM,UAAU,IAAU,IACvBI,EAAiBN,EAAM,OAAOE,EAAM,QAAS,GAAG,CACxD,GAEKQ,IAAsBP,EAAS,MAC/BH,EAAM,cAAc,QACpBE,EAAM,UAAU,QAChBA,EAAM,UAAU,IAAU,MAC1BE,EAAS,QAAc,IACpBE,EAAgBN,EAAM,YAAYE,EAAM,QAAQ,GAAG,CAC3D,GAEKS,IAAgBR,EAAS,MACzBH,EAAM,SAAS,oBAA0B,gBACzCA,EAAM,SAAS,iBAAuB,kBACnCA,EAAM,KACd,GAEKY,IAAO,CAACC,OACJA,IAAI,OAAO,OAAO,MAAM,QAAQ,CAAC,IAAI,OAGzCC,IAAa,CAACD,MACdb,EAAM,SAAS,iBAAuBY,EAAKC,CAAC,IACzCA,GAGHE,IAAU,CAACR,MACR,OAAOA,EAAE,QAAQ,CAAC,CAAC,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"LimitCard.vue2.js","sources":["../../../src/plugins/Monetization/LimitCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n type: 'unique_launches' | 'volume_limit';\n label: string;\n used: number;\n toSpend: number;\n available: number | null; // If available is null it means Unlimited\n unit?: string;\n}>();\n\nconst total = computed(() => {\n if (props.available === null) return null;\n return props.available + props.toSpend + props.used;\n});\n\nconst exceeded = computed(() => {\n if (props.available === null) return false;\n return props.available < 0;\n});\n\nconst availableNow = computed(() => {\n if (props.available === null) return null;\n return props.available + props.toSpend;\n});\n\nconst clampPercentage = (n: number) => Math.max(0, Math.min(100, n));\n\nconst toSpendPercentage = computed(() => {\n if (total.value === null) return 0;\n if (total.value === 0) return 0;\n if (exceeded.value) return 0;\n return clampPercentage((props.toSpend / total.value) * 100);\n});\n\nconst usedPercentage = computed(() => {\n if (total.value === null) return 0;\n if (total.value === 0) return 0;\n return clampPercentage((props.used / total.value) * 100);\n});\n\nconst availablePercentage = computed(() => {\n if (props.available === null) return 100;\n if (total.value === null) return 100;\n if (total.value === 0) return 100;\n if (exceeded.value) return 0;\n return clampPercentage(props.available / total.value * 100);\n});\n\nconst computedLabel = computed(() => {\n if (props.type === 'unique_launches') return 'Runs Limits';\n if (props.type === 'volume_limit') return 'Volume Limits';\n return props.label;\n});\n\nconst toGB = (v: number) => {\n return (v / 1024 / 1024 / 1024).toFixed(2) + ' GB';\n};\n\nconst formatUnit = (v: number) => {\n if (props.type === 'volume_limit') return toGB(v);\n return v;\n};\n\nconst showBar = (n: number) => {\n return Number(n.toFixed(2)) > 0;\n};\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <span :class=\"$style.label\">{{ computedLabel }}</span>\n <div :class=\"$style.content\">\n <div :class=\"$style.contentAvailable\">\n <div>\n Available:\n <div style=\"flex: 1\" />\n <span v-if=\"availableNow !== null\"><strong>{{ formatUnit(availableNow) }}</strong> / {{ formatUnit(available! + toSpend + used) }}</span>\n <span v-else>Unlimited</span>\n </div>\n <div :class=\"[$style.afterRun, { [$style.exceeded]: exceeded }]\">\n <span v-if=\"exceeded\">Too many files selected</span>\n <span style=\"flex: 1\" />\n <span>After run:</span>\n <span v-if=\"available !== null\">{{ formatUnit(available) }} / {{ formatUnit(available + toSpend + used) }}</span>\n </div>\n <div :class=\"[$style.progressBar, { [$style.exceeded]: exceeded }]\">\n <span v-if=\"showBar(availablePercentage)\" :class=\"$style.progressBarAvailable\" :style=\"{ width: `${availablePercentage.toFixed(2)}%` }\" />\n <span v-if=\"showBar(toSpendPercentage)\" :class=\"$style.progressBarToSpend\" :style=\"{ width: `${toSpendPercentage.toFixed(2)}%` }\" />\n <span v-if=\"showBar(usedPercentage)\" :class=\"$style.progressBarUsed\" :style=\"{ width: `${usedPercentage.toFixed(2)}%` }\" />\n </div>\n </div>\n <div :class=\"$style.legends\">\n <div :class=\"$style.toSpendLegend\">\n <span/>\n To spend: {{ formatUnit(toSpend) }}\n </div>\n <div :class=\"$style.usedLegend\">\n <span/>\n Used: {{ formatUnit(used) }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n background-color: var(--bg-base-light);\n border-radius: 6px;\n padding: 10px 12px 16px 12px;\n color: var(--txt-01);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n border: 1px solid var(--border-color-div-grey);\n}\n\n.label {\n display: block;\n min-height: 36px;\n margin-bottom: 8px;\n color: var(--txt-01);\n font-size: 14px;\n font-weight: 600;\n line-height: 20px; /* 142.857% */\n}\n\n.content {\n display: flex;\n flex-direction: column;\n gap: 16px;\n}\n\n.contentAvailable {\n display: flex;\n flex-direction: column;\n gap: 6px;\n > div {\n display: flex;\n align-items: flex-start;\n }\n >div:first-child {\n gap: 8px;\n strong {\n font-size: 28px;\n font-weight: 500;\n line-height: 36px; /* 128.571% */\n letter-spacing: -0.56px;\n }\n }\n}\n\n.afterRun {\n display: flex;\n align-items: center;\n justify-content: flex-end;\n gap: 4px;\n font-size: 12px;\n font-style: normal;\n font-weight: 500;\n line-height: 16px;\n color: var(--txt-03);\n &.exceeded {\n color: var(--txt-error);\n }\n}\n\n.progressBar {\n width: 100%;\n height: 12px;\n background-color: #E0E0E0;\n display: flex;\n align-items: center;\n border: 1px solid var(--border-color-default);\n > span {\n display: block;\n height: 100%;\n outline: 1px solid var(--border-color-default);\n }\n &.exceeded {\n opacity: 0.2;\n }\n}\n\n.progressBarAvailable {\n background: linear-gradient(270deg, #A1E59C 0%, #D0F5B0 98.81%);\n}\n\n.progressBarUsed {\n background-color: #FFCECC;\n}\n\n.progressBarToSpend {\n background-color: #FAF5AA;\n}\n\n.legends {\n display: flex;\n justify-content: space-between;\n gap: 8px;\n\n span {\n display: block;\n border-radius: 1px;\n border: 1px solid var(--border-color-default);\n width: 12px;\n height: 12px;\n }\n}\n\n.usedLegend {\n display: flex;\n align-items: center;\n gap: 8px;\n span {\n background: #FFCECC;\n }\n}\n\n.toSpendLegend {\n display: flex;\n align-items: center;\n gap: 8px;\n span {\n background: #FAF5AA;\n }\n}\n</style>\n"],"names":["props","__props","total","computed","exceeded","availableNow","clampPercentage","n","toSpendPercentage","usedPercentage","availablePercentage","computedLabel","toGB","v","formatUnit","showBar","_createElementBlock","_normalizeClass","$style","_createElementVNode","_hoisted_1","_toDisplayString","_createTextVNode","_openBlock","_cache","_hoisted_4","_normalizeStyle"],"mappings":"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"}
@@ -54,11 +54,11 @@ const oe = /* @__PURE__ */ T({
54
54
  modelValue: p.value,
55
55
  "onUpdate:modelValue": r[0] || (r[0] = (t) => p.value = t)
56
56
  }, {
57
- title: i(() => r[2] || (r[2] = [
57
+ title: i(() => [...r[2] || (r[2] = [
58
58
  N("div", { class: "flex items-center gap-2" }, [
59
59
  N("span", null, "Subscription")
60
60
  ], -1)
61
- ])),
61
+ ])]),
62
62
  default: i(() => [
63
63
  d(e(O), {
64
64
  label: "Product",
@@ -124,7 +124,7 @@ const oe = /* @__PURE__ */ T({
124
124
  d(e(A), { name: z.value }, null, 8, ["name"])
125
125
  ]),
126
126
  default: i(() => [
127
- r[3] || (r[3] = x(" Subscription "))
127
+ r[3] || (r[3] = x(" Subscription ", -1))
128
128
  ]),
129
129
  _: 1
130
130
  })
@@ -1 +1 @@
1
- {"version":3,"file":"MonetizationSidebar.vue.js","sources":["../../../src/plugins/Monetization/MonetizationSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { PlSlideModal, PlBtnGhost, PlDropdown, PlAlert, PlIcon24, PlBtnSecondary } from '@milaboratories/uikit';\nimport { useButtonTarget } from './useButtonTarget';\nimport { useInfo } from './useInfo';\nimport UserCabinetCard from './UserCabinetCard.vue';\nimport RunStatus from './RunStatus.vue';\nimport LimitCard from './LimitCard.vue';\nimport EndOfPeriod from './EndOfPeriod.vue';\n\nconst isOpen = ref(false);\n\nconst {\n result,\n error,\n hasMonetization,\n canRun,\n status,\n customerEmail,\n endOfBillingPeriod,\n limits,\n refresh,\n isLoading,\n} = useInfo();\n\nconst teleportTarget = useButtonTarget(hasMonetization);\n\nconst productName = computed(() => result.value?.productName);\n\nconst userCabinetUrl = computed(() => {\n if (!result.value) return undefined;\n\n const u = new URL(`https://scientist.platforma.bio/product/${result.value.productKey}`);\n\n if (customerEmail.value) {\n u.searchParams.set('email', customerEmail.value);\n }\n\n return u.toString();\n});\n\nconst options = computed(() => {\n if (!result.value) return [];\n\n return [\n {\n label: result.value.productName,\n value: result.value.productName,\n },\n ];\n});\n\nconst statusText = computed(() => {\n switch (status.value) {\n case 'active':\n return '';\n case 'limits_exceeded':\n return 'Usage limits exceeded for the current billing period.';\n case 'payment_required':\n return 'Payment required to continue using the service.';\n case 'select-tariff':\n return 'Select a subscription plan in the Scientist Cabinet.';\n case 'inactive':\n return 'Not found billing period.';\n default:\n return '';\n }\n});\n\nconst btnIcon = computed(() => {\n if (canRun.value) return 'monetization-on';\n return 'monetization-off';\n});\n</script>\n\n<template>\n <PlSlideModal v-if=\"hasMonetization\" v-model=\"isOpen\">\n <template #title>\n <div class=\"flex items-center gap-2\">\n <span>Subscription</span>\n </div>\n </template>\n <PlDropdown label=\"Product\" readonly :model-value=\"productName\" :options=\"options\" />\n <RunStatus :can-run=\"canRun\" :is-loading=\"isLoading\" :status-text=\"statusText\">\n <PlBtnSecondary\n title=\"Refresh status\"\n round\n size=\"small\"\n style=\"margin-left: auto;\"\n icon=\"loading\"\n :loading=\"isLoading\"\n @click=\"refresh\"\n />\n </RunStatus>\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error }}\n </PlAlert>\n <UserCabinetCard v-if=\"userCabinetUrl\" :email=\"customerEmail\" :user-cabinet-url=\"userCabinetUrl\" />\n <EndOfPeriod v-if=\"endOfBillingPeriod\" :end-of-period=\"endOfBillingPeriod\" />\n <template v-if=\"limits\">\n <LimitCard\n v-for=\"limit in limits\"\n :key=\"limit.type\"\n :type=\"limit.type\"\n :label=\"limit.type\"\n :used=\"limit.used\"\n :to-spend=\"limit.toSpend\"\n :available=\"limit.available\"\n />\n </template>\n </PlSlideModal>\n <!-- Teleport to the title slot -->\n <Teleport v-if=\"hasMonetization && teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost @click.stop=\"isOpen = true\">\n Subscription\n <template #append>\n <PlIcon24 :name=\"btnIcon\" />\n </template>\n </PlBtnGhost>\n </Teleport>\n</template>\n"],"names":["isOpen","ref","result","error","hasMonetization","canRun","status","customerEmail","endOfBillingPeriod","limits","refresh","isLoading","useInfo","teleportTarget","useButtonTarget","productName","computed","_a","userCabinetUrl","u","options","statusText","btnIcon"],"mappings":";;;;;;;;;;;AAUA,UAAMA,IAASC,EAAI,EAAK,GAElB;AAAA,MACJ,QAAAC;AAAA,MACA,OAAAC;AAAA,MACA,iBAAAC;AAAA,MACA,QAAAC;AAAA,MACA,QAAAC;AAAA,MACA,eAAAC;AAAA,MACA,oBAAAC;AAAA,MACA,QAAAC;AAAA,MACA,SAAAC;AAAA,MACA,WAAAC;AAAA,IAAA,IACEC,EAAA,GAEEC,IAAiBC,EAAgBV,CAAe,GAEhDW,IAAcC,EAAS,MAAA;;AAAM,cAAAC,IAAAf,EAAO,UAAP,gBAAAe,EAAc;AAAA,KAAW,GAEtDC,IAAiBF,EAAS,MAAM;AACpC,UAAI,CAACd,EAAO,MAAO;AAEnB,YAAMiB,IAAI,IAAI,IAAI,2CAA2CjB,EAAO,MAAM,UAAU,EAAE;AAEtF,aAAIK,EAAc,SAChBY,EAAE,aAAa,IAAI,SAASZ,EAAc,KAAK,GAG1CY,EAAE,SAAA;AAAA,IACX,CAAC,GAEKC,IAAUJ,EAAS,MAClBd,EAAO,QAEL;AAAA,MACL;AAAA,QACE,OAAOA,EAAO,MAAM;AAAA,QACpB,OAAOA,EAAO,MAAM;AAAA,MAAA;AAAA,IACtB,IANwB,CAAA,CAQ3B,GAEKmB,IAAaL,EAAS,MAAM;AAChC,cAAQV,EAAO,OAAA;AAAA,QACb,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT,KAAK;AACH,iBAAO;AAAA,QACT;AACE,iBAAO;AAAA,MAAA;AAAA,IAEb,CAAC,GAEKgB,IAAUN,EAAS,MACnBX,EAAO,QAAc,oBAClB,kBACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MonetizationSidebar.vue.js","sources":["../../../src/plugins/Monetization/MonetizationSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { PlSlideModal, PlBtnGhost, PlDropdown, PlAlert, PlIcon24, PlBtnSecondary } from '@milaboratories/uikit';\nimport { useButtonTarget } from './useButtonTarget';\nimport { useInfo } from './useInfo';\nimport UserCabinetCard from './UserCabinetCard.vue';\nimport RunStatus from './RunStatus.vue';\nimport LimitCard from './LimitCard.vue';\nimport EndOfPeriod from './EndOfPeriod.vue';\n\nconst isOpen = ref(false);\n\nconst {\n result,\n error,\n hasMonetization,\n canRun,\n status,\n customerEmail,\n endOfBillingPeriod,\n limits,\n refresh,\n isLoading,\n} = useInfo();\n\nconst teleportTarget = useButtonTarget(hasMonetization);\n\nconst productName = computed(() => result.value?.productName);\n\nconst userCabinetUrl = computed(() => {\n if (!result.value) return undefined;\n\n const u = new URL(`https://scientist.platforma.bio/product/${result.value.productKey}`);\n\n if (customerEmail.value) {\n u.searchParams.set('email', customerEmail.value);\n }\n\n return u.toString();\n});\n\nconst options = computed(() => {\n if (!result.value) return [];\n\n return [\n {\n label: result.value.productName,\n value: result.value.productName,\n },\n ];\n});\n\nconst statusText = computed(() => {\n switch (status.value) {\n case 'active':\n return '';\n case 'limits_exceeded':\n return 'Usage limits exceeded for the current billing period.';\n case 'payment_required':\n return 'Payment required to continue using the service.';\n case 'select-tariff':\n return 'Select a subscription plan in the Scientist Cabinet.';\n case 'inactive':\n return 'Not found billing period.';\n default:\n return '';\n }\n});\n\nconst btnIcon = computed(() => {\n if (canRun.value) return 'monetization-on';\n return 'monetization-off';\n});\n</script>\n\n<template>\n <PlSlideModal v-if=\"hasMonetization\" v-model=\"isOpen\">\n <template #title>\n <div class=\"flex items-center gap-2\">\n <span>Subscription</span>\n </div>\n </template>\n <PlDropdown label=\"Product\" readonly :model-value=\"productName\" :options=\"options\" />\n <RunStatus :can-run=\"canRun\" :is-loading=\"isLoading\" :status-text=\"statusText\">\n <PlBtnSecondary\n title=\"Refresh status\"\n round\n size=\"small\"\n style=\"margin-left: auto;\"\n icon=\"loading\"\n :loading=\"isLoading\"\n @click=\"refresh\"\n />\n </RunStatus>\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error }}\n </PlAlert>\n <UserCabinetCard v-if=\"userCabinetUrl\" :email=\"customerEmail\" :user-cabinet-url=\"userCabinetUrl\" />\n <EndOfPeriod v-if=\"endOfBillingPeriod\" :end-of-period=\"endOfBillingPeriod\" />\n <template v-if=\"limits\">\n <LimitCard\n v-for=\"limit in limits\"\n :key=\"limit.type\"\n :type=\"limit.type\"\n :label=\"limit.type\"\n :used=\"limit.used\"\n :to-spend=\"limit.toSpend\"\n :available=\"limit.available\"\n />\n </template>\n </PlSlideModal>\n <!-- Teleport to the title slot -->\n <Teleport v-if=\"hasMonetization && teleportTarget\" :to=\"teleportTarget\">\n <PlBtnGhost @click.stop=\"isOpen = true\">\n Subscription\n <template #append>\n <PlIcon24 :name=\"btnIcon\" />\n </template>\n </PlBtnGhost>\n </Teleport>\n</template>\n"],"names":["isOpen","ref","result","error","hasMonetization","canRun","status","customerEmail","endOfBillingPeriod","limits","refresh","isLoading","useInfo","teleportTarget","useButtonTarget","productName","computed","_a","userCabinetUrl","u","options","statusText","btnIcon","_unref","_createBlock","PlSlideModal","$event","_cache","_createElementVNode","_createVNode","PlDropdown","RunStatus","PlBtnSecondary","PlAlert","UserCabinetCard","EndOfPeriod","_createElementBlock","_Fragment","_renderList","limit","LimitCard","_Teleport","PlBtnGhost","PlIcon24"],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as i, computed as d, createElementBlock as a, openBlock as l, createElementVNode as n, createCommentVNode as p, normalizeClass as s, renderSlot as y, toDisplayString as o } from "vue";
1
+ import { defineComponent as i, computed as d, createElementBlock as l, openBlock as o, createElementVNode as n, createCommentVNode as c, normalizeClass as a, renderSlot as y, toDisplayString as u } from "vue";
2
2
  const g = /* @__PURE__ */ i({
3
3
  __name: "RunStatus",
4
4
  props: {
@@ -6,32 +6,32 @@ const g = /* @__PURE__ */ i({
6
6
  statusText: {},
7
7
  isLoading: { type: Boolean }
8
8
  },
9
- setup(r) {
10
- const t = r, u = d(() => t.isLoading ? "Updating..." : t.canRun ? "Ready to run" : "Cannot run");
11
- return (e, c) => (l(), a("div", null, [
9
+ setup(t) {
10
+ const s = t, r = d(() => s.isLoading ? "Updating..." : s.canRun ? "Ready to run" : "Cannot run");
11
+ return (e, m) => (o(), l("div", null, [
12
12
  n("div", {
13
- class: s([{ [e.$style["can-run"]]: e.canRun, [e.$style.loading]: e.isLoading }, e.$style.container])
13
+ class: a([{ [e.$style["can-run"]]: t.canRun, [e.$style.loading]: t.isLoading }, e.$style.container])
14
14
  }, [
15
15
  n("div", {
16
- class: s(e.$style.badge)
16
+ class: a(e.$style.badge)
17
17
  }, [
18
18
  n("i", {
19
- class: s(e.$style.blob)
19
+ class: a(e.$style.blob)
20
20
  }, [
21
21
  n("span", null, [
22
22
  n("span", {
23
- class: s(e.$style.dot)
23
+ class: a(e.$style.dot)
24
24
  }, null, 2)
25
25
  ])
26
26
  ], 2),
27
- n("span", null, o(u.value), 1)
27
+ n("span", null, u(r.value), 1)
28
28
  ], 2),
29
29
  y(e.$slots, "default")
30
30
  ], 2),
31
- e.statusText ? (l(), a("div", {
31
+ t.statusText ? (o(), l("div", {
32
32
  key: 0,
33
- class: s(e.$style.statusText)
34
- }, o(e.statusText), 3)) : p("", !0)
33
+ class: a(e.$style.statusText)
34
+ }, u(t.statusText), 3)) : c("", !0)
35
35
  ]));
36
36
  }
37
37
  });
@@ -1 +1 @@
1
- {"version":3,"file":"RunStatus.vue2.js","sources":["../../../src/plugins/Monetization/RunStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n canRun: boolean | undefined;\n statusText: string | undefined;\n isLoading?: boolean;\n}>();\n\nconst badgeText = computed(() => {\n if (props.isLoading) {\n return 'Updating...';\n }\n\n if (props.canRun) {\n return 'Ready to run';\n }\n\n return 'Cannot run';\n});\n</script>\n\n<template>\n <div>\n <div :class=\"[{ [$style['can-run']]: canRun, [$style.loading]: isLoading }, $style.container]\">\n <div :class=\"$style.badge\">\n <i :class=\"$style.blob\">\n <span>\n <span :class=\"$style.dot\" />\n </span>\n </i>\n <span>{{ badgeText }}</span>\n </div>\n <slot />\n </div>\n <div v-if=\"statusText\" :class=\"$style.statusText\">{{ statusText }}</div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n align-items: center;\n gap: 8px;\n --blob-color: #FF5C5C;\n --badge-background: rgba(255, 92, 92, 0.12);\n\n &.can-run {\n --blob-color: #49CC49;\n --badge-background: rgba(99, 224, 36, 0.12);\n }\n\n &.loading {\n --blob-color: #FFAD0A;\n --badge-background: rgba(255, 173, 10, 0.12);\n }\n}\n\n.statusText {\n margin-top: 6px;\n color: var(--txt-error);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n\n.badge {\n display: flex;\n gap: 6px;\n height: 40px;\n padding: 6px 16px 6px 8px;\n align-items: center;\n border-radius: 6px;\n border: 1px solid var(--badge-background);\n background: var(--badge-background);\n}\n\n.blob {\n width: 24px;\n height: 24px;\n display: flex;\n place-items: center;\n place-content: center;\n\n >span {\n display: flex;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n place-content: center;\n place-items: center;\n background-color: rgb(from var(--blob-color) r g b / 0.24);\n }\n\n .dot {\n border-radius: 50%;\n height: 8px;\n width: 8px;\n transform: scale(1);\n\n background: var(--blob-color);\n box-shadow: 0 0 0 0 var(--blob-color);\n animation: pulse-glob 1s infinite;\n }\n}\n</style>\n"],"names":["props","__props","badgeText","computed"],"mappings":";;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAAYC,EAAS,MACrBH,EAAM,YACD,gBAGLA,EAAM,SACD,iBAGF,YACR;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"RunStatus.vue2.js","sources":["../../../src/plugins/Monetization/RunStatus.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { computed } from 'vue';\n\nconst props = defineProps<{\n canRun: boolean | undefined;\n statusText: string | undefined;\n isLoading?: boolean;\n}>();\n\nconst badgeText = computed(() => {\n if (props.isLoading) {\n return 'Updating...';\n }\n\n if (props.canRun) {\n return 'Ready to run';\n }\n\n return 'Cannot run';\n});\n</script>\n\n<template>\n <div>\n <div :class=\"[{ [$style['can-run']]: canRun, [$style.loading]: isLoading }, $style.container]\">\n <div :class=\"$style.badge\">\n <i :class=\"$style.blob\">\n <span>\n <span :class=\"$style.dot\" />\n </span>\n </i>\n <span>{{ badgeText }}</span>\n </div>\n <slot />\n </div>\n <div v-if=\"statusText\" :class=\"$style.statusText\">{{ statusText }}</div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n align-items: center;\n gap: 8px;\n --blob-color: #FF5C5C;\n --badge-background: rgba(255, 92, 92, 0.12);\n\n &.can-run {\n --blob-color: #49CC49;\n --badge-background: rgba(99, 224, 36, 0.12);\n }\n\n &.loading {\n --blob-color: #FFAD0A;\n --badge-background: rgba(255, 173, 10, 0.12);\n }\n}\n\n.statusText {\n margin-top: 6px;\n color: var(--txt-error);\n font-size: 14px;\n font-weight: 500;\n line-height: 20px;\n}\n\n.badge {\n display: flex;\n gap: 6px;\n height: 40px;\n padding: 6px 16px 6px 8px;\n align-items: center;\n border-radius: 6px;\n border: 1px solid var(--badge-background);\n background: var(--badge-background);\n}\n\n.blob {\n width: 24px;\n height: 24px;\n display: flex;\n place-items: center;\n place-content: center;\n\n >span {\n display: flex;\n width: 16px;\n height: 16px;\n border-radius: 50%;\n place-content: center;\n place-items: center;\n background-color: rgb(from var(--blob-color) r g b / 0.24);\n }\n\n .dot {\n border-radius: 50%;\n height: 8px;\n width: 8px;\n transform: scale(1);\n\n background: var(--blob-color);\n box-shadow: 0 0 0 0 var(--blob-color);\n animation: pulse-glob 1s infinite;\n }\n}\n</style>\n"],"names":["props","__props","badgeText","computed","_createElementBlock","_createElementVNode","_normalizeClass","$style","_renderSlot","_ctx"],"mappings":";;;;;;;;;AAGA,UAAMA,IAAQC,GAMRC,IAAYC,EAAS,MACrBH,EAAM,YACD,gBAGLA,EAAM,SACD,iBAGF,YACR;2BAICI,EAaM,OAAA,MAAA;AAAA,MAZJC,EAUM,OAAA;AAAA,QAVA,OAAKC,EAAA,CAAA,EAAA,CAAMC,EAAAA,OAAM,SAAA,CAAA,GAAcN,EAAA,QAAM,CAAGM,EAAAA,OAAO,OAAO,GAAGN,EAAA,aAAaM,EAAAA,OAAO,SAAS,CAAA;AAAA,MAAA;QAC1FF,EAOM,OAAA;AAAA,UAPA,OAAKC,EAAEC,EAAAA,OAAO,KAAK;AAAA,QAAA;UACvBF,EAII,KAAA;AAAA,YAJA,OAAKC,EAAEC,EAAAA,OAAO,IAAI;AAAA,UAAA;YACpBF,EAEO,QAAA,MAAA;AAAA,cADLA,EAA4B,QAAA;AAAA,gBAArB,OAAKC,EAAEC,EAAAA,OAAO,GAAG;AAAA,cAAA;;;UAG5BF,EAA4B,gBAAnBH,EAAA,KAAS,GAAA,CAAA;AAAA,QAAA;QAEpBM,EAAQC,EAAA,QAAA,SAAA;AAAA,MAAA;MAECR,EAAA,mBAAXG,EAAwE,OAAA;AAAA;QAAhD,OAAKE,EAAEC,EAAAA,OAAO,UAAU;AAAA,MAAA,KAAKN,EAAA,UAAU,GAAA,CAAA;;;;"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as v, ref as b, computed as f, createElementBlock as a, openBlock as s, createCommentVNode as p, createElementVNode as o, normalizeClass as t, createVNode as u, toDisplayString as i, unref as c, withCtx as d, createTextVNode as U } from "vue";
1
+ import { defineComponent as v, ref as b, computed as f, createElementBlock as i, openBlock as s, createCommentVNode as u, createElementVNode as a, normalizeClass as t, createVNode as d, toDisplayString as n, unref as p, withCtx as m, createTextVNode as U } from "vue";
2
2
  import { PlTooltip as k, PlMaskIcon24 as $ } from "@milaboratories/uikit";
3
3
  const T = ["title"], w = /* @__PURE__ */ v({
4
4
  __name: "UserCabinetCard",
@@ -6,9 +6,9 @@ const T = ["title"], w = /* @__PURE__ */ v({
6
6
  userCabinetUrl: {},
7
7
  email: {}
8
8
  },
9
- setup(m) {
10
- const n = m, l = b(""), y = f(() => l.value ? "clipboard-copied" : "clipboard"), C = () => {
11
- n.userCabinetUrl && navigator.clipboard.writeText(n.userCabinetUrl).then(() => {
9
+ setup(o) {
10
+ const r = o, l = b(""), y = f(() => l.value ? "clipboard-copied" : "clipboard"), C = () => {
11
+ r.userCabinetUrl && navigator.clipboard.writeText(r.userCabinetUrl).then(() => {
12
12
  l.value = "URL copied!", setTimeout(() => {
13
13
  l.value = "";
14
14
  }, 2e3);
@@ -18,30 +18,30 @@ const T = ["title"], w = /* @__PURE__ */ v({
18
18
  }, 2e3);
19
19
  });
20
20
  };
21
- return (e, r) => (s(), a("div", null, [
22
- e.userCabinetUrl ? (s(), a("div", {
21
+ return (e, c) => (s(), i("div", null, [
22
+ o.userCabinetUrl ? (s(), i("div", {
23
23
  key: 0,
24
24
  class: t(e.$style.urlSection)
25
25
  }, [
26
- o("div", {
26
+ a("div", {
27
27
  class: t(e.$style.urlLabel)
28
28
  }, "Scientist cabinet URL:", 2),
29
- o("div", {
29
+ a("div", {
30
30
  class: t(e.$style.urlActions)
31
31
  }, [
32
- o("div", {
32
+ a("div", {
33
33
  class: t(e.$style.urlDisplay),
34
- title: e.userCabinetUrl
35
- }, i(e.userCabinetUrl), 11, T),
36
- u(c(k), {
34
+ title: o.userCabinetUrl
35
+ }, n(o.userCabinetUrl), 11, T),
36
+ d(p(k), {
37
37
  "close-delay": 800,
38
38
  position: "top"
39
39
  }, {
40
- tooltip: d(() => [
41
- U(i(l.value ? l.value : "Copy"), 1)
40
+ tooltip: m(() => [
41
+ U(n(l.value ? l.value : "Copy"), 1)
42
42
  ]),
43
- default: d(() => [
44
- u(c($), {
43
+ default: m(() => [
44
+ d(p($), {
45
45
  class: t(e.$style.copyIcon),
46
46
  title: "Copy content",
47
47
  name: y.value,
@@ -51,15 +51,15 @@ const T = ["title"], w = /* @__PURE__ */ v({
51
51
  _: 1
52
52
  })
53
53
  ], 2),
54
- e.email ? (s(), a("div", {
54
+ o.email ? (s(), i("div", {
55
55
  key: 0,
56
56
  class: t(e.$style.email)
57
57
  }, [
58
- r[0] || (r[0] = o("span", null, "License owner:", -1)),
59
- o("span", null, i(e.email), 1)
60
- ], 2)) : p("", !0)
61
- ], 2)) : p("", !0),
62
- o("div", {
58
+ c[0] || (c[0] = a("span", null, "License owner:", -1)),
59
+ a("span", null, n(o.email), 1)
60
+ ], 2)) : u("", !0)
61
+ ], 2)) : u("", !0),
62
+ a("div", {
63
63
  class: t(e.$style.hint)
64
64
  }, " * Copy and paste the link into your browser ", 2)
65
65
  ]));
@@ -1 +1 @@
1
- {"version":3,"file":"UserCabinetCard.vue2.js","sources":["../../../src/plugins/Monetization/UserCabinetCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { PlTooltip, PlMaskIcon24 } from '@milaboratories/uikit';\n\nconst props = defineProps<{\n userCabinetUrl: string;\n email?: string;\n}>();\n\nconst copiedMessage = ref('');\n\nconst iconName = computed(() => (copiedMessage.value ? 'clipboard-copied' : 'clipboard'));\n\nconst copyToClipboard = () => {\n if (props.userCabinetUrl) {\n navigator.clipboard.writeText(props.userCabinetUrl)\n .then(() => {\n copiedMessage.value = 'URL copied!';\n setTimeout(() => {\n copiedMessage.value = '';\n }, 2000);\n })\n .catch((err) => {\n console.error('Failed to copy text: ', err);\n copiedMessage.value = 'Copy failed';\n setTimeout(() => {\n copiedMessage.value = '';\n }, 2000);\n });\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"userCabinetUrl\" :class=\"$style.urlSection\">\n <div :class=\"$style.urlLabel\">Scientist cabinet URL:</div>\n <div :class=\"$style.urlActions\">\n <div :class=\"$style.urlDisplay\" :title=\"userCabinetUrl\">{{ userCabinetUrl }}</div>\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24 :class=\"$style.copyIcon\" title=\"Copy content\" :name=\"iconName\" @click=\"copyToClipboard\" />\n <template #tooltip>{{ copiedMessage ? copiedMessage : 'Copy' }}</template>\n </PlTooltip>\n </div>\n <div v-if=\"email\" :class=\"$style.email\">\n <span>License owner:</span>\n <span>{{ email }}</span>\n </div>\n </div>\n <div :class=\"$style.hint\">\n * Copy and paste the link into your browser\n </div>\n </div>\n</template>\n\n<style module>\n.hint {\n margin-top: 6px;\n color: var(--txt-03);\n font-size: 12px;\n font-weight: 500;\n line-height: 16px;\n}\n\n.email {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n color: var(--txt-03);\n\n > span:last-child {\n max-width: 200px;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap;\n overflow: hidden;\n }\n}\n\n.copyIcon {\n cursor: pointer;\n}\n\n.urlSection {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n background-color: #F7F8FA;\n border-radius: 6px;\n border: 1px solid #E1E3EB;\n}\n\n.urlLabel {\n font-weight: 500;\n color: #555;\n}\n\n.urlActions {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: nowrap;\n}\n\n.urlDisplay {\n font-family: monospace;\n font-size: 14px;\n color: #0066cc;\n padding: 6px 10px 6px 0;\n border-radius: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n</style>\n"],"names":["props","__props","copiedMessage","ref","iconName","computed","copyToClipboard","err"],"mappings":";;;;;;;;;AAIA,UAAMA,IAAQC,GAKRC,IAAgBC,EAAI,EAAE,GAEtBC,IAAWC,EAAS,MAAOH,EAAc,QAAQ,qBAAqB,WAAY,GAElFI,IAAkB,MAAM;AAC5B,MAAIN,EAAM,kBACR,UAAU,UAAU,UAAUA,EAAM,cAAc,EAC/C,KAAK,MAAM;AACV,QAAAE,EAAc,QAAQ,eACtB,WAAW,MAAM;AACf,UAAAA,EAAc,QAAQ;AAAA,QACxB,GAAG,GAAI;AAAA,MACT,CAAC,EACA,MAAM,CAACK,MAAQ;AACd,gBAAQ,MAAM,yBAAyBA,CAAG,GAC1CL,EAAc,QAAQ,eACtB,WAAW,MAAM;AACf,UAAAA,EAAc,QAAQ;AAAA,QACxB,GAAG,GAAI;AAAA,MACT,CAAC;AAAA,IAEP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"UserCabinetCard.vue2.js","sources":["../../../src/plugins/Monetization/UserCabinetCard.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport { PlTooltip, PlMaskIcon24 } from '@milaboratories/uikit';\n\nconst props = defineProps<{\n userCabinetUrl: string;\n email?: string;\n}>();\n\nconst copiedMessage = ref('');\n\nconst iconName = computed(() => (copiedMessage.value ? 'clipboard-copied' : 'clipboard'));\n\nconst copyToClipboard = () => {\n if (props.userCabinetUrl) {\n navigator.clipboard.writeText(props.userCabinetUrl)\n .then(() => {\n copiedMessage.value = 'URL copied!';\n setTimeout(() => {\n copiedMessage.value = '';\n }, 2000);\n })\n .catch((err) => {\n console.error('Failed to copy text: ', err);\n copiedMessage.value = 'Copy failed';\n setTimeout(() => {\n copiedMessage.value = '';\n }, 2000);\n });\n }\n};\n</script>\n\n<template>\n <div>\n <div v-if=\"userCabinetUrl\" :class=\"$style.urlSection\">\n <div :class=\"$style.urlLabel\">Scientist cabinet URL:</div>\n <div :class=\"$style.urlActions\">\n <div :class=\"$style.urlDisplay\" :title=\"userCabinetUrl\">{{ userCabinetUrl }}</div>\n <PlTooltip :close-delay=\"800\" position=\"top\">\n <PlMaskIcon24 :class=\"$style.copyIcon\" title=\"Copy content\" :name=\"iconName\" @click=\"copyToClipboard\" />\n <template #tooltip>{{ copiedMessage ? copiedMessage : 'Copy' }}</template>\n </PlTooltip>\n </div>\n <div v-if=\"email\" :class=\"$style.email\">\n <span>License owner:</span>\n <span>{{ email }}</span>\n </div>\n </div>\n <div :class=\"$style.hint\">\n * Copy and paste the link into your browser\n </div>\n </div>\n</template>\n\n<style module>\n.hint {\n margin-top: 6px;\n color: var(--txt-03);\n font-size: 12px;\n font-weight: 500;\n line-height: 16px;\n}\n\n.email {\n display: flex;\n align-items: center;\n justify-content: space-between;\n font-size: 12px;\n color: var(--txt-03);\n\n > span:last-child {\n max-width: 200px;\n text-overflow: ellipsis;\n display: block;\n white-space: nowrap;\n overflow: hidden;\n }\n}\n\n.copyIcon {\n cursor: pointer;\n}\n\n.urlSection {\n display: flex;\n flex-direction: column;\n gap: 8px;\n padding: 12px;\n background-color: #F7F8FA;\n border-radius: 6px;\n border: 1px solid #E1E3EB;\n}\n\n.urlLabel {\n font-weight: 500;\n color: #555;\n}\n\n.urlActions {\n display: flex;\n align-items: center;\n gap: 10px;\n flex-wrap: nowrap;\n}\n\n.urlDisplay {\n font-family: monospace;\n font-size: 14px;\n color: #0066cc;\n padding: 6px 10px 6px 0;\n border-radius: 4px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 300px;\n}\n</style>\n"],"names":["props","__props","copiedMessage","ref","iconName","computed","copyToClipboard","err","_createElementBlock","_normalizeClass","$style","_createElementVNode","_hoisted_1","_createVNode","_unref","PlTooltip","_createTextVNode","_toDisplayString","PlMaskIcon24","_cache"],"mappings":";;;;;;;;;AAIA,UAAMA,IAAQC,GAKRC,IAAgBC,EAAI,EAAE,GAEtBC,IAAWC,EAAS,MAAOH,EAAc,QAAQ,qBAAqB,WAAY,GAElFI,IAAkB,MAAM;AAC5B,MAAIN,EAAM,kBACR,UAAU,UAAU,UAAUA,EAAM,cAAc,EAC/C,KAAK,MAAM;AACV,QAAAE,EAAc,QAAQ,eACtB,WAAW,MAAM;AACf,UAAAA,EAAc,QAAQ;AAAA,QACxB,GAAG,GAAI;AAAA,MACT,CAAC,EACA,MAAM,CAACK,MAAQ;AACd,gBAAQ,MAAM,yBAAyBA,CAAG,GAC1CL,EAAc,QAAQ,eACtB,WAAW,MAAM;AACf,UAAAA,EAAc,QAAQ;AAAA,QACxB,GAAG,GAAI;AAAA,MACT,CAAC;AAAA,IAEP;2BAIEM,EAkBM,OAAA,MAAA;AAAA,MAjBOP,EAAA,uBAAXO,EAaM,OAAA;AAAA;QAbsB,OAAKC,EAAEC,EAAAA,OAAO,UAAU;AAAA,MAAA;QAClDC,EAA0D,OAAA;AAAA,UAApD,OAAKF,EAAEC,EAAAA,OAAO,QAAQ;AAAA,QAAA,GAAE,0BAAsB,CAAA;AAAA,QACpDC,EAMM,OAAA;AAAA,UANA,OAAKF,EAAEC,EAAAA,OAAO,UAAU;AAAA,QAAA;UAC5BC,EAAkF,OAAA;AAAA,YAA5E,OAAKF,EAAEC,EAAAA,OAAO,UAAU;AAAA,YAAG,OAAOT,EAAA;AAAA,UAAA,KAAmBA,EAAA,cAAc,GAAA,IAAAW,CAAA;AAAA,UACzEC,EAGYC,EAAAC,CAAA,GAAA;AAAA,YAHA,eAAa;AAAA,YAAK,UAAS;AAAA,UAAA;YAE1B,WAAQ,MAA4C;AAAA,cAAzCC,EAAAC,EAAAf,EAAA,QAAgBA,EAAA,QAAa,MAAA,GAAA,CAAA;AAAA,YAAA;uBADnD,MAAwG;AAAA,cAAxGW,EAAwGC,EAAAI,CAAA,GAAA;AAAA,gBAAzF,OAAKT,EAAEC,EAAAA,OAAO,QAAQ;AAAA,gBAAE,OAAM;AAAA,gBAAgB,MAAMN,EAAA;AAAA,gBAAW,SAAOE;AAAA,cAAA;;;;;QAI9EL,EAAA,cAAXO,EAGM,OAAA;AAAA;UAHa,OAAKC,EAAEC,EAAAA,OAAO,KAAK;AAAA,QAAA;UACpCS,EAAA,CAAA,MAAAA,EAAA,CAAA,IAAAR,EAA2B,cAArB,kBAAc,EAAA;AAAA,UACpBA,EAAwB,gBAAfV,EAAA,KAAK,GAAA,CAAA;AAAA,QAAA;;MAGlBU,EAEM,OAAA;AAAA,QAFA,OAAKF,EAAEC,EAAAA,OAAO,IAAI;AAAA,MAAA,GAAE,iDAE1B,CAAA;AAAA,IAAA;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@platforma-sdk/ui-vue",
3
- "version": "1.45.35",
3
+ "version": "1.45.37",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "styles": "dist/index.js",
@@ -15,21 +15,20 @@
15
15
  "@types/node": "~24.5.2",
16
16
  "@types/semver": "^7.7.0",
17
17
  "@types/d3-format": "^3.0.4",
18
- "@milaboratories/miplots4": "^1.0.145",
19
18
  "ag-grid-enterprise": "~34.1.2",
20
19
  "ag-grid-vue3": "~34.1.2",
21
20
  "canonicalize": "~2.1.0",
22
21
  "lru-cache": "^11.2.2",
23
- "vue": "^3.5.13",
22
+ "vue": "^3.5.24",
24
23
  "@vueuse/core": "^13.3.0",
25
24
  "@vueuse/integrations": "^13.3.0",
26
25
  "d3-format": "^3.1.0",
27
26
  "zod": "~3.23.8",
28
27
  "@zip.js/zip.js": "^2.8.2",
29
- "@milaboratories/biowasm-tools": "2.0.0",
30
28
  "@milaboratories/ptabler-expression-js": "1.1.3",
29
+ "@milaboratories/biowasm-tools": "2.0.0",
31
30
  "@platforma-sdk/model": "1.45.35",
32
- "@milaboratories/uikit": "2.6.2"
31
+ "@milaboratories/uikit": "2.6.3"
33
32
  },
34
33
  "devDependencies": {
35
34
  "happy-dom": "^15.11.7",
@@ -44,11 +43,11 @@
44
43
  "yarpm": "^1.2.0",
45
44
  "fast-json-patch": "^3.1.1",
46
45
  "@faker-js/faker": "^9.2.0",
46
+ "@milaboratories/helpers": "1.12.0",
47
+ "@milaboratories/ts-builder": "1.0.5",
47
48
  "@milaboratories/ts-configs": "1.0.6",
48
49
  "@milaboratories/eslint-config": "1.0.5",
49
- "@milaboratories/ts-builder": "1.0.5",
50
- "@milaboratories/build-configs": "1.0.8",
51
- "@milaboratories/helpers": "1.12.0"
50
+ "@milaboratories/build-configs": "1.0.8"
52
51
  },
53
52
  "scripts": {
54
53
  "test": "vitest run --passWithNoTests",
package/src/lib.ts CHANGED
@@ -28,8 +28,6 @@ export * from './components/PlAgGridColumnManager';
28
28
 
29
29
  export * from './components/PlTableFilters';
30
30
 
31
- export * from './components/PlMultiSequenceAlignment';
32
-
33
31
  export * from './components/PlAnnotations';
34
32
 
35
33
  export * from './components/PlBtnExportArchive';