@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.
- package/.turbo/turbo-build.log +36 -71
- package/.turbo/turbo-type-check.log +1 -1
- package/CHANGELOG.md +18 -0
- package/dist/components/PlAnnotations/components/PlAnnotationsModal.vue2.js +3 -3
- package/dist/components/PlMultiSequenceAlignment/Legend.vue.d.ts +2 -2
- package/dist/components/PlMultiSequenceAlignment/Legend.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Legend.vue2.js +11 -11
- package/dist/components/PlMultiSequenceAlignment/Legend.vue3.js +8 -8
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts +12 -6
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js +80 -65
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js +14 -12
- package/dist/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue3.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts +36 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js +146 -111
- package/dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts +2 -0
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js +71 -68
- package/dist/components/PlMultiSequenceAlignment/Toolbar.vue2.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts +42 -6
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.js +96 -130
- package/dist/components/PlMultiSequenceAlignment/chemical-properties.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/data.d.ts +3 -9
- package/dist/components/PlMultiSequenceAlignment/data.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/data.js +198 -212
- package/dist/components/PlMultiSequenceAlignment/data.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/markup.d.ts +7 -5
- package/dist/components/PlMultiSequenceAlignment/markup.d.ts.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/markup.js +47 -26
- package/dist/components/PlMultiSequenceAlignment/markup.js.map +1 -1
- package/dist/components/PlMultiSequenceAlignment/types.d.ts +1 -1
- package/dist/components/PlMultiSequenceAlignment/types.d.ts.map +1 -1
- package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js +2 -4
- package/dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/DataTable/index.js +2 -2
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createGridlines.js +6 -8
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createGridlines.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createLabels.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createSvgContainer.js +5 -7
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/createSvgContainer.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/drawBins.js +3 -5
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/drawBins.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/histogram.js +19 -21
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/histogram.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlChartHistogram/normalizeBins.js.map +1 -1
- package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js +2 -4
- package/dist/lib/ui/uikit/dist/components/PlSlideModal/PlPureSlideModal.vue.js.map +1 -1
- package/dist/lib/ui/uikit/dist/index.js +78 -80
- package/dist/lib/ui/uikit/dist/index.js.map +1 -1
- package/dist/lib/ui/uikit/dist/lib/model/common/dist/index.js.map +1 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js +7 -7
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/rgb.js.map +1 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js +9 -9
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/string.js.map +1 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/index.js +51 -55
- 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
- package/dist/lib/ui/uikit/dist/sdk/model/dist/index.js +1 -1
- 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
- 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
- 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
- package/dist/sdk/model/dist/index.js +1 -1
- package/package.json +6 -6
- package/src/components/PlMultiSequenceAlignment/Legend.vue +4 -3
- package/src/components/PlMultiSequenceAlignment/MultiSequenceAlignmentView.vue +66 -46
- package/src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue +85 -34
- package/src/components/PlMultiSequenceAlignment/README.md +10 -8
- package/src/components/PlMultiSequenceAlignment/Toolbar.vue +4 -1
- package/src/components/PlMultiSequenceAlignment/chemical-properties.ts +154 -161
- package/src/components/PlMultiSequenceAlignment/data.ts +65 -85
- package/src/components/PlMultiSequenceAlignment/markup.ts +47 -15
- package/src/components/PlMultiSequenceAlignment/types.ts +1 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js +0 -65
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-dispatch@3.0.1/node_modules/d3-dispatch/src/dispatch.js.map +0 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js +0 -7
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-ease@3.0.1/node_modules/d3-ease/src/cubic.js.map +0 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/decompose.js +0 -24
- 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
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/index.js +0 -38
- 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
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-interpolate@3.0.1/node_modules/d3-interpolate/src/transform/parse.js +0 -14
- 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
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js +0 -11
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timeout.js.map +0 -1
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js +0 -63
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-timer@3.0.1/node_modules/d3-timer/src/timer.js.map +0 -1
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- package/dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-zoom@3.0.0/node_modules/d3-zoom/src/transform.js +0 -44
- 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
|
|
2
|
-
import { isJsonEqual as
|
|
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
|
|
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__ */
|
|
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:
|
|
23
|
-
const
|
|
21
|
+
emits: ["updateSettings", "export"],
|
|
22
|
+
setup(u, { emit: w }) {
|
|
23
|
+
const O = w, p = b(!1);
|
|
24
24
|
function m(t, e) {
|
|
25
|
-
|
|
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
|
|
34
|
-
|
|
35
|
-
|
|
33
|
+
const a = b({ ...u.settings.alignmentParams });
|
|
34
|
+
K(() => {
|
|
35
|
+
a.value = { ...u.settings.alignmentParams };
|
|
36
36
|
});
|
|
37
|
-
const
|
|
38
|
-
() => !
|
|
39
|
-
),
|
|
40
|
-
() => !
|
|
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(), $(
|
|
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(
|
|
76
|
+
o(n(y), {
|
|
77
77
|
icon: "settings",
|
|
78
|
-
onClick: e[3] || (e[3] =
|
|
78
|
+
onClick: e[3] || (e[3] = S((l) => p.value = !0, ["stop"]))
|
|
79
79
|
}, {
|
|
80
|
-
default: s(() => e[
|
|
81
|
-
|
|
80
|
+
default: s(() => e[18] || (e[18] = [
|
|
81
|
+
i(" Settings ")
|
|
82
82
|
])),
|
|
83
83
|
_: 1
|
|
84
84
|
}),
|
|
85
|
-
o(n(
|
|
86
|
-
|
|
87
|
-
|
|
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[
|
|
104
|
+
"onUpdate:modelValue": e[5] || (e[5] = (l) => v("seqLogo", l))
|
|
102
105
|
}, {
|
|
103
|
-
default: s(() => e[
|
|
104
|
-
|
|
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[
|
|
113
|
+
"onUpdate:modelValue": e[6] || (e[6] = (l) => v("consensus", l))
|
|
111
114
|
}, {
|
|
112
|
-
default: s(() => e[
|
|
113
|
-
|
|
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[
|
|
122
|
-
|
|
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[
|
|
131
|
-
|
|
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[
|
|
141
|
+
"onUpdate:modelValue": e[7] || (e[7] = (l) => v("legend", l))
|
|
139
142
|
}, {
|
|
140
|
-
default: s(() => e[
|
|
141
|
-
|
|
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[
|
|
153
|
+
"onUpdate:modelValue": e[17] || (e[17] = (l) => p.value = l)
|
|
151
154
|
}, {
|
|
152
|
-
title: s(() => e[
|
|
153
|
-
|
|
155
|
+
title: s(() => e[25] || (e[25] = [
|
|
156
|
+
i("Settings")
|
|
154
157
|
])),
|
|
155
158
|
default: s(() => [
|
|
156
159
|
o(n(V), {
|
|
157
|
-
modelValue:
|
|
158
|
-
"onUpdate:modelValue": e[
|
|
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[
|
|
164
|
+
onKeyup: e[9] || (e[9] = C((l) => m("alignmentParams", a.value), ["enter"]))
|
|
162
165
|
}, {
|
|
163
|
-
tooltip: s(() => e[
|
|
164
|
-
|
|
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:
|
|
170
|
-
"onUpdate:modelValue": e[
|
|
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[
|
|
176
|
+
onKeyup: e[11] || (e[11] = C((l) => m("alignmentParams", a.value), ["enter"]))
|
|
174
177
|
}, {
|
|
175
|
-
tooltip: s(() => e[
|
|
176
|
-
|
|
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:
|
|
182
|
-
"onUpdate:modelValue": e[
|
|
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[
|
|
188
|
+
onKeyup: e[13] || (e[13] = C((l) => m("alignmentParams", a.value), ["enter"]))
|
|
186
189
|
}, {
|
|
187
|
-
tooltip: s(() => e[
|
|
188
|
-
|
|
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
|
-
|
|
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[
|
|
200
|
+
onClick: e[14] || (e[14] = (l) => m("alignmentParams", a.value))
|
|
198
201
|
}, {
|
|
199
|
-
default: s(() => e[
|
|
200
|
-
|
|
202
|
+
default: s(() => e[29] || (e[29] = [
|
|
203
|
+
i(" Apply ")
|
|
201
204
|
])),
|
|
202
205
|
_: 1
|
|
203
206
|
}),
|
|
204
|
-
o(n(
|
|
205
|
-
onClick: e[
|
|
207
|
+
o(n(y), {
|
|
208
|
+
onClick: e[15] || (e[15] = (l) => a.value = t.settings.alignmentParams)
|
|
206
209
|
}, {
|
|
207
|
-
default: s(() => e[
|
|
208
|
-
|
|
210
|
+
default: s(() => e[30] || (e[30] = [
|
|
211
|
+
i(" Cancel ")
|
|
209
212
|
])),
|
|
210
213
|
_: 1
|
|
211
214
|
})
|
|
212
|
-
], 2)) :
|
|
213
|
-
|
|
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[
|
|
220
|
+
onClick: e[16] || (e[16] = (l) => m("alignmentParams", void 0))
|
|
218
221
|
}, {
|
|
219
|
-
default: s(() => e[
|
|
220
|
-
|
|
222
|
+
default: s(() => e[31] || (e[31] = [
|
|
223
|
+
i(" Reset to Default ")
|
|
221
224
|
])),
|
|
222
225
|
_: 1
|
|
223
|
-
}, 8, ["class"])) :
|
|
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\"
|
|
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 {
|
|
2
|
-
export declare
|
|
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
|
-
|
|
8
|
-
|
|
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,
|
|
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
|
-
|
|
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
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
},
|
|
79
|
-
{
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
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
|
-
|
|
164
|
-
m as colorizeSequencesByChemicalProperties
|
|
130
|
+
E as highlightByChemicalProperties
|
|
165
131
|
};
|
|
166
132
|
//# sourceMappingURL=chemical-properties.js.map
|