@platforma-sdk/ui-vue 1.42.53 → 1.43.1
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 +213 -207
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +20 -0
- package/dist/AgGridVue/useAgGridOptions.js +2 -3
- package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
- package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js +6 -0
- package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js.map +1 -0
- package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js +5 -0
- package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js.map +1 -0
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +2 -3
- package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +11 -12
- package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
- package/dist/components/PlAgRowNumHeader.vue.js +8 -9
- package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue.d.ts +1 -0
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js +48 -46
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js +5 -7
- package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +14 -13
- package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +9 -8
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +16 -9
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +117 -85
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +25 -18
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.d.ts +8 -0
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js +10 -0
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js.map +1 -0
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js +77 -0
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js.map +1 -0
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js +9 -0
- package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js.map +1 -0
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +26 -18
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +119 -120
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js +7 -124
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js +124 -2
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js +9 -0
- package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js.map +1 -0
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +90 -90
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js +9 -7
- package/dist/components/PlMultiSequenceAlignment/cell-size.d.ts +4 -0
- package/dist/components/PlMultiSequenceAlignment/cell-size.js +8 -0
- package/dist/components/PlMultiSequenceAlignment/cell-size.js.map +1 -0
- package/dist/components/PlMultiSequenceAlignment/data.d.ts +15 -10
- package/dist/components/PlMultiSequenceAlignment/data.js +309 -202
- package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/markup.js +9 -7
- package/dist/components/PlMultiSequenceAlignment/markup.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/migrations.js +15 -13
- package/dist/components/PlMultiSequenceAlignment/migrations.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.d.ts +6 -0
- package/dist/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.d.ts +7 -0
- package/dist/components/PlMultiSequenceAlignment/settings.js +3 -4
- package/dist/components/PlMultiSequenceAlignment/settings.js.map +1 -1
- package/dist/index.js +25 -27
- package/dist/index.js.map +1 -1
- package/dist/lib.d.ts +1 -2
- package/package.json +6 -6
- package/src/components/PlMultiSequenceAlignment/Consensus.vue +38 -39
- package/src/components/PlMultiSequenceAlignment/Legend.vue +9 -9
- package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +222 -126
- package/src/components/PlMultiSequenceAlignment/PhylogeneticTree.vue +110 -0
- package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +28 -22
- package/src/components/PlMultiSequenceAlignment/SeqLogo.vue +77 -69
- package/src/components/PlMultiSequenceAlignment/Toolbar.vue +47 -39
- package/src/components/PlMultiSequenceAlignment/cell-size.ts +4 -0
- package/src/components/PlMultiSequenceAlignment/data.ts +361 -149
- package/src/components/PlMultiSequenceAlignment/markup.ts +10 -8
- package/src/components/PlMultiSequenceAlignment/migrations.ts +6 -1
- package/src/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.ts +54 -0
- package/src/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.ts +89 -0
- package/src/components/PlMultiSequenceAlignment/settings.ts +1 -2
- package/src/lib.ts +1 -3
- package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.d.ts +0 -7
- package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.js +0 -51
- package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.js.map +0 -1
- package/src/components/PlMultiSequenceAlignment/multi-sequence-alignment.ts +0 -101
|
@@ -31,9 +31,8 @@ import "canonicalize";
|
|
|
31
31
|
|
|
32
32
|
import { getTotalRowsCount as i, getSelectedRowsCount as p } from "../../AgGridVue/selection.js";
|
|
33
33
|
import "../PlMultiSequenceAlignment/data.js";
|
|
34
|
-
import "@milaboratories/biowasm-tools";
|
|
35
34
|
import "../../composition/fileContent.js";
|
|
36
|
-
const
|
|
35
|
+
const H = /* @__PURE__ */ l({
|
|
37
36
|
__name: "PlAgRowCount",
|
|
38
37
|
props: {
|
|
39
38
|
params: {}
|
|
@@ -54,6 +53,6 @@ const J = /* @__PURE__ */ l({
|
|
|
54
53
|
}
|
|
55
54
|
});
|
|
56
55
|
export {
|
|
57
|
-
|
|
56
|
+
H as default
|
|
58
57
|
};
|
|
59
58
|
//# sourceMappingURL=PlAgRowCount.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowCount.vue.js","sources":["../../../src/components/PlAgDataTable/PlAgRowCount.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { GridApi } from 'ag-grid-enterprise';\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from 'vue';\nimport { getSelectedRowsCount, getTotalRowsCount } from '../../lib';\n\nconst { params } = defineProps<{\n params: { api: GridApi };\n}>();\n\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\n\nconst pluralRules = new Intl.PluralRules('en');\nconst numberFormatter = new Intl.NumberFormat('en');\n\nconst output = computed(() => {\n let result = numberFormatter.format(totalRowCount.value) + ' ';\n result += pluralRules.select(totalRowCount.value) === 'one' ? 'row' : 'rows';\n if (selectedRowCount.value > 0) {\n result += ' (' + numberFormatter.format(selectedRowCount.value) + ' selected)';\n }\n return result;\n});\n\nfunction updateRowCounts() {\n totalRowCount.value = getTotalRowsCount(params.api);\n selectedRowCount.value = getSelectedRowsCount(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener('selectionChanged', updateRowCounts);\n params.api.addEventListener('rowDataUpdated', updateRowCounts);\n params.api.addEventListener('modelUpdated', updateRowCounts);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener('selectionChanged', updateRowCounts);\n params.api.removeEventListener('rowDataUpdated', updateRowCounts);\n params.api.removeEventListener('modelUpdated', updateRowCounts);\n});\n</script>\n\n<template>\n {{ output }}\n</template>\n"],"names":["totalRowCount","ref","getTotalRowsCount","__props","selectedRowCount","getSelectedRowsCount","pluralRules","numberFormatter","output","computed","result","updateRowCounts","onBeforeMount","onBeforeUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowCount.vue.js","sources":["../../../src/components/PlAgDataTable/PlAgRowCount.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { GridApi } from 'ag-grid-enterprise';\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from 'vue';\nimport { getSelectedRowsCount, getTotalRowsCount } from '../../lib';\n\nconst { params } = defineProps<{\n params: { api: GridApi };\n}>();\n\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\n\nconst pluralRules = new Intl.PluralRules('en');\nconst numberFormatter = new Intl.NumberFormat('en');\n\nconst output = computed(() => {\n let result = numberFormatter.format(totalRowCount.value) + ' ';\n result += pluralRules.select(totalRowCount.value) === 'one' ? 'row' : 'rows';\n if (selectedRowCount.value > 0) {\n result += ' (' + numberFormatter.format(selectedRowCount.value) + ' selected)';\n }\n return result;\n});\n\nfunction updateRowCounts() {\n totalRowCount.value = getTotalRowsCount(params.api);\n selectedRowCount.value = getSelectedRowsCount(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener('selectionChanged', updateRowCounts);\n params.api.addEventListener('rowDataUpdated', updateRowCounts);\n params.api.addEventListener('modelUpdated', updateRowCounts);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener('selectionChanged', updateRowCounts);\n params.api.removeEventListener('rowDataUpdated', updateRowCounts);\n params.api.removeEventListener('modelUpdated', updateRowCounts);\n});\n</script>\n\n<template>\n {{ output }}\n</template>\n"],"names":["totalRowCount","ref","getTotalRowsCount","__props","selectedRowCount","getSelectedRowsCount","pluralRules","numberFormatter","output","computed","result","updateRowCounts","onBeforeMount","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AASA,UAAMA,IAAgBC,EAAIC,EAAkBC,EAAA,OAAO,GAAG,CAAC,GACjDC,IAAmBH,EAAII,EAAqBF,EAAA,OAAO,GAAG,CAAC,GAEvDG,IAAc,IAAI,KAAK,YAAY,IAAI,GACvCC,IAAkB,IAAI,KAAK,aAAa,IAAI,GAE5CC,IAASC,EAAS,MAAM;AAC5B,UAAIC,IAASH,EAAgB,OAAOP,EAAc,KAAK,IAAI;AAC3D,aAAAU,KAAUJ,EAAY,OAAON,EAAc,KAAK,MAAM,QAAQ,QAAQ,QAClEI,EAAiB,QAAQ,MAC3BM,KAAU,OAAOH,EAAgB,OAAOH,EAAiB,KAAK,IAAI,eAE7DM;AAAA,IACT,CAAC;AAED,aAASC,IAAkB;AACzB,MAAAX,EAAc,QAAQE,EAAkBC,SAAO,GAAG,GAClDC,EAAiB,QAAQC,EAAqBF,SAAO,GAAG;AAAA,IAC1D;AAEA,WAAAS,EAAc,MAAM;AAClB,MAAAT,EAAA,OAAO,IAAI,iBAAiB,oBAAoBQ,CAAe,GAC/DR,EAAA,OAAO,IAAI,iBAAiB,kBAAkBQ,CAAe,GAC7DR,EAAA,OAAO,IAAI,iBAAiB,gBAAgBQ,CAAe;AAAA,IAC7D,CAAC,GAEDE,EAAgB,MAAM;AACpB,MAAAV,EAAA,OAAO,IAAI,oBAAoB,oBAAoBQ,CAAe,GAClER,EAAA,OAAO,IAAI,oBAAoB,kBAAkBQ,CAAe,GAChER,EAAA,OAAO,IAAI,oBAAoB,gBAAgBQ,CAAe;AAAA,IAChE,CAAC;;;"}
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
.pl-ag-chart-stacked-bar-cell{height:100%;display:flex;flex-direction:row;align-items:center}.pl-ag-chart-stacked-bar-cell__not-ready{color:var(--txt-03)!important}
|
|
8
8
|
.pl-ag-chart-histogram-cell{height:100%;display:flex;flex-direction:row;align-items:center}.pl-ag-chart-histogram-cell__not-ready{color:var(--txt-03)!important}
|
|
9
9
|
.pl-ag-cell-status-tag{height:100%;padding:0 12px}`)),document.head.appendChild(o)}}catch(r){console.error("vite-plugin-css-injected-by-js",r)}})();
|
|
10
|
-
import { defineComponent as C, ref as c, computed as h, onBeforeMount as w, onBeforeUnmount as b, createElementBlock as d, openBlock as l, normalizeClass as
|
|
10
|
+
import { defineComponent as C, ref as c, computed as h, onBeforeMount as w, onBeforeUnmount as b, createElementBlock as d, openBlock as l, normalizeClass as n, unref as t, createCommentVNode as u, createBlock as y, toDisplayString as B } from "vue";
|
|
11
11
|
import { PlCheckbox as E } from "@milaboratories/uikit";
|
|
12
12
|
import r from "./pl-ag-row-num-checkbox.module.scss.js";
|
|
13
13
|
|
|
@@ -30,31 +30,30 @@ import "canonicalize";
|
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
|
|
33
|
-
import { isSelectionEnabled as
|
|
33
|
+
import { isSelectionEnabled as p } from "../../AgGridVue/selection.js";
|
|
34
34
|
import "../PlMultiSequenceAlignment/data.js";
|
|
35
|
-
import "@milaboratories/biowasm-tools";
|
|
36
35
|
import "../../composition/fileContent.js";
|
|
37
|
-
const
|
|
36
|
+
const Y = /* @__PURE__ */ C({
|
|
38
37
|
__name: "PlAgRowNumCheckbox",
|
|
39
38
|
props: {
|
|
40
39
|
params: {}
|
|
41
40
|
},
|
|
42
41
|
setup(f) {
|
|
43
|
-
const e = f,
|
|
42
|
+
const e = f, a = e.params.api, o = c(!!e.params.node.isSelected()), v = h(() => o.value || p(a)), k = c(p(a)), m = () => {
|
|
44
43
|
o.value = e.params.node.isSelected() !== !1;
|
|
45
44
|
}, S = (i) => {
|
|
46
|
-
|
|
45
|
+
p(a) && (e.params.node.setSelected(i), m());
|
|
47
46
|
};
|
|
48
47
|
return w(() => {
|
|
49
|
-
e.params.node.addEventListener("rowSelected",
|
|
48
|
+
e.params.node.addEventListener("rowSelected", m);
|
|
50
49
|
}), b(() => {
|
|
51
|
-
e.params.node.removeEventListener("rowSelected",
|
|
50
|
+
e.params.node.removeEventListener("rowSelected", m);
|
|
52
51
|
}), (i, s) => (l(), d("div", {
|
|
53
|
-
class:
|
|
52
|
+
class: n([t(r).container, { [t(r)["allowed-selection"]]: k.value }, "d-flex", "justify-center", "align-center"])
|
|
54
53
|
}, [
|
|
55
54
|
o.value ? u("", !0) : (l(), d("div", {
|
|
56
55
|
key: 0,
|
|
57
|
-
class:
|
|
56
|
+
class: n([t(r).text])
|
|
58
57
|
}, B(i.params.value), 3)),
|
|
59
58
|
v.value ? (l(), y(t(E), {
|
|
60
59
|
key: 1,
|
|
@@ -63,12 +62,12 @@ const Z = /* @__PURE__ */ C({
|
|
|
63
62
|
s[0] || (s[0] = (x) => o.value = x),
|
|
64
63
|
S
|
|
65
64
|
],
|
|
66
|
-
class:
|
|
65
|
+
class: n([t(r).checkbox, o.value && t(r).checked])
|
|
67
66
|
}, null, 8, ["modelValue", "class"])) : u("", !0)
|
|
68
67
|
], 2));
|
|
69
68
|
}
|
|
70
69
|
});
|
|
71
70
|
export {
|
|
72
|
-
|
|
71
|
+
Y as default
|
|
73
72
|
};
|
|
74
73
|
//# sourceMappingURL=PlAgRowNumCheckbox.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumCheckbox.vue.js","sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from 'vue';\nimport $styles from './pl-ag-row-num-checkbox.module.scss';\nimport { isSelectionEnabled } from '../../lib';\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener('rowSelected', updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener('rowSelected', updateSelection);\n});\n</script>\n\n<template>\n <div :class=\"[$styles.container, { [$styles['allowed-selection']]: allowedSelection }, 'd-flex', 'justify-center', 'align-center']\">\n <div v-if=\"!isChecked\" :class=\"[$styles.text]\">{{ params.value }}</div>\n <PlCheckbox\n v-if=\"forceShowCheckbox\"\n v-model=\"isChecked\"\n :class=\"[$styles.checkbox, isChecked && $styles.checked]\"\n @update:modelValue=\"setSelection\"\n />\n </div>\n</template>\n"],"names":["props","__props","api","isChecked","ref","forceShowCheckbox","computed","isSelectionEnabled","allowedSelection","updateSelection","setSelection","val","onBeforeMount","onBeforeUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumCheckbox.vue.js","sources":["../../../src/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ICellRendererParams } from 'ag-grid-enterprise';\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport { ref, computed, onBeforeMount, onBeforeUnmount } from 'vue';\nimport $styles from './pl-ag-row-num-checkbox.module.scss';\nimport { isSelectionEnabled } from '../../lib';\n\nconst props = defineProps<{ params: ICellRendererParams }>();\n\nconst api = props.params.api;\nconst isChecked = ref(!!props.params.node.isSelected());\nconst forceShowCheckbox = computed(() => isChecked.value || isSelectionEnabled(api));\nconst allowedSelection = ref(isSelectionEnabled(api));\n\nconst updateSelection = () => {\n isChecked.value = props.params.node.isSelected() !== false;\n};\n\nconst setSelection = (val: boolean) => {\n if (isSelectionEnabled(api)) {\n props.params.node.setSelected(val);\n updateSelection();\n }\n};\n\nonBeforeMount(() => {\n props.params.node.addEventListener('rowSelected', updateSelection);\n});\n\nonBeforeUnmount(() => {\n props.params.node.removeEventListener('rowSelected', updateSelection);\n});\n</script>\n\n<template>\n <div :class=\"[$styles.container, { [$styles['allowed-selection']]: allowedSelection }, 'd-flex', 'justify-center', 'align-center']\">\n <div v-if=\"!isChecked\" :class=\"[$styles.text]\">{{ params.value }}</div>\n <PlCheckbox\n v-if=\"forceShowCheckbox\"\n v-model=\"isChecked\"\n :class=\"[$styles.checkbox, isChecked && $styles.checked]\"\n @update:modelValue=\"setSelection\"\n />\n </div>\n</template>\n"],"names":["props","__props","api","isChecked","ref","forceShowCheckbox","computed","isSelectionEnabled","allowedSelection","updateSelection","setSelection","val","onBeforeMount","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAOA,UAAMA,IAAQC,GAERC,IAAMF,EAAM,OAAO,KACnBG,IAAYC,EAAI,CAAC,CAACJ,EAAM,OAAO,KAAK,YAAY,GAChDK,IAAoBC,EAAS,MAAMH,EAAU,SAASI,EAAmBL,CAAG,CAAC,GAC7EM,IAAmBJ,EAAIG,EAAmBL,CAAG,CAAC,GAE9CO,IAAkB,MAAM;AAC5B,MAAAN,EAAU,QAAQH,EAAM,OAAO,KAAK,iBAAiB;AAAA,IACvD,GAEMU,IAAe,CAACC,MAAiB;AACrC,MAAIJ,EAAmBL,CAAG,MACxBF,EAAM,OAAO,KAAK,YAAYW,CAAG,GACjCF,EAAA;AAAA,IAEJ;AAEA,WAAAG,EAAc,MAAM;AAClB,MAAAZ,EAAM,OAAO,KAAK,iBAAiB,eAAeS,CAAe;AAAA,IACnE,CAAC,GAEDI,EAAgB,MAAM;AACpB,MAAAb,EAAM,OAAO,KAAK,oBAAoB,eAAeS,CAAe;AAAA,IACtE,CAAC;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -31,15 +31,14 @@ import "canonicalize";
|
|
|
31
31
|
|
|
32
32
|
import { getSelectedRowsCount as d, getTotalRowsCount as u, isSelectionEnabled as c, deselectAll as y, selectAll as h } from "../AgGridVue/selection.js";
|
|
33
33
|
import "./PlMultiSequenceAlignment/data.js";
|
|
34
|
-
import "@milaboratories/biowasm-tools";
|
|
35
34
|
import "../composition/fileContent.js";
|
|
36
|
-
const k = { style: { position: "absolute", inset: "0", display: "flex", "justify-content": "center", "align-items": "center" } }, b = { key: 1 },
|
|
35
|
+
const k = { style: { position: "absolute", inset: "0", display: "flex", "justify-content": "center", "align-items": "center" } }, b = { key: 1 }, ee = /* @__PURE__ */ E({
|
|
37
36
|
__name: "PlAgRowNumHeader",
|
|
38
37
|
props: {
|
|
39
38
|
params: {}
|
|
40
39
|
},
|
|
41
40
|
setup(e) {
|
|
42
|
-
const o = i(d(e.params.api)), m = i(u(e.params.api)),
|
|
41
|
+
const o = i(d(e.params.api)), m = i(u(e.params.api)), l = i(c(e.params.api)), a = s(
|
|
43
42
|
() => o.value > 0
|
|
44
43
|
), v = s(
|
|
45
44
|
() => a.value && o.value === m.value
|
|
@@ -50,15 +49,15 @@ const k = { style: { position: "absolute", inset: "0", display: "flex", "justify
|
|
|
50
49
|
function t() {
|
|
51
50
|
o.value = d(e.params.api), m.value = u(e.params.api);
|
|
52
51
|
}
|
|
53
|
-
function
|
|
54
|
-
|
|
52
|
+
function r() {
|
|
53
|
+
l.value = c(e.params.api);
|
|
55
54
|
}
|
|
56
55
|
return g(() => {
|
|
57
|
-
e.params.api.addEventListener("selectionChanged", t), e.params.api.addEventListener("rowDataUpdated", t), e.params.api.addEventListener("modelUpdated", t), e.params.api.addEventListener("stateUpdated",
|
|
56
|
+
e.params.api.addEventListener("selectionChanged", t), e.params.api.addEventListener("rowDataUpdated", t), e.params.api.addEventListener("modelUpdated", t), e.params.api.addEventListener("stateUpdated", r);
|
|
58
57
|
}), C(() => {
|
|
59
|
-
e.params.api.removeEventListener("selectionChanged", t), e.params.api.removeEventListener("rowDataUpdated", t), e.params.api.removeEventListener("modelUpdated", t), e.params.api.removeEventListener("stateUpdated",
|
|
58
|
+
e.params.api.removeEventListener("selectionChanged", t), e.params.api.removeEventListener("rowDataUpdated", t), e.params.api.removeEventListener("modelUpdated", t), e.params.api.removeEventListener("stateUpdated", r);
|
|
60
59
|
}), (w, B) => (n(), p("div", k, [
|
|
61
|
-
|
|
60
|
+
l.value ? (n(), L(R(U), {
|
|
62
61
|
key: 0,
|
|
63
62
|
"model-value": a.value,
|
|
64
63
|
indeterminate: a.value && !v.value,
|
|
@@ -68,6 +67,6 @@ const k = { style: { position: "absolute", inset: "0", display: "flex", "justify
|
|
|
68
67
|
}
|
|
69
68
|
});
|
|
70
69
|
export {
|
|
71
|
-
|
|
70
|
+
ee as default
|
|
72
71
|
};
|
|
73
72
|
//# sourceMappingURL=PlAgRowNumHeader.vue.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlAgRowNumHeader.vue.js","sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport type { IHeaderParams } from 'ag-grid-enterprise';\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from 'vue';\nimport { deselectAll, getSelectedRowsCount, getTotalRowsCount, isSelectionEnabled, selectAll } from '../lib';\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() =>\n selectedRowCount.value > 0,\n);\n\nconst allRowsSelected = computed(() =>\n someRowsSelected.value\n && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener('selectionChanged', updateRowCounts);\n params.api.addEventListener('rowDataUpdated', updateRowCounts);\n params.api.addEventListener('modelUpdated', updateRowCounts);\n params.api.addEventListener('stateUpdated', updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener('selectionChanged', updateRowCounts);\n params.api.removeEventListener('rowDataUpdated', updateRowCounts);\n params.api.removeEventListener('modelUpdated', updateRowCounts);\n params.api.removeEventListener('stateUpdated', updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else>\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"names":["selectedRowCount","ref","getSelectedRowsCount","__props","totalRowCount","getTotalRowsCount","isSelectable","isSelectionEnabled","someRowsSelected","computed","allRowsSelected","toggleSelectAll","deselectAll","selectAll","updateRowCounts","updateIsSelectable","onBeforeMount","onBeforeUnmount"],"mappings":"
|
|
1
|
+
{"version":3,"file":"PlAgRowNumHeader.vue.js","sources":["../../src/components/PlAgRowNumHeader.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport { PlCheckbox } from '@milaboratories/uikit';\nimport type { IHeaderParams } from 'ag-grid-enterprise';\nimport { computed, onBeforeMount, onBeforeUnmount, ref } from 'vue';\nimport { deselectAll, getSelectedRowsCount, getTotalRowsCount, isSelectionEnabled, selectAll } from '../lib';\n\nconst { params } = defineProps<{\n params: IHeaderParams;\n}>();\n\nconst selectedRowCount = ref(getSelectedRowsCount(params.api));\nconst totalRowCount = ref(getTotalRowsCount(params.api));\nconst isSelectable = ref(isSelectionEnabled(params.api));\n\nconst someRowsSelected = computed(() =>\n selectedRowCount.value > 0,\n);\n\nconst allRowsSelected = computed(() =>\n someRowsSelected.value\n && selectedRowCount.value === totalRowCount.value,\n);\n\nfunction toggleSelectAll() {\n if (someRowsSelected.value) {\n deselectAll(params.api);\n } else {\n selectAll(params.api);\n }\n}\n\nfunction updateRowCounts() {\n selectedRowCount.value = getSelectedRowsCount(params.api);\n totalRowCount.value = getTotalRowsCount(params.api);\n}\n\nfunction updateIsSelectable() {\n isSelectable.value = isSelectionEnabled(params.api);\n}\n\nonBeforeMount(() => {\n params.api.addEventListener('selectionChanged', updateRowCounts);\n params.api.addEventListener('rowDataUpdated', updateRowCounts);\n params.api.addEventListener('modelUpdated', updateRowCounts);\n params.api.addEventListener('stateUpdated', updateIsSelectable);\n});\n\nonBeforeUnmount(() => {\n params.api.removeEventListener('selectionChanged', updateRowCounts);\n params.api.removeEventListener('rowDataUpdated', updateRowCounts);\n params.api.removeEventListener('modelUpdated', updateRowCounts);\n params.api.removeEventListener('stateUpdated', updateIsSelectable);\n});\n</script>\n\n<template>\n <div\n style=\"\n position: absolute;\n inset: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n \"\n >\n <PlCheckbox\n v-if=\"isSelectable\"\n :model-value=\"someRowsSelected\"\n :indeterminate=\"someRowsSelected && !allRowsSelected\"\n @update:model-value=\"toggleSelectAll\"\n />\n <span v-else>\n {{ params.displayName }}\n </span>\n </div>\n</template>\n"],"names":["selectedRowCount","ref","getSelectedRowsCount","__props","totalRowCount","getTotalRowsCount","isSelectable","isSelectionEnabled","someRowsSelected","computed","allRowsSelected","toggleSelectAll","deselectAll","selectAll","updateRowCounts","updateIsSelectable","onBeforeMount","onBeforeUnmount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAUA,UAAMA,IAAmBC,EAAIC,EAAqBC,EAAA,OAAO,GAAG,CAAC,GACvDC,IAAgBH,EAAII,EAAkBF,EAAA,OAAO,GAAG,CAAC,GACjDG,IAAeL,EAAIM,EAAmBJ,EAAA,OAAO,GAAG,CAAC,GAEjDK,IAAmBC;AAAA,MAAS,MAChCT,EAAiB,QAAQ;AAAA,IAAA,GAGrBU,IAAkBD;AAAA,MAAS,MAC/BD,EAAiB,SACdR,EAAiB,UAAUI,EAAc;AAAA,IAAA;AAG9C,aAASO,IAAkB;AACzB,MAAIH,EAAiB,QACnBI,EAAYT,EAAA,OAAO,GAAG,IAEtBU,EAAUV,EAAA,OAAO,GAAG;AAAA,IAExB;AAEA,aAASW,IAAkB;AACzB,MAAAd,EAAiB,QAAQE,EAAqBC,SAAO,GAAG,GACxDC,EAAc,QAAQC,EAAkBF,SAAO,GAAG;AAAA,IACpD;AAEA,aAASY,IAAqB;AAC5B,MAAAT,EAAa,QAAQC,EAAmBJ,SAAO,GAAG;AAAA,IACpD;AAEA,WAAAa,EAAc,MAAM;AAClB,MAAAb,EAAA,OAAO,IAAI,iBAAiB,oBAAoBW,CAAe,GAC/DX,EAAA,OAAO,IAAI,iBAAiB,kBAAkBW,CAAe,GAC7DX,EAAA,OAAO,IAAI,iBAAiB,gBAAgBW,CAAe,GAC3DX,EAAA,OAAO,IAAI,iBAAiB,gBAAgBY,CAAkB;AAAA,IAChE,CAAC,GAEDE,EAAgB,MAAM;AACpB,MAAAd,EAAA,OAAO,IAAI,oBAAoB,oBAAoBW,CAAe,GAClEX,EAAA,OAAO,IAAI,oBAAoB,kBAAkBW,CAAe,GAChEX,EAAA,OAAO,IAAI,oBAAoB,gBAAgBW,CAAe,GAC9DX,EAAA,OAAO,IAAI,oBAAoB,gBAAgBY,CAAkB;AAAA,IACnE,CAAC;;;;;;;;;;"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ResidueCounts } from './types';
|
|
2
2
|
type __VLS_Props = {
|
|
3
3
|
residueCounts: ResidueCounts;
|
|
4
|
+
labelsClass: string;
|
|
4
5
|
};
|
|
5
6
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
6
7
|
plotEl: HTMLDivElement;
|
|
@@ -1,23 +1,27 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
import { PlAlert as
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { defineComponent as x, useCssModule as k, useTemplateRef as E, computed as c, shallowRef as _, watchEffect as A, onBeforeUnmount as O, createBlock as S, createElementBlock as j, unref as u, openBlock as y, withCtx as B, createTextVNode as D, toDisplayString as C, normalizeClass as v, createElementVNode as b } from "vue";
|
|
2
|
+
import { PlAlert as G } from "@milaboratories/uikit";
|
|
3
|
+
import { cellSize as K } from "./cell-size.js";
|
|
4
|
+
import { useMiPlots as T } from "./useMiPlots.js";
|
|
5
|
+
const U = /* @__PURE__ */ x({
|
|
5
6
|
__name: "Consensus",
|
|
6
7
|
props: {
|
|
7
|
-
residueCounts: {}
|
|
8
|
+
residueCounts: {},
|
|
9
|
+
labelsClass: {}
|
|
8
10
|
},
|
|
9
|
-
setup(
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
11
|
+
setup(g) {
|
|
12
|
+
const s = g, w = k(), a = E("plotEl"), f = c(
|
|
13
|
+
() => s.residueCounts.map((e) => {
|
|
14
|
+
let o = 0, t = { label: "", count: 0 };
|
|
15
|
+
for (const [r, n] of Object.entries(e))
|
|
16
|
+
o += n, r !== "-" && n > t.count && (t = { label: r, count: n });
|
|
17
|
+
const i = CSS.percent(t.count / o * 100);
|
|
18
|
+
return {
|
|
19
|
+
label: t.label,
|
|
20
|
+
color: `color-mix(in oklab, ${i} #3056AE, #C1CDE9)`
|
|
21
|
+
};
|
|
22
|
+
})
|
|
23
|
+
), m = c(() => {
|
|
24
|
+
const e = s.residueCounts.length * K.inline;
|
|
21
25
|
return {
|
|
22
26
|
type: "discrete",
|
|
23
27
|
y: {
|
|
@@ -30,17 +34,17 @@ const $ = /* @__PURE__ */ g({
|
|
|
30
34
|
type: "column",
|
|
31
35
|
value: "columnKey"
|
|
32
36
|
},
|
|
33
|
-
order:
|
|
37
|
+
order: s.residueCounts.map((o, t) => t),
|
|
34
38
|
inheritedAes: Object.fromEntries(
|
|
35
|
-
|
|
39
|
+
f.value.map(({ color: o }) => ({ fillColor: o })).entries()
|
|
36
40
|
)
|
|
37
41
|
},
|
|
38
42
|
layers: [{
|
|
39
43
|
type: "bar",
|
|
40
44
|
height: "max",
|
|
41
45
|
aes: {
|
|
42
|
-
...
|
|
43
|
-
width: (e -
|
|
46
|
+
...s.residueCounts.length && {
|
|
47
|
+
width: (e - s.residueCounts.length + 1) / s.residueCounts.length
|
|
44
48
|
},
|
|
45
49
|
fillColor: {
|
|
46
50
|
type: "primaryGrouping"
|
|
@@ -74,47 +78,45 @@ const $ = /* @__PURE__ */ g({
|
|
|
74
78
|
type: "empty"
|
|
75
79
|
}
|
|
76
80
|
};
|
|
77
|
-
}),
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
for (const [
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
!a.value || !r.value || !p.value || (l.value ? l.value.updateSettingsAndData(d.value, a.value) : (l.value = p.value.newPlot(d.value, a.value), l.value.mount(r.value)));
|
|
92
|
-
}), x(() => {
|
|
81
|
+
}), p = c(() => {
|
|
82
|
+
const e = [], o = [];
|
|
83
|
+
for (const [t, i] of s.residueCounts.entries())
|
|
84
|
+
for (const [r, n] of Object.entries(i))
|
|
85
|
+
r !== "-" && (e.push(n), o.push(t));
|
|
86
|
+
return {
|
|
87
|
+
type: "columns",
|
|
88
|
+
id: `consensus-${crypto.randomUUID()}`,
|
|
89
|
+
values: { countKey: e, columnKey: o }
|
|
90
|
+
};
|
|
91
|
+
}), l = _(), { miplots: d, error: h } = T();
|
|
92
|
+
return A(async () => {
|
|
93
|
+
!a.value || !d.value || (l.value ? l.value.updateSettingsAndData(p.value, m.value) : (l.value = d.value.newPlot(p.value, m.value), l.value.mount(a.value)));
|
|
94
|
+
}), O(() => {
|
|
93
95
|
var e;
|
|
94
96
|
(e = l.value) == null || e.unmount();
|
|
95
|
-
}), (e, o) =>
|
|
97
|
+
}), (e, o) => u(h) ? (y(), S(u(G), {
|
|
96
98
|
key: 0,
|
|
97
99
|
type: "error"
|
|
98
100
|
}, {
|
|
99
|
-
default:
|
|
100
|
-
|
|
101
|
+
default: B(() => [
|
|
102
|
+
D(C(u(h).message), 1)
|
|
101
103
|
]),
|
|
102
104
|
_: 1
|
|
103
|
-
})) : (
|
|
105
|
+
})) : (y(), j("div", {
|
|
104
106
|
key: 1,
|
|
105
|
-
class:
|
|
107
|
+
class: v(u(w).container)
|
|
106
108
|
}, [
|
|
107
109
|
b("div", {
|
|
108
|
-
class:
|
|
109
|
-
},
|
|
110
|
+
class: v(s.labelsClass)
|
|
111
|
+
}, C(f.value.map((t) => t.label).join("")), 3),
|
|
110
112
|
b("div", {
|
|
111
113
|
ref_key: "plotEl",
|
|
112
|
-
ref:
|
|
114
|
+
ref: a
|
|
113
115
|
}, null, 512)
|
|
114
116
|
], 2));
|
|
115
117
|
}
|
|
116
118
|
});
|
|
117
119
|
export {
|
|
118
|
-
|
|
120
|
+
U as default
|
|
119
121
|
};
|
|
120
122
|
//# sourceMappingURL=Consensus.vue2.js.map
|
|
@@ -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 {\n computed,\n onBeforeUnmount,\n shallowRef,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst
|
|
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 {\n computed,\n onBeforeUnmount,\n shallowRef,\n useCssModule,\n useTemplateRef,\n watchEffect,\n} from 'vue';\nimport { cellSize } from './cell-size';\nimport type { ResidueCounts } from './types';\nimport { useMiPlots } from './useMiPlots';\n\nconst props = defineProps<{\n residueCounts: ResidueCounts;\n labelsClass: string;\n}>();\n\nconst classes = useCssModule();\n\nconst plotEl = useTemplateRef('plotEl');\n\nconst columns = computed(() =>\n props.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(() => {\n const width = props.residueCounts.length * cellSize.inline;\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: props.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 ...props.residueCounts.length && {\n width: (width - props.residueCounts.length + 1)\n / props.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,\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 } satisfies Settings);\n});\n\nconst data = computed<DataByColumns>(() => {\n const countKey: number[] = [];\n const columnKey: number[] = [];\n for (const [columnIndex, column] of props.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-${crypto.randomUUID()}`,\n values: { countKey, columnKey },\n });\n});\n\nconst plot = shallowRef<ChartInterface>();\n\nconst { miplots, error } = useMiPlots();\n\nwatchEffect(async () => {\n if (!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 <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n <div v-else :class=\"classes.container\">\n <div :class=\"props.labelsClass\">\n {{ columns.map(column => column.label).join('') }}\n </div>\n <div ref=\"plotEl\" />\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 4px;\n\n svg {\n display: block;\n }\n}\n</style>\n"],"names":["props","__props","classes","useCssModule","plotEl","useTemplateRef","columns","computed","column","totalCount","topResidue","residue","count","confidence","settings","width","cellSize","_","i","color","data","countKey","columnKey","columnIndex","plot","shallowRef","miplots","error","useMiPlots","watchEffect","onBeforeUnmount","_a"],"mappings":";;;;;;;;;;;AAmBA,UAAMA,IAAQC,GAKRC,IAAUC,EAAA,GAEVC,IAASC,EAAe,QAAQ,GAEhCC,IAAUC;AAAA,MAAS,MACvBP,EAAM,cAAc,IAAI,CAACQ,MAAW;AAClC,YAAIC,IAAa,GACbC,IAAa,EAAE,OAAO,IAAI,OAAO,EAAA;AACrC,mBAAW,CAACC,GAASC,CAAK,KAAK,OAAO,QAAQJ,CAAM;AAElD,UADAC,KAAcG,GACVD,MAAY,OACZC,IAAQF,EAAW,cAAoB,EAAE,OAAOC,GAAS,OAAAC,EAAA;AAE/D,cAAMC,IAAa,IAAI,QAAQH,EAAW,QAAQD,IAAa,GAAG;AAClE,eAAO;AAAA,UACL,OAAOC,EAAW;AAAA,UAClB,OAAO,uBAAuBG,CAAU;AAAA,QAAA;AAAA,MAE5C,CAAC;AAAA,IAAA,GAGGC,IAAWP,EAAS,MAAM;AAC9B,YAAMQ,IAAQf,EAAM,cAAc,SAASgB,EAAS;AACpD,aAAQ;AAAA,QACN,MAAM;AAAA,QACN,GAAG;AAAA,UACD,MAAM;AAAA,UACN,OAAO;AAAA,QAAA;AAAA,QAET,QAAQ,EAAE,MAAM,GAAA;AAAA,QAChB,iBAAiB;AAAA,UACf,YAAY;AAAA,YACV,MAAM;AAAA,YACN,OAAO;AAAA,UAAA;AAAA,UAET,OAAOhB,EAAM,cAAc,IAAI,CAACiB,GAAGC,MAAMA,CAAC;AAAA,UAC1C,cAAc,OAAO;AAAA,YACnBZ,EAAQ,MAAM,IAAI,CAAC,EAAE,OAAAa,SAAa,EAAE,WAAWA,IAAQ,EAAE,QAAA;AAAA,UAAQ;AAAA,QACnE;AAAA,QAEF,QAAQ,CAAC;AAAA,UACP,MAAM;AAAA,UACN,QAAQ;AAAA,UACR,KAAK;AAAA,YACH,GAAGnB,EAAM,cAAc,UAAU;AAAA,cAC/B,QAAQe,IAAQf,EAAM,cAAc,SAAS,KACzCA,EAAM,cAAc;AAAA,YAAA;AAAA,YAE1B,WAAW;AAAA,cACT,MAAM;AAAA,YAAA;AAAA,YAER,WAAW;AAAA,UAAA;AAAA,QACb,CACD;AAAA,QACD,OAAO;AAAA,UACL,MAAM;AAAA,UACN,MAAM;AAAA,QAAA;AAAA,QAER,MAAM;AAAA,UACJ,OAAAe;AAAA,UACA,QAAQ;AAAA,UACR,aAAa;AAAA,UACb,aAAa;AAAA,QAAA;AAAA,QAEf,OAAO;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,UACV,WAAW;AAAA,UACX,cAAc;AAAA,QAAA;AAAA,QAEhB,OAAO;AAAA,UACL,OAAO;AAAA,UACP,UAAU;AAAA,UACV,WAAW;AAAA,UACX,cAAc;AAAA,QAAA;AAAA,QAEhB,OAAO;AAAA,UACL,MAAM;AAAA,QAAA;AAAA,MACR;AAAA,IAEJ,CAAC,GAEKK,IAAOb,EAAwB,MAAM;AACzC,YAAMc,IAAqB,CAAA,GACrBC,IAAsB,CAAA;AAC5B,iBAAW,CAACC,GAAaf,CAAM,KAAKR,EAAM,cAAc;AACtD,mBAAW,CAACW,GAASC,CAAK,KAAK,OAAO,QAAQJ,CAAM;AAClD,UAAIG,MAAY,QAChBU,EAAS,KAAKT,CAAK,GACnBU,EAAU,KAAKC,CAAW;AAG9B,aAAQ;AAAA,QACN,MAAM;AAAA,QACN,IAAI,aAAa,OAAO,WAAA,CAAY;AAAA,QACpC,QAAQ,EAAE,UAAAF,GAAU,WAAAC,EAAA;AAAA,MAAU;AAAA,IAElC,CAAC,GAEKE,IAAOC,EAAA,GAEP,EAAE,SAAAC,GAAS,OAAAC,EAAA,IAAUC,EAAA;AAE3B,WAAAC,EAAY,YAAY;AACtB,MAAI,CAACzB,EAAO,SAAS,CAACsB,EAAQ,UACzBF,EAAK,QAIRA,EAAK,MAAM,sBAAsBJ,EAAK,OAAON,EAAS,KAAK,KAH3DU,EAAK,QAAQE,EAAQ,MAAM,QAAQN,EAAK,OAAON,EAAS,KAAK,GAC7DU,EAAK,MAAM,MAAMpB,EAAO,KAAK;AAAA,IAIjC,CAAC,GAED0B,EAAgB,MAAM;;AACpB,OAAAC,IAAAP,EAAK,UAAL,QAAAO,EAAY;AAAA,IACd,CAAC;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,11 +1,9 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".
|
|
2
|
-
const
|
|
3
|
-
container:
|
|
4
|
-
labels: n
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._container_1vnon_2{display:flex;flex-direction:column;gap:4px}._container_1vnon_2 svg{display:block}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
|
|
2
|
+
const n = "_container_1vnon_2", t = {
|
|
3
|
+
container: n
|
|
5
4
|
};
|
|
6
5
|
export {
|
|
7
|
-
|
|
8
|
-
t as default
|
|
9
|
-
n as labels
|
|
6
|
+
n as container,
|
|
7
|
+
t as default
|
|
10
8
|
};
|
|
11
9
|
//# sourceMappingURL=Consensus.vue3.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Consensus.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Consensus.vue3.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
|
@@ -1,27 +1,28 @@
|
|
|
1
|
-
import { defineComponent as
|
|
2
|
-
const
|
|
1
|
+
import { defineComponent as i, useCssModule as m, createElementBlock as n, openBlock as t, normalizeClass as r, unref as l, Fragment as u, renderList as p, createElementVNode as g, createTextVNode as _, normalizeStyle as f, toDisplayString as C } from "vue";
|
|
2
|
+
const y = /* @__PURE__ */ i({
|
|
3
3
|
__name: "Legend",
|
|
4
4
|
props: {
|
|
5
5
|
legend: {}
|
|
6
6
|
},
|
|
7
|
-
setup(
|
|
8
|
-
|
|
9
|
-
|
|
7
|
+
setup(o) {
|
|
8
|
+
const s = o, e = m();
|
|
9
|
+
return (k, v) => (t(), n("div", {
|
|
10
|
+
class: r(l(e).container)
|
|
10
11
|
}, [
|
|
11
|
-
(
|
|
12
|
-
key:
|
|
13
|
-
class: r(e
|
|
12
|
+
(t(!0), n(u, null, p(s.legend, ({ label: a, color: c }, d) => (t(), n("div", {
|
|
13
|
+
key: d,
|
|
14
|
+
class: r(l(e).item)
|
|
14
15
|
}, [
|
|
15
|
-
|
|
16
|
-
class: r(e
|
|
17
|
-
style:
|
|
16
|
+
g("div", {
|
|
17
|
+
class: r(l(e).colorSample),
|
|
18
|
+
style: f({ backgroundColor: c })
|
|
18
19
|
}, null, 6),
|
|
19
|
-
|
|
20
|
+
_(" " + C(a), 1)
|
|
20
21
|
], 2))), 128))
|
|
21
22
|
], 2));
|
|
22
23
|
}
|
|
23
24
|
});
|
|
24
25
|
export {
|
|
25
|
-
|
|
26
|
+
y as default
|
|
26
27
|
};
|
|
27
28
|
//# sourceMappingURL=Legend.vue2.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Legend.vue2.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Legend.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/Legend.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { useCssModule } from 'vue';\nimport type { HighlightLegend } from './types';\n\nconst props = defineProps<{\n legend: HighlightLegend;\n}>();\n\nconst classes = useCssModule();\n</script>\n\n<template>\n <div :class=\"classes.container\">\n <div\n v-for=\"({ label, color }, key) of props.legend\"\n :key=\"key\"\n :class=\"classes.item\"\n >\n <div :class=\"classes.colorSample\" :style=\"{ backgroundColor: color }\" />\n {{ label }}\n </div>\n </div>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-wrap: wrap;\n gap: 12px;\n max-inline-size: fit-content;\n}\n\n.item {\n display: flex;\n gap: 4px;\n}\n\n.colorSample {\n display: inline-block;\n block-size: 18px;\n inline-size: 18px;\n border-radius: 3px;\n}\n</style>\n"],"names":["props","__props","classes","useCssModule"],"mappings":";;;;;;;AAIA,UAAMA,IAAQC,GAIRC,IAAUC,EAAA;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode(".
|
|
2
|
-
const t = "
|
|
3
|
-
container:
|
|
4
|
-
item:
|
|
5
|
-
|
|
1
|
+
(function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._container_5klj5_2{display:flex;flex-wrap:wrap;gap:12px;max-inline-size:fit-content}._item_5klj5_9{display:flex;gap:4px}._colorSample_5klj5_14{display:inline-block;block-size:18px;inline-size:18px;border-radius:3px}")),document.head.appendChild(e)}}catch(i){console.error("vite-plugin-css-injected-by-js",i)}})();
|
|
2
|
+
const o = "_container_5klj5_2", t = "_item_5klj5_9", e = "_colorSample_5klj5_14", l = {
|
|
3
|
+
container: o,
|
|
4
|
+
item: t,
|
|
5
|
+
colorSample: e
|
|
6
6
|
};
|
|
7
7
|
export {
|
|
8
|
-
|
|
9
|
-
o as
|
|
10
|
-
|
|
8
|
+
e as colorSample,
|
|
9
|
+
o as container,
|
|
10
|
+
l as default,
|
|
11
|
+
t as item
|
|
11
12
|
};
|
|
12
13
|
//# sourceMappingURL=Legend.vue3.js.map
|
|
@@ -1,18 +1,25 @@
|
|
|
1
|
+
import { PlMultiSequenceAlignmentWidget } from '@platforma-sdk/model';
|
|
2
|
+
import { TreeNodeData } from './phylogenetic-tree.worker';
|
|
1
3
|
import { HighlightLegend, ResidueCounts } from './types';
|
|
2
4
|
type __VLS_Props = {
|
|
3
|
-
sequences:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
5
|
+
sequences: {
|
|
6
|
+
name: string;
|
|
7
|
+
rows: string[];
|
|
8
|
+
residueCounts: ResidueCounts;
|
|
9
|
+
highlightImageUrl?: string;
|
|
10
|
+
}[];
|
|
11
|
+
labels: {
|
|
12
|
+
rows: string[];
|
|
13
|
+
}[];
|
|
14
|
+
highlightLegend: HighlightLegend | undefined;
|
|
15
|
+
phylogeneticTree: TreeNodeData[] | undefined;
|
|
16
|
+
widgets: PlMultiSequenceAlignmentWidget[];
|
|
12
17
|
};
|
|
13
18
|
declare const _default: import('vue').DefineComponent<__VLS_Props, {
|
|
14
19
|
rootEl: Readonly<import('vue').ShallowRef<HTMLDivElement | null>>;
|
|
15
20
|
}, {}, {}, {}, import('vue').ComponentOptionsMixin, import('vue').ComponentOptionsMixin, {}, string, import('vue').PublicProps, Readonly<__VLS_Props> & Readonly<{}>, {}, {}, {}, {}, string, import('vue').ComponentProvideOptions, false, {
|
|
16
21
|
rootRef: HTMLDivElement;
|
|
22
|
+
referenceCell: HTMLDivElement;
|
|
23
|
+
corner: HTMLDivElement;
|
|
17
24
|
}, HTMLDivElement>;
|
|
18
25
|
export default _default;
|