@platforma-sdk/ui-vue 1.41.17 → 1.42.0

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 (145) hide show
  1. package/.turbo/turbo-build.log +36 -71
  2. package/.turbo/turbo-type-check.log +1 -1
  3. package/CHANGELOG.md +18 -0
  4. package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js +3 -3
  5. package/dist/components/PlMultiSequenceAlignment/Legend.vue.d.ts +2 -2
  6. package/dist/components/PlMultiSequenceAlignment/Legend.vue.d.ts.map +1 -1
  7. package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +11 -11
  8. package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +8 -8
  9. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +12 -6
  10. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts.map +1 -1
  11. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +80 -65
  12. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +1 -1
  13. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +14 -12
  14. package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +1 -1
  15. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +36 -1
  16. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts.map +1 -1
  17. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +146 -111
  18. package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +1 -1
  19. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts +2 -0
  20. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts.map +1 -1
  21. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +71 -68
  22. package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +1 -1
  23. package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts +42 -6
  24. package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts.map +1 -1
  25. package/dist/components/PlMultiSequenceAlignment/chemical-properties.js +96 -130
  26. package/dist/components/PlMultiSequenceAlignment/chemical-properties.js.map +1 -1
  27. package/dist/components/PlMultiSequenceAlignment/data.d.ts +3 -9
  28. package/dist/components/PlMultiSequenceAlignment/data.d.ts.map +1 -1
  29. package/dist/components/PlMultiSequenceAlignment/data.js +198 -212
  30. package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
  31. package/dist/components/PlMultiSequenceAlignment/markup.d.ts +7 -5
  32. package/dist/components/PlMultiSequenceAlignment/markup.d.ts.map +1 -1
  33. package/dist/components/PlMultiSequenceAlignment/markup.js +47 -26
  34. package/dist/components/PlMultiSequenceAlignment/markup.js.map +1 -1
  35. package/dist/components/PlMultiSequenceAlignment/types.d.ts +1 -1
  36. package/dist/components/PlMultiSequenceAlignment/types.d.ts.map +1 -1
  37. package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js +2 -4
  38. package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js.map +1 -1
  39. package/dist/lib/ui/uikit/dist/components/DataTable/index.js +2 -2
  40. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createGridlines.js +6 -8
  41. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
  42. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createLabels.js.map +1 -1
  43. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createSvgContainer.js +5 -7
  44. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
  45. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/drawBins.js +3 -5
  46. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/drawBins.js.map +1 -1
  47. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/histogram.js +19 -21
  48. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/histogram.js.map +1 -1
  49. package/dist/lib/ui/uikit/dist/components/PlChartHistogram/normalizeBins.js.map +1 -1
  50. package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js +2 -4
  51. package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -1
  52. package/dist/lib/ui/uikit/dist/index.js +78 -80
  53. package/dist/lib/ui/uikit/dist/index.js.map +1 -1
  54. package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js.map +1 -1
  55. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js +7 -7
  56. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js.map +1 -1
  57. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js +9 -9
  58. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js.map +1 -1
  59. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js +51 -55
  60. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js.map +1 -1
  61. package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +1 -1
  62. package/dist/node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/core/index.js +111 -165
  63. package/dist/node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/core/index.js.map +1 -1
  64. package/dist/node_modules/.pnpm/@vueuse_shared@13.3.0_vue@3.5.13_typescript@5.6.3_/node_modules/@vueuse/shared/index.js +1 -1
  65. package/dist/sdk/model/dist/index.js +1 -1
  66. package/package.json +6 -6
  67. package/src/components/PlMultiSequenceAlignment/Legend.vue +4 -3
  68. package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +66 -46
  69. package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +85 -34
  70. package/src/components/PlMultiSequenceAlignment/README.md +10 -8
  71. package/src/components/PlMultiSequenceAlignment/Toolbar.vue +4 -1
  72. package/src/components/PlMultiSequenceAlignment/chemical-properties.ts +154 -161
  73. package/src/components/PlMultiSequenceAlignment/data.ts +65 -85
  74. package/src/components/PlMultiSequenceAlignment/markup.ts +47 -15
  75. package/src/components/PlMultiSequenceAlignment/types.ts +1 -1
  76. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js +0 -65
  77. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js.map +0 -1
  78. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js +0 -7
  79. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js.map +0 -1
  80. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js +0 -24
  81. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js.map +0 -1
  82. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js +0 -38
  83. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js.map +0 -1
  84. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js +0 -14
  85. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js.map +0 -1
  86. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js +0 -11
  87. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js.map +0 -1
  88. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js +0 -63
  89. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js.map +0 -1
  90. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js +0 -19
  91. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/interrupt.js.map +0 -1
  92. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js +0 -6
  93. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/index.js.map +0 -1
  94. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js +0 -10
  95. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/interrupt.js.map +0 -1
  96. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js +0 -29
  97. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/selection/transition.js.map +0 -1
  98. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js +0 -50
  99. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attr.js.map +0 -1
  100. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js +0 -39
  101. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/attrTween.js.map +0 -1
  102. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js +0 -19
  103. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/delay.js.map +0 -1
  104. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js +0 -19
  105. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/duration.js.map +0 -1
  106. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js +0 -15
  107. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/ease.js.map +0 -1
  108. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js +0 -16
  109. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/easeVarying.js.map +0 -1
  110. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js +0 -17
  111. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/end.js.map +0 -1
  112. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js +0 -13
  113. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/filter.js.map +0 -1
  114. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js +0 -66
  115. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/index.js.map +0 -1
  116. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js +0 -12
  117. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/interpolate.js.map +0 -1
  118. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js +0 -14
  119. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/merge.js.map +0 -1
  120. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js +0 -22
  121. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/on.js.map +0 -1
  122. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js +0 -14
  123. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/remove.js.map +0 -1
  124. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js +0 -86
  125. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/schedule.js.map +0 -1
  126. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js +0 -15
  127. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/select.js.map +0 -1
  128. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js +0 -19
  129. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selectAll.js.map +0 -1
  130. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js +0 -9
  131. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/selection.js.map +0 -1
  132. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js +0 -46
  133. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/style.js.map +0 -1
  134. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js +0 -24
  135. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/styleTween.js.map +0 -1
  136. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js +0 -19
  137. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/text.js.map +0 -1
  138. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js +0 -24
  139. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/textTween.js.map +0 -1
  140. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js +0 -20
  141. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/transition.js.map +0 -1
  142. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js +0 -57
  143. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-transition@3.0.1_d3-selection@3.0.0/node_modules/d3-transition/src/transition/tween.js.map +0 -1
  144. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js +0 -44
  145. package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js.map +0 -1
@@ -1,16 +1,16 @@
1
- import { defineComponent as N, ref as b, watchEffect as I, computed as P, createElementBlock as $, openBlock as f, Fragment as K, createElementVNode as r, createVNode as o, normalizeClass as d, unref as n, withModifiers as L, withCtx as s, createTextVNode as a, createCommentVNode as S, createBlock as T, withKeys as y } from "vue";
2
- import { isJsonEqual as U } from "../../lib/util/helpers/dist/index.js";
1
+ import { defineComponent as I, ref as b, watchEffect as K, computed as P, createElementBlock as $, openBlock as f, Fragment as L, createElementVNode as r, createVNode as o, normalizeClass as d, unref as n, withModifiers as S, withCtx as s, createTextVNode as i, createCommentVNode as U, createBlock as T, withKeys as C } from "vue";
2
+ import { isJsonEqual as k } from "../../lib/util/helpers/dist/index.js";
3
3
  import "../../lib/ui/uikit/dist/index.js";
4
4
  import { defaultAlignmentParams as A } from "./multi-sequence-alignment.js";
5
5
  import q from "../../lib/ui/uikit/dist/components/PlDropdownMulti/PlDropdownMulti.vue.js";
6
6
  import B from "../../lib/ui/uikit/dist/components/PlDropdown/PlDropdown.vue.js";
7
- import C from "../../lib/ui/uikit/dist/components/PlBtnGhost/PlBtnGhost.vue.js";
7
+ import y from "../../lib/ui/uikit/dist/components/PlBtnGhost/PlBtnGhost.vue.js";
8
8
  import g from "../../lib/ui/uikit/dist/components/PlCheckbox/PlCheckbox.vue.js";
9
9
  import R from "../../lib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js";
10
10
  import V from "../../lib/ui/uikit/dist/components/PlNumberField/PlNumberField.vue.js";
11
11
  import G from "../../lib/ui/uikit/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js";
12
12
  import z from "../../lib/ui/uikit/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js";
13
- const h = /* @__PURE__ */ N({
13
+ const h = /* @__PURE__ */ I({
14
14
  __name: "Toolbar",
15
15
  props: {
16
16
  settings: {},
@@ -18,11 +18,11 @@ const h = /* @__PURE__ */ N({
18
18
  labelColumnOptions: {},
19
19
  colorSchemeOptions: {}
20
20
  },
21
- emits: ["updateSettings"],
22
- setup(u, { emit: k }) {
23
- const w = k, p = b(!1);
21
+ emits: ["updateSettings", "export"],
22
+ setup(u, { emit: w }) {
23
+ const O = w, p = b(!1);
24
24
  function m(t, e) {
25
- w("updateSettings", { [t]: e });
25
+ O("updateSettings", { [t]: e });
26
26
  }
27
27
  function v(t, e) {
28
28
  m(
@@ -30,16 +30,16 @@ const h = /* @__PURE__ */ N({
30
30
  e ? [...u.settings.widgets, t] : u.settings.widgets.filter((l) => t !== l)
31
31
  );
32
32
  }
33
- const i = b({ ...u.settings.alignmentParams });
34
- I(() => {
35
- i.value = { ...u.settings.alignmentParams };
33
+ const a = b({ ...u.settings.alignmentParams });
34
+ K(() => {
35
+ a.value = { ...u.settings.alignmentParams };
36
36
  });
37
- const O = P(
38
- () => !U(u.settings.alignmentParams, i.value)
39
- ), E = P(
40
- () => !U(u.settings.alignmentParams, A)
37
+ const E = P(
38
+ () => !k(u.settings.alignmentParams, a.value)
39
+ ), N = P(
40
+ () => !k(u.settings.alignmentParams, A)
41
41
  );
42
- return (t, e) => (f(), $(K, null, [
42
+ return (t, e) => (f(), $(L, null, [
43
43
  r("div", {
44
44
  class: d(t.$style.container)
45
45
  }, [
@@ -73,18 +73,21 @@ const h = /* @__PURE__ */ N({
73
73
  r("div", {
74
74
  class: d(t.$style.buttons)
75
75
  }, [
76
- o(n(C), {
76
+ o(n(y), {
77
77
  icon: "settings",
78
- onClick: e[3] || (e[3] = L((l) => p.value = !0, ["stop"]))
78
+ onClick: e[3] || (e[3] = S((l) => p.value = !0, ["stop"]))
79
79
  }, {
80
- default: s(() => e[17] || (e[17] = [
81
- a(" Settings ")
80
+ default: s(() => e[18] || (e[18] = [
81
+ i(" Settings ")
82
82
  ])),
83
83
  _: 1
84
84
  }),
85
- o(n(C), { icon: "export" }, {
86
- default: s(() => e[18] || (e[18] = [
87
- a("Export")
85
+ o(n(y), {
86
+ icon: "export",
87
+ onClick: e[4] || (e[4] = S((l) => t.$emit("export"), ["stop"]))
88
+ }, {
89
+ default: s(() => e[19] || (e[19] = [
90
+ i(" Export ")
88
91
  ])),
89
92
  _: 1
90
93
  })
@@ -98,19 +101,19 @@ const h = /* @__PURE__ */ N({
98
101
  }, [
99
102
  o(n(g), {
100
103
  "model-value": t.settings.widgets.includes("seqLogo"),
101
- "onUpdate:modelValue": e[4] || (e[4] = (l) => v("seqLogo", l))
104
+ "onUpdate:modelValue": e[5] || (e[5] = (l) => v("seqLogo", l))
102
105
  }, {
103
- default: s(() => e[19] || (e[19] = [
104
- a(" Seq logo ")
106
+ default: s(() => e[20] || (e[20] = [
107
+ i(" Seq logo ")
105
108
  ])),
106
109
  _: 1
107
110
  }, 8, ["model-value"]),
108
111
  o(n(g), {
109
112
  "model-value": t.settings.widgets.includes("consensus"),
110
- "onUpdate:modelValue": e[5] || (e[5] = (l) => v("consensus", l))
113
+ "onUpdate:modelValue": e[6] || (e[6] = (l) => v("consensus", l))
111
114
  }, {
112
- default: s(() => e[20] || (e[20] = [
113
- a(" Consensus ")
115
+ default: s(() => e[21] || (e[21] = [
116
+ i(" Consensus ")
114
117
  ])),
115
118
  _: 1
116
119
  }, 8, ["model-value"]),
@@ -118,8 +121,8 @@ const h = /* @__PURE__ */ N({
118
121
  "model-value": !1,
119
122
  disabled: ""
120
123
  }, {
121
- default: s(() => e[21] || (e[21] = [
122
- a("Navigator")
124
+ default: s(() => e[22] || (e[22] = [
125
+ i("Navigator")
123
126
  ])),
124
127
  _: 1
125
128
  }),
@@ -127,18 +130,18 @@ const h = /* @__PURE__ */ N({
127
130
  "model-value": !1,
128
131
  disabled: ""
129
132
  }, {
130
- default: s(() => e[22] || (e[22] = [
131
- a("Tree")
133
+ default: s(() => e[23] || (e[23] = [
134
+ i("Tree")
132
135
  ])),
133
136
  _: 1
134
137
  }),
135
138
  o(n(g), {
136
139
  "model-value": t.settings.widgets.includes("legend"),
137
140
  disabled: t.settings.colorScheme.type === "no-color",
138
- "onUpdate:modelValue": e[6] || (e[6] = (l) => v("legend", l))
141
+ "onUpdate:modelValue": e[7] || (e[7] = (l) => v("legend", l))
139
142
  }, {
140
- default: s(() => e[23] || (e[23] = [
141
- a(" Legend ")
143
+ default: s(() => e[24] || (e[24] = [
144
+ i(" Legend ")
142
145
  ])),
143
146
  _: 1
144
147
  }, 8, ["model-value", "disabled"])
@@ -147,80 +150,80 @@ const h = /* @__PURE__ */ N({
147
150
  ], 2),
148
151
  o(n(R), {
149
152
  modelValue: p.value,
150
- "onUpdate:modelValue": e[16] || (e[16] = (l) => p.value = l)
153
+ "onUpdate:modelValue": e[17] || (e[17] = (l) => p.value = l)
151
154
  }, {
152
- title: s(() => e[24] || (e[24] = [
153
- a("Settings")
155
+ title: s(() => e[25] || (e[25] = [
156
+ i("Settings")
154
157
  ])),
155
158
  default: s(() => [
156
159
  o(n(V), {
157
- modelValue: i.value.gpo,
158
- "onUpdate:modelValue": e[7] || (e[7] = (l) => i.value.gpo = l),
160
+ modelValue: a.value.gpo,
161
+ "onUpdate:modelValue": e[8] || (e[8] = (l) => a.value.gpo = l),
159
162
  label: "Gap open penalty",
160
163
  step: 0.1,
161
- onKeyup: e[8] || (e[8] = y((l) => m("alignmentParams", i.value), ["enter"]))
164
+ onKeyup: e[9] || (e[9] = C((l) => m("alignmentParams", a.value), ["enter"]))
162
165
  }, {
163
- tooltip: s(() => e[25] || (e[25] = [
164
- a(" Penalty score assigned to the introduction of a gap in the alignment ")
166
+ tooltip: s(() => e[26] || (e[26] = [
167
+ i(" Penalty score assigned to the introduction of a gap in the alignment ")
165
168
  ])),
166
169
  _: 1
167
170
  }, 8, ["modelValue"]),
168
171
  o(n(V), {
169
- modelValue: i.value.gpe,
170
- "onUpdate:modelValue": e[9] || (e[9] = (l) => i.value.gpe = l),
172
+ modelValue: a.value.gpe,
173
+ "onUpdate:modelValue": e[10] || (e[10] = (l) => a.value.gpe = l),
171
174
  label: "Gap extension penalty",
172
175
  step: 0.1,
173
- onKeyup: e[10] || (e[10] = y((l) => m("alignmentParams", i.value), ["enter"]))
176
+ onKeyup: e[11] || (e[11] = C((l) => m("alignmentParams", a.value), ["enter"]))
174
177
  }, {
175
- tooltip: s(() => e[26] || (e[26] = [
176
- a(" Penalty score assigned to each additional residue added to an existing gap ")
178
+ tooltip: s(() => e[27] || (e[27] = [
179
+ i(" Penalty score assigned to each additional residue added to an existing gap ")
177
180
  ])),
178
181
  _: 1
179
182
  }, 8, ["modelValue"]),
180
183
  o(n(V), {
181
- modelValue: i.value.tgpe,
182
- "onUpdate:modelValue": e[11] || (e[11] = (l) => i.value.tgpe = l),
184
+ modelValue: a.value.tgpe,
185
+ "onUpdate:modelValue": e[12] || (e[12] = (l) => a.value.tgpe = l),
183
186
  label: "Terminal gap extension penalty",
184
187
  step: 0.1,
185
- onKeyup: e[12] || (e[12] = y((l) => m("alignmentParams", i.value), ["enter"]))
188
+ onKeyup: e[13] || (e[13] = C((l) => m("alignmentParams", a.value), ["enter"]))
186
189
  }, {
187
- tooltip: s(() => e[27] || (e[27] = [
188
- a(" Penalty score assigned to extending gaps at the ends of sequences ")
190
+ tooltip: s(() => e[28] || (e[28] = [
191
+ i(" Penalty score assigned to extending gaps at the ends of sequences ")
189
192
  ])),
190
193
  _: 1
191
194
  }, 8, ["modelValue"]),
192
- O.value ? (f(), $("div", {
195
+ E.value ? (f(), $("div", {
193
196
  key: 0,
194
197
  class: d(t.$style["pending-changes"])
195
198
  }, [
196
199
  o(n(G), {
197
- onClick: e[13] || (e[13] = (l) => m("alignmentParams", i.value))
200
+ onClick: e[14] || (e[14] = (l) => m("alignmentParams", a.value))
198
201
  }, {
199
- default: s(() => e[28] || (e[28] = [
200
- a(" Apply ")
202
+ default: s(() => e[29] || (e[29] = [
203
+ i(" Apply ")
201
204
  ])),
202
205
  _: 1
203
206
  }),
204
- o(n(C), {
205
- onClick: e[14] || (e[14] = (l) => i.value = t.settings.alignmentParams)
207
+ o(n(y), {
208
+ onClick: e[15] || (e[15] = (l) => a.value = t.settings.alignmentParams)
206
209
  }, {
207
- default: s(() => e[29] || (e[29] = [
208
- a(" Cancel ")
210
+ default: s(() => e[30] || (e[30] = [
211
+ i(" Cancel ")
209
212
  ])),
210
213
  _: 1
211
214
  })
212
- ], 2)) : S("", !0),
213
- E.value ? (f(), T(n(z), {
215
+ ], 2)) : U("", !0),
216
+ N.value ? (f(), T(n(z), {
214
217
  key: 1,
215
218
  class: d(t.$style["reset-button"]),
216
219
  icon: "reverse",
217
- onClick: e[15] || (e[15] = (l) => m("alignmentParams", void 0))
220
+ onClick: e[16] || (e[16] = (l) => m("alignmentParams", void 0))
218
221
  }, {
219
- default: s(() => e[30] || (e[30] = [
220
- a(" Reset to Default ")
222
+ default: s(() => e[31] || (e[31] = [
223
+ i(" Reset to Default ")
221
224
  ])),
222
225
  _: 1
223
- }, 8, ["class"])) : S("", !0)
226
+ }, 8, ["class"])) : U("", !0)
224
227
  ]),
225
228
  _: 1
226
229
  }, 8, ["modelValue"])
@@ -1 +1 @@
1
- {"version":3,"file":"Toolbar.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/Toolbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isJsonEqual } from '@milaboratories/helpers';\nimport {\n type ListOptionNormalized,\n PlBtnGhost,\n PlBtnPrimary,\n PlBtnSecondary,\n PlCheckbox,\n PlDropdown,\n PlDropdownMulti,\n PlNumberField,\n PlSlideModal,\n} from '@milaboratories/uikit';\nimport type {\n PlMultiSequenceAlignmentColorSchemeOption as ColorSchemeOption,\n PlMultiSequenceAlignmentSettings as Settings,\n PObjectId,\n PTableColumnId,\n} from '@platforma-sdk/model';\nimport { computed, ref, watchEffect } from 'vue';\nimport { defaultAlignmentParams } from './multi-sequence-alignment';\n\nconst { settings } = defineProps<{\n settings: Settings;\n sequenceColumnOptions: ListOptionNormalized<PObjectId>[] | undefined;\n labelColumnOptions: ListOptionNormalized<PTableColumnId>[] | undefined;\n colorSchemeOptions: ListOptionNormalized<ColorSchemeOption>[];\n}>();\n\nconst emit = defineEmits<{\n updateSettings: [Partial<Settings>];\n}>();\n\nconst settingsOpen = ref(false);\n\nfunction updateSetting<K extends keyof Settings>(\n key: K,\n value: Settings[K] | undefined,\n) {\n emit('updateSettings', { [key]: value });\n}\n\nfunction toggleWidget(\n widget: 'seqLogo' | 'consensus' | 'legend',\n checked: boolean,\n) {\n updateSetting(\n 'widgets',\n checked\n ? [...settings.widgets, widget]\n : settings.widgets.filter((w) => widget !== w),\n );\n}\n\nconst alignmentParams = ref({ ...settings.alignmentParams });\nwatchEffect(() => {\n alignmentParams.value = { ...settings.alignmentParams };\n});\n\nconst alignmentParamsChangesPending = computed(() =>\n !isJsonEqual(settings.alignmentParams, alignmentParams.value),\n);\n\nconst canResetAlignmentParams = computed(() =>\n !isJsonEqual(settings.alignmentParams, defaultAlignmentParams),\n);\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <div :class=\"$style.line\">\n <div :class=\"$style.section\">\n <PlDropdownMulti\n label=\"Sequence Columns\"\n :model-value=\"settings.sequenceColumnIds ?? []\"\n :options=\"sequenceColumnOptions\"\n clearable\n @update:model-value=\"updateSetting('sequenceColumnIds', $event)\"\n />\n <PlDropdownMulti\n :model-value=\"settings.labelColumnIds ?? []\"\n label=\"Label Columns\"\n :options=\"labelColumnOptions\"\n clearable\n @update:model-value=\"updateSetting('labelColumnIds', $event)\"\n />\n <PlDropdown\n :model-value=\"settings.colorScheme\"\n label=\"Color Scheme\"\n :options=\"colorSchemeOptions\"\n @update:model-value=\"updateSetting('colorScheme', $event)\"\n />\n </div>\n <div :class=\"$style.buttons\">\n <PlBtnGhost icon=\"settings\" @click.stop=\"settingsOpen = true\">\n Settings\n </PlBtnGhost>\n <PlBtnGhost icon=\"export\">Export</PlBtnGhost>\n </div>\n </div>\n <div :class=\"$style.line\">\n <div :class=\"$style.section\">\n <PlCheckbox\n :model-value=\"settings.widgets.includes('seqLogo')\"\n @update:model-value=\"toggleWidget('seqLogo', $event)\"\n >\n Seq logo\n </PlCheckbox>\n <PlCheckbox\n :model-value=\"settings.widgets.includes('consensus')\"\n @update:model-value=\"toggleWidget('consensus', $event)\"\n >\n Consensus\n </PlCheckbox>\n <PlCheckbox :model-value=\"false\" disabled>Navigator</PlCheckbox>\n <PlCheckbox :model-value=\"false\" disabled>Tree</PlCheckbox>\n <PlCheckbox\n :model-value=\"settings.widgets.includes('legend')\"\n :disabled=\"settings.colorScheme.type === 'no-color'\"\n @update:model-value=\"toggleWidget('legend', $event)\"\n >\n Legend\n </PlCheckbox>\n </div>\n </div>\n </div>\n <PlSlideModal v-model=\"settingsOpen\">\n <template #title>Settings</template>\n <PlNumberField\n v-model=\"alignmentParams.gpo\"\n label=\"Gap open penalty\"\n :step=\"0.1\"\n @keyup.enter=\"updateSetting('alignmentParams', alignmentParams)\"\n >\n <template #tooltip>\n Penalty score assigned to the introduction of a gap in the alignment\n </template>\n </PlNumberField>\n <PlNumberField\n v-model=\"alignmentParams.gpe\"\n label=\"Gap extension penalty\"\n :step=\"0.1\"\n @keyup.enter=\"updateSetting('alignmentParams', alignmentParams)\"\n >\n <template #tooltip>\n Penalty score assigned to each additional residue added to an existing\n gap\n </template>\n </PlNumberField>\n <PlNumberField\n v-model=\"alignmentParams.tgpe\"\n label=\"Terminal gap extension penalty\"\n :step=\"0.1\"\n @keyup.enter=\"updateSetting('alignmentParams', alignmentParams)\"\n >\n <template #tooltip>\n Penalty score assigned to extending gaps at the ends of sequences\n </template>\n </PlNumberField>\n <div\n v-if=\"alignmentParamsChangesPending\"\n :class=\"$style['pending-changes']\"\n >\n <PlBtnPrimary @click=\"updateSetting('alignmentParams', alignmentParams)\">\n Apply\n </PlBtnPrimary>\n <PlBtnGhost @click=\"alignmentParams = settings.alignmentParams\">\n Cancel\n </PlBtnGhost>\n </div>\n <PlBtnSecondary\n v-if=\"canResetAlignmentParams\"\n :class=\"$style['reset-button']\"\n icon=\"reverse\"\n @click=\"updateSetting('alignmentParams', undefined)\"\n >\n Reset to Default\n </PlBtnSecondary>\n </PlSlideModal>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.line {\n display: flex;\n justify-content: space-between;\n}\n\n.section {\n display: flex;\n flex-wrap: wrap;\n gap: 24px;\n}\n\n.buttons {\n display: flex;\n}\n\n.pending-changes {\n display: flex;\n button {\n min-width: 160px;\n }\n}\n\n.reset-button {\n margin-block-start: auto;\n span {\n text-transform: none;\n }\n}\n</style>\n"],"names":["emit","__emit","settingsOpen","ref","updateSetting","key","value","toggleWidget","widget","checked","__props","w","alignmentParams","watchEffect","alignmentParamsChangesPending","computed","isJsonEqual","canResetAlignmentParams","defaultAlignmentParams"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BA,UAAMA,IAAOC,GAIPC,IAAeC,EAAI,EAAK;AAErB,aAAAC,EACPC,GACAC,GACA;AACA,MAAAN,EAAK,kBAAkB,EAAE,CAACK,CAAG,GAAGC,GAAO;AAAA,IAAA;AAGhC,aAAAC,EACPC,GACAC,GACA;AACA,MAAAL;AAAA,QACE;AAAA,QACAK,IACI,CAAC,GAAGC,EAAQ,SAAC,SAASF,CAAM,IAC5BE,EAAQ,SAAC,QAAQ,OAAO,CAACC,MAAMH,MAAWG,CAAC;AAAA,MACjD;AAAA,IAAA;AAGF,UAAMC,IAAkBT,EAAI,EAAE,GAAGO,WAAS,iBAAiB;AAC3D,IAAAG,EAAY,MAAM;AAChB,MAAAD,EAAgB,QAAQ,EAAE,GAAGF,WAAS,gBAAgB;AAAA,IAAA,CACvD;AAED,UAAMI,IAAgCC;AAAA,MAAS,MAC7C,CAACC,EAAYN,EAAA,SAAS,iBAAiBE,EAAgB,KAAK;AAAA,IAC9D,GAEMK,IAA0BF;AAAA,MAAS,MACvC,CAACC,EAAYN,EAAA,SAAS,iBAAiBQ,CAAsB;AAAA,IAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"Toolbar.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/Toolbar.vue"],"sourcesContent":["<script setup lang=\"ts\">\nimport { isJsonEqual } from '@milaboratories/helpers';\nimport {\n type ListOptionNormalized,\n PlBtnGhost,\n PlBtnPrimary,\n PlBtnSecondary,\n PlCheckbox,\n PlDropdown,\n PlDropdownMulti,\n PlNumberField,\n PlSlideModal,\n} from '@milaboratories/uikit';\nimport type {\n PlMultiSequenceAlignmentColorSchemeOption as ColorSchemeOption,\n PlMultiSequenceAlignmentSettings as Settings,\n PObjectId,\n PTableColumnId,\n} from '@platforma-sdk/model';\nimport { computed, ref, watchEffect } from 'vue';\nimport { defaultAlignmentParams } from './multi-sequence-alignment';\n\nconst { settings } = defineProps<{\n settings: Settings;\n sequenceColumnOptions: ListOptionNormalized<PObjectId>[] | undefined;\n labelColumnOptions: ListOptionNormalized<PTableColumnId>[] | undefined;\n colorSchemeOptions: ListOptionNormalized<ColorSchemeOption>[];\n}>();\n\nconst emit = defineEmits<{\n updateSettings: [Partial<Settings>];\n export: [];\n}>();\n\nconst settingsOpen = ref(false);\n\nfunction updateSetting<K extends keyof Settings>(\n key: K,\n value: Settings[K] | undefined,\n) {\n emit('updateSettings', { [key]: value });\n}\n\nfunction toggleWidget(\n widget: 'seqLogo' | 'consensus' | 'legend',\n checked: boolean,\n) {\n updateSetting(\n 'widgets',\n checked\n ? [...settings.widgets, widget]\n : settings.widgets.filter((w) => widget !== w),\n );\n}\n\nconst alignmentParams = ref({ ...settings.alignmentParams });\nwatchEffect(() => {\n alignmentParams.value = { ...settings.alignmentParams };\n});\n\nconst alignmentParamsChangesPending = computed(() =>\n !isJsonEqual(settings.alignmentParams, alignmentParams.value),\n);\n\nconst canResetAlignmentParams = computed(() =>\n !isJsonEqual(settings.alignmentParams, defaultAlignmentParams),\n);\n</script>\n\n<template>\n <div :class=\"$style.container\">\n <div :class=\"$style.line\">\n <div :class=\"$style.section\">\n <PlDropdownMulti\n label=\"Sequence Columns\"\n :model-value=\"settings.sequenceColumnIds ?? []\"\n :options=\"sequenceColumnOptions\"\n clearable\n @update:model-value=\"updateSetting('sequenceColumnIds', $event)\"\n />\n <PlDropdownMulti\n :model-value=\"settings.labelColumnIds ?? []\"\n label=\"Label Columns\"\n :options=\"labelColumnOptions\"\n clearable\n @update:model-value=\"updateSetting('labelColumnIds', $event)\"\n />\n <PlDropdown\n :model-value=\"settings.colorScheme\"\n label=\"Color Scheme\"\n :options=\"colorSchemeOptions\"\n @update:model-value=\"updateSetting('colorScheme', $event)\"\n />\n </div>\n <div :class=\"$style.buttons\">\n <PlBtnGhost icon=\"settings\" @click.stop=\"settingsOpen = true\">\n Settings\n </PlBtnGhost>\n <PlBtnGhost icon=\"export\" @click.stop=\"$emit('export')\">\n Export\n </PlBtnGhost>\n </div>\n </div>\n <div :class=\"$style.line\">\n <div :class=\"$style.section\">\n <PlCheckbox\n :model-value=\"settings.widgets.includes('seqLogo')\"\n @update:model-value=\"toggleWidget('seqLogo', $event)\"\n >\n Seq logo\n </PlCheckbox>\n <PlCheckbox\n :model-value=\"settings.widgets.includes('consensus')\"\n @update:model-value=\"toggleWidget('consensus', $event)\"\n >\n Consensus\n </PlCheckbox>\n <PlCheckbox :model-value=\"false\" disabled>Navigator</PlCheckbox>\n <PlCheckbox :model-value=\"false\" disabled>Tree</PlCheckbox>\n <PlCheckbox\n :model-value=\"settings.widgets.includes('legend')\"\n :disabled=\"settings.colorScheme.type === 'no-color'\"\n @update:model-value=\"toggleWidget('legend', $event)\"\n >\n Legend\n </PlCheckbox>\n </div>\n </div>\n </div>\n <PlSlideModal v-model=\"settingsOpen\">\n <template #title>Settings</template>\n <PlNumberField\n v-model=\"alignmentParams.gpo\"\n label=\"Gap open penalty\"\n :step=\"0.1\"\n @keyup.enter=\"updateSetting('alignmentParams', alignmentParams)\"\n >\n <template #tooltip>\n Penalty score assigned to the introduction of a gap in the alignment\n </template>\n </PlNumberField>\n <PlNumberField\n v-model=\"alignmentParams.gpe\"\n label=\"Gap extension penalty\"\n :step=\"0.1\"\n @keyup.enter=\"updateSetting('alignmentParams', alignmentParams)\"\n >\n <template #tooltip>\n Penalty score assigned to each additional residue added to an existing\n gap\n </template>\n </PlNumberField>\n <PlNumberField\n v-model=\"alignmentParams.tgpe\"\n label=\"Terminal gap extension penalty\"\n :step=\"0.1\"\n @keyup.enter=\"updateSetting('alignmentParams', alignmentParams)\"\n >\n <template #tooltip>\n Penalty score assigned to extending gaps at the ends of sequences\n </template>\n </PlNumberField>\n <div\n v-if=\"alignmentParamsChangesPending\"\n :class=\"$style['pending-changes']\"\n >\n <PlBtnPrimary @click=\"updateSetting('alignmentParams', alignmentParams)\">\n Apply\n </PlBtnPrimary>\n <PlBtnGhost @click=\"alignmentParams = settings.alignmentParams\">\n Cancel\n </PlBtnGhost>\n </div>\n <PlBtnSecondary\n v-if=\"canResetAlignmentParams\"\n :class=\"$style['reset-button']\"\n icon=\"reverse\"\n @click=\"updateSetting('alignmentParams', undefined)\"\n >\n Reset to Default\n </PlBtnSecondary>\n </PlSlideModal>\n</template>\n\n<style module>\n.container {\n display: flex;\n flex-direction: column;\n gap: 24px;\n}\n\n.line {\n display: flex;\n justify-content: space-between;\n}\n\n.section {\n display: flex;\n flex-wrap: wrap;\n gap: 24px;\n}\n\n.buttons {\n display: flex;\n}\n\n.pending-changes {\n display: flex;\n button {\n min-width: 160px;\n }\n}\n\n.reset-button {\n margin-block-start: auto;\n span {\n text-transform: none;\n }\n}\n</style>\n"],"names":["emit","__emit","settingsOpen","ref","updateSetting","key","value","toggleWidget","widget","checked","__props","w","alignmentParams","watchEffect","alignmentParamsChangesPending","computed","isJsonEqual","canResetAlignmentParams","defaultAlignmentParams"],"mappings":";;;;;;;;;;;;;;;;;;;;;;AA6BA,UAAMA,IAAOC,GAKPC,IAAeC,EAAI,EAAK;AAErB,aAAAC,EACPC,GACAC,GACA;AACA,MAAAN,EAAK,kBAAkB,EAAE,CAACK,CAAG,GAAGC,GAAO;AAAA,IAAA;AAGhC,aAAAC,EACPC,GACAC,GACA;AACA,MAAAL;AAAA,QACE;AAAA,QACAK,IACI,CAAC,GAAGC,EAAQ,SAAC,SAASF,CAAM,IAC5BE,EAAQ,SAAC,QAAQ,OAAO,CAACC,MAAMH,MAAWG,CAAC;AAAA,MACjD;AAAA,IAAA;AAGF,UAAMC,IAAkBT,EAAI,EAAE,GAAGO,WAAS,iBAAiB;AAC3D,IAAAG,EAAY,MAAM;AAChB,MAAAD,EAAgB,QAAQ,EAAE,GAAGF,WAAS,gBAAgB;AAAA,IAAA,CACvD;AAED,UAAMI,IAAgCC;AAAA,MAAS,MAC7C,CAACC,EAAYN,EAAA,SAAS,iBAAiBE,EAAgB,KAAK;AAAA,IAC9D,GAEMK,IAA0BF;AAAA,MAAS,MACvC,CAACC,EAAYN,EAAA,SAAS,iBAAiBQ,CAAsB;AAAA,IAC/D;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,9 +1,45 @@
1
- import { ColorMap, ResidueCounts } from './types';
2
- export declare const chemicalPropertiesColorMap: ColorMap;
3
- export type ChemicalCategory = keyof typeof chemicalPropertiesColorMap;
4
- export declare function colorizeSequencesByChemicalProperties({ sequences, residueCounts, colorMap }: {
1
+ import { HighlightLegend, ResidueCounts } from './types';
2
+ export declare function highlightByChemicalProperties({ sequences, residueCounts }: {
5
3
  sequences: string[];
6
4
  residueCounts: ResidueCounts;
7
- colorMap: ColorMap;
8
- }): Promise<Blob>;
5
+ }): {
6
+ blob: Blob;
7
+ legend: HighlightLegend;
8
+ };
9
+ declare const chemicalPropertiesColorScheme: {
10
+ hydrophobic: {
11
+ label: string;
12
+ color: string;
13
+ };
14
+ positiveCharge: {
15
+ label: string;
16
+ color: string;
17
+ };
18
+ negativeCharge: {
19
+ label: string;
20
+ color: string;
21
+ };
22
+ polar: {
23
+ label: string;
24
+ color: string;
25
+ };
26
+ cysteine: {
27
+ label: string;
28
+ color: string;
29
+ };
30
+ glycine: {
31
+ label: string;
32
+ color: string;
33
+ };
34
+ proline: {
35
+ label: string;
36
+ color: string;
37
+ };
38
+ aromatic: {
39
+ label: string;
40
+ color: string;
41
+ };
42
+ };
43
+ export type ChemicalCategory = keyof typeof chemicalPropertiesColorScheme;
44
+ export {};
9
45
  //# sourceMappingURL=chemical-properties.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"chemical-properties.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/chemical-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAEvD,eAAO,MAAM,0BAA0B,EAAE,QAiCxC,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,0BAA0B,CAAC;AAEvE,wBAAgB,qCAAqC,CACnD,EAAE,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,EAAE;IACtC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;IAC7B,QAAQ,EAAE,QAAQ,CAAC;CACpB,GACA,OAAO,CAAC,IAAI,CAAC,CAwBf"}
1
+ {"version":3,"file":"chemical-properties.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/chemical-properties.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9D,wBAAgB,6BAA6B,CAC3C,EAAE,SAAS,EAAE,aAAa,EAAE,EAAE;IAC5B,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,aAAa,EAAE,aAAa,CAAC;CAC9B,GACA;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,MAAM,EAAE,eAAe,CAAA;CAAE,CA4DzC;AA8BD,QAAA,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCR,CAAC;AAE5B,MAAM,MAAM,gBAAgB,GAAG,MAAM,OAAO,6BAA6B,CAAC"}
@@ -1,4 +1,49 @@
1
- const f = {
1
+ function E({ sequences: t, residueCounts: g }) {
2
+ var C, h, u;
3
+ const i = [], c = v({
4
+ residueCounts: g,
5
+ rowCount: t.length
6
+ }), n = ((C = t.at(0)) == null ? void 0 : C.length) ?? 0, l = t.length;
7
+ for (let e = 0; e < n; e += 1)
8
+ for (let o = 0; o < l; o += 1) {
9
+ const F = t[o][e], d = (u = (h = c.at(e)) == null ? void 0 : h.find(({ residues: a }) => a.includes(F))) == null ? void 0 : u.category;
10
+ if (!d) continue;
11
+ const r = i.at(-1);
12
+ r && r.category === d && r.column === e && r.start + r.length === o ? r.length += 1 : i.push({ category: d, column: e, start: o, length: 1 });
13
+ }
14
+ const s = Map.groupBy(i, ({ category: e }) => e), y = new Blob(
15
+ function* () {
16
+ var o;
17
+ yield `<svg xmlns="http://www.w3.org/2000/svg" viewBox="${`0 0 ${n * 2} ${l}`}" stroke-width="2" preserveAspectRatio="none">`;
18
+ for (const [F, d] of s) {
19
+ const r = (o = P[F]) == null ? void 0 : o.color;
20
+ if (!r) continue;
21
+ yield `<path stroke="${r}" d="`;
22
+ let a = 0, A = 0;
23
+ for (const { column: m, start: b, length: f } of d)
24
+ yield `m${m * 2 + 1 - a},${b - A}v${f}`, a = m * 2 + 1, A = b + f;
25
+ yield '"/>';
26
+ }
27
+ yield "</svg>";
28
+ }().toArray(),
29
+ { type: "image/svg+xml" }
30
+ ), p = Object.fromEntries(
31
+ Object.entries(P).filter(([e]) => s.has(e))
32
+ );
33
+ return { blob: y, legend: p };
34
+ }
35
+ const v = ({ residueCounts: t, rowCount: g }) => t.map((i) => {
36
+ const c = /* @__PURE__ */ new Set();
37
+ return D.filter(
38
+ ({ residues: n, rules: l }) => n.split("").some((s) => s in i) && (!l || l.split("").map(
39
+ (s) => [s, w[s]]
40
+ ).some(([s, { residues: y, threshold: p }]) => {
41
+ if (c.has(s)) return !0;
42
+ const h = y.split("").reduce((u, e) => u + (i[e] ?? 0), 0) >= g * p;
43
+ return h && c.add(s), h;
44
+ }))
45
+ );
46
+ }), P = {
2
47
  hydrophobic: {
3
48
  label: "Hydrophobic",
4
49
  color: "#99CCFF"
@@ -31,136 +76,57 @@ const f = {
31
76
  label: "Aromatic",
32
77
  color: "#A2F5FA"
33
78
  }
34
- };
35
- function m({ sequences: e, residueCounts: c, colorMap: s }) {
36
- var t, g, l, h;
37
- const o = new OffscreenCanvas(
38
- ((t = e[0]) == null ? void 0 : t.length) ?? 0,
39
- e.length
40
- ), r = o.getContext("2d"), i = y({
41
- residueCounts: c,
42
- rowCount: e.length
43
- });
44
- for (const [n, d] of e.entries())
45
- for (const [a, p] of d.split("").entries()) {
46
- const u = (l = (g = i.at(a)) == null ? void 0 : g.find(({ residues: C }) => C.includes(p))) == null ? void 0 : l.category;
47
- !u || !((h = s[u]) != null && h.color) || (r.fillStyle = s[u].color, r.fillRect(a, n, 1, 1));
48
- }
49
- return o.convertToBlob();
50
- }
51
- const y = ({ residueCounts: e, rowCount: c }) => (
52
- // for every column in a residue counts table
53
- // (e.g. table = [{ A: 3, R: 5, Q: 1}, { E: 4, T: 2 }, ...])
54
- e.map((s) => (
55
- // find all matching criterion
56
- F.filter(
57
- ({ rules: o }) => (
58
- // by matching at least one rule
59
- o.some(
60
- ({ groups: r, threshold: i }) => (
61
- // where at least one residue group
62
- r.some((t) => t.split("").reduce(
63
- (l, h) => l + (s[h] ?? 0),
64
- 0
65
- ) > c * i)
66
- )
67
- )
68
- )
69
- ).map(({ residues: o, category: r }) => ({ residues: o, category: r }))
70
- ))
71
- ), F = [
72
- {
73
- residues: "ACILMFWV",
74
- category: "hydrophobic",
75
- rules: [
76
- { groups: ["WLVIMAFCYHP"], threshold: 0.6 }
77
- ]
78
- },
79
- {
80
- residues: "KR",
81
- category: "positiveCharge",
82
- rules: [
83
- { groups: ["KR"], threshold: 0.6 },
84
- { groups: [..."KRQ"], threshold: 0.8 }
85
- ]
86
- },
87
- {
88
- residues: "E",
89
- category: "negativeCharge",
90
- rules: [
91
- { groups: ["KR"], threshold: 0.6 },
92
- { groups: ["QE"], threshold: 0.5 },
93
- { groups: ["ED"], threshold: 0.5 },
94
- { groups: [..."EQD"], threshold: 0.85 }
95
- ]
96
- },
97
- {
98
- residues: "D",
99
- category: "negativeCharge",
100
- rules: [
101
- { groups: ["KR"], threshold: 0.6 },
102
- { groups: [..."DEN"], threshold: 0.85 },
103
- { groups: ["ED"], threshold: 0.5 }
104
- ]
105
- },
106
- {
107
- residues: "N",
108
- category: "polar",
109
- rules: [
110
- { groups: ["N"], threshold: 0.5 },
111
- { groups: [..."ND"], threshold: 0.85 }
112
- ]
113
- },
114
- {
115
- residues: "Q",
116
- category: "polar",
117
- rules: [
118
- { groups: ["KR"], threshold: 0.6 },
119
- { groups: ["QE"], threshold: 0.5 },
120
- { groups: [..."QTKR"], threshold: 0.85 }
121
- ]
122
- },
123
- {
124
- residues: "ST",
125
- category: "polar",
126
- rules: [
127
- { groups: ["WLVIMAFCYHP"], threshold: 0.6 },
128
- { groups: ["TS"], threshold: 0.5 },
129
- { groups: [..."ST"], threshold: 0.85 }
130
- ]
131
- },
132
- {
133
- residues: "C",
134
- category: "cysteine",
135
- rules: [
136
- { groups: ["C"], threshold: 0.85 }
137
- ]
138
- },
139
- {
140
- residues: "G",
141
- category: "glycine",
142
- rules: [
143
- { groups: ["G"], threshold: 0 }
144
- ]
145
- },
146
- {
147
- residues: "P",
148
- category: "proline",
149
- rules: [
150
- { groups: ["P"], threshold: 0 }
151
- ]
152
- },
153
- {
154
- residues: "HY",
155
- category: "aromatic",
156
- rules: [
157
- { groups: ["WLVIMAFCYHP"], threshold: 0.6 },
158
- { groups: [..."WYACPQFHILMV"], threshold: 0.85 }
159
- ]
160
- }
79
+ }, w = {
80
+ "%": { residues: "WLVIMAFCYHP", threshold: 0.6 },
81
+ "#": { residues: "WLVIMAFCYHP", threshold: 0.8 },
82
+ "-": { residues: "ED", threshold: 0.5 },
83
+ "+": { residues: "KR", threshold: 0.6 },
84
+ g: { residues: "G", threshold: 0.5 },
85
+ n: { residues: "N", threshold: 0.5 },
86
+ q: { residues: "QE", threshold: 0.5 },
87
+ p: { residues: "P", threshold: 0.5 },
88
+ t: { residues: "TS", threshold: 0.5 },
89
+ A: { residues: "A", threshold: 0.85 },
90
+ C: { residues: "C", threshold: 0.85 },
91
+ D: { residues: "D", threshold: 0.85 },
92
+ E: { residues: "E", threshold: 0.85 },
93
+ F: { residues: "F", threshold: 0.85 },
94
+ G: { residues: "G", threshold: 0.85 },
95
+ H: { residues: "H", threshold: 0.85 },
96
+ I: { residues: "I", threshold: 0.85 },
97
+ K: { residues: "K", threshold: 0.85 },
98
+ L: { residues: "L", threshold: 0.85 },
99
+ M: { residues: "M", threshold: 0.85 },
100
+ N: { residues: "N", threshold: 0.85 },
101
+ P: { residues: "P", threshold: 0.85 },
102
+ Q: { residues: "Q", threshold: 0.85 },
103
+ R: { residues: "R", threshold: 0.85 },
104
+ S: { residues: "S", threshold: 0.85 },
105
+ T: { residues: "T", threshold: 0.85 },
106
+ V: { residues: "V", threshold: 0.85 },
107
+ W: { residues: "W", threshold: 0.85 },
108
+ Y: { residues: "Y", threshold: 0.85 }
109
+ }, D = [
110
+ { residues: "G", category: "glycine", rules: "" },
111
+ { residues: "P", category: "proline", rules: "" },
112
+ { residues: "T", category: "polar", rules: "tST%#" },
113
+ { residues: "S", category: "polar", rules: "tST#" },
114
+ { residues: "N", category: "polar", rules: "nND" },
115
+ { residues: "Q", category: "polar", rules: "qQE+KR" },
116
+ // criteria below has to go before the other criteria for C,
117
+ // otherwise it will never match
118
+ { residues: "C", category: "cysteine", rules: "C" },
119
+ { residues: "WLVIMF", category: "hydrophobic", rules: "%#ACFHILMVWYPp" },
120
+ // below there was an 's' rule too,
121
+ // but no definition of such rule was provided
122
+ { residues: "A", category: "hydrophobic", rules: "%#ACFHILMVWYPpTSG" },
123
+ { residues: "C", category: "hydrophobic", rules: "%#AFHILMVWYSPp" },
124
+ { residues: "HY", category: "aromatic", rules: "%#ACFHILMVWYPp" },
125
+ { residues: "E", category: "negativeCharge", rules: "-DEqQ" },
126
+ { residues: "D", category: "negativeCharge", rules: "-DEnN" },
127
+ { residues: "KR", category: "positiveCharge", rules: "+KRQ" }
161
128
  ];
162
129
  export {
163
- f as chemicalPropertiesColorMap,
164
- m as colorizeSequencesByChemicalProperties
130
+ E as highlightByChemicalProperties
165
131
  };
166
132
  //# sourceMappingURL=chemical-properties.js.map