@platforma-sdk/ui-vue 1.37.11 → 1.37.13
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.
- package/.turbo/turbo-build.log +14 -14
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +13 -0
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js +12 -12
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +1 -0
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +58 -45
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +12 -11
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +27 -26
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js +1 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/data.d.ts +1 -0
- package/dist/components/PlMultiSequenceAlignment/data.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/data.js +161 -140
- package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlElementList/PlElementList.vue2.js +137 -125
- package/dist/lib/ui/uikit/dist/components/PlElementList/PlElementList.vue2.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue.js +2 -2
- package/dist/lib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue2.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue3.js +31 -31
- package/package.json +5 -5
- package/src/components/PlMultiSequenceAlignment/Consensus.vue +1 -1
- package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +20 -1
- package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +1 -0
- package/src/components/PlMultiSequenceAlignment/SeqLogo.vue +1 -1
- package/src/components/PlMultiSequenceAlignment/data.ts +37 -14
package/.turbo/turbo-build.log
CHANGED
|
@@ -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.37.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.37.13 build /home/runner/_work/platforma/platforma/sdk/ui-vue
|
|
4
4
|
> vite build
|
|
5
5
|
|
|
6
6
|
[36mvite v6.3.5 [32mbuilding for production...[36m[39m
|
|
@@ -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
|
|
13
|
+
[vite:dts] Declaration files built in 5127ms.
|
|
14
14
|
|
|
15
15
|
[2mdist/[22m[36m_virtual/re.js [39m[1m[2m 0.08 kB[22m[1m[22m[2m │ gzip: 0.10 kB[22m[2m │ map: 0.09 kB[22m
|
|
16
16
|
[2mdist/[22m[36m_virtual/lodash2.js [39m[1m[2m 0.09 kB[22m[1m[22m[2m │ gzip: 0.10 kB[22m[2m │ map: 0.09 kB[22m
|
|
@@ -50,8 +50,8 @@ computing gzip size...
|
|
|
50
50
|
[2mdist/[22m[36mcomponents/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
51
51
|
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFilterEntry.vue2.js [39m[1m[2m 0.12 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
52
52
|
[2mdist/[22m[36mplugins/Monetization/MonetizationSidebar.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
53
|
-
[2mdist/[22m[36mcomponents/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
54
53
|
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
54
|
+
[2mdist/[22m[36mcomponents/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
55
55
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlRadio/keys.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.13 kB[22m[2m │ map: 0.46 kB[22m
|
|
56
56
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.13 kB[22m[2m │ map: 0.49 kB[22m
|
|
57
57
|
[2mdist/[22m[36mcomponents/ValueOrErrorsComponent.vue2.js [39m[1m[2m 0.13 kB[22m[1m[22m[2m │ gzip: 0.12 kB[22m[2m │ map: 0.11 kB[22m
|
|
@@ -137,8 +137,8 @@ computing gzip size...
|
|
|
137
137
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_linetype-solid.svg.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.48 kB[22m
|
|
138
138
|
[2mdist/[22m[36mnode_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/defaultLocale.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.87 kB[22m
|
|
139
139
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_color-stroke.svg.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.22 kB[22m[2m │ map: 0.49 kB[22m
|
|
140
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.60 kB[22m
|
|
141
140
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/init.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.18 kB[22m[2m │ map: 1.11 kB[22m
|
|
141
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.60 kB[22m
|
|
142
142
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/node.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.19 kB[22m[2m │ map: 0.82 kB[22m
|
|
143
143
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/select.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.20 kB[22m[2m │ map: 0.73 kB[22m
|
|
144
144
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/each.js [39m[1m[2m 0.26 kB[22m[1m[22m[2m │ gzip: 0.21 kB[22m[2m │ map: 0.88 kB[22m
|
|
@@ -605,8 +605,8 @@ computing gzip size...
|
|
|
605
605
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_dendrogram-X-line.svg.js [39m[1m[2m 0.95 kB[22m[1m[22m[2m │ gzip: 0.39 kB[22m[2m │ map: 1.27 kB[22m
|
|
606
606
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-array@3.2.4/node_modules/d3-array/src/bisector.js [39m[1m[2m 0.96 kB[22m[1m[22m[2m │ gzip: 0.40 kB[22m[2m │ map: 3.15 kB[22m
|
|
607
607
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.42 kB[22m[2m │ map: 2.60 kB[22m
|
|
608
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 2.34 kB[22m
|
|
609
608
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_lasso.svg.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.57 kB[22m[2m │ map: 1.18 kB[22m
|
|
609
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js [39m[1m[2m 0.97 kB[22m[1m[22m[2m │ gzip: 0.53 kB[22m[2m │ map: 2.34 kB[22m
|
|
610
610
|
[2mdist/[22m[36mlib/ui/uikit/dist/layout/PlRow/PlRow.vue.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.57 kB[22m[2m │ map: 0.64 kB[22m
|
|
611
611
|
[2mdist/[22m[36mlib/ui/uikit/dist/composition/useTheme.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 2.43 kB[22m
|
|
612
612
|
[2mdist/[22m[36mcomponents/ValueOrErrorsComponent.vue.js [39m[1m[2m 0.98 kB[22m[1m[22m[2m │ gzip: 0.50 kB[22m[2m │ map: 1.34 kB[22m
|
|
@@ -701,7 +701,6 @@ computing gzip size...
|
|
|
701
701
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlBtnLink/PlBtnLink.vue.js [39m[1m[2m 1.46 kB[22m[1m[22m[2m │ gzip: 0.76 kB[22m[2m │ map: 1.36 kB[22m
|
|
702
702
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlChartStackedBar/StackedRowCompact.vue2.js [39m[1m[2m 1.48 kB[22m[1m[22m[2m │ gzip: 0.71 kB[22m[2m │ map: 2.57 kB[22m
|
|
703
703
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_social-youtube.svg.js [39m[1m[2m 1.49 kB[22m[1m[22m[2m │ gzip: 0.76 kB[22m[2m │ map: 1.73 kB[22m
|
|
704
|
-
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js [39m[1m[2m 1.49 kB[22m[1m[22m[2m │ gzip: 0.73 kB[22m[2m │ map: 0.12 kB[22m
|
|
705
704
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlErrorAlert/PlErrorAlert.vue2.js [39m[1m[2m 1.50 kB[22m[1m[22m[2m │ gzip: 0.65 kB[22m[2m │ map: 2.59 kB[22m
|
|
706
705
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/VScroll.vue.js [39m[1m[2m 1.50 kB[22m[1m[22m[2m │ gzip: 0.73 kB[22m[2m │ map: 2.68 kB[22m
|
|
707
706
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/HScroll.vue.js [39m[1m[2m 1.50 kB[22m[1m[22m[2m │ gzip: 0.73 kB[22m[2m │ map: 2.67 kB[22m
|
|
@@ -723,6 +722,7 @@ computing gzip size...
|
|
|
723
722
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/on.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.68 kB[22m[2m │ map: 4.38 kB[22m
|
|
724
723
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlFileDialog/Shortcuts.vue2.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.60 kB[22m[2m │ map: 0.14 kB[22m
|
|
725
724
|
[2mdist/[22m[36mplugins/Monetization/RunStatus.vue3.js [39m[1m[2m 1.63 kB[22m[1m[22m[2m │ gzip: 0.77 kB[22m[2m │ map: 0.11 kB[22m
|
|
725
|
+
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js [39m[1m[2m 1.64 kB[22m[1m[22m[2m │ gzip: 0.78 kB[22m[2m │ map: 0.12 kB[22m
|
|
726
726
|
[2mdist/[22m[36maggrid.js [39m[1m[2m 1.66 kB[22m[1m[22m[2m │ gzip: 0.79 kB[22m[2m │ map: 3.09 kB[22m
|
|
727
727
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlSvg/registry.js [39m[1m[2m 1.66 kB[22m[1m[22m[2m │ gzip: 0.86 kB[22m[2m │ map: 4.41 kB[22m
|
|
728
728
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlErrorBoundary/PlErrorBoundary.vue.js [39m[1m[2m 1.66 kB[22m[1m[22m[2m │ gzip: 0.79 kB[22m[2m │ map: 2.78 kB[22m
|
|
@@ -784,7 +784,6 @@ computing gzip size...
|
|
|
784
784
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlCheckboxGroup/PlCheckboxGroup.vue.js [39m[1m[2m 2.80 kB[22m[1m[22m[2m │ gzip: 1.25 kB[22m[2m │ map: 2.65 kB[22m
|
|
785
785
|
[2mdist/[22m[36mcomposition/fileContent.js [39m[1m[2m 2.92 kB[22m[1m[22m[2m │ gzip: 1.06 kB[22m[2m │ map: 8.69 kB[22m
|
|
786
786
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlChartHistogram/histogram.js [39m[1m[2m 2.98 kB[22m[1m[22m[2m │ gzip: 0.99 kB[22m[2m │ map: 7.83 kB[22m
|
|
787
|
-
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js [39m[1m[2m 2.99 kB[22m[1m[22m[2m │ gzip: 1.16 kB[22m[2m │ map: 5.01 kB[22m
|
|
788
787
|
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/row-number.js [39m[1m[2m 3.10 kB[22m[1m[22m[2m │ gzip: 1.34 kB[22m[2m │ map: 8.35 kB[22m
|
|
789
788
|
[2mdist/[22m[36mnode_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js [39m[1m[2m 3.12 kB[22m[1m[22m[2m │ gzip: 1.35 kB[22m[2m │ map: 10.44 kB[22m
|
|
790
789
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-format@3.1.0/node_modules/d3-format/src/locale.js [39m[1m[2m 3.12 kB[22m[1m[22m[2m │ gzip: 1.35 kB[22m[2m │ map: 10.46 kB[22m
|
|
@@ -796,6 +795,7 @@ computing gzip size...
|
|
|
796
795
|
[2mdist/[22m[36mlib/ui/uikit/dist/generated/icons-24.js [39m[1m[2m 3.37 kB[22m[1m[22m[2m │ gzip: 1.08 kB[22m[2m │ map: 5.77 kB[22m
|
|
797
796
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlBtnDanger/PlBtnDanger.vue.js [39m[1m[2m 3.47 kB[22m[1m[22m[2m │ gzip: 1.34 kB[22m[2m │ map: 1.23 kB[22m
|
|
798
797
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-axis@3.0.0/node_modules/d3-axis/src/axis.js [39m[1m[2m 3.49 kB[22m[1m[22m[2m │ gzip: 1.30 kB[22m[2m │ map: 10.47 kB[22m
|
|
798
|
+
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js [39m[1m[2m 3.49 kB[22m[1m[22m[2m │ gzip: 1.29 kB[22m[2m │ map: 5.69 kB[22m
|
|
799
799
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlBtnAccent/PlBtnAccent.vue.js [39m[1m[2m 3.50 kB[22m[1m[22m[2m │ gzip: 1.34 kB[22m[2m │ map: 1.24 kB[22m
|
|
800
800
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/DataTable/state.js [39m[1m[2m 3.50 kB[22m[1m[22m[2m │ gzip: 1.28 kB[22m[2m │ map: 9.14 kB[22m
|
|
801
801
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlProgressCell/PlProgressCell.vue.js [39m[1m[2m 3.51 kB[22m[1m[22m[2m │ gzip: 1.42 kB[22m[2m │ map: 1.99 kB[22m
|
|
@@ -806,14 +806,14 @@ computing gzip size...
|
|
|
806
806
|
[2mdist/[22m[36msdk/model/dist/index.js [39m[1m[2m 3.57 kB[22m[1m[22m[2m │ gzip: 1.45 kB[22m[2m │ map: 51.57 kB[22m
|
|
807
807
|
[2mdist/[22m[36mcomponents/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js [39m[1m[2m 3.59 kB[22m[1m[22m[2m │ gzip: 1.43 kB[22m[2m │ map: 2.78 kB[22m
|
|
808
808
|
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js [39m[1m[2m 3.67 kB[22m[1m[22m[2m │ gzip: 1.01 kB[22m[2m │ map: 5.45 kB[22m
|
|
809
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue3.js [39m[1m[2m 3.68 kB[22m[1m[22m[2m │ gzip: 1.33 kB[22m[2m │ map: 0.13 kB[22m
|
|
809
810
|
[2mdist/[22m[36mlib/ui/uikit/dist/composition/useSortable.js [39m[1m[2m 3.68 kB[22m[1m[22m[2m │ gzip: 1.32 kB[22m[2m │ map: 10.93 kB[22m
|
|
810
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementListItem.
|
|
811
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue2.js [39m[1m[2m 3.72 kB[22m[1m[22m[2m │ gzip: 1.14 kB[22m[2m │ map: 6.34 kB[22m
|
|
811
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementListItem.vue2.js [39m[1m[2m 3.72 kB[22m[1m[22m[2m │ gzip: 1.14 kB[22m[2m │ map: 6.33 kB[22m
|
|
812
812
|
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/chemical-properties.js [39m[1m[2m 3.79 kB[22m[1m[22m[2m │ gzip: 1.16 kB[22m[2m │ map: 9.18 kB[22m
|
|
813
813
|
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/SeqLogo.vue2.js [39m[1m[2m 3.87 kB[22m[1m[22m[2m │ gzip: 1.48 kB[22m[2m │ map: 6.75 kB[22m
|
|
814
814
|
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/internal/re.js [39m[1m[2m 4.03 kB[22m[1m[22m[2m │ gzip: 1.23 kB[22m[2m │ map: 12.96 kB[22m
|
|
815
815
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlChip/PlChip.vue.js [39m[1m[2m 4.05 kB[22m[1m[22m[2m │ gzip: 1.61 kB[22m[2m │ map: 1.36 kB[22m
|
|
816
|
-
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/Consensus.vue2.js [39m[1m[2m 4.
|
|
816
|
+
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/Consensus.vue2.js [39m[1m[2m 4.16 kB[22m[1m[22m[2m │ gzip: 1.58 kB[22m[2m │ map: 7.26 kB[22m
|
|
817
817
|
[2mdist/[22m[36mlib/ui/uikit/dist/assets/icons/icon-assets-min/24_heatmap.svg.js [39m[1m[2m 4.38 kB[22m[1m[22m[2m │ gzip: 0.99 kB[22m[2m │ map: 4.71 kB[22m
|
|
818
818
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlBtnGhost/PlBtnGhost.vue.js [39m[1m[2m 4.39 kB[22m[1m[22m[2m │ gzip: 1.68 kB[22m[2m │ map: 2.34 kB[22m
|
|
819
819
|
[2mdist/[22m[36mlib/ui/uikit/dist/composition/useSortable2.js [39m[1m[2m 4.41 kB[22m[1m[22m[2m │ gzip: 1.51 kB[22m[2m │ map: 13.13 kB[22m
|
|
@@ -829,8 +829,8 @@ computing gzip size...
|
|
|
829
829
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlDialogModal/PlDialogModal.vue.js [39m[1m[2m 5.82 kB[22m[1m[22m[2m │ gzip: 2.02 kB[22m[2m │ map: 5.25 kB[22m
|
|
830
830
|
[2mdist/[22m[36mnode_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.5.4_/node_modules/@vueuse/core/index.js [39m[1m[2m 5.94 kB[22m[1m[22m[2m │ gzip: 2.28 kB[22m[2m │ map: 253.62 kB[22m
|
|
831
831
|
[2mdist/[22m[36mcomponents/PlAgGridColumnManager/PlAgGridColumnManager.vue.js [39m[1m[2m 6.19 kB[22m[1m[22m[2m │ gzip: 2.18 kB[22m[2m │ map: 4.91 kB[22m
|
|
832
|
-
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js [39m[1m[2m 6.38 kB[22m[1m[22m[2m │ gzip: 2.02 kB[22m[2m │ map: 9.82 kB[22m
|
|
833
832
|
[2mdist/[22m[36mcomponents/PlTableFilters/PlTableFilterEntry.vue.js [39m[1m[2m 6.41 kB[22m[1m[22m[2m │ gzip: 1.44 kB[22m[2m │ map: 5.04 kB[22m
|
|
833
|
+
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js [39m[1m[2m 6.46 kB[22m[1m[22m[2m │ gzip: 2.03 kB[22m[2m │ map: 9.89 kB[22m
|
|
834
834
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js [39m[1m[2m 6.50 kB[22m[1m[22m[2m │ gzip: 2.32 kB[22m[2m │ map: 5.68 kB[22m
|
|
835
835
|
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js [39m[1m[2m 6.70 kB[22m[1m[22m[2m │ gzip: 1.86 kB[22m[2m │ map: 15.20 kB[22m
|
|
836
836
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlTextArea/PlTextArea.vue.js [39m[1m[2m 6.71 kB[22m[1m[22m[2m │ gzip: 2.37 kB[22m[2m │ map: 5.76 kB[22m
|
|
@@ -841,13 +841,13 @@ computing gzip size...
|
|
|
841
841
|
[2mdist/[22m[36mcomponents/PlAgDataTable/sources/table-source-v2.js [39m[1m[2m 7.17 kB[22m[1m[22m[2m │ gzip: 2.62 kB[22m[2m │ map: 20.17 kB[22m
|
|
842
842
|
[2mdist/[22m[36mnode_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js [39m[1m[2m 7.70 kB[22m[1m[22m[2m │ gzip: 2.49 kB[22m[2m │ map: 25.67 kB[22m
|
|
843
843
|
[2mdist/[22m[36mlib/ui/uikit/dist/lib/util/helpers/dist/index.js [39m[1m[2m 7.87 kB[22m[1m[22m[2m │ gzip: 2.90 kB[22m[2m │ map: 39.99 kB[22m
|
|
844
|
-
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/data.js [39m[1m[2m 8.
|
|
844
|
+
[2mdist/[22m[36mcomponents/PlMultiSequenceAlignment/data.js [39m[1m[2m 8.29 kB[22m[1m[22m[2m │ gzip: 2.65 kB[22m[2m │ map: 23.02 kB[22m
|
|
845
845
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/SliderRangeTriple.vue.js [39m[1m[2m 8.52 kB[22m[1m[22m[2m │ gzip: 2.46 kB[22m[2m │ map: 15.56 kB[22m
|
|
846
846
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js [39m[1m[2m 8.71 kB[22m[1m[22m[2m │ gzip: 2.89 kB[22m[2m │ map: 8.77 kB[22m
|
|
847
847
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlFileDialog/Remote.vue.js [39m[1m[2m 8.72 kB[22m[1m[22m[2m │ gzip: 2.80 kB[22m[2m │ map: 14.28 kB[22m
|
|
848
848
|
[2mdist/[22m[36mlib/ui/uikit/dist/node_modules/.pnpm/d3-color@3.1.0/node_modules/d3-color/src/color.js [39m[1m[2m 9.19 kB[22m[1m[22m[2m │ gzip: 3.33 kB[22m[2m │ map: 22.02 kB[22m
|
|
849
849
|
[2mdist/[22m[36mcomponents/PlTableFilters/filters_logic.js [39m[1m[2m 9.32 kB[22m[1m[22m[2m │ gzip: 2.11 kB[22m[2m │ map: 19.05 kB[22m
|
|
850
|
-
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementList.vue2.js [39m[1m[2m
|
|
850
|
+
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlElementList/PlElementList.vue2.js [39m[1m[2m 10.13 kB[22m[1m[22m[2m │ gzip: 2.58 kB[22m[2m │ map: 19.02 kB[22m
|
|
851
851
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js [39m[1m[2m 10.21 kB[22m[1m[22m[2m │ gzip: 3.25 kB[22m[2m │ map: 13.09 kB[22m
|
|
852
852
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlFileInput/PlFileInput.vue.js [39m[1m[2m 10.76 kB[22m[1m[22m[2m │ gzip: 3.37 kB[22m[2m │ map: 8.09 kB[22m
|
|
853
853
|
[2mdist/[22m[36mlib/ui/uikit/dist/demo-site-data/all-css-variables.js [39m[1m[2m 11.00 kB[22m[1m[22m[2m │ gzip: 1.76 kB[22m[2m │ map: 18.24 kB[22m
|
|
@@ -876,4 +876,4 @@ computing gzip size...
|
|
|
876
876
|
[2mdist/[22m[36mlib/ui/uikit/dist/index.js [39m[1m[2m497.54 kB[22m[1m[22m[2m │ gzip: 191.69 kB[22m[2m │ map: 0.18 kB[22m
|
|
877
877
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js [39m[1m[33m601.36 kB[39m[22m[2m │ gzip: 204.40 kB[22m[2m │ map: 0.23 kB[22m
|
|
878
878
|
[2mdist/[22m[36mlib/ui/uikit/dist/components/DataTable/TableComponent.vue.js [39m[1m[33m602.69 kB[39m[22m[2m │ gzip: 204.99 kB[22m[2m │ map: 0.27 kB[22m
|
|
879
|
-
[32m✓ built in 9.
|
|
879
|
+
[32m✓ built in 9.07s[39m
|
|
@@ -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.37.
|
|
3
|
+
> @platforma-sdk/ui-vue@1.37.13 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,18 @@
|
|
|
1
1
|
# @platforma-sdk/ui-vue
|
|
2
2
|
|
|
3
|
+
## 1.37.13
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- eb52553: MSA: show multiple sequence columns separately
|
|
8
|
+
|
|
9
|
+
## 1.37.12
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- Updated dependencies [70eff11]
|
|
14
|
+
- @milaboratories/uikit@2.2.95
|
|
15
|
+
|
|
3
16
|
## 1.37.11
|
|
4
17
|
|
|
5
18
|
### Patch Changes
|
|
@@ -9,21 +9,21 @@ const P = /* @__PURE__ */ g({
|
|
|
9
9
|
residueCounts: {}
|
|
10
10
|
},
|
|
11
11
|
setup(l) {
|
|
12
|
-
const
|
|
13
|
-
G(
|
|
14
|
-
|
|
12
|
+
const r = E("plotEl"), a = k();
|
|
13
|
+
G(r, ([{ contentRect: { width: e, height: t } }]) => {
|
|
14
|
+
a.value = { width: e, height: t };
|
|
15
15
|
});
|
|
16
16
|
const v = m(() => l.residueCounts.map((e) => {
|
|
17
17
|
let t = 0, o = { label: "", count: 0 };
|
|
18
|
-
for (const [
|
|
19
|
-
t +=
|
|
18
|
+
for (const [s, u] of Object.entries(e))
|
|
19
|
+
t += u, s !== "-" && u > o.count && (o = { label: s, count: u });
|
|
20
20
|
const f = CSS.percent(o.count / t * 100);
|
|
21
21
|
return {
|
|
22
22
|
label: o.label,
|
|
23
23
|
color: `color-mix(in oklab, ${f} #3056AE, #C1CDE9)`
|
|
24
24
|
};
|
|
25
25
|
})), c = m(() => {
|
|
26
|
-
if (
|
|
26
|
+
if (a.value)
|
|
27
27
|
return {
|
|
28
28
|
type: "discrete",
|
|
29
29
|
y: {
|
|
@@ -46,7 +46,7 @@ const P = /* @__PURE__ */ g({
|
|
|
46
46
|
height: "max",
|
|
47
47
|
aes: {
|
|
48
48
|
...l.residueCounts.length && {
|
|
49
|
-
width: (
|
|
49
|
+
width: (a.value.width - l.residueCounts.length + 1) / l.residueCounts.length
|
|
50
50
|
},
|
|
51
51
|
fillColor: {
|
|
52
52
|
type: "primaryGrouping"
|
|
@@ -59,7 +59,7 @@ const P = /* @__PURE__ */ g({
|
|
|
59
59
|
show: !1
|
|
60
60
|
},
|
|
61
61
|
size: {
|
|
62
|
-
width:
|
|
62
|
+
width: a.value.width,
|
|
63
63
|
height: 60,
|
|
64
64
|
outerOffset: 0,
|
|
65
65
|
innerOffset: 0
|
|
@@ -84,8 +84,8 @@ const P = /* @__PURE__ */ g({
|
|
|
84
84
|
() => {
|
|
85
85
|
const e = [], t = [];
|
|
86
86
|
for (const [o, f] of l.residueCounts.entries())
|
|
87
|
-
for (const [
|
|
88
|
-
|
|
87
|
+
for (const [s, u] of Object.entries(f))
|
|
88
|
+
s !== "-" && (e.push(s === " " ? 0 : u), t.push(o));
|
|
89
89
|
return {
|
|
90
90
|
type: "columns",
|
|
91
91
|
id: "consensus",
|
|
@@ -94,7 +94,7 @@ const P = /* @__PURE__ */ g({
|
|
|
94
94
|
}
|
|
95
95
|
), n = x(), { miplots: y, error: C } = K();
|
|
96
96
|
return O(async () => {
|
|
97
|
-
!c.value || !
|
|
97
|
+
!c.value || !r.value || !y.value || (n.value ? n.value.updateSettingsAndData(h.value, c.value) : (n.value = y.value.newPlot(h.value, c.value), n.value.mount(r.value)));
|
|
98
98
|
}), A(() => {
|
|
99
99
|
var e;
|
|
100
100
|
(e = n.value) == null || e.unmount();
|
|
@@ -109,7 +109,7 @@ const P = /* @__PURE__ */ g({
|
|
|
109
109
|
}, [
|
|
110
110
|
d("div", {
|
|
111
111
|
ref_key: "plotEl",
|
|
112
|
-
ref:
|
|
112
|
+
ref: r,
|
|
113
113
|
class: i(e.$style.plot)
|
|
114
114
|
}, null, 2),
|
|
115
115
|
p(C) ? (b(), R(p(N), {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consensus.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/Consensus.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n Settings,\n} from '@milaboratories/miplots4';\nimport { PlAlert } from '@milaboratories/uikit';\nimport { useResizeObserver } from '@vueuse/core';\nimport {\n computed,\n onBeforeUnmount,\n ref,\n shallowRef,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst { residueCounts } = defineProps<{\n residueCounts: ResidueCounts;\n}>();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst size = ref<{ width: number; height: number }>();\n\nuseResizeObserver(plotEl, ([{ contentRect: { width, height } }]) => {\n size.value = { width, height };\n});\n\nconst columns = computed(() => {\n return residueCounts.map((column) => {\n let totalCount = 0;\n let topResidue = { label: '', count: 0 };\n for (const [residue, count] of Object.entries(column)) {\n totalCount += count;\n if (residue === '-') continue;\n if (count > topResidue.count) topResidue = { label: residue, count };\n }\n const confidence = CSS.percent(topResidue.count / totalCount * 100);\n return {\n label: topResidue.label,\n color: `color-mix(in oklab, ${confidence} #3056AE, #C1CDE9)`,\n };\n });\n});\n\nconst settings = computed<Settings | undefined>(() => {\n if (!size.value) return;\n return ({\n type: 'discrete',\n y: {\n type: 'column',\n value: 'countKey',\n },\n legend: { show: false },\n primaryGrouping: {\n columnName: {\n type: 'column',\n value: 'columnKey',\n },\n order: residueCounts.map((_, i) => i),\n inheritedAes: Object.fromEntries(\n columns.value.map(({ color }) => ({ fillColor: color })).entries(),\n ),\n },\n layers: [{\n type: 'bar',\n height: 'max',\n aes: {\n ...residueCounts.length && {\n width: (size.value.width - residueCounts.length + 1)\n / residueCounts.length,\n },\n fillColor: {\n type: 'primaryGrouping',\n },\n lineColor: '#ffffff',\n },\n }],\n title: {\n name: '',\n show: false,\n },\n size: {\n width: size.value.width,\n height: 60,\n outerOffset: 0,\n innerOffset: 0,\n },\n xAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n yAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n frame: {\n type: 'empty',\n },\n });\n});\n\nconst data = computed<DataByColumns>(\n () => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n for (const [columnIndex, column] of residueCounts.entries()) {\n for (const [residue, count] of Object.entries(column)) {\n if (residue === '-') continue;\n countKey.push(count);\n columnKey.push(columnIndex);\n }\n }\n return ({\n type: 'columns',\n id: 'consensus',\n values: { countKey, columnKey },\n });\n },\n);\n\nconst plot = shallowRef<ChartInterface>();\n\nconst { miplots, error } = useMiPlots();\n\nwatchEffect(async () => {\n if (!settings.value || !plotEl.value || !miplots.value) return;\n if (!plot.value) {\n plot.value = miplots.value.newPlot(data.value, settings.value);\n plot.value.mount(plotEl.value);\n } else {\n plot.value.updateSettingsAndData(data.value, settings.value);\n }\n});\n\nonBeforeUnmount(() => {\n plot.value?.unmount();\n});\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <div :class=\"$style.labels\">\n {{ columns.map(column => column.label).join('') }}\n </div>\n <div :class=\"$style['plot-container']\">\n <div ref=\"plotEl\" :class=\"$style.plot\" />\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n </div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.labels {\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}\n\n.plot-container {\n position: relative;\n block-size: 60px;\n}\n\n.plot {\n position: absolute;\n inset: 0;\n}\n</style>\n"],"names":["plotEl","useTemplateRef","size","ref","useResizeObserver","width","height","columns","computed","__props","column","totalCount","topResidue","residue","count","confidence","settings","_","i","color","data","countKey","columnKey","columnIndex","plot","shallowRef","miplots","error","useMiPlots","watchEffect","onBeforeUnmount","_a"],"mappings":";;;;;;;;;;;AAuBM,UAAAA,IAASC,EAAe,QAAQ,GAEhCC,IAAOC,EAAuC;AAElC,IAAAC,EAAAJ,GAAQ,CAAC,CAAC,EAAE,aAAa,EAAE,OAAAK,GAAO,QAAAC,EAAS,EAAA,CAAC,MAAM;AAC7D,MAAAJ,EAAA,QAAQ,EAAE,OAAAG,GAAO,QAAAC,EAAO;AAAA,IAAA,CAC9B;AAEK,UAAAC,IAAUC,EAAS,MAChBC,EAAa,cAAC,IAAI,CAACC,MAAW;AACnC,UAAIC,IAAa,GACbC,IAAa,EAAE,OAAO,IAAI,OAAO,EAAE;AACvC,iBAAW,CAACC,GAASC,CAAK,KAAK,OAAO,QAAQJ,CAAM;AAElD,QADcC,KAAAG,GACVD,MAAY,OACZC,IAAQF,EAAW,cAAoB,EAAE,OAAOC,GAAS,OAAAC,EAAM;AAErE,YAAMC,IAAa,IAAI,QAAQH,EAAW,QAAQD,IAAa,GAAG;AAC3D,aAAA;AAAA,QACL,OAAOC,EAAW;AAAA,QAClB,OAAO,uBAAuBG,CAAU;AAAA,MAC1C;AAAA,IAAA,CACD,CACF,GAEKC,IAAWR,EAA+B,MAAM;AAChD,UAACN,EAAK;AACF,eAAA;AAAA,UACN,MAAM;AAAA,UACN,GAAG;AAAA,YACD,MAAM;AAAA,YACN,OAAO;AAAA,UACT;AAAA,UACA,QAAQ,EAAE,MAAM,GAAM;AAAA,UACtB,iBAAiB;AAAA,YACf,YAAY;AAAA,cACV,MAAM;AAAA,cACN,OAAO;AAAA,YACT;AAAA,YACA,OAAOO,EAAa,cAAC,IAAI,CAACQ,GAAGC,MAAMA,CAAC;AAAA,YACpC,cAAc,OAAO;AAAA,cACnBX,EAAQ,MAAM,IAAI,CAAC,EAAE,OAAAY,SAAa,EAAE,WAAWA,IAAQ,EAAE,QAAQ;AAAA,YAAA;AAAA,UAErE;AAAA,UACA,QAAQ,CAAC;AAAA,YACP,MAAM;AAAA,YACN,QAAQ;AAAA,YACR,KAAK;AAAA,cACH,GAAGV,gBAAc,UAAU;AAAA,gBACzB,QAAQP,EAAK,MAAM,QAAQO,gBAAc,SAAS,KAC9CA,gBAAc;AAAA,cACpB;AAAA,cACA,WAAW;AAAA,gBACT,MAAM;AAAA,cACR;AAAA,cACA,WAAW;AAAA,YAAA;AAAA,UACb,CACD;AAAA,UACD,OAAO;AAAA,YACL,MAAM;AAAA,YACN,MAAM;AAAA,UACR;AAAA,UACA,MAAM;AAAA,YACJ,OAAOP,EAAK,MAAM;AAAA,YAClB,QAAQ;AAAA,YACR,aAAa;AAAA,YACb,aAAa;AAAA,UACf;AAAA,UACA,OAAO;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,YACV,WAAW;AAAA,YACX,cAAc;AAAA,UAChB;AAAA,UACA,OAAO;AAAA,YACL,OAAO;AAAA,YACP,UAAU;AAAA,YACV,WAAW;AAAA,YACX,cAAc;AAAA,UAChB;AAAA,UACA,OAAO;AAAA,YACL,MAAM;AAAA,UAAA;AAAA,QAEV;AAAA,IAAA,CACD,GAEKkB,IAAOZ;AAAA,MACX,MAAM;AACJ,cAAMa,IAAqB,CAAC,GACtBC,IAAsB,CAAC;AAC7B,mBAAW,CAACC,GAAab,CAAM,KAAKD,gBAAc;AAChD,qBAAW,CAACI,GAASC,CAAK,KAAK,OAAO,QAAQJ,CAAM;AAClD,YAAIG,MAAY,QAChBQ,EAAS,
|
|
1
|
+
{"version":3,"file":"Consensus.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/Consensus.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type {\n ChartInterface,\n DataByColumns,\n Settings,\n} from '@milaboratories/miplots4';\nimport { PlAlert } from '@milaboratories/uikit';\nimport { useResizeObserver } from '@vueuse/core';\nimport {\n computed,\n onBeforeUnmount,\n ref,\n shallowRef,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst { residueCounts } = defineProps<{\n residueCounts: ResidueCounts;\n}>();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst size = ref<{ width: number; height: number }>();\n\nuseResizeObserver(plotEl, ([{ contentRect: { width, height } }]) => {\n size.value = { width, height };\n});\n\nconst columns = computed(() => {\n return residueCounts.map((column) => {\n let totalCount = 0;\n let topResidue = { label: '', count: 0 };\n for (const [residue, count] of Object.entries(column)) {\n totalCount += count;\n if (residue === '-') continue;\n if (count > topResidue.count) topResidue = { label: residue, count };\n }\n const confidence = CSS.percent(topResidue.count / totalCount * 100);\n return {\n label: topResidue.label,\n color: `color-mix(in oklab, ${confidence} #3056AE, #C1CDE9)`,\n };\n });\n});\n\nconst settings = computed<Settings | undefined>(() => {\n if (!size.value) return;\n return ({\n type: 'discrete',\n y: {\n type: 'column',\n value: 'countKey',\n },\n legend: { show: false },\n primaryGrouping: {\n columnName: {\n type: 'column',\n value: 'columnKey',\n },\n order: residueCounts.map((_, i) => i),\n inheritedAes: Object.fromEntries(\n columns.value.map(({ color }) => ({ fillColor: color })).entries(),\n ),\n },\n layers: [{\n type: 'bar',\n height: 'max',\n aes: {\n ...residueCounts.length && {\n width: (size.value.width - residueCounts.length + 1)\n / residueCounts.length,\n },\n fillColor: {\n type: 'primaryGrouping',\n },\n lineColor: '#ffffff',\n },\n }],\n title: {\n name: '',\n show: false,\n },\n size: {\n width: size.value.width,\n height: 60,\n outerOffset: 0,\n innerOffset: 0,\n },\n xAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n yAxis: {\n title: '',\n showGrid: false,\n showTicks: false,\n hiddenLabels: true,\n },\n frame: {\n type: 'empty',\n },\n });\n});\n\nconst data = computed<DataByColumns>(\n () => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n for (const [columnIndex, column] of residueCounts.entries()) {\n for (const [residue, count] of Object.entries(column)) {\n if (residue === '-') continue;\n countKey.push(residue === ' ' ? 0 : count);\n columnKey.push(columnIndex);\n }\n }\n return ({\n type: 'columns',\n id: 'consensus',\n values: { countKey, columnKey },\n });\n },\n);\n\nconst plot = shallowRef<ChartInterface>();\n\nconst { miplots, error } = useMiPlots();\n\nwatchEffect(async () => {\n if (!settings.value || !plotEl.value || !miplots.value) return;\n if (!plot.value) {\n plot.value = miplots.value.newPlot(data.value, settings.value);\n plot.value.mount(plotEl.value);\n } else {\n plot.value.updateSettingsAndData(data.value, settings.value);\n }\n});\n\nonBeforeUnmount(() => {\n plot.value?.unmount();\n});\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <div :class=\"$style.labels\">\n {{ columns.map(column => column.label).join('') }}\n </div>\n <div :class=\"$style['plot-container']\">\n <div ref=\"plotEl\" :class=\"$style.plot\" />\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n </div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 4px;\n}\n\n.labels {\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}\n\n.plot-container {\n position: relative;\n block-size: 60px;\n}\n\n.plot {\n position: absolute;\n inset: 0;\n}\n</style>\n"],"names":["plotEl","useTemplateRef","size","ref","useResizeObserver","width","height","columns","computed","__props","column","totalCount","topResidue","residue","count","confidence","settings","_","i","color","data","countKey","columnKey","columnIndex","plot","shallowRef","miplots","error","useMiPlots","watchEffect","onBeforeUnmount","_a"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSequenceAlignmentView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiSequenceAlignmentView.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"names":[],"mappings":"AA+KA,OAAO,EAA6B,KAAK,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C,KAAK,WAAW,GAAG;IACjB,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,EAAE,MAAM,EAAE,EAAE,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,MAAM,EAAE;QACN,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,GAAG,SAAS,CAAC;IACd,WAAW,EAAE,WAAW,CAAC;IACzB,SAAS,EAAE,OAAO,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;CAClB,CAAC;;AAwJF,wBAOG"}
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { asyncComputed as
|
|
3
|
-
import { colorizeSequencesByChemicalProperties as
|
|
4
|
-
import
|
|
5
|
-
import { colorizeSequencesByMarkup as
|
|
1
|
+
import { defineComponent as $, useCssVars as B, computed as p, createElementBlock as s, openBlock as o, normalizeClass as t, createElementVNode as i, createCommentVNode as y, createBlock as v, Fragment as a, renderList as m, normalizeStyle as q, toDisplayString as h } from "vue";
|
|
2
|
+
import { asyncComputed as R, useObjectUrl as b } from "../../node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.5.4_/node_modules/@vueuse/core/index.js";
|
|
3
|
+
import { colorizeSequencesByChemicalProperties as z, chemicalPropertiesColorMap as L } from "./chemical-properties.js";
|
|
4
|
+
import M from "./Consensus.vue.js";
|
|
5
|
+
import { colorizeSequencesByMarkup as N } from "./markup.js";
|
|
6
6
|
import { getResidueCounts as V } from "./residue-counts.js";
|
|
7
7
|
import j from "./SeqLogo.vue.js";
|
|
8
|
-
const
|
|
8
|
+
const O = /* @__PURE__ */ $({
|
|
9
9
|
__name: "MultiSequenceAlignmentView",
|
|
10
10
|
props: {
|
|
11
|
+
sequenceNames: {},
|
|
11
12
|
sequenceRows: {},
|
|
12
13
|
labelRows: {},
|
|
13
14
|
markup: {},
|
|
@@ -16,73 +17,85 @@ const F = /* @__PURE__ */ w({
|
|
|
16
17
|
seqLogo: { type: Boolean }
|
|
17
18
|
},
|
|
18
19
|
setup(l) {
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
B((e) => ({
|
|
21
|
+
"6c434620": k.value
|
|
21
22
|
}));
|
|
22
|
-
const
|
|
23
|
-
() => l.sequenceRows.map((e) => e.join(""))
|
|
24
|
-
),
|
|
25
|
-
() => V(
|
|
26
|
-
),
|
|
27
|
-
var e,
|
|
23
|
+
const c = p(
|
|
24
|
+
() => l.sequenceRows.map((e) => e.join(" "))
|
|
25
|
+
), d = p(
|
|
26
|
+
() => V(c.value)
|
|
27
|
+
), C = R(() => {
|
|
28
|
+
var e, r;
|
|
28
29
|
switch (l.colorScheme.type) {
|
|
29
30
|
case "no-color":
|
|
30
31
|
return;
|
|
31
32
|
case "chemical-properties":
|
|
32
|
-
return
|
|
33
|
-
sequences:
|
|
34
|
-
residueCounts:
|
|
35
|
-
colorMap:
|
|
33
|
+
return z({
|
|
34
|
+
sequences: c.value,
|
|
35
|
+
residueCounts: d.value,
|
|
36
|
+
colorMap: L
|
|
36
37
|
});
|
|
37
38
|
case "markup":
|
|
38
|
-
return
|
|
39
|
+
return N({
|
|
39
40
|
markupRows: ((e = l.markup) == null ? void 0 : e.data) ?? [],
|
|
40
41
|
colorMap: l.colorScheme.colors,
|
|
41
|
-
columnCount: ((
|
|
42
|
+
columnCount: ((r = c.value) == null ? void 0 : r[0].length) ?? 0
|
|
42
43
|
});
|
|
43
44
|
default:
|
|
44
45
|
throw new Error(`Unknown color scheme: ${l.colorScheme.type}`);
|
|
45
46
|
}
|
|
46
|
-
}),
|
|
47
|
-
() =>
|
|
47
|
+
}), g = b(C), k = p(
|
|
48
|
+
() => g.value ? `url('${g.value}')` : "none"
|
|
48
49
|
);
|
|
49
|
-
|
|
50
|
-
|
|
50
|
+
function f(e) {
|
|
51
|
+
var r, n;
|
|
52
|
+
return ((n = (r = l.sequenceRows.at(0)) == null ? void 0 : r.at(e)) == null ? void 0 : n.length) ?? 0;
|
|
53
|
+
}
|
|
54
|
+
return (e, r) => (o(), s("div", {
|
|
55
|
+
class: t(["pl-scrollable", e.$style.root])
|
|
51
56
|
}, [
|
|
52
|
-
|
|
53
|
-
class:
|
|
57
|
+
i("div", {
|
|
58
|
+
class: t(e.$style.corner)
|
|
54
59
|
}, null, 2),
|
|
55
|
-
|
|
56
|
-
class:
|
|
60
|
+
i("div", {
|
|
61
|
+
class: t(e.$style.header)
|
|
57
62
|
}, [
|
|
58
|
-
e.
|
|
63
|
+
e.sequenceNames.length > 1 ? (o(), s("div", {
|
|
59
64
|
key: 0,
|
|
60
|
-
|
|
61
|
-
},
|
|
62
|
-
|
|
65
|
+
class: t(e.$style["sequence-names"])
|
|
66
|
+
}, [
|
|
67
|
+
(o(!0), s(a, null, m(e.sequenceNames, (n, u) => (o(), s("span", {
|
|
68
|
+
style: q({ inlineSize: `calc(${f(u)} * 20px)` })
|
|
69
|
+
}, h(n), 5))), 256))
|
|
70
|
+
], 2)) : y("", !0),
|
|
71
|
+
e.consensus ? (o(), v(M, {
|
|
63
72
|
key: 1,
|
|
64
|
-
residueCounts:
|
|
65
|
-
}, null, 8, ["residueCounts"])) :
|
|
73
|
+
residueCounts: d.value
|
|
74
|
+
}, null, 8, ["residueCounts"])) : y("", !0),
|
|
75
|
+
e.seqLogo ? (o(), v(j, {
|
|
76
|
+
key: 2,
|
|
77
|
+
residueCounts: d.value
|
|
78
|
+
}, null, 8, ["residueCounts"])) : y("", !0)
|
|
66
79
|
], 2),
|
|
67
|
-
|
|
68
|
-
class:
|
|
80
|
+
i("div", {
|
|
81
|
+
class: t(e.$style.labels)
|
|
69
82
|
}, [
|
|
70
|
-
(o(!0),
|
|
71
|
-
(o(!0),
|
|
72
|
-
key:
|
|
73
|
-
style:
|
|
74
|
-
},
|
|
83
|
+
(o(!0), s(a, null, m(e.labelRows, (n, u) => (o(), s(a, null, [
|
|
84
|
+
(o(!0), s(a, null, m(n, (w, S) => (o(), s("div", {
|
|
85
|
+
key: S,
|
|
86
|
+
style: q({ gridRow: u + 1 })
|
|
87
|
+
}, h(w), 5))), 128))
|
|
75
88
|
], 64))), 256))
|
|
76
89
|
], 2),
|
|
77
|
-
|
|
78
|
-
class:
|
|
90
|
+
i("div", {
|
|
91
|
+
class: t(e.$style.sequences)
|
|
79
92
|
}, [
|
|
80
|
-
(o(!0),
|
|
93
|
+
(o(!0), s(a, null, m(c.value, (n, u) => (o(), s("div", { key: u }, h(n), 1))), 128))
|
|
81
94
|
], 2)
|
|
82
95
|
], 2));
|
|
83
96
|
}
|
|
84
97
|
});
|
|
85
98
|
export {
|
|
86
|
-
|
|
99
|
+
O as default
|
|
87
100
|
};
|
|
88
101
|
//# sourceMappingURL=MultiSequenceAlignmentView.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MultiSequenceAlignmentView.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computedAsync, useObjectUrl } from '@vueuse/core';\nimport { computed } from 'vue';\nimport {\n chemicalPropertiesColorMap,\n colorizeSequencesByChemicalProperties,\n} from './chemical-properties';\nimport Consensus from './Consensus.vue';\nimport { colorizeSequencesByMarkup, type Markup } from './markup';\nimport { getResidueCounts } from './residue-counts';\nimport SeqLogo from './SeqLogo.vue';\nimport type { ColorScheme } from './types';\n\nconst { sequenceRows, labelRows, markup, colorScheme } = defineProps<{\n sequenceRows: string[][];\n labelRows: string[][];\n markup: {\n labels: Record<string, string>;\n data: Markup[];\n } | undefined;\n colorScheme: ColorScheme;\n consensus: boolean;\n seqLogo: boolean;\n}>();\n\nconst concatenatedSequences = computed(() =>\n sequenceRows.map((row) => row.join('')),\n);\n\nconst residueCounts = computed(\n () => getResidueCounts(concatenatedSequences.value),\n);\n\nconst highlightImageBlob = computedAsync(() => {\n switch (colorScheme.type) {\n case 'no-color':\n return;\n case 'chemical-properties':\n return colorizeSequencesByChemicalProperties({\n sequences: concatenatedSequences.value,\n residueCounts: residueCounts.value,\n colorMap: chemicalPropertiesColorMap,\n });\n case 'markup':\n return colorizeSequencesByMarkup({\n markupRows: markup?.data ?? [],\n colorMap: colorScheme.colors,\n columnCount: concatenatedSequences.value?.[0].length ?? 0,\n });\n default:\n throw new Error(`Unknown color scheme: ${colorScheme.type}`);\n }\n});\n\nconst objectUrl = useObjectUrl(highlightImageBlob);\n\nconst highlightImage = computed(\n () => objectUrl.value ? `url('${objectUrl.value}')` : 'none',\n);\n</script>\n\n<template>\n <div :class=\"['pl-scrollable', $style.root]\">\n <div :class=\"$style.corner\" />\n <div :class=\"$style.header\">\n <Consensus v-if=\"consensus\" :residueCounts />\n <SeqLogo v-if=\"seqLogo\" :residueCounts />\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, sequenceIndex) of concatenatedSequences\"\n :key=\"sequenceIndex\"\n >\n {{ sequence }}\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.root {\n display: grid;\n grid-template-areas:\n \"corner header\"\n \"labels sequences\";\n text-wrap: nowrap;\n justify-content: start;\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 padding-inline-end: 6px;\n background-color: white;\n position: sticky;\n inset-block-start: 0;\n z-index: 1;\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 background-image: v-bind(highlightImage);\n background-repeat: no-repeat;\n background-size: calc(100% - 5.8px) 100%;\n image-rendering: pixelated;\n}\n</style>\n"],"names":["concatenatedSequences","computed","__props","row","residueCounts","getResidueCounts","highlightImageBlob","computedAsync","colorizeSequencesByChemicalProperties","chemicalPropertiesColorMap","colorizeSequencesByMarkup","_a","_b","objectUrl","useObjectUrl","highlightImage"],"mappings":"
|
|
1
|
+
{"version":3,"file":"MultiSequenceAlignmentView.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { computedAsync, useObjectUrl } from '@vueuse/core';\nimport { computed } from 'vue';\nimport {\n chemicalPropertiesColorMap,\n colorizeSequencesByChemicalProperties,\n} from './chemical-properties';\nimport Consensus from './Consensus.vue';\nimport { colorizeSequencesByMarkup, type Markup } from './markup';\nimport { getResidueCounts } from './residue-counts';\nimport SeqLogo from './SeqLogo.vue';\nimport type { ColorScheme } from './types';\n\nconst { sequenceRows, labelRows, markup, colorScheme } = defineProps<{\n sequenceNames: string[];\n sequenceRows: string[][];\n labelRows: string[][];\n markup: {\n labels: Record<string, string>;\n data: Markup[];\n } | undefined;\n colorScheme: ColorScheme;\n consensus: boolean;\n seqLogo: boolean;\n}>();\n\nconst concatenatedSequences = computed(() =>\n sequenceRows.map((row) => row.join(' ')),\n);\n\nconst residueCounts = computed(\n () => getResidueCounts(concatenatedSequences.value),\n);\n\nconst highlightImageBlob = computedAsync(() => {\n switch (colorScheme.type) {\n case 'no-color':\n return;\n case 'chemical-properties':\n return colorizeSequencesByChemicalProperties({\n sequences: concatenatedSequences.value,\n residueCounts: residueCounts.value,\n colorMap: chemicalPropertiesColorMap,\n });\n case 'markup':\n return colorizeSequencesByMarkup({\n markupRows: markup?.data ?? [],\n colorMap: colorScheme.colors,\n columnCount: concatenatedSequences.value?.[0].length ?? 0,\n });\n default:\n throw new Error(`Unknown color scheme: ${colorScheme.type}`);\n }\n});\n\nconst objectUrl = useObjectUrl(highlightImageBlob);\n\nconst highlightImage = computed(\n () => objectUrl.value ? `url('${objectUrl.value}')` : 'none',\n);\n\nfunction sequenceLength(index: number) {\n return sequenceRows.at(0)?.at(index)?.length ?? 0;\n}\n</script>\n\n<template>\n <div :class=\"['pl-scrollable', $style.root]\">\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 :style=\"{ inlineSize: `calc(${sequenceLength(index)} * 20px)` }\"\n >{{ name }}</span>\n </div>\n <Consensus v-if=\"consensus\" :residueCounts />\n <SeqLogo v-if=\"seqLogo\" :residueCounts />\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, sequenceIndex) of concatenatedSequences\"\n :key=\"sequenceIndex\"\n >\n {{ sequence }}\n </div>\n </div>\n </div>\n</template>\n\n<style module>\n.root {\n display: grid;\n grid-template-areas:\n \"corner header\"\n \"labels sequences\";\n text-wrap: nowrap;\n justify-content: start;\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 padding-inline-end: 6px;\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 background-image: v-bind(highlightImage);\n background-repeat: no-repeat;\n background-size: calc(100% - 5.8px) 100%;\n image-rendering: pixelated;\n}\n</style>\n"],"names":["concatenatedSequences","computed","__props","row","residueCounts","getResidueCounts","highlightImageBlob","computedAsync","colorizeSequencesByChemicalProperties","chemicalPropertiesColorMap","colorizeSequencesByMarkup","_a","_b","objectUrl","useObjectUrl","highlightImage","sequenceLength","index"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA0BA,UAAMA,IAAwBC;AAAA,MAAS,MACrCC,EAAA,aAAa,IAAI,CAACC,MAAQA,EAAI,KAAK,GAAG,CAAC;AAAA,IACzC,GAEMC,IAAgBH;AAAA,MACpB,MAAMI,EAAiBL,EAAsB,KAAK;AAAA,IACpD,GAEMM,IAAqBC,EAAc,MAAM;;AACrC,cAAAL,EAAA,YAAY,MAAM;AAAA,QACxB,KAAK;AACH;AAAA,QACF,KAAK;AACH,iBAAOM,EAAsC;AAAA,YAC3C,WAAWR,EAAsB;AAAA,YACjC,eAAeI,EAAc;AAAA,YAC7B,UAAUK;AAAA,UAAA,CACX;AAAA,QACH,KAAK;AACH,iBAAOC,EAA0B;AAAA,YAC/B,cAAYC,IAAAT,EAAM,WAAN,gBAAAS,EAAQ,SAAQ,CAAC;AAAA,YAC7B,UAAUT,EAAW,YAAC;AAAA,YACtB,eAAaU,IAAAZ,EAAsB,UAAtB,gBAAAY,EAA8B,GAAG,WAAU;AAAA,UAAA,CACzD;AAAA,QACH;AACE,gBAAM,IAAI,MAAM,yBAAyBV,EAAW,YAAC,IAAI,EAAE;AAAA,MAAA;AAAA,IAC/D,CACD,GAEKW,IAAYC,EAAaR,CAAkB,GAE3CS,IAAiBd;AAAA,MACrB,MAAMY,EAAU,QAAQ,QAAQA,EAAU,KAAK,OAAO;AAAA,IACxD;AAEA,aAASG,EAAeC,GAAe;;AAC9B,eAAAL,KAAAD,IAAAT,EAAY,aAAC,GAAG,CAAC,MAAjB,gBAAAS,EAAoB,GAAGM,OAAvB,gBAAAL,EAA+B,WAAU;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,17 +1,18 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('.
|
|
2
|
-
const e = "
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode('._root_a5ad4_2{display:grid;grid-template-areas:"corner header" "labels sequences";text-wrap:nowrap;justify-content:start}._corner_a5ad4_11{grid-area:corner;background-color:#fff;position:sticky;inset-inline-start:0;inset-block-start:0;z-index:2}._header_a5ad4_20{grid-area:header;padding-inline-end:6px;background-color:#fff;position:sticky;inset-block-start:0;z-index:1}._sequence-names_a5ad4_29{display:flex;font-weight:700;line-height:20px;margin-block-end:4px;gap:20px}._labels_a5ad4_37{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_a5ad4_51{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;background-image:var(--6c434620);background-repeat:no-repeat;background-size:calc(100% - 5.8px) 100%;image-rendering:pixelated}')),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
|
|
2
|
+
const e = "_root_a5ad4_2", a = "_corner_a5ad4_11", s = "_header_a5ad4_20", _ = "_labels_a5ad4_37", n = "_sequences_a5ad4_51", o = {
|
|
3
3
|
root: e,
|
|
4
|
-
corner:
|
|
5
|
-
header:
|
|
6
|
-
|
|
7
|
-
|
|
4
|
+
corner: a,
|
|
5
|
+
header: s,
|
|
6
|
+
"sequence-names": "_sequence-names_a5ad4_29",
|
|
7
|
+
labels: _,
|
|
8
|
+
sequences: n
|
|
8
9
|
};
|
|
9
10
|
export {
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
11
|
+
a as corner,
|
|
12
|
+
o as default,
|
|
13
|
+
s as header,
|
|
14
|
+
_ as labels,
|
|
14
15
|
e as root,
|
|
15
|
-
|
|
16
|
+
n as sequences
|
|
16
17
|
};
|
|
17
18
|
//# 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":"
|
|
1
|
+
{"version":3,"file":"PlMultiSequenceAlignment.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"names":[],"mappings":"AA6OA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,6BAA6B,EAC7B,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAwB9B,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;AAsHF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC1C,GAAG,WAAW,CAAC;;;;;;AAuLhB,wBAOG"}
|