@platforma-sdk/ui-vue 1.37.4 → 1.37.7

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.
@@ -1,6 +1,6 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.37.4 build /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.37.7 build /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vite build
5
5
 
6
6
  vite v6.3.5 building for production...
@@ -10,7 +10,7 @@ rendering chunks...
10
10
 
11
11
  [vite:dts] Start generate declaration files...
12
12
  computing gzip size...
13
- [vite:dts] Declaration files built in 5037ms.
13
+ [vite:dts] Declaration files built in 5093ms.
14
14
 
15
15
  dist/_virtual/re.js  0.08 kB │ gzip: 0.10 kB │ map: 0.09 kB
16
16
  dist/_virtual/lodash2.js  0.09 kB │ gzip: 0.10 kB │ map: 0.09 kB
@@ -47,11 +47,11 @@ computing gzip size...
47
47
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
48
48
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-scale@4.0.2/node_modules/d3-scale/src/constant.js  0.12 kB │ gzip: 0.12 kB │ map: 0.40 kB
49
49
  dist/components/PlAgDataTable/PlAgOverlayLoading.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
50
- dist/components/PlTableFilters/PlTableFilterEntry.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
51
50
  dist/components/PlAgRowNumCheckbox/PlAgRowNumCheckbox.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
51
+ dist/components/PlTableFilters/PlTableFilterEntry.vue2.js  0.12 kB │ gzip: 0.12 kB │ map: 0.11 kB
52
52
  dist/plugins/Monetization/MonetizationSidebar.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
53
- dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
54
53
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
54
+ dist/components/PlAgTextAndButtonCell/PlAgTextAndButtonCell.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
55
55
  dist/lib/ui/uikit/dist/components/PlRadio/keys.js  0.13 kB │ gzip: 0.13 kB │ map: 0.46 kB
56
56
  dist/lib/ui/uikit/dist/node_modules/.pnpm/d3-selection@3.0.0/node_modules/d3-selection/src/selection/size.js  0.13 kB │ gzip: 0.13 kB │ map: 0.49 kB
57
57
  dist/components/ValueOrErrorsComponent.vue2.js  0.13 kB │ gzip: 0.12 kB │ map: 0.11 kB
@@ -792,7 +792,6 @@ computing gzip size...
792
792
  dist/lib/ui/uikit/dist/layout/PlBlockPage/PlBlockPage.vue.js  3.28 kB │ gzip: 1.34 kB │ map: 2.13 kB
793
793
  dist/lib/ui/uikit/dist/components/PlEditableTitle/pl-editable-title.module.scss.js  3.31 kB │ gzip: 1.18 kB │ map: 0.13 kB
794
794
  dist/components/PlAgColumnHeader/PlAgColumnHeader.vue.js  3.32 kB │ gzip: 1.34 kB │ map: 4.05 kB
795
- dist/sdk/model/dist/index.js  3.35 kB │ gzip: 1.38 kB │ map: 39.87 kB
796
795
  dist/components/PlElementList/PlElementListItem.vue3.js  3.36 kB │ gzip: 1.24 kB │ map: 0.12 kB
797
796
  dist/lib/ui/uikit/dist/generated/icons-24.js  3.37 kB │ gzip: 1.08 kB │ map: 5.77 kB
798
797
  dist/lib/ui/uikit/dist/components/PlBtnDanger/PlBtnDanger.vue.js  3.47 kB │ gzip: 1.34 kB │ map: 1.23 kB
@@ -804,6 +803,7 @@ computing gzip size...
804
803
  dist/lib/ui/uikit/dist/components/PlFileDialog/PlFileDialog.vue.js  3.51 kB │ gzip: 1.39 kB │ map: 4.61 kB
805
804
  dist/lib/ui/uikit/dist/components/PlBtnSecondary/PlBtnSecondary.vue.js  3.54 kB │ gzip: 1.34 kB │ map: 1.25 kB
806
805
  dist/lib/ui/uikit/dist/components/PlBtnPrimary/PlBtnPrimary.vue.js  3.56 kB │ gzip: 1.33 kB │ map: 1.24 kB
806
+ dist/sdk/model/dist/index.js  3.56 kB │ gzip: 1.45 kB │ map: 51.35 kB
807
807
  dist/components/PlAppErrorNotificationAlert/PlAppErrorNotificationAlert.vue.js  3.59 kB │ gzip: 1.43 kB │ map: 2.78 kB
808
808
  dist/components/PlElementList/PlElementListItem.vue2.js  3.64 kB │ gzip: 1.13 kB │ map: 5.88 kB
809
809
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/index.js  3.67 kB │ gzip: 1.01 kB │ map: 5.45 kB
@@ -829,8 +829,8 @@ computing gzip size...
829
829
  dist/lib/ui/uikit/dist/components/PlDialogModal/PlDialogModal.vue.js  5.82 kB │ gzip: 2.02 kB │ map: 5.25 kB
830
830
  dist/node_modules/.pnpm/@vueuse_core@13.3.0_vue@3.5.13_typescript@5.5.4_/node_modules/@vueuse/core/index.js  6.00 kB │ gzip: 2.30 kB │ map: 253.66 kB
831
831
  dist/components/PlAgGridColumnManager/PlAgGridColumnManager.vue.js  6.19 kB │ gzip: 2.18 kB │ map: 4.91 kB
832
+ dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js  6.38 kB │ gzip: 2.02 kB │ map: 9.82 kB
832
833
  dist/components/PlTableFilters/PlTableFilterEntry.vue.js  6.41 kB │ gzip: 1.44 kB │ map: 5.04 kB
833
- dist/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue2.js  6.49 kB │ gzip: 2.04 kB │ map: 10.17 kB
834
834
  dist/lib/ui/uikit/dist/components/PlLogView/PlLogView.vue.js  6.50 kB │ gzip: 2.32 kB │ map: 5.68 kB
835
835
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/semver.js  6.70 kB │ gzip: 1.86 kB │ map: 15.20 kB
836
836
  dist/lib/ui/uikit/dist/components/PlTextArea/PlTextArea.vue.js  6.71 kB │ gzip: 2.37 kB │ map: 5.76 kB
@@ -841,8 +841,8 @@ computing gzip size...
841
841
  dist/lib/ui/uikit/dist/components/PlBtnSplit/PlBtnSplit.vue.js  7.12 kB │ gzip: 2.57 kB │ map: 8.61 kB
842
842
  dist/components/PlAgDataTable/sources/table-source-v2.js  7.17 kB │ gzip: 2.62 kB │ map: 20.17 kB
843
843
  dist/node_modules/.pnpm/semver@7.7.2/node_modules/semver/classes/range.js  7.70 kB │ gzip: 2.49 kB │ map: 25.67 kB
844
+ dist/components/PlMultiSequenceAlignment/data.js  8.21 kB │ gzip: 2.59 kB │ map: 22.37 kB
844
845
  dist/components/PlElementList/PlElementList.vue2.js  8.22 kB │ gzip: 2.35 kB │ map: 14.85 kB
845
- dist/components/PlMultiSequenceAlignment/data.js  8.23 kB │ gzip: 2.60 kB │ map: 22.57 kB
846
846
  dist/lib/ui/uikit/dist/components/SliderRangeTriple.vue.js  8.52 kB │ gzip: 2.46 kB │ map: 15.56 kB
847
847
  dist/lib/ui/uikit/dist/components/PlTextField/PlTextField.vue.js  8.71 kB │ gzip: 2.89 kB │ map: 8.77 kB
848
848
  dist/lib/ui/uikit/dist/components/PlFileDialog/Remote.vue.js  8.72 kB │ gzip: 2.80 kB │ map: 14.28 kB
@@ -876,4 +876,4 @@ computing gzip size...
876
876
  dist/lib/ui/uikit/dist/index.js 497.32 kB │ gzip: 191.64 kB │ map: 0.18 kB
877
877
  dist/lib/ui/uikit/dist/components/PlSlideModal/PlSlideModal.vue.js 601.36 kB │ gzip: 204.40 kB │ map: 0.23 kB
878
878
  dist/lib/ui/uikit/dist/components/DataTable/TableComponent.vue.js 602.69 kB │ gzip: 204.99 kB │ map: 0.27 kB
879
- ✓ built in 9.42s
879
+ ✓ built in 9.01s
@@ -1,5 +1,5 @@
1
1
   WARN  Issue while reading "/home/runner/_work/platforma/platforma/.npmrc". Failed to replace env in config: ${NPMJS_TOKEN}
2
2
 
3
- > @platforma-sdk/ui-vue@1.37.4 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
3
+ > @platforma-sdk/ui-vue@1.37.7 type-check /home/runner/_work/platforma/platforma/sdk/ui-vue
4
4
  > vue-tsc --noEmit --project ./tsconfig.json
5
5
 
package/CHANGELOG.md CHANGED
@@ -1,5 +1,11 @@
1
1
  # @platforma-sdk/ui-vue
2
2
 
3
+ ## 1.37.7
4
+
5
+ ### Patch Changes
6
+
7
+ - 30d7dc8: MSA: find linker columns automatically
8
+
3
9
  ## 1.37.4
4
10
 
5
11
  ### Patch Changes
@@ -10,12 +10,6 @@ type __VLS_Props = {
10
10
  * By default, all sequence columns are selected.
11
11
  */
12
12
  readonly sequenceColumnPredicate: PColumnPredicate;
13
- /**
14
- * Sometimes sequence column and label column have disjoint axes.
15
- * In this case you have to define `linkerColumnPredicate` to select columns
16
- * connecting axes of sequence and label columns.
17
- */
18
- readonly linkerColumnPredicate?: PColumnPredicate;
19
13
  /**
20
14
  * Row selection model (from `PlAgDataTableV2` or `GraphMaker`).
21
15
  * If not provided or empty, all rows will be considered selected.
@@ -1 +1 @@
1
- {"version":3,"file":"PlMultiSequenceAlignment.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"names":[],"mappings":"AAmPA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,6BAA6B,EAC7B,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAwB9B,KAAK,WAAW,GAAG;IACjB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,qBAAqB,CAAC,EAAE,gBAAgB,CAAC;IAClD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CACvC,CAAC;AAuHF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC1C,GAAG,WAAW,CAAC;;;;;;AAqLhB,wBAOG"}
1
+ {"version":3,"file":"PlMultiSequenceAlignment.vue.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"names":[],"mappings":"AA4OA,OAAO,KAAK,EACV,gBAAgB,EAChB,YAAY,EACZ,6BAA6B,EAC7B,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAwB9B,KAAK,WAAW,GAAG;IACjB;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IAC1C;;;OAGG;IACH,QAAQ,CAAC,uBAAuB,EAAE,gBAAgB,CAAC;IACnD;;;;OAIG;IACH,QAAQ,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC;CACvC,CAAC;AAsHF,KAAK,iBAAiB,GAAG;IACzB,UAAU,CAAC,EAAE,6BAA6B,CAAC;CAC1C,GAAG,WAAW,CAAC;;;;;;AAqLhB,wBAOG"}
@@ -1,9 +1,9 @@
1
- import { defineComponent as A, mergeModels as B, useModel as x, onBeforeMount as E, ref as U, reactive as i, computed as c, watchEffect as z, createElementBlock as y, openBlock as s, Fragment as b, createVNode as h, createBlock as p, unref as n, withCtx as d, createTextVNode as S, toDisplayString as v, createCommentVNode as w, normalizeClass as D } from "vue";
1
+ import { defineComponent as A, mergeModels as B, useModel as x, onBeforeMount as E, ref as U, reactive as i, computed as c, watchEffect as z, createElementBlock as k, openBlock as s, Fragment as b, createVNode as h, createBlock as p, unref as n, withCtx as d, createTextVNode as S, toDisplayString as v, createCommentVNode as w, normalizeClass as D } from "vue";
2
2
  import "../../lib/ui/uikit/dist/index.js";
3
3
  import { chemicalPropertiesColorMap as j } from "./chemical-properties.js";
4
- import { useSequenceColumnsOptions as T, useLabelColumnsOptions as $, useMarkupColumnsOptions as G, useMultipleAlignmentData as H, sequenceLimit as V } from "./data.js";
4
+ import { useSequenceColumnsOptions as T, useLabelColumnsOptions as $, useMarkupColumnsOptions as G, useMultipleAlignmentData as H, sequenceLimit as O } from "./data.js";
5
5
  import J from "./Legend.vue.js";
6
- import { markupColors as O } from "./markup.js";
6
+ import { markupColors as P } from "./markup.js";
7
7
  import { runMigrations as K } from "./migrations.js";
8
8
  import Q from "./MultiSequenceAlignmentView.vue.js";
9
9
  import { defaultSettings as R } from "./settings.js";
@@ -15,7 +15,6 @@ const me = /* @__PURE__ */ A({
15
15
  props: /* @__PURE__ */ B({
16
16
  pFrame: {},
17
17
  sequenceColumnPredicate: { type: Function },
18
- linkerColumnPredicate: { type: Function },
19
18
  selection: {}
20
19
  }, {
21
20
  modelValue: { default: {} },
@@ -51,9 +50,8 @@ const me = /* @__PURE__ */ A({
51
50
  sequenceColumnIds: m.value,
52
51
  labelColumnIds: q.value,
53
52
  markupColumnId: o.value.colorScheme.type === "markup" ? o.value.colorScheme.columnId : void 0,
54
- linkerColumnPredicate: r.linkerColumnPredicate,
55
53
  selection: r.selection
56
- }))), k = new Intl.NumberFormat("en").format, L = c(
54
+ }))), y = new Intl.NumberFormat("en").format, L = c(
57
55
  () => [
58
56
  {
59
57
  label: "Chemical Properties",
@@ -92,7 +90,7 @@ const me = /* @__PURE__ */ A({
92
90
  ((l = t.data.markup) == null ? void 0 : l.labels) ?? {}
93
91
  ).map(([e, a], N) => [
94
92
  e,
95
- { label: a, color: O[N % O.length] }
93
+ { label: a, color: P[N % P.length] }
96
94
  ])
97
95
  )
98
96
  };
@@ -104,10 +102,10 @@ const me = /* @__PURE__ */ A({
104
102
  const l = o.value.colorScheme.type === "markup" ? o.value.colorScheme.columnId : void 0;
105
103
  l && g.data.every(({ value: e }) => e !== l) && (o.value.colorScheme = { type: "no-color" });
106
104
  });
107
- const P = c(
105
+ const V = c(
108
106
  () => f.error ?? C.error ?? g.error ?? t.error
109
107
  );
110
- return (l, e) => (s(), y(b, null, [
108
+ return (l, e) => (s(), k(b, null, [
111
109
  h(W, {
112
110
  "sequence-columns": m.value,
113
111
  "onUpdate:sequenceColumns": e[0] || (e[0] = (a) => m.value = a),
@@ -119,12 +117,12 @@ const me = /* @__PURE__ */ A({
119
117
  "label-column-options": C.data.options,
120
118
  "color-scheme-options": L.value
121
119
  }, null, 8, ["sequence-columns", "label-columns", "settings", "sequence-column-options", "label-column-options", "color-scheme-options"]),
122
- P.value ? (s(), p(n(I), {
120
+ V.value ? (s(), p(n(I), {
123
121
  key: 0,
124
122
  type: "error"
125
123
  }, {
126
124
  default: d(() => [
127
- S(v(P.value), 1)
125
+ S(v(V.value), 1)
128
126
  ]),
129
127
  _: 1
130
128
  })) : !t.loading && t.data.sequences.length < 2 ? (s(), p(n(I), {
@@ -136,7 +134,7 @@ const me = /* @__PURE__ */ A({
136
134
  S(" Please select at least one sequence column and two or more rows to run alignment ")
137
135
  ])),
138
136
  _: 1
139
- })) : (s(), y(b, { key: 2 }, [
137
+ })) : (s(), k(b, { key: 2 }, [
140
138
  t.data.exceedsLimit ? (s(), p(n(I), {
141
139
  key: 0,
142
140
  type: "warn",
@@ -144,7 +142,7 @@ const me = /* @__PURE__ */ A({
144
142
  label: "Visualization is limited"
145
143
  }, {
146
144
  default: d(() => [
147
- S(" MSA visualization supports " + v(n(k)(2)) + " to " + v(n(k)(n(V))) + " sequences. Only the first " + v(n(k)(n(V))) + " will be displayed. ", 1)
145
+ S(" MSA visualization supports " + v(n(y)(2)) + " to " + v(n(y)(n(O))) + " sequences. Only the first " + v(n(y)(n(O))) + " will be displayed. ", 1)
148
146
  ]),
149
147
  _: 1
150
148
  })) : w("", !0),
@@ -154,7 +152,7 @@ const me = /* @__PURE__ */ A({
154
152
  loading: t.loading
155
153
  }, {
156
154
  default: d(() => [
157
- t.data.sequences.length ? (s(), y(b, { key: 0 }, [
155
+ t.data.sequences.length ? (s(), k(b, { key: 0 }, [
158
156
  h(Q, {
159
157
  "sequence-rows": t.data.sequences,
160
158
  "label-rows": t.data.labels,
@@ -1 +1 @@
1
- {"version":3,"file":"PlMultiSequenceAlignment.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ListOptionNormalized } from '@milaboratories/uikit';\nimport { PlAlert, PlSplash } from '@milaboratories/uikit';\nimport type {\n PColumnPredicate,\n PFrameHandle,\n PlMultiSequenceAlignmentModel,\n PlSelectionModel,\n} from '@platforma-sdk/model';\nimport { computed, onBeforeMount, reactive, ref, watchEffect } from 'vue';\nimport { chemicalPropertiesColorMap } from './chemical-properties';\nimport {\n sequenceLimit,\n useLabelColumnsOptions,\n useMarkupColumnsOptions,\n useMultipleAlignmentData,\n useSequenceColumnsOptions,\n} from './data';\nimport Legend from './Legend.vue';\nimport { markupColors } from './markup';\nimport { runMigrations } from './migrations';\nimport MultiSequenceAlignmentView from './MultiSequenceAlignmentView.vue';\nimport { defaultSettings } from './settings';\nimport Toolbar from './Toolbar.vue';\nimport type { ColorScheme, ColorSchemeOption } from './types';\n\nconst model = defineModel<PlMultiSequenceAlignmentModel>({ default: {} });\n\nonBeforeMount(() => {\n runMigrations(model);\n});\n\nconst props = defineProps<{\n /**\n * Handle to PFrame created using `createPFrameForGraphs`.\n * Should contain all desired sequence and label columns.\n */\n readonly pFrame: PFrameHandle | undefined;\n /**\n * Return true if column should be shown in sequence columns dropdown.\n * By default, all sequence columns are selected.\n */\n readonly sequenceColumnPredicate: PColumnPredicate;\n /**\n * Sometimes sequence column and label column have disjoint axes.\n * In this case you have to define `linkerColumnPredicate` to select columns\n * connecting axes of sequence and label columns.\n */\n readonly linkerColumnPredicate?: PColumnPredicate;\n /**\n * Row selection model (from `PlAgDataTableV2` or `GraphMaker`).\n * If not provided or empty, all rows will be considered selected.\n * Warning: should be forwarded as a field of `reactive` object\n */\n readonly selection?: PlSelectionModel;\n}>();\n\nconst settings = ref(defaultSettings);\n\nconst sequenceColumns = reactive(useSequenceColumnsOptions(() => ({\n pFrame: props.pFrame,\n sequenceColumnPredicate: props.sequenceColumnPredicate,\n})));\n\nconst selectedSequenceColumnIds = computed({\n get: () => model.value.sequenceColumnIds ?? sequenceColumns.data.defaults,\n set: (value) => {\n model.value.sequenceColumnIds = value;\n },\n});\n\nconst labelColumns = reactive(useLabelColumnsOptions(() => ({\n pFrame: props.pFrame,\n sequenceColumnIds: selectedSequenceColumnIds.value,\n})));\n\nconst selectedLabelColumnIds = computed({\n get: () => model.value.labelColumnIds ?? labelColumns.data.defaults,\n set: (value) => {\n model.value.labelColumnIds = value;\n },\n});\n\nconst markupColumns = reactive(useMarkupColumnsOptions(() => ({\n pFrame: props.pFrame,\n sequenceColumnIds: selectedSequenceColumnIds.value,\n})));\n\nconst multipleAlignmentData = reactive(useMultipleAlignmentData(() => ({\n pframe: props.pFrame,\n sequenceColumnIds: selectedSequenceColumnIds.value,\n labelColumnIds: selectedLabelColumnIds.value,\n markupColumnId: settings.value.colorScheme.type === 'markup'\n ? settings.value.colorScheme.columnId\n : undefined,\n linkerColumnPredicate: props.linkerColumnPredicate,\n selection: props.selection,\n})));\n\nconst formatNumber = new Intl.NumberFormat('en').format;\n\nconst colorSchemeOptions = computed<ListOptionNormalized<ColorSchemeOption>[]>(\n () => [\n {\n label: 'Chemical Properties',\n value: { type: 'chemical-properties' },\n },\n {\n label: 'No Color',\n value: { type: 'no-color' },\n },\n ...markupColumns.data.map(({ label, value }) => ({\n label,\n value: {\n type: 'markup' as const,\n columnId: value,\n },\n })),\n ],\n);\n\nconst colorScheme = computed<ColorScheme>(() => {\n switch (settings.value.colorScheme.type) {\n case 'no-color':\n return {\n type: 'no-color',\n colors: {},\n };\n case 'chemical-properties':\n return {\n type: 'chemical-properties',\n colors: chemicalPropertiesColorMap,\n };\n case 'markup':\n return {\n type: 'markup',\n colors: Object.fromEntries(\n Object.entries(\n multipleAlignmentData.data.markup?.labels ?? {},\n ).map(([id, label], index) => [\n id,\n { label, color: markupColors[index % markupColors.length] },\n ]),\n ),\n };\n default:\n throw new Error(`Unknown color scheme ${settings.value.colorScheme}`);\n }\n});\n\nwatchEffect(() => {\n const markupColumnId = settings.value.colorScheme.type === 'markup'\n ? settings.value.colorScheme.columnId\n : undefined;\n if (\n markupColumnId\n && markupColumns.data.every(({ value }) => value !== markupColumnId)\n ) {\n settings.value.colorScheme = { type: 'no-color' };\n }\n});\n\nconst error = computed(() =>\n sequenceColumns.error\n ?? labelColumns.error\n ?? markupColumns.error\n ?? multipleAlignmentData.error,\n);\n</script>\n\n<template>\n <Toolbar\n v-model:sequence-columns=\"selectedSequenceColumnIds\"\n v-model:label-columns=\"selectedLabelColumnIds\"\n v-model:settings=\"settings\"\n :sequence-column-options=\"sequenceColumns.data.options\"\n :label-column-options=\"labelColumns.data.options\"\n :color-scheme-options=\"colorSchemeOptions\"\n />\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error }}\n </PlAlert>\n <PlAlert\n v-else-if=\"\n !multipleAlignmentData.loading\n && multipleAlignmentData.data.sequences.length < 2\n \"\n type=\"warn\"\n icon\n >\n Please select at least one sequence column and two or more rows to run\n alignment\n </PlAlert>\n <template v-else>\n <PlAlert\n v-if=\"multipleAlignmentData.data.exceedsLimit\"\n type=\"warn\"\n icon\n label=\"Visualization is limited\"\n >\n MSA visualization supports {{ formatNumber(2) }} to\n {{ formatNumber(sequenceLimit) }} sequences. Only the first\n {{ formatNumber(sequenceLimit) }} will be displayed.\n </PlAlert>\n <PlSplash\n type=\"transparent\"\n :class=\"$style.splash\"\n :loading=\"multipleAlignmentData.loading\"\n >\n <template v-if=\"multipleAlignmentData.data.sequences.length\">\n <MultiSequenceAlignmentView\n :sequence-rows=\"multipleAlignmentData.data.sequences\"\n :label-rows=\"multipleAlignmentData.data.labels\"\n :markup=\"multipleAlignmentData.data.markup\"\n :colorScheme\n :consensus=\"settings.consensus\"\n :seq-logo=\"settings.seqLogo\"\n />\n <Legend\n v-if=\"\n settings.legend\n && settings.colorScheme.type !== 'no-color'\n \"\n :colors=\"colorScheme.colors\"\n />\n </template>\n </PlSplash>\n </template>\n</template>\n\n<style module>\n.splash {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 12px;\n overflow: hidden;\n}\n</style>\n"],"names":["model","_useModel","__props","onBeforeMount","runMigrations","props","settings","ref","defaultSettings","sequenceColumns","reactive","useSequenceColumnsOptions","selectedSequenceColumnIds","computed","value","labelColumns","useLabelColumnsOptions","selectedLabelColumnIds","markupColumns","useMarkupColumnsOptions","multipleAlignmentData","useMultipleAlignmentData","formatNumber","colorSchemeOptions","label","colorScheme","chemicalPropertiesColorMap","_a","id","index","markupColors","watchEffect","markupColumnId","error"],"mappings":"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"}
1
+ {"version":3,"file":"PlMultiSequenceAlignment.vue2.js","sources":["../../../src/components/PlMultiSequenceAlignment/PlMultiSequenceAlignment.vue"],"sourcesContent":["<script lang=\"ts\" setup>\nimport type { ListOptionNormalized } from '@milaboratories/uikit';\nimport { PlAlert, PlSplash } from '@milaboratories/uikit';\nimport type {\n PColumnPredicate,\n PFrameHandle,\n PlMultiSequenceAlignmentModel,\n PlSelectionModel,\n} from '@platforma-sdk/model';\nimport { computed, onBeforeMount, reactive, ref, watchEffect } from 'vue';\nimport { chemicalPropertiesColorMap } from './chemical-properties';\nimport {\n sequenceLimit,\n useLabelColumnsOptions,\n useMarkupColumnsOptions,\n useMultipleAlignmentData,\n useSequenceColumnsOptions,\n} from './data';\nimport Legend from './Legend.vue';\nimport { markupColors } from './markup';\nimport { runMigrations } from './migrations';\nimport MultiSequenceAlignmentView from './MultiSequenceAlignmentView.vue';\nimport { defaultSettings } from './settings';\nimport Toolbar from './Toolbar.vue';\nimport type { ColorScheme, ColorSchemeOption } from './types';\n\nconst model = defineModel<PlMultiSequenceAlignmentModel>({ default: {} });\n\nonBeforeMount(() => {\n runMigrations(model);\n});\n\nconst props = defineProps<{\n /**\n * Handle to PFrame created using `createPFrameForGraphs`.\n * Should contain all desired sequence and label columns.\n */\n readonly pFrame: PFrameHandle | undefined;\n /**\n * Return true if column should be shown in sequence columns dropdown.\n * By default, all sequence columns are selected.\n */\n readonly sequenceColumnPredicate: PColumnPredicate;\n /**\n * Row selection model (from `PlAgDataTableV2` or `GraphMaker`).\n * If not provided or empty, all rows will be considered selected.\n * Warning: should be forwarded as a field of `reactive` object\n */\n readonly selection?: PlSelectionModel;\n}>();\n\nconst settings = ref(defaultSettings);\n\nconst sequenceColumns = reactive(useSequenceColumnsOptions(() => ({\n pFrame: props.pFrame,\n sequenceColumnPredicate: props.sequenceColumnPredicate,\n})));\n\nconst selectedSequenceColumnIds = computed({\n get: () => model.value.sequenceColumnIds ?? sequenceColumns.data.defaults,\n set: (value) => {\n model.value.sequenceColumnIds = value;\n },\n});\n\nconst labelColumns = reactive(useLabelColumnsOptions(() => ({\n pFrame: props.pFrame,\n sequenceColumnIds: selectedSequenceColumnIds.value,\n})));\n\nconst selectedLabelColumnIds = computed({\n get: () => model.value.labelColumnIds ?? labelColumns.data.defaults,\n set: (value) => {\n model.value.labelColumnIds = value;\n },\n});\n\nconst markupColumns = reactive(useMarkupColumnsOptions(() => ({\n pFrame: props.pFrame,\n sequenceColumnIds: selectedSequenceColumnIds.value,\n})));\n\nconst multipleAlignmentData = reactive(useMultipleAlignmentData(() => ({\n pframe: props.pFrame,\n sequenceColumnIds: selectedSequenceColumnIds.value,\n labelColumnIds: selectedLabelColumnIds.value,\n markupColumnId: settings.value.colorScheme.type === 'markup'\n ? settings.value.colorScheme.columnId\n : undefined,\n selection: props.selection,\n})));\n\nconst formatNumber = new Intl.NumberFormat('en').format;\n\nconst colorSchemeOptions = computed<ListOptionNormalized<ColorSchemeOption>[]>(\n () => [\n {\n label: 'Chemical Properties',\n value: { type: 'chemical-properties' },\n },\n {\n label: 'No Color',\n value: { type: 'no-color' },\n },\n ...markupColumns.data.map(({ label, value }) => ({\n label,\n value: {\n type: 'markup' as const,\n columnId: value,\n },\n })),\n ],\n);\n\nconst colorScheme = computed<ColorScheme>(() => {\n switch (settings.value.colorScheme.type) {\n case 'no-color':\n return {\n type: 'no-color',\n colors: {},\n };\n case 'chemical-properties':\n return {\n type: 'chemical-properties',\n colors: chemicalPropertiesColorMap,\n };\n case 'markup':\n return {\n type: 'markup',\n colors: Object.fromEntries(\n Object.entries(\n multipleAlignmentData.data.markup?.labels ?? {},\n ).map(([id, label], index) => [\n id,\n { label, color: markupColors[index % markupColors.length] },\n ]),\n ),\n };\n default:\n throw new Error(`Unknown color scheme ${settings.value.colorScheme}`);\n }\n});\n\nwatchEffect(() => {\n const markupColumnId = settings.value.colorScheme.type === 'markup'\n ? settings.value.colorScheme.columnId\n : undefined;\n if (\n markupColumnId\n && markupColumns.data.every(({ value }) => value !== markupColumnId)\n ) {\n settings.value.colorScheme = { type: 'no-color' };\n }\n});\n\nconst error = computed(() =>\n sequenceColumns.error\n ?? labelColumns.error\n ?? markupColumns.error\n ?? multipleAlignmentData.error,\n);\n</script>\n\n<template>\n <Toolbar\n v-model:sequence-columns=\"selectedSequenceColumnIds\"\n v-model:label-columns=\"selectedLabelColumnIds\"\n v-model:settings=\"settings\"\n :sequence-column-options=\"sequenceColumns.data.options\"\n :label-column-options=\"labelColumns.data.options\"\n :color-scheme-options=\"colorSchemeOptions\"\n />\n <PlAlert v-if=\"error\" type=\"error\">\n {{ error }}\n </PlAlert>\n <PlAlert\n v-else-if=\"\n !multipleAlignmentData.loading\n && multipleAlignmentData.data.sequences.length < 2\n \"\n type=\"warn\"\n icon\n >\n Please select at least one sequence column and two or more rows to run\n alignment\n </PlAlert>\n <template v-else>\n <PlAlert\n v-if=\"multipleAlignmentData.data.exceedsLimit\"\n type=\"warn\"\n icon\n label=\"Visualization is limited\"\n >\n MSA visualization supports {{ formatNumber(2) }} to\n {{ formatNumber(sequenceLimit) }} sequences. Only the first\n {{ formatNumber(sequenceLimit) }} will be displayed.\n </PlAlert>\n <PlSplash\n type=\"transparent\"\n :class=\"$style.splash\"\n :loading=\"multipleAlignmentData.loading\"\n >\n <template v-if=\"multipleAlignmentData.data.sequences.length\">\n <MultiSequenceAlignmentView\n :sequence-rows=\"multipleAlignmentData.data.sequences\"\n :label-rows=\"multipleAlignmentData.data.labels\"\n :markup=\"multipleAlignmentData.data.markup\"\n :colorScheme\n :consensus=\"settings.consensus\"\n :seq-logo=\"settings.seqLogo\"\n />\n <Legend\n v-if=\"\n settings.legend\n && settings.colorScheme.type !== 'no-color'\n \"\n :colors=\"colorScheme.colors\"\n />\n </template>\n </PlSplash>\n </template>\n</template>\n\n<style module>\n.splash {\n flex: 1;\n display: flex;\n flex-direction: column;\n gap: 12px;\n overflow: hidden;\n}\n</style>\n"],"names":["model","_useModel","__props","onBeforeMount","runMigrations","props","settings","ref","defaultSettings","sequenceColumns","reactive","useSequenceColumnsOptions","selectedSequenceColumnIds","computed","value","labelColumns","useLabelColumnsOptions","selectedLabelColumnIds","markupColumns","useMarkupColumnsOptions","multipleAlignmentData","useMultipleAlignmentData","formatNumber","colorSchemeOptions","label","colorScheme","chemicalPropertiesColorMap","_a","id","index","markupColors","watchEffect","markupColumnId","error"],"mappings":"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"}
@@ -29,7 +29,6 @@ export declare function useMultipleAlignmentData(params: MaybeRefOrGetter<{
29
29
  sequenceColumnIds: PObjectId[];
30
30
  labelColumnIds: PTableColumnId[];
31
31
  markupColumnId: PObjectId | undefined;
32
- linkerColumnPredicate: PColumnPredicate | undefined;
33
32
  selection: PlSelectionModel | undefined;
34
33
  }>): {
35
34
  data: import('vue').ComputedRef<MultipleAlignmentData>;
@@ -1 +1 @@
1
- {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAaL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,cAAc,EAGpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,KAAK,CAAC;AACtE,OAAO,EAAE,KAAK,MAAM,EAAsC,MAAM,UAAU,CAAC;AAK3E,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,uBAAuB,EAAE,gBAAgB,CAAC;CAC3C,CAAC;;;EAgBH;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,SAAS,EAAE,CAAC;CAChC,CAAC;;;EAiBH;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,SAAS,EAAE,CAAC;CAChC,CAAC;;;EAiBH;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,SAAS,EAAE,CAAC;IAC/B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,qBAAqB,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACpD,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC,CAAC;;;;EAmBH;AAyTD,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;CACf,CAAC"}
1
+ {"version":3,"file":"data.d.ts","sourceRoot":"","sources":["../../../src/components/PlMultiSequenceAlignment/data.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,uBAAuB,CAAC;AAClE,OAAO,EAcL,KAAK,gBAAgB,EACrB,KAAK,YAAY,EACjB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,cAAc,EAGpB,MAAM,sBAAsB,CAAC;AAE9B,OAAO,EAAE,KAAK,gBAAgB,EAA4B,MAAM,KAAK,CAAC;AACtE,OAAO,EAAE,KAAK,MAAM,EAAsC,MAAM,UAAU,CAAC;AAK3E,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC,wBAAgB,yBAAyB,CACvC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,uBAAuB,EAAE,gBAAgB,CAAC;CAC3C,CAAC;;;EAgBH;AAED,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,SAAS,EAAE,CAAC;CAChC,CAAC;;;EAiBH;AAED,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,SAAS,EAAE,CAAC;CAChC,CAAC;;;EAiBH;AAED,wBAAgB,wBAAwB,CACtC,MAAM,EAAE,gBAAgB,CAAC;IACvB,MAAM,EAAE,YAAY,GAAG,SAAS,CAAC;IACjC,iBAAiB,EAAE,SAAS,EAAE,CAAC;IAC/B,cAAc,EAAE,cAAc,EAAE,CAAC;IACjC,cAAc,EAAE,SAAS,GAAG,SAAS,CAAC;IACtC,SAAS,EAAE,gBAAgB,GAAG,SAAS,CAAC;CACzC,CAAC;;;;EAmBH;AAqTD,KAAK,qBAAqB,GAAG;IAC3B,SAAS,EAAE,MAAM,EAAE,EAAE,CAAC;IACtB,MAAM,EAAE,MAAM,EAAE,EAAE,CAAC;IACnB,MAAM,CAAC,EAAE;QACP,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAC/B,IAAI,EAAE,MAAM,EAAE,CAAC;KAChB,CAAC;IACF,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,KAAK,mBAAmB,CAAC,CAAC,IAAI;IAC5B,OAAO,EAAE,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC;IACnC,QAAQ,EAAE,CAAC,EAAE,CAAC;CACf,CAAC"}