@abi-software/mapintegratedvuer 1.17.3-simulation.2 → 1.17.4

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 (47) hide show
  1. package/dist/{ConnectivityGraph-9pXPgFJR.js → ConnectivityGraph-CNtSLKGZ.js} +19 -21
  2. package/dist/{ContentMixin-DIqgKIz6.js → ContentMixin-BImmmP1E.js} +521 -295
  3. package/dist/Flatmap-CakK_75H.js +202 -0
  4. package/dist/{Iframe-CCEA3d9c.js → Iframe-C7E9XJu7.js} +2 -2
  5. package/dist/{MultiFlatmap-Cuke1uNp.js → MultiFlatmap-DnDXuvTw.js} +3 -3
  6. package/dist/{Plot-B4oTBVAT.js → Plot-CxCj3uTj.js} +2 -2
  7. package/dist/Scaffold-D1NyLNzW.js +304 -0
  8. package/dist/Simulation-Br3Grrd6.js +28 -0
  9. package/dist/{index-_b4VBGHk.js → index-qyfmiqHe.js} +22862 -27602
  10. package/dist/mapintegratedvuer.js +1 -1
  11. package/dist/mapintegratedvuer.umd.cjs +232 -4291
  12. package/dist/style-DezYtA61.js +57 -0
  13. package/dist/style.css +1 -1
  14. package/package.json +5 -10
  15. package/src/App.vue +258 -285
  16. package/src/assets/styles.scss +1 -1
  17. package/src/components/ContextCard.vue +1 -0
  18. package/src/components/EventBus.js +3 -0
  19. package/src/components/MapContent.vue +4 -9
  20. package/src/components/SplitDialog.vue +6 -2
  21. package/src/components/SplitFlow.vue +445 -504
  22. package/src/components/scripts/utilities.js +1 -1
  23. package/src/components/viewers/ConnectivityGraph.vue +1 -9
  24. package/src/components/viewers/Flatmap.vue +83 -166
  25. package/src/components/viewers/Scaffold.vue +130 -78
  26. package/src/components/viewers/Simulation.vue +11 -118
  27. package/src/components.d.ts +0 -3
  28. package/src/main.js +3 -9
  29. package/src/mixins/ContentMixin.js +384 -496
  30. package/src/mixins/DynamicMarkerMixin.js +17 -50
  31. package/src/stores/connectivities.js +10 -1
  32. package/src/stores/entries.js +1 -1
  33. package/src/stores/settings.js +0 -4
  34. package/src/stores/splitFlow.js +352 -425
  35. package/dist/Flatmap-D7GVPV7o.js +0 -103422
  36. package/dist/Scaffold-Czz8X5kL.js +0 -310
  37. package/dist/Simulation-BKmz8zwm.js +0 -107
  38. package/dist/style-CM86xE3J.js +0 -119
  39. package/src/components/DummyRouteComponent.vue +0 -1
  40. package/src/components/EventBus.ts +0 -13
  41. package/src/components/FloatingWindow.vue +0 -142
  42. package/src/components/PlotComponent.vue +0 -56
  43. package/src/services/mapping.js +0 -69
  44. package/src/services/testData.js +0 -71
  45. package/src/stores/mapping.js +0 -29
  46. package/src/stores/simulationPlotStore.js +0 -124
  47. package/src/types/simulation.js +0 -18
@@ -6,7 +6,7 @@ const initialDefaultState = () => {
6
6
  {
7
7
  resource: defaultSpecies,
8
8
  type: "MultiFlatmap",
9
- // mode: "main",
9
+ mode: "main",
10
10
  id: 1,
11
11
  state: undefined,
12
12
  label: "",
@@ -86,18 +86,10 @@ export default {
86
86
  onTapNode: function (data) {
87
87
  const name = data.map(t => t.label).join(', ');
88
88
  this.onConnectivityHovered(name);
89
-
90
- // Hover outside of node area
91
- if (!name) {
92
- EventBus.emit('show-connectivity', {
93
- featureIds: [this.entry.resource]
94
- });
95
- }
96
-
97
89
  },
98
90
  onConnectivityHovered: function (label) {
99
91
  const payload = {
100
- connectivityInfo: this.graphEntry,
92
+ connectivityInfo: this.entry.connectivityInfo,
101
93
  label: label,
102
94
  data: label ? this.getConnectivityDatasets(label) : [],
103
95
  };
@@ -1,6 +1,5 @@
1
1
  <template>
2
- <div class="viewer-container" ref="container">
3
- <resize-sensor @resize="calculateOffset()"> </resize-sensor>
2
+ <div class="viewer-container">
4
3
  <FlatmapVuer
5
4
  :state="entry.state"
6
5
  :entry="entry.resource"
@@ -36,7 +35,6 @@
36
35
  :flatmapAPI="flatmapAPI"
37
36
  :render="visible"
38
37
  :sparcAPI="apiLocation"
39
- :testDataLocation="testDataLocation"
40
38
  :showLocalSettings="showLocalSettings"
41
39
  :showOpenMapButton="showOpenMapButton"
42
40
  @open-map="openMap"
@@ -44,7 +42,6 @@
44
42
  @mapmanager-loaded="onMapmanagerLoaded"
45
43
  :showPathwayFilter="false"
46
44
  @trackEvent="trackEvent"
47
- @open-simulation="onSimulationOpen"
48
45
  />
49
46
 
50
47
  <HelpModeDialog
@@ -55,120 +52,83 @@
55
52
  @show-next="onHelpModeShowNext"
56
53
  @finish-help-mode="onFinishHelpMode"
57
54
  />
58
-
59
- <FloatingWindow
60
- v-for="win in plotWindows"
61
- :key="win.id"
62
- :windowData="win"
63
- :offsetX="left"
64
- :offsetY="top"
65
- @closeWindow="handleClosePlotWindow"
66
- @mouseDown="bringToFront"
67
- >
68
- <PlotComponent :data="win.data" />
69
- </FloatingWindow>
70
55
  </div>
71
56
  </template>
72
57
 
73
58
  <script>
74
- import { ref, markRaw } from 'vue'
75
- import { useMouseInElement } from '@vueuse/core'
76
-
77
59
  /* eslint-disable no-alert, no-console */
78
- import Tagging from '../../services/tagging.js'
79
- import EventBus from '../EventBus'
80
- import ContentMixin from '../../mixins/ContentMixin'
81
- import DynamicMarkerMixin from '../../mixins/DynamicMarkerMixin'
82
- import ResizeSensor from '../ResizeSensor.vue'
83
- import { FlatmapVuer } from '@abi-software/flatmapvuer'
84
- import '@abi-software/flatmapvuer/dist/style.css'
60
+ import Tagging from '../../services/tagging.js';
61
+ import EventBus from "../EventBus";
62
+ import ContentMixin from "../../mixins/ContentMixin";
63
+ import DynamicMarkerMixin from "../../mixins/DynamicMarkerMixin";
64
+
65
+ import { FlatmapVuer } from "@abi-software/flatmapvuer";
66
+ import "@abi-software/flatmapvuer/dist/style.css";
85
67
  import { HelpModeDialog } from '@abi-software/map-utilities'
86
68
  import '@abi-software/map-utilities/dist/style.css'
87
- import { useSimulationPlotStore } from '../../stores/simulationPlotStore'
88
- import { retrieveProtocolData } from '../../services/testData.js';
89
-
90
- import PlotComponent from '../PlotComponent.vue'
91
- import FloatingWindow from '../FloatingWindow.vue'
92
- import { useMappingStore } from '../../stores/mapping'
93
-
94
- const BASE_Z_INDEX = 100
95
69
 
96
70
  export default {
97
- name: 'Flatmap',
98
- mixins: [ContentMixin, DynamicMarkerMixin],
71
+ name: "Flatmap",
72
+ mixins: [ ContentMixin, DynamicMarkerMixin ],
99
73
  components: {
100
74
  FlatmapVuer,
101
75
  HelpModeDialog,
102
- ResizeSensor,
103
- },
104
- setup() {
105
- // const flatmap = ref(null)
106
- const container = ref(null)
107
- const simulationPlotStore = useSimulationPlotStore()
108
- const mappingStore = useMappingStore()
109
- mappingStore.initializeMapping()
110
- const { elementX, elementY } = useMouseInElement(container)
111
- return { container, elementX, elementY, mappingStore, simulationPlotStore }
112
76
  },
113
77
  data: function () {
114
78
  return {
115
79
  flatmapReady: false,
116
80
  displayMinimap: false,
117
- protocolData: undefined,
118
- zStack: [],
119
- left: 0,
120
- top: 0,
121
81
  }
122
82
  },
123
83
  methods: {
124
84
  getState: function () {
125
- return this.$refs.flatmap.getState()
85
+ return this.$refs.flatmap.getState();
126
86
  },
127
87
  /**
128
88
  * Perform a local search on this contentvuer
129
89
  * This is similar to directly clicking onthe map
130
90
  */
131
91
  search: function (term) {
132
- return this.$refs.flatmap.searchAndShowResult(term, true, true)
92
+ return this.$refs.flatmap.searchAndShowResult(term, true, true);
133
93
  },
134
94
  getFlatmapImp() {
135
- return this.$refs.flatmap?.mapImp
95
+ return this.$refs.flatmap?.mapImp;
136
96
  },
137
97
  contextRestored(flatmap) {
138
- this.flatmapReadyForMarkerUpdates(flatmap)
139
- this.updateViewerSettings()
98
+ this.flatmapReadyForMarkerUpdates(flatmap);
99
+ this.updateViewerSettings();
140
100
  },
141
101
  flatmapReadyCall: function (flatmap) {
142
- this.flatmapReady = true
143
- const mapImp = this.getFlatmapImp()
102
+ this.flatmapReady = true;
103
+ const mapImp = this.getFlatmapImp();
144
104
  if (mapImp?.mapMetadata?.name) {
145
- this.updateEntryLabel(mapImp?.mapMetadata?.name)
146
- this.updateEntryTitle(mapImp?.mapMetadata?.name)
105
+ this.updateEntryLabel(mapImp?.mapMetadata?.name);
106
+ this.updateEntryTitle(mapImp?.mapMetadata?.name);
147
107
  }
148
- let provClone = { id: this.entry.id, prov: mapImp.mapMetadata } //create clone of provenance and add id
149
- EventBus.emit('mapImpProv', provClone) // send clone to context card
150
- this.$emit('flatmap-provenance-ready', provClone)
151
- this.flatmapReadyForMarkerUpdates(flatmap)
152
- this.updateViewerSettings()
108
+ let provClone = {id: this.entry.id, prov: mapImp.mapMetadata}; //create clone of provenance and add id
109
+ EventBus.emit("mapImpProv", provClone); // send clone to context card
110
+ this.$emit("flatmap-provenance-ready", provClone);
111
+ this.flatmapReadyForMarkerUpdates(flatmap);
112
+ this.updateViewerSettings();
153
113
  // Wait for flatmap's connectivity to load before emitting mapLoaded
154
114
  this.loadConnectivityExplorerConfig(flatmap).then(() => {
155
- EventBus.emit('mapLoaded', flatmap)
156
- })
115
+ EventBus.emit("mapLoaded", flatmap);
116
+ });
157
117
  },
158
118
  onPathwaySelectionChanged: function (data) {
159
- const { label, property, checked, selectionsTitle } = data
119
+ const { label, property, checked, selectionsTitle } = data;
160
120
  // GA Tagging
161
121
  // Event tracking for maps' pathway selection change
162
122
  Tagging.sendEvent({
163
- event: 'interaction_event',
164
- event_name: 'portal_maps_pathway_change',
165
- category: label + ' [' + property + '] ' + checked,
166
- location: selectionsTitle,
167
- })
123
+ 'event': 'interaction_event',
124
+ 'event_name': 'portal_maps_pathway_change',
125
+ 'category': label + ' [' + property + '] ' + checked,
126
+ 'location': selectionsTitle
127
+ });
168
128
  },
169
- onSidebarAnnotationClose: function () {
129
+ onSidebarAnnotationClose: function() {
170
130
  if (this.flatmapReady) {
171
- const currentFlatmap = this.$refs.flatmap
131
+ const currentFlatmap = this.$refs.flatmap;
172
132
  if (currentFlatmap) {
173
133
  this.$refs.flatmap.annotationEventCallback({}, { type: 'aborted' })
174
134
  }
@@ -179,160 +139,117 @@ export default {
179
139
  */
180
140
  searchSuggestions: function (term, suggestions) {
181
141
  if (term && this.$refs.flatmap.mapImp) {
182
- const results = this.$refs.flatmap.mapImp.search(term)
183
- const featureIds = results.__featureIds || results.featureIds
184
- featureIds.forEach((id) => {
185
- const annotation = this.$refs.flatmap.mapImp.annotation(id)
186
- if (annotation && annotation.label) suggestions.push(annotation.label)
187
- })
142
+ const results = this.$refs.flatmap.mapImp.search(term);
143
+ const featureIds = results.__featureIds || results.featureIds;
144
+ featureIds.forEach(id => {
145
+ const annotation = this.$refs.flatmap.mapImp.annotation(id);
146
+ if (annotation && annotation.label)
147
+ suggestions.push(annotation.label);
148
+ });
188
149
  }
189
150
  },
190
151
  showConnectivity: function (payload) {
191
152
  if (this?.alive) {
192
- const { featureIds, offset } = payload
193
- const currentFlatmap = this.$refs.flatmap
153
+ const { featureIds, offset } = payload;
154
+ const currentFlatmap = this.$refs.flatmap;
194
155
  if (currentFlatmap) {
195
156
  currentFlatmap.moveMap(featureIds, {
196
157
  offsetX: offset ? -150 : 0,
197
158
  zoom: 4,
198
- })
159
+ });
199
160
  }
200
161
  }
201
162
  },
202
163
  showConnectivityTooltips: function (payload) {
203
164
  if (this?.alive && this.flatmapReady) {
204
- const flatmap = this.$refs.multiflatmap.getCurrentFlatmap()
205
- flatmap.showConnectivityTooltips(payload)
165
+ const flatmap = this.$refs.multiflatmap.getCurrentFlatmap();
166
+ flatmap.showConnectivityTooltips(payload);
206
167
  }
207
168
  },
208
169
  showConnectivitiesByReference: function (payload) {
209
170
  if (this?.alive) {
210
- const currentFlatmap = this.$refs.flatmap
171
+ const currentFlatmap = this.$refs.flatmap;
211
172
  if (currentFlatmap) {
212
- currentFlatmap.showConnectivitiesByReference(payload)
173
+ currentFlatmap.showConnectivitiesByReference(payload);
213
174
  }
214
175
  }
215
176
  },
216
177
  changeConnectivitySource: function (payload, ongoingSource) {
217
178
  if (this?.alive && this.flatmapReady) {
218
- const flatmap = this.$refs.flatmap
219
- const flatmapUUID = flatmap.mapImp.mapMetadata.uuid
179
+ const flatmap = this.$refs.flatmap;
180
+ const flatmapUUID = flatmap.mapImp.mapMetadata.uuid;
220
181
  if (!ongoingSource.includes(flatmapUUID)) {
221
- ongoingSource.push(flatmapUUID)
222
- flatmap.changeConnectivitySource(payload)
182
+ ongoingSource.push(flatmapUUID);
183
+ flatmap.changeConnectivitySource(payload);
223
184
  }
224
185
  }
225
186
  },
226
- zoomToFeatures: function (info, forceSelect) {
227
- let name = info.name
228
- const flatmap = this.$refs.flatmap.mapImp
187
+ zoomToFeatures: function(info, forceSelect) {
188
+ let name = info.name;
189
+ const flatmap = this.$refs.flatmap.mapImp;
229
190
  if (name) {
230
- const results = flatmap.search(name)
191
+ const results = flatmap.search(name);
231
192
  if (results.featureIds.length) {
232
- let externalId = flatmap.modelForFeature(results.featureIds[0])
193
+ let externalId = flatmap.modelForFeature(results.featureIds[0]);
233
194
  if (externalId) {
234
195
  if (forceSelect) {
235
- flatmap.selectFeatures(externalId)
196
+ flatmap.selectFeatures(externalId);
236
197
  }
237
- flatmap.zoomToFeatures(externalId)
238
- } else flatmap.clearSearchResults()
198
+ flatmap.zoomToFeatures(externalId);
199
+ } else flatmap.clearSearchResults();
239
200
  }
240
201
  } else {
241
- flatmap.clearSearchResults()
202
+ flatmap.clearSearchResults();
242
203
  }
243
204
  },
244
205
  changeViewingMode: function (modeName) {
245
- this.$refs.flatmap.changeViewingMode(modeName)
206
+ this.$refs.flatmap.changeViewingMode(modeName);
246
207
  },
247
208
  updateViewerSettings: function () {
248
- const { backgroundDisplay, viewingMode, flightPathDisplay, organsDisplay, outlinesDisplay, connectionType } =
249
- this.settingsStore.globalSettings
209
+ const {
210
+ backgroundDisplay,
211
+ viewingMode,
212
+ flightPathDisplay,
213
+ organsDisplay,
214
+ outlinesDisplay,
215
+ connectionType,
216
+ } = this.settingsStore.globalSettings;
250
217
 
251
- const currentFlatmap = this.$refs.flatmap
218
+ const currentFlatmap = this.$refs.flatmap;
252
219
 
253
- currentFlatmap.changeViewingMode(viewingMode)
254
- currentFlatmap.setFlightPath3D(flightPathDisplay)
255
- currentFlatmap.setColour(organsDisplay)
256
- currentFlatmap.setOutlines(outlinesDisplay)
257
- currentFlatmap.backgroundChangeCallback(backgroundDisplay)
258
- currentFlatmap.setConnectionType(connectionType)
220
+ currentFlatmap.changeViewingMode(viewingMode);
221
+ currentFlatmap.setFlightPath3D(flightPathDisplay);
222
+ currentFlatmap.setColour(organsDisplay);
223
+ currentFlatmap.setOutlines(outlinesDisplay);
224
+ currentFlatmap.backgroundChangeCallback(backgroundDisplay);
225
+ currentFlatmap.setConnectionType(connectionType);
259
226
  },
260
227
  setVisibilityFilter: function (payload) {
261
228
  if (this?.alive) {
262
- const currentFlatmap = this.$refs.flatmap
229
+ const currentFlatmap = this.$refs.flatmap;
263
230
  if (currentFlatmap) {
264
- currentFlatmap.setVisibilityFilter(payload)
231
+ currentFlatmap.setVisibilityFilter(payload);
265
232
  }
266
233
  }
267
234
  },
268
235
  getKnowledgeTooltip: async function (payload) {
269
236
  if (this?.alive) {
270
- const currentFlatmap = this.$refs.flatmap
237
+ const currentFlatmap = this.$refs.flatmap;
271
238
  if (currentFlatmap) {
272
239
  // This is for expanding connectivity card
273
240
  // The length of payload.data should always be 1
274
- const data = payload.data[0]
275
- currentFlatmap.searchAndShowResult(data.id, true, false)
241
+ const data = payload.data[0];
242
+ currentFlatmap.searchAndShowResult(data.id, true, false);
276
243
  }
277
244
  }
278
245
  },
279
- populateProtocolMarkers: function(simulation) {
280
- if (simulation?.path && this.protocolData) {
281
- const ids = this.protocolData.reduce((results, item) => {
282
- if (item.protocol.includes(simulation.path)) {
283
- if (item.columns) {
284
- item.columns.forEach((column) =>{
285
- if (column.anatomic_location) {
286
- results.push(column.anatomic_location);
287
- }
288
- });
289
- }
290
- }
291
- return results;
292
- }, []);
293
- this.updateProtocolMarkers(this.getFlatmapImp(), ids);
294
- }
295
- },
296
- onSimulationOpen: async function (simulation) {
297
- const uuid = this.$refs.flatmap?.mapImp?.mapMetadata?.uuid;
298
- EventBus.emit('simulation-open-clicked', {...simulation, requesterEntryId: this.entry.id,
299
- flatmapUUID: uuid})
300
- if (!this.protocolData) {
301
- this.protocolData = markRaw(await retrieveProtocolData(this.settingsStore.testDataLocation, uuid));
302
- }
303
- this.populateProtocolMarkers(simulation);
304
- },
305
- handleClosePlotWindow: function (windowId) {
306
- this.simulationPlotStore.removeWindow(windowId)
307
- },
308
- bringToFront: function (windowId) {
309
- this.simulationPlotStore.bringToFront(windowId, this.calculateOffset())
310
- },
311
- calculateOffset: function () {
312
- const element = this.$refs.container
313
- if (!element) return
314
- const rect = element.getBoundingClientRect()
315
- this.top = rect.top
316
- this.left = rect.left
317
- },
318
- onResize: function () {
319
- this.calculateOffset()
320
- },
321
246
  },
322
247
  computed: {
323
248
  facetSpecies() {
324
249
  return this.settingsStore.facets.species;
325
250
  },
326
- plotWindows() {
327
- const entries = this.simulationPlotStore.windows.filter((win) => win.ownerId === this.entry.id);
328
- console.log(entries)
329
- return entries
330
- },
331
- testDataLocation() {
332
- return this.settingsStore.testDataLocation;
333
- }
334
251
  },
335
- }
252
+ };
336
253
  </script>
337
254
 
338
255
  <!-- Add "scoped" attribute to limit CSS to this component only -->