@platforma-open/milaboratories.sequence-properties.ui 1.1.1 → 1.1.3

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/dist/index.html CHANGED
@@ -4,7 +4,7 @@
4
4
  <meta charset="UTF-8" />
5
5
  <meta http-equiv="Content-Security-Policy" content="script-src 'self' blob:" />
6
6
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
7
- <script type="module" crossorigin src="./assets/index-D8ZGYda9.js"></script>
7
+ <script type="module" crossorigin src="./assets/index-B8olTeVZ.js"></script>
8
8
  <link rel="modulepreload" crossorigin href="./assets/chunk-DECur_0Z.js">
9
9
  <link rel="stylesheet" crossorigin href="./assets/index-WqWl6Tyy.css">
10
10
  </head>
package/package.json CHANGED
@@ -1,10 +1,11 @@
1
1
  {
2
2
  "name": "@platforma-open/milaboratories.sequence-properties.ui",
3
- "version": "1.1.1",
3
+ "version": "1.1.3",
4
4
  "type": "module",
5
5
  "dependencies": {
6
+ "@platforma-sdk/model": "1.69.0",
6
7
  "@platforma-sdk/ui-vue": "1.69.0",
7
- "@platforma-open/milaboratories.sequence-properties.model": "1.1.1"
8
+ "@platforma-open/milaboratories.sequence-properties.model": "1.1.2"
8
9
  },
9
10
  "devDependencies": {
10
11
  "@milaboratories/ts-builder": "1.3.2",
@@ -1,4 +1,5 @@
1
1
  <script setup lang="ts">
2
+ import { createPlDataTableStateV2, type PlRef } from "@platforma-sdk/model";
2
3
  import {
3
4
  PlAgDataTableV2,
4
5
  PlAlert,
@@ -10,12 +11,29 @@ import {
10
11
  PlSlideModal,
11
12
  usePlDataTableSettingsV2,
12
13
  } from "@platforma-sdk/ui-vue";
13
- import { ref } from "vue";
14
+ import { ref, watch } from "vue";
14
15
  import { useApp } from "../app";
15
16
 
16
17
  const app = useApp();
17
18
 
18
19
  const logOpen = ref(false);
20
+ const settingsOpen = ref(app.model.data.inputAnchor === undefined);
21
+
22
+ watch(
23
+ () => app.model.outputs.isRunning,
24
+ (isRunning) => {
25
+ if (isRunning) settingsOpen.value = false;
26
+ },
27
+ );
28
+
29
+ // Setter, not a watch on `inputAnchor`. The SDK replaces the `data`
30
+ // object on server patches (other-client edits, app reopen); a watcher
31
+ // would fire on that replacement and reset tableState the user did
32
+ // not touch. The setter runs only on the user's gesture.
33
+ function setInput(ref?: PlRef) {
34
+ app.model.data.inputAnchor = ref;
35
+ app.model.data.tableState = createPlDataTableStateV2();
36
+ }
19
37
 
20
38
  const tableSettings = usePlDataTableSettingsV2({
21
39
  model: () => app.model.outputs.propertiesTable,
@@ -32,18 +50,14 @@ const tableSettings = usePlDataTableSettingsV2({
32
50
  <PlMaskIcon24 name="file-logs" />
33
51
  </template>
34
52
  </PlBtnGhost>
53
+ <PlBtnGhost @click.stop="() => (settingsOpen = true)">
54
+ Settings
55
+ <template #append>
56
+ <PlMaskIcon24 name="settings" />
57
+ </template>
58
+ </PlBtnGhost>
35
59
  </template>
36
60
 
37
- <PlDropdownRef
38
- v-model="app.model.data.inputAnchor"
39
- :options="app.model.outputs.inputOptions"
40
- label="Input dataset"
41
- >
42
- <template #tooltip>
43
- Peptide extraction or MiXCR clonotyping output. Modality is auto-detected.
44
- </template>
45
- </PlDropdownRef>
46
-
47
61
  <PlAlert
48
62
  v-for="(message, idx) in app.model.outputs.info?.messages ?? []"
49
63
  :key="idx"
@@ -60,6 +74,22 @@ const tableSettings = usePlDataTableSettingsV2({
60
74
  />
61
75
  </PlBlockPage>
62
76
 
77
+ <PlSlideModal v-model="settingsOpen" close-on-outside-click shadow>
78
+ <template #title>Settings</template>
79
+ <PlDropdownRef
80
+ :model-value="app.model.data.inputAnchor"
81
+ :options="app.model.outputs.inputOptions"
82
+ label="Input dataset"
83
+ clearable
84
+ required
85
+ @update:model-value="setInput"
86
+ >
87
+ <template #tooltip>
88
+ Peptide extraction or MiXCR clonotyping output. Modality is auto-detected.
89
+ </template>
90
+ </PlDropdownRef>
91
+ </PlSlideModal>
92
+
63
93
  <PlSlideModal v-model="logOpen" width="80%">
64
94
  <template #title>Processing Log</template>
65
95
  <PlLogView :log-handle="app.model.outputs.processingLog" />