@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.
Files changed (84) hide show
  1. package/.turbo/turbo-build.log +213 -207
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +20 -0
  4. package/dist/AgGridVue/useAgGridOptions.js +2 -3
  5. package/dist/AgGridVue/useAgGridOptions.js.map +1 -1
  6. package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js +6 -0
  7. package/dist/assets/multi-sequence-alignment.worker-Cm0gZp19.js.map +1 -0
  8. package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js +5 -0
  9. package/dist/assets/phylogenetic-tree.worker-4CrExYEo.js.map +1 -0
  10. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js +2 -3
  11. package/dist/components/PlAgDataTable/PlAgRowCount.vue.js.map +1 -1
  12. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js +11 -12
  13. package/dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue.js.map +1 -1
  14. package/dist/components/PlAgRowNumHeader.vue.js +8 -9
  15. package/dist/components/PlAgRowNumHeader.vue.js.map +1 -1
  16. package/dist/components/PlMultiSequenceAlignment/Consensus.vue.d.ts +1 -0
  17. package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js +48 -46
  18. package/dist/components/PlMultiSequenceAlignment/Consensus.vue2.js.map +1 -1
  19. package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js +5 -7
  20. package/dist/components/PlMultiSequenceAlignment/Consensus.vue3.js.map +1 -1
  21. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +14 -13
  22. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js.map +1 -1
  23. package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +9 -8
  24. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +16 -9
  25. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +117 -85
  26. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +1 -1
  27. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +25 -18
  28. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +1 -1
  29. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.d.ts +8 -0
  30. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js +10 -0
  31. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue.js.map +1 -0
  32. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js +77 -0
  33. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue2.js.map +1 -0
  34. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js +9 -0
  35. package/dist/components/PlMultiSequenceAlignment/PhylogeneticTree.vue3.js.map +1 -0
  36. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +26 -18
  37. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +119 -120
  38. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +1 -1
  39. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js +7 -124
  40. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue.js.map +1 -1
  41. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js +124 -2
  42. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue2.js.map +1 -1
  43. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js +9 -0
  44. package/dist/components/PlMultiSequenceAlignment/SeqLogo.vue3.js.map +1 -0
  45. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +90 -90
  46. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +1 -1
  47. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue3.js +9 -7
  48. package/dist/components/PlMultiSequenceAlignment/cell-size.d.ts +4 -0
  49. package/dist/components/PlMultiSequenceAlignment/cell-size.js +8 -0
  50. package/dist/components/PlMultiSequenceAlignment/cell-size.js.map +1 -0
  51. package/dist/components/PlMultiSequenceAlignment/data.d.ts +15 -10
  52. package/dist/components/PlMultiSequenceAlignment/data.js +309 -202
  53. package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
  54. package/dist/components/PlMultiSequenceAlignment/markup.js +9 -7
  55. package/dist/components/PlMultiSequenceAlignment/markup.js.map +1 -1
  56. package/dist/components/PlMultiSequenceAlignment/migrations.js +15 -13
  57. package/dist/components/PlMultiSequenceAlignment/migrations.js.map +1 -1
  58. package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.d.ts +6 -0
  59. package/dist/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.d.ts +7 -0
  60. package/dist/components/PlMultiSequenceAlignment/settings.js +3 -4
  61. package/dist/components/PlMultiSequenceAlignment/settings.js.map +1 -1
  62. package/dist/index.js +25 -27
  63. package/dist/index.js.map +1 -1
  64. package/dist/lib.d.ts +1 -2
  65. package/package.json +6 -6
  66. package/src/components/PlMultiSequenceAlignment/Consensus.vue +38 -39
  67. package/src/components/PlMultiSequenceAlignment/Legend.vue +9 -9
  68. package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +222 -126
  69. package/src/components/PlMultiSequenceAlignment/PhylogeneticTree.vue +110 -0
  70. package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +28 -22
  71. package/src/components/PlMultiSequenceAlignment/SeqLogo.vue +77 -69
  72. package/src/components/PlMultiSequenceAlignment/Toolbar.vue +47 -39
  73. package/src/components/PlMultiSequenceAlignment/cell-size.ts +4 -0
  74. package/src/components/PlMultiSequenceAlignment/data.ts +361 -149
  75. package/src/components/PlMultiSequenceAlignment/markup.ts +10 -8
  76. package/src/components/PlMultiSequenceAlignment/migrations.ts +6 -1
  77. package/src/components/PlMultiSequenceAlignment/multi-sequence-alignment.worker.ts +54 -0
  78. package/src/components/PlMultiSequenceAlignment/phylogenetic-tree.worker.ts +89 -0
  79. package/src/components/PlMultiSequenceAlignment/settings.ts +1 -2
  80. package/src/lib.ts +1 -3
  81. package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.d.ts +0 -7
  82. package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.js +0 -51
  83. package/dist/components/PlMultiSequenceAlignment/multi-sequence-alignment.js.map +0 -1
  84. 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 J = /* @__PURE__ */ l({
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
- J as default
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;"}
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 p, unref as t, createCommentVNode as u, createBlock as y, toDisplayString as B } from "vue";
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 n } from "../../AgGridVue/selection.js";
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 Z = /* @__PURE__ */ C({
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, m = e.params.api, o = c(!!e.params.node.isSelected()), v = h(() => o.value || n(m)), k = c(n(m)), a = () => {
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
- n(m) && (e.params.node.setSelected(i), a());
45
+ p(a) && (e.params.node.setSelected(i), m());
47
46
  };
48
47
  return w(() => {
49
- e.params.node.addEventListener("rowSelected", a);
48
+ e.params.node.addEventListener("rowSelected", m);
50
49
  }), b(() => {
51
- e.params.node.removeEventListener("rowSelected", a);
50
+ e.params.node.removeEventListener("rowSelected", m);
52
51
  }), (i, s) => (l(), d("div", {
53
- class: p([t(r).container, { [t(r)["allowed-selection"]]: k.value }, "d-flex", "justify-center", "align-center"])
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: p([t(r).text])
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: p([t(r).checkbox, o.value && t(r).checked])
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
- Z as default
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;;;;;;;;;;;;;;;;;;;"}
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 }, te = /* @__PURE__ */ E({
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)), r = i(c(e.params.api)), a = s(
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 l() {
54
- r.value = c(e.params.api);
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", l);
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", l);
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
- r.value ? (n(), L(R(U), {
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
- te as default
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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
+ {"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 g, useTemplateRef as w, computed as c, shallowRef as k, watchEffect as E, onBeforeUnmount as x, createBlock as A, createElementBlock as O, unref as f, openBlock as h, withCtx as j, createTextVNode as B, toDisplayString as v, normalizeClass as C, createElementVNode as b } from "vue";
2
- import { PlAlert as D } from "@milaboratories/uikit";
3
- import { useMiPlots as G } from "./useMiPlots.js";
4
- const $ = /* @__PURE__ */ g({
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(n) {
10
- const r = w("plotEl"), m = c(() => n.residueCounts.map((e) => {
11
- let o = 0, t = { label: "", count: 0 };
12
- for (const [s, u] of Object.entries(e))
13
- o += u, s !== "-" && u > t.count && (t = { label: s, count: u });
14
- const i = CSS.percent(t.count / o * 100);
15
- return {
16
- label: t.label,
17
- color: `color-mix(in oklab, ${i} #3056AE, #C1CDE9)`
18
- };
19
- })), a = c(() => {
20
- const e = n.residueCounts.length * 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: n.residueCounts.map((o, t) => t),
37
+ order: s.residueCounts.map((o, t) => t),
34
38
  inheritedAes: Object.fromEntries(
35
- m.value.map(({ color: o }) => ({ fillColor: o })).entries()
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
- ...n.residueCounts.length && {
43
- width: (e - n.residueCounts.length + 1) / n.residueCounts.length
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
- }), d = c(
78
- () => {
79
- const e = [], o = [];
80
- for (const [t, i] of n.residueCounts.entries())
81
- for (const [s, u] of Object.entries(i))
82
- s !== "-" && (e.push(s === " " ? 0 : u), o.push(t));
83
- return {
84
- type: "columns",
85
- id: `consensus-${crypto.randomUUID()}`,
86
- values: { countKey: e, columnKey: o }
87
- };
88
- }
89
- ), l = k(), { miplots: p, error: y } = G();
90
- return E(async () => {
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) => f(y) ? (h(), A(f(D), {
97
+ }), (e, o) => u(h) ? (y(), S(u(G), {
96
98
  key: 0,
97
99
  type: "error"
98
100
  }, {
99
- default: j(() => [
100
- B(v(f(y).message), 1)
101
+ default: B(() => [
102
+ D(C(u(h).message), 1)
101
103
  ]),
102
104
  _: 1
103
- })) : (h(), O("div", {
105
+ })) : (y(), j("div", {
104
106
  key: 1,
105
- class: C(e.$style.container)
107
+ class: v(u(w).container)
106
108
  }, [
107
109
  b("div", {
108
- class: C(e.$style.labels)
109
- }, v(m.value.map((t) => t.label).join("")), 3),
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: r
114
+ ref: a
113
115
  }, null, 512)
114
116
  ], 2));
115
117
  }
116
118
  });
117
119
  export {
118
- $ as default
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 { residueCounts } = defineProps<{\n residueCounts: ResidueCounts;\n}>();\n\nconst plotEl = useTemplateRef('plotEl');\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 const width = residueCounts.length * 20;\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: (width - residueCounts.length + 1) / 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 });\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-${crypto.randomUUID()}`,\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 <PlAlert v-if=\"error\" type=\"error\">\n {{ error.message }}\n </PlAlert>\n <div v-else :class=\"$style.container\">\n <div :class=\"$style.labels\">\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\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</style>\n"],"names":["plotEl","useTemplateRef","columns","computed","__props","column","totalCount","topResidue","residue","count","confidence","settings","width","_","i","color","data","countKey","columnKey","columnIndex","plot","shallowRef","miplots","error","useMiPlots","watchEffect","onBeforeUnmount","_a"],"mappings":"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"}
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":"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"}
@@ -1,11 +1,9 @@
1
- (function(){"use strict";try{if(typeof document<"u"){var e=document.createElement("style");e.appendChild(document.createTextNode("._container_1gr8c_2{display:flex;flex-direction:column;gap:4px}._labels_1gr8c_8{font-family:Spline Sans Mono;font-weight:600;line-height:24px;letter-spacing:11.6px;text-indent:5.8px;margin-inline-end:-5.8px}")),document.head.appendChild(e)}}catch(n){console.error("vite-plugin-css-injected-by-js",n)}})();
2
- const e = "_container_1gr8c_2", n = "_labels_1gr8c_8", t = {
3
- container: e,
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
- e as container,
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 a, createElementBlock as l, openBlock as n, normalizeClass as r, Fragment as i, renderList as c, createElementVNode as d, createTextVNode as m, normalizeStyle as p, toDisplayString as u } from "vue";
2
- const _ = /* @__PURE__ */ a({
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(g) {
8
- return (e, y) => (n(), l("div", {
9
- class: r(e.$style.container)
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
- (n(!0), l(i, null, c(Object.entries(e.legend), ([t, { label: o, color: s }]) => (n(), l("div", {
12
- key: t,
13
- class: r(e.$style.item)
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
- d("div", {
16
- class: r(e.$style["color-sample"]),
17
- style: p({ backgroundColor: s })
16
+ g("div", {
17
+ class: r(l(e).colorSample),
18
+ style: f({ backgroundColor: c })
18
19
  }, null, 6),
19
- m(" " + u(o), 1)
20
+ _(" " + C(a), 1)
20
21
  ], 2))), 128))
21
22
  ], 2));
22
23
  }
23
24
  });
24
25
  export {
25
- _ as default
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("._container_157gs_2{display:flex;flex-wrap:wrap;gap:12px;max-inline-size:fit-content}._item_157gs_9{display:flex;gap:4px}._color-sample_157gs_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 t = "_container_157gs_2", e = "_item_157gs_9", o = {
3
- container: t,
4
- item: e,
5
- "color-sample": "_color-sample_157gs_14"
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
- t as container,
9
- o as default,
10
- e as item
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: string[];
4
- sequenceNames: string[];
5
- labelRows: string[][];
6
- residueCounts: ResidueCounts;
7
- highlightImage: {
8
- blob: Blob;
9
- legend: HighlightLegend;
10
- } | undefined;
11
- widgets: ('consensus' | 'seqLogo' | 'legend')[];
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;