@platforma-sdk/ui-vue 1.42.4 → 1.42.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.42.4 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.5 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vite build
5
5
 
6
6
  vite v6.3.5 building for production...
@@ -10,7 +10,7 @@ rendering chunks...
10
10
 
11
11
  [vite:dts] Start generate declaration files...
12
12
  computing gzip size...
13
- [vite:dts] Declaration files built in 6039ms.
13
+ [vite:dts] Declaration files built in 5816ms.
14
14
 
15
15
  dist/_virtual/re.js  0.08 kB │ gzip: 0.10 kB │ map: 0.09 kB
16
16
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/constant.js  0.09 kB │ gzip: 0.10 kB │ map: 0.32 kB
@@ -38,18 +38,18 @@ computing gzip size...
38
38
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/number.js  0.11 kB │ gzip: 0.12 kB │ map: 0.79 kB
39
39
  dist/components/PlAgCsvExporter/PlAgCsvExporter.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
40
40
  dist/lib/ui/uikit/dist/helpers/math.js  0.12 kB │ gzip: 0.13 kB │ map: 0.36 kB
41
- dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
42
41
  dist/components/PlAgCellProgress/PlAgCellProgress.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
42
+ dist/components/PlAgColumnHeader/PlAgColumnHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
43
43
  dist/components/PlAgRowNumHeader.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
44
44
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
45
45
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
46
46
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
47
- dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
48
47
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
48
+ dist/components/PlTableFilters/PlTableAddFilterV2.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
49
49
  dist/plugins/Monetization/MonetizationSidebar.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
50
50
  dist/components/PlTableFilters/PlTableFilterEntryV2.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
51
- dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
52
51
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
52
+ dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
53
53
  dist/lib/ui/uikit/dist/components/PlRadio/keys.js  0.13 kB │ gzip: 0.13 kB │ map: 0.46 kB
54
54
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js  0.13 kB │ gzip: 0.13 kB │ map: 0.49 kB
55
55
  dist/components/ValueOrErrorsComponent.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -724,7 +724,6 @@ computing gzip size...
724
724
  dist/internal/createAppModel.js  1.73 kB │ gzip: 0.77 kB │ map: 4.81 kB
725
725
  dist/lib/ui/uikit/dist/components/PlConfirmDialog.vue.js  1.75 kB │ gzip: 0.70 kB │ map: 1.77 kB
726
726
  dist/lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js  1.84 kB │ gzip: 0.87 kB │ map: 1.50 kB
727
- dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js  1.85 kB │ gzip: 0.85 kB │ map: 0.12 kB
728
727
  dist/lib/ui/uikit/dist/components/PlChartStackedBar/StackedRow.vue2.js  1.86 kB │ gzip: 0.83 kB │ map: 3.40 kB
729
728
  dist/lib/ui/uikit/dist/assets/icons/icon-assets-min/24_debug.svg.js  1.87 kB │ gzip: 0.98 kB │ map: 2.08 kB
730
729
  dist/lib/ui/uikit/dist/components/DropdownListItem.vue.js  1.89 kB │ gzip: 0.77 kB │ map: 2.75 kB
@@ -768,6 +767,7 @@ computing gzip size...
768
767
  dist/lib/ui/uikit/dist/components/PlNotificationAlert/PlNotificationAlert.vue.js  2.68 kB │ gzip: 1.12 kB │ map: 1.52 kB
769
768
  dist/components/PlAnnotations/components/PlAnnotationCreateDialog.vue.js  2.70 kB │ gzip: 0.99 kB │ map: 2.64 kB
770
769
  dist/components/PlAgDataTable/PlAgDataTableSheets.vue2.js  2.70 kB │ gzip: 1.17 kB │ map: 5.30 kB
770
+ dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js  2.71 kB │ gzip: 1.14 kB │ map: 0.13 kB
771
771
  dist/lib/ui/uikit/dist/components/PlChartHistogram/histogram.js  2.77 kB │ gzip: 0.95 kB │ map: 7.94 kB
772
772
  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
773
773
  dist/lib/ui/uikit/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js  2.80 kB │ gzip: 1.25 kB │ map: 2.65 kB
@@ -784,7 +784,6 @@ computing gzip size...
784
784
  dist/components/PlAgDataTable/sources/table-state-v2.js  3.33 kB │ gzip: 1.16 kB │ map: 9.95 kB
785
785
  dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/duplex.js  3.33 kB │ gzip: 1.22 kB │ map: 10.70 kB
786
786
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js  3.34 kB │ gzip: 1.30 kB │ map: 4.05 kB
787
- dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js  3.42 kB │ gzip: 1.22 kB │ map: 4.70 kB
788
787
  dist/components/PlTableFilters/PlTableAddFilterV2.vue.js  3.42 kB │ gzip: 1.28 kB │ map: 3.95 kB
789
788
  dist/lib/ui/uikit/dist/generated/icons-24.js  3.43 kB │ gzip: 1.10 kB │ map: 5.86 kB
790
789
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js  3.49 kB │ gzip: 1.30 kB │ map: 10.47 kB
@@ -801,6 +800,7 @@ computing gzip size...
801
800
  dist/components/PlMultiSequenceAlignment/Consensus.vue2.js  3.59 kB │ gzip: 1.42 kB │ map: 6.62 kB
802
801
  dist/lib/ui/uikit/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js  3.61 kB │ gzip: 1.35 kB │ map: 1.24 kB
803
802
  dist/node_modules/.pnpm/@vueuse_shared@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/shared/index.js  3.61 kB │ gzip: 1.45 kB │ map: 51.57 kB
803
+ dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js  3.65 kB │ gzip: 1.25 kB │ map: 5.66 kB
804
804
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js  3.67 kB │ gzip: 1.01 kB │ map: 5.45 kB
805
805
  dist/lib/ui/uikit/dist/composition/useSortable.js  3.68 kB │ gzip: 1.32 kB │ map: 10.93 kB
806
806
  dist/lib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue2.js  3.80 kB │ gzip: 1.15 kB │ map: 6.62 kB
@@ -839,9 +839,9 @@ computing gzip size...
839
839
  dist/components/PlAgDataTable/sources/table-source-v2.js  7.39 kB │ gzip: 2.65 kB │ map: 21.84 kB
840
840
  dist/components/PlTableFilters/PlTableFilterEntryV2.vue.js  7.67 kB │ gzip: 1.62 kB │ map: 6.16 kB
841
841
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js  7.70 kB │ gzip: 2.49 kB │ map: 25.67 kB
842
- dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js  7.79 kB │ gzip: 2.64 kB │ map: 12.93 kB
842
+ dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js  7.92 kB │ gzip: 2.67 kB │ map: 13.26 kB
843
843
  dist/lib/ui/uikit/dist/lib/util/helpers/dist/index.js  7.94 kB │ gzip: 2.91 kB │ map: 40.17 kB
844
- dist/components/PlMultiSequenceAlignment/data.js  8.29 kB │ gzip: 2.81 kB │ map: 22.77 kB
844
+ dist/components/PlMultiSequenceAlignment/data.js  8.28 kB │ gzip: 2.80 kB │ map: 22.75 kB
845
845
  dist/node_modules/.pnpm/fast-json-patch@3.1.1/node_modules/fast-json-patch/module/core.js  8.44 kB │ gzip: 2.53 kB │ map: 29.30 kB
846
846
  dist/lib/ui/uikit/dist/components/SliderRangeTriple.vue.js  8.52 kB │ gzip: 2.46 kB │ map: 15.56 kB
847
847
  dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js  8.57 kB │ gzip: 1.95 kB │ map: 7.42 kB
@@ -879,4 +879,4 @@ computing gzip size...
879
879
  dist/lib/ui/uikit/dist/index.js 497.77 kB │ gzip: 191.75 kB │ map: 0.18 kB
880
880
  dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js 601.12 kB │ gzip: 204.71 kB │ map: 0.21 kB
881
881
  dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js 603.01 kB │ gzip: 205.56 kB │ map: 0.27 kB
882
- ✓ built in 10.79s
882
+ ✓ built in 10.92s
@@ -1,5 +1,5 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.42.4 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.42.5 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vue-tsc --noEmit --project ./tsconfig.json
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.42.5
4
+
5
+ ### Patch Changes
6
+
7
+ - 13f0f40: MSA: scrollable labels + small fixes
8
+
3
9
  ## 1.42.4
4
10
 
5
11
  ### Patch Changes
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSequenceAlignmentView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"names":[],"mappings":"AAmKA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9D,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE;QACd,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,eAAe,CAAC;KACzB,GAAG,SAAS,CAAC;IACd,OAAO,EAAE,CAAC,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;CACjD,CAAC;;;;;;AAqJF,wBASG"}
1
+ {"version":3,"file":"MultiSequenceAlignmentView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"names":[],"mappings":"AAkNA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9D,KAAK,WAAW,GAAG;IACjB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,aAAa,EAAE,aAAa,CAAC;IAC7B,cAAc,EAAE;QACd,IAAI,EAAE,IAAI,CAAC;QACX,MAAM,EAAE,eAAe,CAAC;KACzB,GAAG,SAAS,CAAC;IACd,OAAO,EAAE,CAAC,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC,EAAE,CAAC;CACjD,CAAC;;;;;;AA2JF,wBASG"}
@@ -1,4 +1,4 @@
1
- import { defineComponent as I, useCssVars as R, computed as v, useTemplateRef as N, createElementBlock as l, openBlock as s, normalizeClass as n, createElementVNode as r, createBlock as g, createCommentVNode as a, Fragment as o, renderList as d, normalizeStyle as q, toDisplayString as m } from "vue";
1
+ import { defineComponent as I, useCssVars as R, computed as f, useTemplateRef as N, createElementBlock as l, openBlock as s, normalizeClass as n, createElementVNode as t, createBlock as g, createCommentVNode as a, Fragment as i, renderList as d, normalizeStyle as b, toDisplayString as m } from "vue";
2
2
  import { useObjectUrl as L } from "../../node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/core/index.js";
3
3
  import S from "./Consensus.vue.js";
4
4
  import V from "./Legend.vue.js";
@@ -13,48 +13,52 @@ const A = /* @__PURE__ */ I({
13
13
  highlightImage: {},
14
14
  widgets: {}
15
15
  },
16
- setup(c, { expose: k }) {
16
+ setup(c, { expose: q }) {
17
17
  R((e) => ({
18
- "3cff4522": C.value
18
+ "861533c4": k.value
19
19
  }));
20
- const b = N("rootRef");
21
- k({ rootEl: b });
20
+ const $ = N("rootRef");
21
+ q({ rootEl: $ });
22
22
  const h = L(() => {
23
23
  var e;
24
24
  return (e = c.highlightImage) == null ? void 0 : e.blob;
25
- }), C = v(
25
+ }), k = f(
26
26
  () => h.value ? `url('${h.value}')` : "none"
27
- ), $ = v(
27
+ ), C = f(
28
28
  () => {
29
29
  var e;
30
- return (e = c.sequences.at(0)) == null ? void 0 : e.split(" ").map(({ length: p }) => p);
30
+ return (e = c.sequences.at(0)) == null ? void 0 : e.split(" ").map(({ length: y }) => y);
31
31
  }
32
32
  );
33
- return (e, p) => {
34
- var y, f;
33
+ return (e, y) => {
34
+ var p, v;
35
35
  return s(), l("div", {
36
36
  ref: "rootRef",
37
37
  class: n(e.$style.root)
38
38
  }, [
39
- r("div", {
39
+ t("div", {
40
40
  class: n(["pl-scrollable", e.$style.table])
41
41
  }, [
42
- r("div", {
42
+ t("div", {
43
43
  class: n(e.$style.corner)
44
- }, null, 2),
45
- r("div", {
44
+ }, [
45
+ t("div", {
46
+ class: n(e.$style["label-scroll-indicator"])
47
+ }, null, 2)
48
+ ], 2),
49
+ t("div", {
46
50
  class: n(e.$style.header)
47
51
  }, [
48
52
  e.sequenceNames.length > 1 ? (s(), l("div", {
49
53
  key: 0,
50
54
  class: n(e.$style["sequence-names"])
51
55
  }, [
52
- (s(!0), l(o, null, d(e.sequenceNames, (u, t) => {
53
- var i;
56
+ (s(!0), l(i, null, d(e.sequenceNames, (u, r) => {
57
+ var o;
54
58
  return s(), l("span", {
55
- key: t,
56
- style: q({
57
- inlineSize: (((i = $.value) == null ? void 0 : i.at(t)) ?? 0) * 20 + "px"
59
+ key: r,
60
+ style: b({
61
+ inlineSize: (((o = C.value) == null ? void 0 : o.at(r)) ?? 0) * 20 + "px"
58
62
  })
59
63
  }, m(u), 5);
60
64
  }), 128))
@@ -68,23 +72,27 @@ const A = /* @__PURE__ */ I({
68
72
  "residue-counts": e.residueCounts
69
73
  }, null, 8, ["residue-counts"])) : a("", !0)
70
74
  ], 2),
71
- r("div", {
75
+ t("div", {
72
76
  class: n(e.$style.labels)
73
77
  }, [
74
- (s(!0), l(o, null, d(e.labelRows, (u, t) => (s(), l(o, null, [
75
- (s(!0), l(o, null, d(u, (i, w) => (s(), l("div", {
76
- key: w,
77
- style: q({ gridRow: t + 1 })
78
- }, m(i), 5))), 128))
79
- ], 64))), 256))
78
+ t("div", {
79
+ class: n(e.$style["labels-grid"])
80
+ }, [
81
+ (s(!0), l(i, null, d(e.labelRows, (u, r) => (s(), l(i, null, [
82
+ (s(!0), l(i, null, d(u, (o, w) => (s(), l("div", {
83
+ key: w,
84
+ style: b({ gridRow: r + 1 })
85
+ }, m(o), 5))), 128))
86
+ ], 64))), 256))
87
+ ], 2)
80
88
  ], 2),
81
- r("div", {
89
+ t("div", {
82
90
  class: n(e.$style.sequences)
83
91
  }, [
84
- (s(!0), l(o, null, d(e.sequences, (u, t) => (s(), l("div", { key: t }, m(u), 1))), 128))
92
+ (s(!0), l(i, null, d(e.sequences, (u, r) => (s(), l("div", { key: r }, m(u), 1))), 128))
85
93
  ], 2)
86
94
  ], 2),
87
- (y = e.widgets) != null && y.includes("legend") && ((f = e.highlightImage) != null && f.legend) ? (s(), g(V, {
95
+ (p = e.widgets) != null && p.includes("legend") && ((v = e.highlightImage) != null && v.legend) ? (s(), g(V, {
88
96
  key: 0,
89
97
  legend: e.highlightImage.legend
90
98
  }, null, 8, ["legend"])) : a("", !0)
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSequenceAlignmentView.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useObjectUrl } from '@vueuse/core';\nimport { computed, useTemplateRef } from 'vue';\nimport Consensus from './Consensus.vue';\nimport Legend from './Legend.vue';\nimport SeqLogo from './SeqLogo.vue';\nimport type { HighlightLegend, ResidueCounts } from './types';\n\nconst { sequences, highlightImage } = defineProps<{\n sequences: string[];\n sequenceNames: string[];\n labelRows: string[][];\n residueCounts: ResidueCounts;\n highlightImage: {\n blob: Blob;\n legend: HighlightLegend;\n } | undefined;\n widgets: ('consensus' | 'seqLogo' | 'legend')[];\n}>();\n\nconst rootEl = useTemplateRef('rootRef');\ndefineExpose({ rootEl });\n\nconst highlightImageObjectUrl = useObjectUrl(() => highlightImage?.blob);\nconst highlightImageCssUrl = computed(() =>\n highlightImageObjectUrl.value\n ? `url('${highlightImageObjectUrl.value}')`\n : 'none',\n);\n\nconst sequenceLengths = computed(() =>\n sequences.at(0)?.split(' ').map(({ length }) => length),\n);\n</script>\n\n<template>\n <div ref=\"rootRef\" :class=\"$style.root\">\n <div :class=\"['pl-scrollable', $style.table]\">\n <div :class=\"$style.corner\" />\n <div :class=\"$style.header\">\n <div v-if=\"sequenceNames.length > 1\" :class=\"$style['sequence-names']\">\n <span\n v-for=\"(name, index) of sequenceNames\"\n :key=\"index\"\n :style=\"{\n inlineSize: ((sequenceLengths?.at(index) ?? 0) * 20)\n + 'px',\n }\"\n >{{ name }}</span>\n </div>\n <Consensus v-if=\"widgets.includes('consensus')\" :residue-counts />\n <SeqLogo v-if=\"widgets.includes('seqLogo')\" :residue-counts />\n </div>\n <div :class=\"$style.labels\">\n <template v-for=\"(labelRow, rowIndex) of labelRows\">\n <div\n v-for=\"(label, labelIndex) of labelRow\"\n :key=\"labelIndex\"\n :style=\"{ gridRow: rowIndex + 1 }\"\n >\n {{ label }}\n </div>\n </template>\n </div>\n <div :class=\"$style.sequences\">\n <div\n v-for=\"(sequence, index) of sequences\"\n :key=\"index\"\n >\n {{ sequence }}\n </div>\n </div>\n </div>\n <Legend\n v-if=\"widgets?.includes('legend') && highlightImage?.legend\"\n :legend=\"highlightImage.legend\"\n />\n </div>\n</template>\n\n<style module>\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-block-size: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n}\n\n.table {\n display: grid;\n grid-template-areas:\n \"corner header\"\n \"labels sequences\";\n text-wrap: nowrap;\n justify-content: start;\n @media print {\n overflow: visible;\n }\n}\n\n.corner {\n grid-area: corner;\n background-color: white;\n position: sticky;\n inset-inline-start: 0;\n inset-block-start: 0;\n z-index: 2;\n}\n\n.header {\n grid-area: header;\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n z-index: 1;\n}\n\n.sequence-names {\n display: flex;\n font-weight: 700;\n line-height: 20px;\n margin-block-end: 4px;\n gap: 20px;\n}\n\n.labels {\n grid-area: labels;\n display: grid;\n grid-auto-flow: dense;\n column-gap: 12px;\n background-color: white;\n position: sticky;\n inset-inline-start: 0;\n z-index: 1;\n padding-inline-end: 12px;\n font-family: Spline Sans Mono;\n line-height: 24px;\n}\n\n.sequences {\n grid-area: sequences;\n display: flex;\n flex-direction: column;\n font-family: Spline Sans Mono;\n font-weight: 600;\n line-height: 24px;\n letter-spacing: 11.6px;\n text-indent: 5.8px;\n margin-inline-end: -5.8px;\n background-image: v-bind(highlightImageCssUrl);\n background-repeat: no-repeat;\n background-size: calc(100% - 5.8px) 100%;\n}\n</style>\n"],"names":["rootEl","useTemplateRef","__expose","highlightImageObjectUrl","useObjectUrl","_a","__props","highlightImageCssUrl","computed","sequenceLengths","length"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBM,UAAAA,IAASC,EAAe,SAAS;AAC1B,IAAAC,EAAA,EAAE,QAAAF,GAAQ;AAEvB,UAAMG,IAA0BC,EAAa,MAAM;;AAAA,cAAAC,IAAAC,EAAA,mBAAA,gBAAAD,EAAgB;AAAA,KAAI,GACjEE,IAAuBC;AAAA,MAAS,MACpCL,EAAwB,QACpB,QAAQA,EAAwB,KAAK,OACrC;AAAA,IACN,GAEMM,IAAkBD;AAAA,MAAS,MAAA;;AAC/B,gBAAAH,IAAAC,YAAU,GAAG,CAAC,MAAd,gBAAAD,EAAiB,MAAM,KAAK,IAAI,CAAC,EAAE,QAAAK,QAAaA;AAAA;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"MultiSequenceAlignmentView.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { useObjectUrl } from '@vueuse/core';\nimport { computed, useTemplateRef } from 'vue';\nimport Consensus from './Consensus.vue';\nimport Legend from './Legend.vue';\nimport SeqLogo from './SeqLogo.vue';\nimport type { HighlightLegend, ResidueCounts } from './types';\n\nconst { sequences, highlightImage } = defineProps<{\n sequences: string[];\n sequenceNames: string[];\n labelRows: string[][];\n residueCounts: ResidueCounts;\n highlightImage: {\n blob: Blob;\n legend: HighlightLegend;\n } | undefined;\n widgets: ('consensus' | 'seqLogo' | 'legend')[];\n}>();\n\nconst rootEl = useTemplateRef('rootRef');\ndefineExpose({ rootEl });\n\nconst highlightImageObjectUrl = useObjectUrl(() => highlightImage?.blob);\nconst highlightImageCssUrl = computed(() =>\n highlightImageObjectUrl.value\n ? `url('${highlightImageObjectUrl.value}')`\n : 'none',\n);\n\nconst sequenceLengths = computed(() =>\n sequences.at(0)?.split(' ').map(({ length }) => length),\n);\n</script>\n\n<template>\n <div ref=\"rootRef\" :class=\"$style.root\">\n <div :class=\"['pl-scrollable', $style.table]\">\n <div :class=\"$style.corner\">\n <div :class=\"$style['label-scroll-indicator']\" />\n </div>\n <div :class=\"$style.header\">\n <div v-if=\"sequenceNames.length > 1\" :class=\"$style['sequence-names']\">\n <span\n v-for=\"(name, index) of sequenceNames\"\n :key=\"index\"\n :style=\"{\n inlineSize: ((sequenceLengths?.at(index) ?? 0) * 20)\n + 'px',\n }\"\n >{{ name }}</span>\n </div>\n <Consensus v-if=\"widgets.includes('consensus')\" :residue-counts />\n <SeqLogo v-if=\"widgets.includes('seqLogo')\" :residue-counts />\n </div>\n <div :class=\"$style.labels\">\n <div :class=\"$style['labels-grid']\">\n <template v-for=\"(labelRow, rowIndex) of labelRows\">\n <div\n v-for=\"(label, labelIndex) of labelRow\"\n :key=\"labelIndex\"\n :style=\"{ gridRow: rowIndex + 1 }\"\n >\n {{ label }}\n </div>\n </template>\n </div>\n </div>\n <div :class=\"$style.sequences\">\n <div\n v-for=\"(sequence, index) of sequences\"\n :key=\"index\"\n >\n {{ sequence }}\n </div>\n </div>\n </div>\n <Legend\n v-if=\"widgets?.includes('legend') && highlightImage?.legend\"\n :legend=\"highlightImage.legend\"\n />\n </div>\n</template>\n\n<style module>\n.root {\n display: flex;\n flex-direction: column;\n gap: 12px;\n min-block-size: 0;\n -webkit-print-color-adjust: exact;\n print-color-adjust: exact;\n\n &[data-pre-print] {\n .table {\n container-type: unset;\n }\n .labels {\n max-inline-size: unset;\n }\n }\n}\n\n.table {\n container-type: inline-size;\n display: grid;\n grid-template-areas:\n \"corner header\"\n \"labels sequences\";\n justify-content: start;\n timeline-scope: --msa-labels-scroll;\n @media print {\n overflow: visible;\n }\n}\n\n.corner {\n grid-area: corner;\n background-color: #fff;\n position: sticky;\n inset-inline-start: 0;\n inset-block-start: 0;\n z-index: 2;\n}\n\n.label-scroll-indicator {\n position: absolute;\n inset-inline-end: 0;\n block-size: 100cqb;\n inline-size: 8px;\n animation-name: hide;\n animation-timeline: --msa-labels-scroll;\n visibility: hidden;\n background: #fff;\n box-shadow: -4px 0 4px -2px rgba(0, 0, 0, 0.10);\n}\n\n.header {\n grid-area: header;\n background-color: #fff;\n position: sticky;\n inset-block-start: 0;\n z-index: 1;\n}\n\n.sequence-names {\n display: flex;\n font-weight: 700;\n line-height: 20px;\n margin-block-end: 4px;\n gap: 20px;\n}\n\n.labels {\n grid-area: labels;\n background-color: #fff;\n position: sticky;\n inset-inline-start: 0;\n z-index: 1;\n inline-size: max-content;\n max-inline-size: 30cqi;\n overflow: scroll;\n scrollbar-width: none;\n overscroll-behavior-inline: none;\n scroll-timeline: --msa-labels-scroll inline;\n}\n\n.labels-grid {\n display: grid;\n grid-auto-flow: dense;\n font-family: Spline Sans Mono;\n line-height: 24px;\n text-wrap: nowrap;\n\n > * {\n padding-inline-end: 12px;\n }\n}\n\n.sequences {\n grid-area: sequences;\n display: flex;\n flex-direction: column;\n font-family: Spline Sans Mono;\n font-weight: 600;\n line-height: 24px;\n letter-spacing: 11.6px;\n text-indent: 5.8px;\n margin-inline-end: -5.8px;\n background-image: v-bind(highlightImageCssUrl);\n background-repeat: no-repeat;\n background-size: calc(100% - 5.8px) 100%;\n}\n\n@keyframes hide {\n from {\n visibility: visible;\n }\n to {\n visibility: hidden;\n }\n}\n</style>\n"],"names":["rootEl","useTemplateRef","__expose","highlightImageObjectUrl","useObjectUrl","_a","__props","highlightImageCssUrl","computed","sequenceLengths","length"],"mappings":";;;;;;;;;;;;;;;;;;;AAoBM,UAAAA,IAASC,EAAe,SAAS;AAC1B,IAAAC,EAAA,EAAE,QAAAF,GAAQ;AAEvB,UAAMG,IAA0BC,EAAa,MAAM;;AAAA,cAAAC,IAAAC,EAAA,mBAAA,gBAAAD,EAAgB;AAAA,KAAI,GACjEE,IAAuBC;AAAA,MAAS,MACpCL,EAAwB,QACpB,QAAQA,EAAwB,KAAK,OACrC;AAAA,IACN,GAEMM,IAAkBD;AAAA,MAAS,MAAA;;AAC/B,gBAAAH,IAAAC,YAAU,GAAG,CAAC,MAAd,gBAAAD,EAAiB,MAAM,KAAK,IAAI,CAAC,EAAE,QAAAK,QAAaA;AAAA;AAAA,IAClD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,20 +1,24 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._root_cgj1q_2{display:flex;flex-direction:column;gap:12px;min-block-size:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}._table_cgj1q_11{display:grid;grid-template-areas:"corner header" "labels sequences";text-wrap:nowrap;justify-content:start}@media print{._table_cgj1q_11{overflow:visible}}._corner_cgj1q_23{grid-area:corner;background-color:#fff;position:sticky;inset-inline-start:0;inset-block-start:0;z-index:2}._header_cgj1q_32{grid-area:header;background-color:#fff;position:sticky;inset-block-start:0;z-index:1}._sequence-names_cgj1q_40{display:flex;font-weight:700;line-height:20px;margin-block-end:4px;gap:20px}._labels_cgj1q_48{grid-area:labels;display:grid;grid-auto-flow:dense;column-gap:12px;background-color:#fff;position:sticky;inset-inline-start:0;z-index:1;padding-inline-end:12px;font-family:Spline Sans Mono;line-height:24px}._sequences_cgj1q_62{grid-area:sequences;display:flex;flex-direction:column;font-family:Spline Sans Mono;font-weight:600;line-height:24px;letter-spacing:11.6px;text-indent:5.8px;margin-inline-end:-5.8px;background-image:var(--3cff4522);background-repeat:no-repeat;background-size:calc(100% - 5.8px) 100%}')),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
- const e = "_root_cgj1q_2", c = "_table_cgj1q_11", s = "_corner_cgj1q_23", _ = "_header_cgj1q_32", n = "_labels_cgj1q_48", o = "_sequences_cgj1q_62", t = {
1
+ (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._root_y6xw0_2{display:flex;flex-direction:column;gap:12px;min-block-size:0;-webkit-print-color-adjust:exact;print-color-adjust:exact}._root_y6xw0_2[data-pre-print] ._table_y6xw0_11{container-type:unset}._root_y6xw0_2[data-pre-print] ._labels_y6xw0_14{max-inline-size:unset}._table_y6xw0_11{container-type:inline-size;display:grid;grid-template-areas:"corner header" "labels sequences";justify-content:start;timeline-scope:--msa-labels-scroll}@media print{._table_y6xw0_11{overflow:visible}}._corner_y6xw0_33{grid-area:corner;background-color:#fff;position:sticky;inset-inline-start:0;inset-block-start:0;z-index:2}._label-scroll-indicator_y6xw0_42{position:absolute;inset-inline-end:0;block-size:100cqb;inline-size:8px;animation-name:_hide_y6xw0_1;animation-timeline:--msa-labels-scroll;visibility:hidden;background:#fff;box-shadow:-4px 0 4px -2px #0000001a}._header_y6xw0_54{grid-area:header;background-color:#fff;position:sticky;inset-block-start:0;z-index:1}._sequence-names_y6xw0_62{display:flex;font-weight:700;line-height:20px;margin-block-end:4px;gap:20px}._labels_y6xw0_14{grid-area:labels;background-color:#fff;position:sticky;inset-inline-start:0;z-index:1;inline-size:max-content;max-inline-size:30cqi;overflow:scroll;scrollbar-width:none;overscroll-behavior-inline:none;scroll-timeline:--msa-labels-scroll inline}._labels-grid_y6xw0_84{display:grid;grid-auto-flow:dense;font-family:Spline Sans Mono;line-height:24px;text-wrap:nowrap}._labels-grid_y6xw0_84>*{padding-inline-end:12px}._sequences_y6xw0_96{grid-area:sequences;display:flex;flex-direction:column;font-family:Spline Sans Mono;font-weight:600;line-height:24px;letter-spacing:11.6px;text-indent:5.8px;margin-inline-end:-5.8px;background-image:var(--861533c4);background-repeat:no-repeat;background-size:calc(100% - 5.8px) 100%}@keyframes _hide_y6xw0_1{0%{visibility:visible}to{visibility:hidden}}')),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();
2
+ const e = "_root_y6xw0_2", _ = "_table_y6xw0_11", s = "_labels_y6xw0_14", l = "_corner_y6xw0_33", o = "_hide_y6xw0_1", c = "_header_y6xw0_54", n = "_sequences_y6xw0_96", a = {
3
3
  root: e,
4
- table: c,
5
- corner: s,
6
- header: _,
7
- "sequence-names": "_sequence-names_cgj1q_40",
8
- labels: n,
9
- sequences: o
4
+ table: _,
5
+ labels: s,
6
+ corner: l,
7
+ "label-scroll-indicator": "_label-scroll-indicator_y6xw0_42",
8
+ hide: o,
9
+ header: c,
10
+ "sequence-names": "_sequence-names_y6xw0_62",
11
+ "labels-grid": "_labels-grid_y6xw0_84",
12
+ sequences: n
10
13
  };
11
14
  export {
12
- s as corner,
13
- t as default,
14
- _ as header,
15
- n as labels,
15
+ l as corner,
16
+ a as default,
17
+ c as header,
18
+ o as hide,
19
+ s as labels,
16
20
  e as root,
17
- o as sequences,
18
- c as table
21
+ n as sequences,
22
+ _ as table
19
23
  };
20
24
  //# sourceMappingURL=MultiSequenceAlignmentView.vue3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MultiSequenceAlignmentView.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;"}
1
+ {"version":3,"file":"MultiSequenceAlignmentView.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"PlMultiSequenceAlignment.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"names":[],"mappings":"AAuTA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAEjB,KAAK,6BAA6B,EAElC,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AA8B9B,KAAK,WAAW,GAAG;IACjB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CACvC,CAAC;AAwLF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC1C,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLhB,wBAQG"}
1
+ {"version":3,"file":"PlMultiSequenceAlignment.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"names":[],"mappings":"AA4TA,OAAO,EAEL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EAEjB,KAAK,6BAA6B,EAElC,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AA8B9B,KAAK,WAAW,GAAG;IACjB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CACvC,CAAC;AA6LF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC1C,GAAG,WAAW,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAkLhB,wBAQG"}