@platforma-sdk/ui-vue 1.42.23 → 1.42.26

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 (32) hide show
  1. package/.turbo/turbo-build.log +15 -15
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +12 -0
  4. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js +48 -51
  5. package/dist/components/PlAnnotations/components/FilterSidebar.vue2.js.map +1 -1
  6. package/dist/components/PlAnnotations/components/FilterSidebar.vue3.js +6 -8
  7. package/dist/components/PlAnnotations/components/FilterSidebar.vue3.js.map +1 -1
  8. package/dist/plugins/Monetization/LimitCard.vue2.js +59 -46
  9. package/dist/plugins/Monetization/LimitCard.vue2.js.map +1 -1
  10. package/dist/plugins/Monetization/LimitCard.vue3.js +21 -17
  11. package/dist/plugins/Monetization/LimitCard.vue3.js.map +1 -1
  12. package/dist/plugins/Monetization/MonetizationSidebar.vue.js +39 -39
  13. package/dist/plugins/Monetization/MonetizationSidebar.vue.js.map +1 -1
  14. package/dist/plugins/Monetization/RunStatus.vue.d.ts +1 -0
  15. package/dist/plugins/Monetization/RunStatus.vue2.js +17 -20
  16. package/dist/plugins/Monetization/RunStatus.vue2.js.map +1 -1
  17. package/dist/plugins/Monetization/RunStatus.vue3.js +15 -13
  18. package/dist/plugins/Monetization/RunStatus.vue3.js.map +1 -1
  19. package/dist/plugins/Monetization/UserCabinetCard.vue.d.ts +1 -0
  20. package/dist/plugins/Monetization/UserCabinetCard.vue2.js +42 -34
  21. package/dist/plugins/Monetization/UserCabinetCard.vue2.js.map +1 -1
  22. package/dist/plugins/Monetization/UserCabinetCard.vue3.js +17 -15
  23. package/dist/plugins/Monetization/UserCabinetCard.vue3.js.map +1 -1
  24. package/dist/plugins/Monetization/useInfo.js +5 -5
  25. package/dist/plugins/Monetization/useInfo.js.map +1 -1
  26. package/package.json +8 -8
  27. package/src/components/PlAnnotations/components/FilterSidebar.vue +0 -7
  28. package/src/plugins/Monetization/LimitCard.vue +94 -40
  29. package/src/plugins/Monetization/MonetizationSidebar.vue +3 -5
  30. package/src/plugins/Monetization/RunStatus.vue +11 -15
  31. package/src/plugins/Monetization/UserCabinetCard.vue +23 -1
  32. package/src/plugins/Monetization/useInfo.ts +1 -1
@@ -1,10 +1,10 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.42.23 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.26 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder build --target browser-lib
5
5
 
6
6
  Building browser-lib project...
7
- ↳ vite.js build --config configs/vite.browser-lib.config.js --mode production
7
+ ↳ vite.js build --config /configs/vite.browser-lib.config.js --mode production
8
8
  vite v6.3.5 building for production...
9
9
  transforming...
10
10
  ✓ 238 modules transformed.
@@ -21,8 +21,8 @@ computing gzip size...
21
21
  dist/components/PlAgCellFile/PlAgCellFile.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
22
22
  dist/components/PlAgDataTable/PlAgRowCount.vue2.js  0.11 kB │ gzip: 0.12 kB │ map: 0.10 kB
23
23
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
24
- dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
25
24
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
25
+ dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
26
26
  dist/components/PlAgRowNumHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
27
27
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
28
28
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -144,35 +144,34 @@ computing gzip size...
144
144
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/functions/coerce.js  1.18 kB │ gzip: 0.58 kB │ map: 3.54 kB
145
145
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/min-version.js  1.20 kB │ gzip: 0.57 kB │ map: 2.88 kB
146
146
  dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.js  1.23 kB │ gzip: 0.70 kB │ map: 4.70 kB
147
- dist/plugins/Monetization/UserCabinetCard.vue3.js  1.24 kB │ gzip: 0.66 kB │ map: 0.11 kB
147
+ dist/plugins/Monetization/RunStatus.vue2.js  1.27 kB │ gzip: 0.59 kB │ map: 2.46 kB
148
148
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue.js  1.30 kB │ gzip: 0.66 kB │ map: 1.40 kB
149
- dist/plugins/Monetization/RunStatus.vue2.js  1.32 kB │ gzip: 0.61 kB │ map: 2.66 kB
150
149
  dist/createModel.js  1.39 kB │ gzip: 0.65 kB │ map: 3.91 kB
151
150
  dist/components/PlAgDataTable/types.js  1.40 kB │ gzip: 0.56 kB │ map: 9.46 kB
152
151
  dist/utils.js  1.51 kB │ gzip: 0.69 kB │ map: 3.53 kB
153
152
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/ranges/outside.js  1.55 kB │ gzip: 0.65 kB │ map: 3.99 kB
153
+ dist/plugins/Monetization/UserCabinetCard.vue3.js  1.55 kB │ gzip: 0.77 kB │ map: 0.11 kB
154
154
  dist/components/PlAgDataTable/sources/focus-row.js  1.57 kB │ gzip: 0.75 kB │ map: 2.65 kB
155
155
  dist/components/PlAgCsvExporter/export-csv.js  1.60 kB │ gzip: 0.73 kB │ map: 3.72 kB
156
156
  dist/AgGridVue/createAgGridColDef.js  1.61 kB │ gzip: 0.72 kB │ map: 9.40 kB
157
- dist/plugins/Monetization/RunStatus.vue3.js  1.63 kB │ gzip: 0.77 kB │ map: 0.11 kB
158
157
  dist/aggrid.js  1.65 kB │ gzip: 0.79 kB │ map: 3.09 kB
159
158
  dist/internal/createAppModel.js  1.73 kB │ gzip: 0.77 kB │ map: 4.81 kB
159
+ dist/plugins/Monetization/RunStatus.vue3.js  1.79 kB │ gzip: 0.82 kB │ map: 0.11 kB
160
160
  dist/internal/UpdateSerializer.js  1.86 kB │ gzip: 0.80 kB │ map: 4.63 kB
161
161
  dist/components/PlMultiSequenceAlignment/markup.js  1.99 kB │ gzip: 1.02 kB │ map: 6.53 kB
162
- dist/plugins/Monetization/UserCabinetCard.vue2.js  2.11 kB │ gzip: 0.88 kB │ map: 3.01 kB
163
162
  dist/defineApp.js  2.15 kB │ gzip: 0.96 kB │ map: 9.58 kB
164
- dist/plugins/Monetization/useInfo.js  2.19 kB │ gzip: 0.81 kB │ map: 4.33 kB
163
+ dist/plugins/Monetization/useInfo.js  2.18 kB │ gzip: 0.80 kB │ map: 4.32 kB
165
164
  dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue.js  2.20 kB │ gzip: 1.05 kB │ map: 2.83 kB
166
165
  dist/components/PlAnnotations/components/PlAnnotationCreateDialog.vue.js  2.35 kB │ gzip: 0.96 kB │ map: 2.64 kB
167
- dist/plugins/Monetization/LimitCard.vue3.js  2.55 kB │ gzip: 0.92 kB │ map: 0.11 kB
166
+ dist/plugins/Monetization/UserCabinetCard.vue2.js  2.36 kB │ gzip: 0.95 kB │ map: 3.49 kB
168
167
  dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js  2.57 kB │ gzip: 1.16 kB │ map: 5.30 kB
169
168
  dist/components/PlTableFilters/PlTableFiltersV2.vue3.js  2.58 kB │ gzip: 0.94 kB │ map: 0.12 kB
170
169
  dist/components/PlTableFilters/filters-state.js  2.60 kB │ gzip: 1.08 kB │ map: 7.95 kB
171
- dist/plugins/Monetization/LimitCard.vue2.js  2.61 kB │ gzip: 0.88 kB │ map: 4.83 kB
172
170
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/comparator.js  2.65 kB │ gzip: 0.94 kB │ map: 6.36 kB
173
171
  dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js  2.71 kB │ gzip: 1.14 kB │ map: 0.13 kB
174
172
  dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/helpers.js  2.79 kB │ gzip: 1.21 kB │ map: 8.92 kB
175
173
  dist/components/PlAgDataTable/sources/row-number.js  3.10 kB │ gzip: 1.34 kB │ map: 8.36 kB
174
+ dist/plugins/Monetization/LimitCard.vue3.js  3.10 kB │ gzip: 1.09 kB │ map: 0.11 kB
176
175
  dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js  3.11 kB │ gzip: 1.26 kB │ map: 6.04 kB
177
176
  dist/composition/fileContent.js  3.15 kB │ gzip: 1.17 kB │ map: 9.49 kB
178
177
  dist/components/PlTableFilters/PlTableAddFilterV2.vue.js  3.16 kB │ gzip: 1.27 kB │ map: 3.95 kB
@@ -186,14 +185,15 @@ computing gzip size...
186
185
  dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js  3.56 kB │ gzip: 1.19 kB │ map: 5.67 kB
187
186
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js  3.67 kB │ gzip: 1.01 kB │ map: 5.45 kB
188
187
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  3.84 kB │ gzip: 1.52 kB │ map: 4.99 kB
188
+ dist/plugins/Monetization/LimitCard.vue2.js  3.84 kB │ gzip: 1.15 kB │ map: 7.17 kB
189
189
  dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js  3.89 kB │ gzip: 1.38 kB │ map: 5.48 kB
190
190
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js  4.03 kB │ gzip: 1.23 kB │ map: 12.92 kB
191
+ dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.50 kB │ gzip: 1.67 kB │ map: 5.97 kB
191
192
  dist/components/PlAnnotations/components/DynamicForm.vue2.js  4.52 kB │ gzip: 1.41 kB │ map: 6.96 kB
192
- dist/components/PlAnnotations/components/FilterSidebar.vue2.js  4.65 kB │ gzip: 1.73 kB │ map: 6.15 kB
193
- dist/plugins/Monetization/MonetizationSidebar.vue.js  4.73 kB │ gzip: 1.76 kB │ map: 5.01 kB
193
+ dist/plugins/Monetization/MonetizationSidebar.vue.js  4.70 kB │ gzip: 1.74 kB │ map: 4.91 kB
194
194
  dist/components/PlMultiSequenceAlignment/chemical-properties.js  4.75 kB │ gzip: 1.67 kB │ map: 11.78 kB
195
195
  dist/components/BlockLayout.vue2.js  4.96 kB │ gzip: 1.83 kB │ map: 2.96 kB
196
- dist/components/PlAnnotations/components/FilterSidebar.vue3.js  5.58 kB │ gzip: 1.63 kB │ map: 0.11 kB
196
+ dist/components/PlAnnotations/components/FilterSidebar.vue3.js  5.48 kB │ gzip: 1.59 kB │ map: 0.11 kB
197
197
  dist/components/PlAnnotations/components/AnnotationsSidebar.vue3.js  5.67 kB │ gzip: 1.67 kB │ map: 0.11 kB
198
198
  dist/internal/createAppV1.js  5.75 kB │ gzip: 1.83 kB │ map: 15.32 kB
199
199
  dist/components/PlTableFilters/PlTableFiltersV2.vue2.js  6.10 kB │ gzip: 2.02 kB │ map: 9.27 kB
@@ -215,7 +215,7 @@ computing gzip size...
215
215
  dist/components/PlAgRowNumHeader.vue.js 44.65 kB │ gzip: 29.29 kB │ map: 3.70 kB
216
216
  dist/AgGridVue/useAgGridOptions.js 49.29 kB │ gzip: 30.15 kB │ map: 16.35 kB
217
217
  dist/components/PlAgDataTable/PlAgDataTableV2.vue2.js 50.33 kB │ gzip: 31.04 kB │ map: 33.70 kB
218
- [vite:dts] Declaration files built in 9474ms.
218
+ [vite:dts] Declaration files built in 9046ms.
219
219
 
220
- ✓ built in 11.35s
220
+ ✓ built in 10.84s
221
221
  Build completed successfully
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.42.23 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.26 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > ts-builder types --target browser-lib
5
5
 
6
6
  ↳ vue-tsc.js --noEmit --project ./tsconfig.json
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.42.26
4
+
5
+ ### Patch Changes
6
+
7
+ - 5714f79: Fix Monetization sidebar appearance
8
+
9
+ ## 1.42.24
10
+
11
+ ### Patch Changes
12
+
13
+ - 448a0c6: remove wrong ui tip
14
+
3
15
  ## 1.42.23
4
16
 
5
17
  ### Patch Changes
@@ -1,11 +1,11 @@
1
- import { defineComponent as E, mergeModels as S, useModel as B, createBlock as m, createCommentVNode as w, openBlock as s, unref as n, withCtx as o, createElementVNode as p, normalizeClass as c, createVNode as f, createTextVNode as y, createElementBlock as M, toDisplayString as g } from "vue";
2
- import { isNil as i } from "../../../lib/util/helpers/dist/utils.js";
1
+ import { defineComponent as E, mergeModels as S, useModel as B, createBlock as m, createCommentVNode as M, openBlock as i, unref as n, withCtx as a, createElementVNode as y, normalizeClass as v, createVNode as p, createTextVNode as c, createElementBlock as N, toDisplayString as g } from "vue";
2
+ import { isNil as s } from "../../../lib/util/helpers/dist/utils.js";
3
3
  import { randomInt as F } from "../../../lib/util/helpers/dist/random.js";
4
- import { PlSidebarItem as N, PlBtnSecondary as V, PlElementList as P, PlEditableTitle as U } from "@milaboratories/uikit";
4
+ import { PlSidebarItem as w, PlBtnSecondary as V, PlElementList as P, PlEditableTitle as U } from "@milaboratories/uikit";
5
5
  import { getFilterUiMetadata as $ } from "@platforma-sdk/model";
6
6
  import { createDefaultFilterMetadata as D } from "../utils.js";
7
7
  import I from "./DynamicForm.vue.js";
8
- const L = { key: 1 }, H = /* @__PURE__ */ E({
8
+ const j = { key: 1 }, H = /* @__PURE__ */ E({
9
9
  __name: "FilterSidebar",
10
10
  props: /* @__PURE__ */ S({
11
11
  columns: {},
@@ -16,21 +16,21 @@ const L = { key: 1 }, H = /* @__PURE__ */ E({
16
16
  stepModifiers: {}
17
17
  }),
18
18
  emits: ["update:step"],
19
- setup(v) {
20
- const a = B(v, "step"), r = v, b = () => {
21
- a.value.filter.filters.push({
19
+ setup(f) {
20
+ const o = B(f, "step"), d = f, x = () => {
21
+ o.value.filter.filters.push({
22
22
  id: F(),
23
23
  isExpanded: !0,
24
24
  type: void 0
25
25
  });
26
26
  };
27
- async function h() {
28
- const t = await r.getValuesForSelectedColumns();
27
+ async function b() {
28
+ const t = await d.getValuesForSelectedColumns();
29
29
  if (!t || t.values.length === 0) return;
30
- const { columnId: l, values: e } = t, d = e.slice(0, 3).join(", ") + (e.length > 3 ? ` and ${e.length - 3} more` : "");
31
- a.value.filter.filters.push({
30
+ const { columnId: l, values: e } = t, r = e.slice(0, 3).join(", ") + (e.length > 3 ? ` and ${e.length - 3} more` : "");
31
+ o.value.filter.filters.push({
32
32
  id: F(),
33
- name: `Selected list (${d})`,
33
+ name: `Selected list (${r})`,
34
34
  isExpanded: !1,
35
35
  type: "or",
36
36
  filters: e.map((u) => ({
@@ -40,79 +40,76 @@ const L = { key: 1 }, H = /* @__PURE__ */ E({
40
40
  }))
41
41
  });
42
42
  }
43
- const x = (t) => {
43
+ const h = (t) => {
44
44
  var l;
45
- return i(t.name) ? ((l = r.columns.find((e) => "column" in t ? e.id === t.column : !1)) == null ? void 0 : l.label) ?? t.type : t.name;
46
- }, k = (t) => i(t.type) ? D() : $(t.type).form, C = (t) => t.type === "or" || t.type === "and" ? t.filters.map((l) => "value" in l && !i(l.value) ? l.value : null).filter((l) => !i(l)).join(", ") : null;
47
- return (t, l) => a.value ? (s(), m(n(N), { key: 0 }, {
48
- "header-content": o(() => [
49
- (s(), m(n(U), {
50
- key: a.value.id,
51
- modelValue: a.value.label,
52
- "onUpdate:modelValue": l[0] || (l[0] = (e) => a.value.label = e),
45
+ return s(t.name) ? ((l = d.columns.find((e) => "column" in t ? e.id === t.column : !1)) == null ? void 0 : l.label) ?? t.type : t.name;
46
+ }, k = (t) => s(t.type) ? D() : $(t.type).form, C = (t) => t.type === "or" || t.type === "and" ? t.filters.map((l) => "value" in l && !s(l.value) ? l.value : null).filter((l) => !s(l)).join(", ") : null;
47
+ return (t, l) => o.value ? (i(), m(n(w), { key: 0 }, {
48
+ "header-content": a(() => [
49
+ (i(), m(n(U), {
50
+ key: o.value.id,
51
+ modelValue: o.value.label,
52
+ "onUpdate:modelValue": l[0] || (l[0] = (e) => o.value.label = e),
53
53
  "max-length": 40,
54
54
  "max-width": "600px",
55
55
  placeholder: "Annotation Name",
56
- autofocus: a.value.label.length === 0
56
+ autofocus: o.value.label.length === 0
57
57
  }, null, 8, ["modelValue", "autofocus"]))
58
58
  ]),
59
- "body-content": o(() => [
60
- p("div", {
61
- class: c(t.$style.root)
59
+ "body-content": a(() => [
60
+ y("div", {
61
+ class: v(t.$style.root)
62
62
  }, [
63
- p("div", {
64
- class: c(t.$style.actions)
63
+ y("div", {
64
+ class: v(t.$style.actions)
65
65
  }, [
66
- f(n(V), {
66
+ p(n(V), {
67
67
  style: { width: "100%" },
68
68
  icon: "add",
69
- onClick: b
69
+ onClick: x
70
70
  }, {
71
- default: o(() => l[2] || (l[2] = [
72
- y(" Filter ")
71
+ default: a(() => l[2] || (l[2] = [
72
+ c(" Filter ")
73
73
  ])),
74
74
  _: 1
75
75
  }),
76
- f(n(V), {
76
+ p(n(V), {
77
77
  style: { width: "100%" },
78
78
  icon: "add",
79
- disabled: !r.hasSelectedColumns,
80
- onClick: h
79
+ disabled: !d.hasSelectedColumns,
80
+ onClick: b
81
81
  }, {
82
- default: o(() => l[3] || (l[3] = [
83
- y(" From selection ")
82
+ default: a(() => l[3] || (l[3] = [
83
+ c(" From selection ")
84
84
  ])),
85
85
  _: 1
86
86
  }, 8, ["disabled"])
87
87
  ], 2),
88
- p("span", {
89
- class: c(t.$style.tip)
90
- }, "Lower annotations override the ones above. Rearrange them by dragging.", 2),
91
- f(n(P), {
92
- items: a.value.filter.filters,
93
- "onUpdate:items": l[1] || (l[1] = (e) => a.value.filter.filters = e),
88
+ p(n(P), {
89
+ items: o.value.filter.filters,
90
+ "onUpdate:items": l[1] || (l[1] = (e) => o.value.filter.filters = e),
94
91
  "get-item-key": (e) => e.id,
95
92
  "is-expanded": (e) => !!e.isExpanded,
96
93
  "on-expand": (e) => e.isExpanded = !e.isExpanded
97
94
  }, {
98
- "item-title": o(({ item: e }) => [
99
- y(g(x(e)), 1)
95
+ "item-title": a(({ item: e }) => [
96
+ c(g(h(e)), 1)
100
97
  ]),
101
- "item-content": o(({ item: e, index: d }) => [
102
- e.type !== "or" && e.type !== "and" ? (s(), m(I, {
98
+ "item-content": a(({ item: e, index: r }) => [
99
+ e.type !== "or" && e.type !== "and" ? (i(), m(I, {
103
100
  key: 0,
104
- modelValue: a.value.filter.filters[d],
105
- "onUpdate:modelValue": (u) => a.value.filter.filters[d] = u,
101
+ modelValue: o.value.filter.filters[r],
102
+ "onUpdate:modelValue": (u) => o.value.filter.filters[r] = u,
106
103
  "form-metadata": k(e),
107
- columns: r.columns
108
- }, null, 8, ["modelValue", "onUpdate:modelValue", "form-metadata", "columns"])) : (s(), M("div", L, g(C(e)), 1))
104
+ columns: d.columns
105
+ }, null, 8, ["modelValue", "onUpdate:modelValue", "form-metadata", "columns"])) : (i(), N("div", j, g(C(e)), 1))
109
106
  ]),
110
107
  _: 1
111
108
  }, 8, ["items", "get-item-key", "is-expanded", "on-expand"])
112
109
  ], 2)
113
110
  ]),
114
111
  _: 1
115
- })) : w("", !0);
112
+ })) : M("", !0);
116
113
  }
117
114
  });
118
115
  export {
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/FilterSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isNil, randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { AnnotationStepUi, FilterUi, PObjectId, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { getFilterUiMetadata } from '@platforma-sdk/model';\nimport type { SimplifiedUniversalPColumnEntry } from '../types';\nimport { createDefaultFilterMetadata } from '../utils';\nimport DynamicForm from './DynamicForm.vue';\n\n// Models\nconst step = defineModel<AnnotationStepUi>('step', { required: true });\n// Props\nconst props = defineProps<{\n columns: SimplifiedUniversalPColumnEntry[];\n hasSelectedColumns: boolean;\n getValuesForSelectedColumns: () => Promise<undefined | { columnId: PObjectId; values: string[] }>;\n}>();\n// Actions\nconst addFilterPlaceholder = () => {\n step.value.filter.filters.push({\n id: randomInt(),\n isExpanded: true,\n type: undefined,\n });\n};\n\nasync function addFilterFromSelected() {\n const data = await props.getValuesForSelectedColumns();\n if (!data || data.values.length === 0) return;\n\n const { columnId, values } = data;\n const shortReminder = values.slice(0, 3).join(', ') + (values.length > 3 ? ` and ${values.length - 3} more` : '');\n\n step.value.filter.filters.push({\n id: randomInt(),\n name: `Selected list (${shortReminder})`,\n isExpanded: false,\n type: 'or',\n filters: values.map((value) => ({\n type: 'patternEquals',\n column: columnId as SUniversalPColumnId,\n value,\n })),\n });\n}\n\n// Getters\nconst getColumnLabel = (filter: FilterUi) => {\n if (!isNil(filter.name)) return filter.name;\n return props.columns\n .find((c) => 'column' in filter ? c.id === filter.column : false)?.label\n ?? filter.type;\n};\n\nconst getFormMetadata = (filter: FilterUi) => {\n return !isNil(filter.type) ? getFilterUiMetadata(filter.type).form : createDefaultFilterMetadata();\n};\n\nconst getFilterValues = (filter: FilterUi) => {\n if (filter.type === 'or' || filter.type === 'and') {\n return filter.filters.map((f) => 'value' in f && !isNil(f.value) ? f.value : null).filter((v) => !isNil(v)).join (', ');\n }\n return null;\n};\n</script>\n\n<template>\n <PlSidebarItem v-if=\"step\">\n <template #header-content>\n <PlEditableTitle\n :key=\"step.id\"\n v-model=\"step.label\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Name\"\n :autofocus=\"step.label.length === 0\"\n />\n </template>\n <template #body-content>\n <div :class=\"$style.root\">\n <div :class=\"$style.actions\">\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" @click=\"addFilterPlaceholder\">\n Filter\n </PlBtnSecondary>\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" :disabled=\"!props.hasSelectedColumns\" @click=\"addFilterFromSelected\">\n From selection\n </PlBtnSecondary>\n </div>\n\n <span :class=\"$style.tip\">Lower annotations override the ones above. Rearrange them by dragging.</span>\n\n <PlElementList\n v-model:items=\"step.filter.filters\"\n :get-item-key=\"(item) => item.id!\"\n :is-expanded=\"(item) => Boolean(item.isExpanded)\"\n :on-expand=\"(item) => item.isExpanded = !Boolean(item.isExpanded)\"\n >\n <template #item-title=\"{ item }\">\n {{ getColumnLabel(item) }}\n </template>\n <template #item-content=\"{ item, index }\">\n <template v-if=\"item.type !== 'or' && item.type !== 'and'\">\n <DynamicForm\n v-model=\"step.filter.filters[index]\"\n :form-metadata=\"getFormMetadata(item)\"\n :columns=\"props.columns\"\n />\n </template>\n <template v-else>\n <div>{{ getFilterValues(item) }}</div>\n </template>\n </template>\n </PlElementList>\n </div>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use '@milaboratories/uikit/styles/variables' as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.actions {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n\n.tip {\n margin-top: 12px;\n color: var(--txt-03);\n}\n</style>\n"],"names":["step","_useModel","props","__props","addFilterPlaceholder","randomInt","addFilterFromSelected","data","columnId","values","shortReminder","value","getColumnLabel","filter","isNil","_a","c","getFormMetadata","createDefaultFilterMetadata","getFilterUiMetadata","getFilterValues","f","v"],"mappings":";;;;;;;;;;;;;;;;;;;AAeA,UAAMA,IAAOC,KAA8B,MAA0B,GAE/DC,IAAQC,GAMRC,IAAuB,MAAM;AACjC,MAAAJ,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,YAAY;AAAA,QACZ,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAEA,mBAAeC,IAAwB;AACrC,YAAMC,IAAO,MAAML,EAAM,4BAAA;AACzB,UAAI,CAACK,KAAQA,EAAK,OAAO,WAAW,EAAG;AAEvC,YAAM,EAAE,UAAAC,GAAU,QAAAC,EAAA,IAAWF,GACvBG,IAAgBD,EAAO,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,KAAKA,EAAO,SAAS,IAAI,QAAQA,EAAO,SAAS,CAAC,UAAU;AAE9G,MAAAT,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,MAAM,kBAAkBK,CAAa;AAAA,QACrC,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,SAASD,EAAO,IAAI,CAACE,OAAW;AAAA,UAC9B,MAAM;AAAA,UACN,QAAQH;AAAA,UACR,OAAAG;AAAA,QAAA,EACA;AAAA,MAAA,CACH;AAAA,IACH;AAGA,UAAMC,IAAiB,CAACC,MAAqB;;AAC3C,aAAKC,EAAMD,EAAO,IAAI,MACfE,IAAAb,EAAM,QACV,KAAK,CAACc,MAAM,YAAYH,IAASG,EAAE,OAAOH,EAAO,SAAS,EAAK,MAD3D,gBAAAE,EAC8D,UAChEF,EAAO,OAHoBA,EAAO;AAAA,IAIzC,GAEMI,IAAkB,CAACJ,MACfC,EAAMD,EAAO,IAAI,IAA4CK,EAAA,IAAxCC,EAAoBN,EAAO,IAAI,EAAE,MAG1DO,IAAkB,CAACP,MACnBA,EAAO,SAAS,QAAQA,EAAO,SAAS,QACnCA,EAAO,QAAQ,IAAI,CAACQ,MAAM,WAAWA,KAAK,CAACP,EAAMO,EAAE,KAAK,IAAIA,EAAE,QAAQ,IAAI,EAAE,OAAO,CAACC,MAAM,CAACR,EAAMQ,CAAC,CAAC,EAAE,KAAM,IAAI,IAEjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"FilterSidebar.vue2.js","sources":["../../../../src/components/PlAnnotations/components/FilterSidebar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isNil, randomInt } from '@milaboratories/helpers';\nimport {\n PlBtnSecondary,\n PlEditableTitle,\n PlElementList,\n PlSidebarItem,\n} from '@milaboratories/uikit';\nimport type { AnnotationStepUi, FilterUi, PObjectId, SUniversalPColumnId } from '@platforma-sdk/model';\nimport { getFilterUiMetadata } from '@platforma-sdk/model';\nimport type { SimplifiedUniversalPColumnEntry } from '../types';\nimport { createDefaultFilterMetadata } from '../utils';\nimport DynamicForm from './DynamicForm.vue';\n\n// Models\nconst step = defineModel<AnnotationStepUi>('step', { required: true });\n// Props\nconst props = defineProps<{\n columns: SimplifiedUniversalPColumnEntry[];\n hasSelectedColumns: boolean;\n getValuesForSelectedColumns: () => Promise<undefined | { columnId: PObjectId; values: string[] }>;\n}>();\n// Actions\nconst addFilterPlaceholder = () => {\n step.value.filter.filters.push({\n id: randomInt(),\n isExpanded: true,\n type: undefined,\n });\n};\n\nasync function addFilterFromSelected() {\n const data = await props.getValuesForSelectedColumns();\n if (!data || data.values.length === 0) return;\n\n const { columnId, values } = data;\n const shortReminder = values.slice(0, 3).join(', ') + (values.length > 3 ? ` and ${values.length - 3} more` : '');\n\n step.value.filter.filters.push({\n id: randomInt(),\n name: `Selected list (${shortReminder})`,\n isExpanded: false,\n type: 'or',\n filters: values.map((value) => ({\n type: 'patternEquals',\n column: columnId as SUniversalPColumnId,\n value,\n })),\n });\n}\n\n// Getters\nconst getColumnLabel = (filter: FilterUi) => {\n if (!isNil(filter.name)) return filter.name;\n return props.columns\n .find((c) => 'column' in filter ? c.id === filter.column : false)?.label\n ?? filter.type;\n};\n\nconst getFormMetadata = (filter: FilterUi) => {\n return !isNil(filter.type) ? getFilterUiMetadata(filter.type).form : createDefaultFilterMetadata();\n};\n\nconst getFilterValues = (filter: FilterUi) => {\n if (filter.type === 'or' || filter.type === 'and') {\n return filter.filters.map((f) => 'value' in f && !isNil(f.value) ? f.value : null).filter((v) => !isNil(v)).join (', ');\n }\n return null;\n};\n</script>\n\n<template>\n <PlSidebarItem v-if=\"step\">\n <template #header-content>\n <PlEditableTitle\n :key=\"step.id\"\n v-model=\"step.label\"\n :max-length=\"40\"\n max-width=\"600px\"\n placeholder=\"Annotation Name\"\n :autofocus=\"step.label.length === 0\"\n />\n </template>\n <template #body-content>\n <div :class=\"$style.root\">\n <div :class=\"$style.actions\">\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" @click=\"addFilterPlaceholder\">\n Filter\n </PlBtnSecondary>\n <PlBtnSecondary style=\"width: 100%;\" icon=\"add\" :disabled=\"!props.hasSelectedColumns\" @click=\"addFilterFromSelected\">\n From selection\n </PlBtnSecondary>\n </div>\n\n <PlElementList\n v-model:items=\"step.filter.filters\"\n :get-item-key=\"(item) => item.id!\"\n :is-expanded=\"(item) => Boolean(item.isExpanded)\"\n :on-expand=\"(item) => item.isExpanded = !Boolean(item.isExpanded)\"\n >\n <template #item-title=\"{ item }\">\n {{ getColumnLabel(item) }}\n </template>\n <template #item-content=\"{ item, index }\">\n <template v-if=\"item.type !== 'or' && item.type !== 'and'\">\n <DynamicForm\n v-model=\"step.filter.filters[index]\"\n :form-metadata=\"getFormMetadata(item)\"\n :columns=\"props.columns\"\n />\n </template>\n <template v-else>\n <div>{{ getFilterValues(item) }}</div>\n </template>\n </template>\n </PlElementList>\n </div>\n </template>\n </PlSidebarItem>\n</template>\n\n<style lang=\"scss\" module>\n@use '@milaboratories/uikit/styles/variables' as *;\n\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n}\n\n.actions {\n display: flex;\n flex-direction: row;\n gap: 12px;\n}\n</style>\n"],"names":["step","_useModel","props","__props","addFilterPlaceholder","randomInt","addFilterFromSelected","data","columnId","values","shortReminder","value","getColumnLabel","filter","isNil","_a","c","getFormMetadata","createDefaultFilterMetadata","getFilterUiMetadata","getFilterValues","f","v"],"mappings":";;;;;;;;;;;;;;;;;;;AAeA,UAAMA,IAAOC,KAA8B,MAA0B,GAE/DC,IAAQC,GAMRC,IAAuB,MAAM;AACjC,MAAAJ,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,YAAY;AAAA,QACZ,MAAM;AAAA,MAAA,CACP;AAAA,IACH;AAEA,mBAAeC,IAAwB;AACrC,YAAMC,IAAO,MAAML,EAAM,4BAAA;AACzB,UAAI,CAACK,KAAQA,EAAK,OAAO,WAAW,EAAG;AAEvC,YAAM,EAAE,UAAAC,GAAU,QAAAC,EAAA,IAAWF,GACvBG,IAAgBD,EAAO,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,KAAKA,EAAO,SAAS,IAAI,QAAQA,EAAO,SAAS,CAAC,UAAU;AAE9G,MAAAT,EAAK,MAAM,OAAO,QAAQ,KAAK;AAAA,QAC7B,IAAIK,EAAA;AAAA,QACJ,MAAM,kBAAkBK,CAAa;AAAA,QACrC,YAAY;AAAA,QACZ,MAAM;AAAA,QACN,SAASD,EAAO,IAAI,CAACE,OAAW;AAAA,UAC9B,MAAM;AAAA,UACN,QAAQH;AAAA,UACR,OAAAG;AAAA,QAAA,EACA;AAAA,MAAA,CACH;AAAA,IACH;AAGA,UAAMC,IAAiB,CAACC,MAAqB;;AAC3C,aAAKC,EAAMD,EAAO,IAAI,MACfE,IAAAb,EAAM,QACV,KAAK,CAACc,MAAM,YAAYH,IAASG,EAAE,OAAOH,EAAO,SAAS,EAAK,MAD3D,gBAAAE,EAC8D,UAChEF,EAAO,OAHoBA,EAAO;AAAA,IAIzC,GAEMI,IAAkB,CAACJ,MACfC,EAAMD,EAAO,IAAI,IAA4CK,EAAA,IAAxCC,EAAoBN,EAAO,IAAI,EAAE,MAG1DO,IAAkB,CAACP,MACnBA,EAAO,SAAS,QAAQA,EAAO,SAAS,QACnCA,EAAO,QAAQ,IAAI,CAACQ,MAAM,WAAWA,KAAK,CAACP,EAAMO,EAAE,KAAK,IAAIA,EAAE,QAAQ,IAAI,EAAE,OAAO,CAACC,MAAM,CAACR,EAAMQ,CAAC,CAAC,EAAE,KAAM,IAAI,IAEjH;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,13 +1,11 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(":root{--txt-00: #ffffff;--txt-01: light-dark(#110529, #ffffff);--txt-02: #231842;--txt-03: #9d9eae;--txt-mask: #cfd1db;--txt-focus: #07ad3e;--txt-error: #f1222f;--txt-link: #5f31cc;--ic-00: #ffffff;--ic-01: #110529;--ic-02: #cfd1db;--ic-accent: #07ad3e;--border-color-default: #110529;--border-color-hover: #231842;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #e1e3eb;--border-color-div-bw: #ffffff;--btn-accent-default: #845cff;--btn-accent-hover: #9470ff;--btn-accent-press: #6f4dd6;--btn-primary-default: #110529;--btn-primary-hover: #231842;--btn-primary-press: #080214;--btn-sec-hover-white: rgba(255, 255, 255, .5);--btn-sec-hover-grey: light-dark(rgba(155, 171, 204, .16), rgba(131, 131, 163, .16));--btn-sec-press-grey: rgba(155, 171, 204, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--btn-accent-positive-500: #ECFBE5;--dis-00: #ffffff;--dis-01: light-dark(#cfd1db, #3d3d42);--bg-base-dark: #110529;--bg-base-light: #f7f8fa;--bg-elevated-01: #ffffff;--bg-elevated-02: #e1e3eb;--bg-error: #FFF5F5;--filled-V-BG: #d0f0c0;--filled-D-BG: #ffcecc;--filled-N-BG: #faf5aa;--filled-J-BG: #dedbff;--notification-neutral: linear-gradient(90deg, #d6d9ff 0%, #fff 100%);--notification-success: linear-gradient(90deg, #c9f0b6 0%, #fff 100%);--notification-warning: linear-gradient(90deg, #fee0a3 0%, #fff 100%);--notification-error: linear-gradient(90deg, #ffb8b8 0%, #fff 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--gradient-blue-violet: linear-gradient(180deg, #adb8ff 0%, #d6e9ff 100%);--gradient-blue-clear: linear-gradient(180deg, #85beff 0%, #cef 100%);--gradient-orange: linear-gradient(180deg, #ffb766 0%, #ffeaa3 100%);--gradient-mint: linear-gradient(180deg, #7dd1d1 0%, #c8fae9 100%);--gradient-lime: linear-gradient(180deg, #bfe062 0%, #e4ffad 100%);--gradient-rose: linear-gradient(0deg, #ffddd6 0%, #ff99c9 100%);--gradient-red: linear-gradient(0deg, #ffd5cc 0%, #ff9494 100%);--gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--TT-gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--gradient-light-lime: linear-gradient(180deg, #EBFFEB 0%, transparent 100%);--shadow-l: 0px 8px 16px -4px rgba(15, 36, 77, .16), 0px 12px 32px -4px rgba(15, 36, 77, .16);--main-spacing: 24px;--gap-v: 24px;--gap-h: 12px;--border-radius: 6px;--z-splash: 50;--z-slide-shadow: 80;--z-slide-dialog: 81;--z-dialog: 100;--z-dropdown-options: 110;--z-tooltip: 120;--z-context-menu: 1001;--scrollbar-width: 6px}[data-theme=dark]{--txt-00: #ffffff;--txt-01: #FFFFFF;--txt-02: #adaeb8;--txt-03: #60616b;--txt-mask: #3D3D42;--txt-focus: #87e087;--txt-error: #ff5c5c;--txt-link: #9470ff;--ic-00: #ffffff;--ic-01: #FFFFFF;--ic-02: #60616b;--ic-accent: #87e087;--border-color-default: #60616b;--border-color-hover: #adaeb8;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #232329;--border-color-div-bw: #000000;--btn-accent-default: #5f31cc;--btn-accent-hover: #5f31cc;--btn-accent-press: #5f31cc;--btn-primary-default: #5f31cc;--btn-primary-hover: #6d3ddb;--btn-primary-press: #5328b8;--btn-sec-hover-white: rgba(131, 131, 163, .16);--btn-sec-hover-grey: rgba(131, 131, 163, .16);--btn-sec-press-grey: rgba(131, 131, 163, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: #5e5e70;--dis-00: #65656b;--dis-01: #3D3D42;--bg-base-dark: #0d0d0f;--bg-base-light: #0d0d0f;--bg-elevated-01: #1b1b1f;--bg-elevated-02: #2d2d33;--bg-error: #FFF5F5;--filled-V-BG: rgba(66, 184, 66, .4);--filled-D-BG: rgba(229, 83, 229, .4);--filled-N-BG: rgba(83, 82, 102, .4);--filled-J-BG: rgba(132, 92, 255, .4);--notification-neutral: linear-gradient(90deg, #4d4d8f 0%, #292933 100%);--notification-success: linear-gradient(90deg, #305c3e 0%, #292933 100%);--notification-warning: linear-gradient(90deg, #754f2d 0%, #292933 100%);--notification-error: linear-gradient(90deg, #8f3343 0%, #292933 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-clear: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-orange: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-mint: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-rose: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-red: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%)}._root_9d0hc_131{display:flex;flex-direction:column;gap:12px}._actions_9d0hc_137{display:flex;flex-direction:row;gap:12px}._tip_9d0hc_143{margin-top:12px;color:var(--txt-03)}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
- const t = "_root_9d0hc_131", o = "_actions_9d0hc_137", c = "_tip_9d0hc_143", s = {
3
- root: t,
4
- actions: o,
5
- tip: c
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(":root{--txt-00: #ffffff;--txt-01: light-dark(#110529, #ffffff);--txt-02: #231842;--txt-03: #9d9eae;--txt-mask: #cfd1db;--txt-focus: #07ad3e;--txt-error: #f1222f;--txt-link: #5f31cc;--ic-00: #ffffff;--ic-01: #110529;--ic-02: #cfd1db;--ic-accent: #07ad3e;--border-color-default: #110529;--border-color-hover: #231842;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #e1e3eb;--border-color-div-bw: #ffffff;--btn-accent-default: #845cff;--btn-accent-hover: #9470ff;--btn-accent-press: #6f4dd6;--btn-primary-default: #110529;--btn-primary-hover: #231842;--btn-primary-press: #080214;--btn-sec-hover-white: rgba(255, 255, 255, .5);--btn-sec-hover-grey: light-dark(rgba(155, 171, 204, .16), rgba(131, 131, 163, .16));--btn-sec-press-grey: rgba(155, 171, 204, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--btn-accent-positive-500: #ECFBE5;--dis-00: #ffffff;--dis-01: light-dark(#cfd1db, #3d3d42);--bg-base-dark: #110529;--bg-base-light: #f7f8fa;--bg-elevated-01: #ffffff;--bg-elevated-02: #e1e3eb;--bg-error: #FFF5F5;--filled-V-BG: #d0f0c0;--filled-D-BG: #ffcecc;--filled-N-BG: #faf5aa;--filled-J-BG: #dedbff;--notification-neutral: linear-gradient(90deg, #d6d9ff 0%, #fff 100%);--notification-success: linear-gradient(90deg, #c9f0b6 0%, #fff 100%);--notification-warning: linear-gradient(90deg, #fee0a3 0%, #fff 100%);--notification-error: linear-gradient(90deg, #ffb8b8 0%, #fff 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(180deg, #a1e59c 0%, #d0f5b0 100%);--gradient-blue-violet: linear-gradient(180deg, #adb8ff 0%, #d6e9ff 100%);--gradient-blue-clear: linear-gradient(180deg, #85beff 0%, #cef 100%);--gradient-orange: linear-gradient(180deg, #ffb766 0%, #ffeaa3 100%);--gradient-mint: linear-gradient(180deg, #7dd1d1 0%, #c8fae9 100%);--gradient-lime: linear-gradient(180deg, #bfe062 0%, #e4ffad 100%);--gradient-rose: linear-gradient(0deg, #ffddd6 0%, #ff99c9 100%);--gradient-red: linear-gradient(0deg, #ffd5cc 0%, #ff9494 100%);--gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--TT-gradient-violet: linear-gradient(180deg, #bca3ff 0%, #e5e5ff 100%);--gradient-light-lime: linear-gradient(180deg, #EBFFEB 0%, transparent 100%);--shadow-l: 0px 8px 16px -4px rgba(15, 36, 77, .16), 0px 12px 32px -4px rgba(15, 36, 77, .16);--main-spacing: 24px;--gap-v: 24px;--gap-h: 12px;--border-radius: 6px;--z-splash: 50;--z-slide-shadow: 80;--z-slide-dialog: 81;--z-dialog: 100;--z-dropdown-options: 110;--z-tooltip: 120;--z-context-menu: 1001;--scrollbar-width: 6px}[data-theme=dark]{--txt-00: #ffffff;--txt-01: #FFFFFF;--txt-02: #adaeb8;--txt-03: #60616b;--txt-mask: #3D3D42;--txt-focus: #87e087;--txt-error: #ff5c5c;--txt-link: #9470ff;--ic-00: #ffffff;--ic-01: #FFFFFF;--ic-02: #60616b;--ic-accent: #87e087;--border-color-default: #60616b;--border-color-hover: #adaeb8;--border-color-focus: #49cc49;--border-color-error: #ff5c5c;--border-color-div-grey: #232329;--border-color-div-bw: #000000;--btn-accent-default: #5f31cc;--btn-accent-hover: #5f31cc;--btn-accent-press: #5f31cc;--btn-primary-default: #5f31cc;--btn-primary-hover: #6d3ddb;--btn-primary-press: #5328b8;--btn-sec-hover-white: rgba(131, 131, 163, .16);--btn-sec-hover-grey: rgba(131, 131, 163, .16);--btn-sec-press-grey: rgba(131, 131, 163, .24);--btn-active-select: rgba(99, 224, 36, .24);--btn-switcher: #5e5e70;--dis-00: #65656b;--dis-01: #3D3D42;--bg-base-dark: #0d0d0f;--bg-base-light: #0d0d0f;--bg-elevated-01: #1b1b1f;--bg-elevated-02: #2d2d33;--bg-error: #FFF5F5;--filled-V-BG: rgba(66, 184, 66, .4);--filled-D-BG: rgba(229, 83, 229, .4);--filled-N-BG: rgba(83, 82, 102, .4);--filled-J-BG: rgba(132, 92, 255, .4);--notification-neutral: linear-gradient(90deg, #4d4d8f 0%, #292933 100%);--notification-success: linear-gradient(90deg, #305c3e 0%, #292933 100%);--notification-warning: linear-gradient(90deg, #754f2d 0%, #292933 100%);--notification-error: linear-gradient(90deg, #8f3343 0%, #292933 100%);--gradient-blue-green: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-green-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-blue-clear: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-orange: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-mint: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-lime: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-rose: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-red: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%);--gradient-violet: linear-gradient(0deg, #478063 0%, #2e4652 45.93%, #24223d 91.63%)}._root_aq5ub_131{display:flex;flex-direction:column;gap:12px}._actions_aq5ub_137{display:flex;flex-direction:row;gap:12px}")),document.head.appendChild(e)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
2
+ const o = "_root_aq5ub_131", t = "_actions_aq5ub_137", s = {
3
+ root: o,
4
+ actions: t
6
5
  };
7
6
  export {
8
- o as actions,
7
+ t as actions,
9
8
  s as default,
10
- t as root,
11
- c as tip
9
+ o as root
12
10
  };
13
11
  //# sourceMappingURL=FilterSidebar.vue3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FilterSidebar.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;"}
1
+ {"version":3,"file":"FilterSidebar.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;"}
@@ -1,5 +1,5 @@
1
- import { defineComponent as g, computed as i, createElementBlock as u, openBlock as d, normalizeClass as n, createElementVNode as l, toDisplayString as t, createTextVNode as o, normalizeStyle as p } from "vue";
2
- const S = { key: 0 }, B = { key: 1 }, c = /* @__PURE__ */ g({
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";
2
+ const F = { key: 0 }, N = { key: 1 }, A = { key: 0 }, C = { key: 1 }, T = /* @__PURE__ */ w({
3
3
  __name: "LimitCard",
4
4
  props: {
5
5
  type: {},
@@ -9,57 +9,70 @@ const S = { key: 0 }, B = { key: 1 }, c = /* @__PURE__ */ g({
9
9
  available: {},
10
10
  unit: {}
11
11
  },
12
- setup(m) {
13
- const s = m, v = i(() => s.available === null ? 0 : s.toSpend / s.available * 100), y = i(() => s.available === null ? 0 : s.used / s.available * 100), b = i(() => s.available === null ? 100 : 100 - y.value - v.value), $ = i(() => s.type === "unique_launches" ? "Runs Limits" : s.type === "volume_limit" ? "Volume Limits" : s.label), f = (e) => (e / 1024 / 1024 / 1024).toFixed(2) + " GB", r = (e) => s.type === "volume_limit" ? f(e) : e;
14
- return (e, a) => (d(), u("div", {
15
- class: n(e.$style.container)
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)
16
16
  }, [
17
- l("span", {
18
- class: n(e.$style.label)
19
- }, t($.value), 3),
20
- l("div", {
21
- class: n(e.$style.content)
17
+ n("span", {
18
+ class: t(e.$style.label)
19
+ }, o(c.value), 3),
20
+ n("div", {
21
+ class: t(e.$style.content)
22
22
  }, [
23
- l("div", {
24
- class: n(e.$style.contentAvailable)
23
+ n("div", {
24
+ class: t(e.$style.contentAvailable)
25
25
  }, [
26
- a[0] || (a[0] = o(" Available: ")),
27
- a[1] || (a[1] = l("div", { style: { flex: "1" } }, null, -1)),
28
- e.available !== null ? (d(), u("span", S, [
29
- l("strong", null, t(r(e.available)), 1),
30
- o(" / " + t(r(e.available + e.toSpend + e.used)), 1)
31
- ])) : (d(), u("span", B, "Unlimited"))
32
- ], 2),
33
- l("div", {
34
- class: n(e.$style.progressBar)
35
- }, [
36
- l("span", {
37
- class: n(e.$style.progressBarAvailable),
38
- style: p({ width: `${b.value}%` })
39
- }, null, 6),
40
- l("span", {
41
- class: n(e.$style.progressBarToSpend),
42
- style: p({ width: `${v.value}%` })
43
- }, null, 6),
44
- l("span", {
45
- class: n(e.$style.progressBarUsed),
46
- style: p({ width: `${y.value}%` })
47
- }, null, 6)
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"))
33
+ ]),
34
+ n("div", {
35
+ class: t([e.$style.afterRun, { [e.$style.exceeded]: v.value }])
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)
41
+ ], 2),
42
+ n("div", {
43
+ class: t([e.$style.progressBar, { [e.$style.exceeded]: v.value }])
44
+ }, [
45
+ f(k.value) ? (r(), u("span", {
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", {
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", {
56
+ key: 2,
57
+ class: t(e.$style.progressBarUsed),
58
+ style: b({ width: `${S.value.toFixed(2)}%` })
59
+ }, null, 6)) : p("", !0)
60
+ ], 2)
48
61
  ], 2),
49
- l("div", {
50
- class: n(e.$style.legends)
62
+ n("div", {
63
+ class: t(e.$style.legends)
51
64
  }, [
52
- l("div", {
53
- class: n(e.$style.usedLegend)
65
+ n("div", {
66
+ class: t(e.$style.toSpendLegend)
54
67
  }, [
55
- a[2] || (a[2] = l("span", null, null, -1)),
56
- o(" Used: " + t(r(e.used)), 1)
68
+ a[4] || (a[4] = n("span", null, null, -1)),
69
+ y(" To spend: " + o(d(e.toSpend)), 1)
57
70
  ], 2),
58
- l("div", {
59
- class: n(e.$style.toSpendLegend)
71
+ n("div", {
72
+ class: t(e.$style.usedLegend)
60
73
  }, [
61
- a[3] || (a[3] = l("span", null, null, -1)),
62
- o(" To spend: " + t(r(e.toSpend)), 1)
74
+ a[5] || (a[5] = n("span", null, null, -1)),
75
+ y(" Used: " + o(d(e.used)), 1)
63
76
  ], 2)
64
77
  ], 2)
65
78
  ], 2)
@@ -67,6 +80,6 @@ const S = { key: 0 }, B = { key: 1 }, c = /* @__PURE__ */ g({
67
80
  }
68
81
  });
69
82
  export {
70
- c as default
83
+ T as default
71
84
  };
72
85
  //# sourceMappingURL=LimitCard.vue2.js.map
@@ -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 toSpendPercentage = computed(() => {\n if (props.available === null) return 0;\n return (props.toSpend / props.available) * 100;\n});\n\nconst usedPercentage = computed(() => {\n if (props.available === null) return 0;\n return (props.used / props.available) * 100;\n});\n\nconst availablePercentage = computed(() => {\n if (props.available === null) return 100;\n return 100 - usedPercentage.value - toSpendPercentage.value;\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</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 Available:\n <div style=\"flex: 1\" />\n <span v-if=\"available !== null\"><strong>{{ formatUnit(available) }}</strong> / {{ formatUnit(available + toSpend + used) }}</span>\n <span v-else>Unlimited</span>\n </div>\n <div :class=\"$style.progressBar\">\n <span :class=\"$style.progressBarAvailable\" :style=\"{ width: `${availablePercentage}%` }\" />\n <span :class=\"$style.progressBarToSpend\" :style=\"{ width: `${toSpendPercentage}%` }\" />\n <span :class=\"$style.progressBarUsed\" :style=\"{ width: `${usedPercentage}%` }\" />\n </div>\n <div :class=\"$style.legends\">\n <div :class=\"$style.usedLegend\">\n <span/>\n Used: {{ formatUnit(used) }}\n </div>\n <div :class=\"$style.toSpendLegend\">\n <span/>\n To spend: {{ formatUnit(toSpend) }}\n </div>\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 8px;\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 margin-bottom: 30px;\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: 20px;\n}\n\n.contentAvailable {\n display: flex;\n align-items: flex-start;\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.progressBar {\n width: 100%;\n height: 8px;\n background-color: #E0E0E0;\n border-radius: 4px;\n display: flex;\n align-items: center;\n border: 1px solid var(--border-color-default);\n > span {\n display: block;\n height: 100%;\n }\n}\n\n.progressBarAvailable {\n background-color: #49CC49;\n border-radius: 4px;\n}\n\n.progressBarUsed {\n background-color: #FFCECC;\n border-radius: 4px;\n}\n\n.progressBarToSpend {\n background-color: #FAF5AA;\n border-radius: 4px;\n}\n\n.legends {\n display: flex;\n gap: 8px;\n\n > div {\n flex: 1;\n }\n\n span {\n display: block;\n border-radius: 1px;\n border: 1px solid var(--border-color-default);\n width: 16px;\n height: 16px;\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","toSpendPercentage","computed","usedPercentage","availablePercentage","computedLabel","toGB","v","formatUnit"],"mappings":";;;;;;;;;;;;AAGA,UAAMA,IAAQC,GASRC,IAAoBC,EAAS,MAC7BH,EAAM,cAAc,OAAa,IAC7BA,EAAM,UAAUA,EAAM,YAAa,GAC5C,GAEKI,IAAiBD,EAAS,MAC1BH,EAAM,cAAc,OAAa,IAC7BA,EAAM,OAAOA,EAAM,YAAa,GACzC,GAEKK,IAAsBF,EAAS,MAC/BH,EAAM,cAAc,OAAa,MAC9B,MAAMI,EAAe,QAAQF,EAAkB,KACvD,GAEKI,IAAgBH,EAAS,MACzBH,EAAM,SAAS,oBAA0B,gBACzCA,EAAM,SAAS,iBAAuB,kBACnCA,EAAM,KACd,GAEKO,IAAO,CAACC,OACJA,IAAI,OAAO,OAAO,MAAM,QAAQ,CAAC,IAAI,OAGzCC,IAAa,CAACD,MACdR,EAAM,SAAS,iBAAuBO,EAAKC,CAAC,IACzCA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}