@abi-software/mapintegratedvuer 1.8.0-beta.1 → 1.8.0-isan.1

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 (31) hide show
  1. package/dist/ContentMixin-CthZZNjI.js +706 -0
  2. package/dist/{Flatmap-BMowLXfS.js → Flatmap-Bi9esI2v.js} +62 -60
  3. package/dist/{Iframe-fNcVYbXe.js → Iframe-bsYxppii.js} +2 -2
  4. package/dist/{MultiFlatmap-DuKi1y2A.js → MultiFlatmap-BWFsdMgS.js} +46 -37
  5. package/dist/{Plot-3jlnqIiS.js → Plot-gX8radCI.js} +2 -2
  6. package/dist/{Scaffold-Brboi1Ah.js → Scaffold-Dn3GeNi0.js} +7197 -7151
  7. package/dist/Simulation-Zgs0MXh1.js +30 -0
  8. package/dist/{index-B_H6BPK_.js → index-DFkMrKek.js} +23282 -21203
  9. package/dist/mapintegratedvuer.js +1 -1
  10. package/dist/mapintegratedvuer.umd.cjs +1663 -1009
  11. package/dist/{style-Bt2YbWCx.js → style-DlUxkFU-.js} +70145 -67320
  12. package/dist/style.css +1 -1
  13. package/package.json +8 -7
  14. package/src/App.vue +3 -14
  15. package/src/assets/header-icon.scss +7 -0
  16. package/src/components/ContentBar.vue +5 -1
  17. package/src/components/DialogToolbarContent.vue +87 -15
  18. package/src/components/FlatmapContextCard.vue +11 -8
  19. package/src/components/MapContent.vue +11 -21
  20. package/src/components/SplitFlow.vue +183 -108
  21. package/src/components/scripts/utilities.js +1 -1
  22. package/src/components/viewers/Flatmap.vue +6 -7
  23. package/src/components/viewers/MultiFlatmap.vue +25 -7
  24. package/src/components/viewers/Scaffold.vue +2 -2
  25. package/src/components/viewers/Simulation.vue +19 -1
  26. package/src/components.d.ts +4 -0
  27. package/src/mixins/ContentMixin.js +138 -80
  28. package/src/mixins/DynamicMarkerMixin.js +3 -1
  29. package/src/stores/settings.js +13 -10
  30. package/dist/ContentMixin-B9DtqhYT.js +0 -357
  31. package/dist/Simulation-BPEbHrzv.js +0 -22
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abi-software/mapintegratedvuer",
3
- "version": "1.8.0-beta.1",
3
+ "version": "1.8.0-isan.1",
4
4
  "license": "Apache-2.0",
5
5
  "scripts": {
6
6
  "serve": "vite --host --force",
@@ -50,12 +50,12 @@
50
50
  "*.js"
51
51
  ],
52
52
  "dependencies": {
53
- "@abi-software/flatmapvuer": "^1.8.0-beta.0",
54
- "@abi-software/map-side-bar": "^2.7.0-beta.0",
55
- "@abi-software/map-utilities": "^1.4.0-beta.0",
53
+ "@abi-software/flatmapvuer": "^1.8.2-isan.6",
54
+ "@abi-software/map-side-bar": "^2.7.2-isan.7",
55
+ "@abi-software/map-utilities": "^1.4.3-isan.1",
56
56
  "@abi-software/plotvuer": "^1.0.3",
57
- "@abi-software/scaffoldvuer": "^1.8.0-beta.3",
58
- "@abi-software/simulationvuer": "1.0.1",
57
+ "@abi-software/scaffoldvuer": "^1.8.1-isan.0",
58
+ "@abi-software/simulationvuer": "2.0.9",
59
59
  "@abi-software/sparc-annotation": "0.3.2",
60
60
  "@abi-software/svg-sprite": "^1.0.1",
61
61
  "@element-plus/icons-vue": "^2.3.1",
@@ -128,7 +128,8 @@
128
128
  ]
129
129
  },
130
130
  "overrides": {
131
- "@abi-software/flatmapvuer": "$@abi-software/flatmapvuer"
131
+ "@abi-software/flatmapvuer": "$@abi-software/flatmapvuer",
132
+ "@abi-software/map-utilities": "$@abi-software/map-utilities"
132
133
  },
133
134
  "browserslist": [
134
135
  "> 1%",
package/src/App.vue CHANGED
@@ -23,8 +23,6 @@
23
23
  <el-button @click="setWholebody()" size="small">Set to Wholebody</el-button>
24
24
  <el-button @click="setFlatmap()" size="small">Set Flatmap</el-button>
25
25
  <el-button @click="setSearch()" size="small">Set Search</el-button>
26
- <el-button @click="toggleHighlightConnectedPaths()" size="small">Toggle Highlight Connected Paths</el-button>
27
- <el-button @click="toggleHighlightDOIPaths()" size="small">Toggle Highlight DOI Paths</el-button>
28
26
  </div>
29
27
  </div>
30
28
  <template #reference>
@@ -43,7 +41,6 @@
43
41
  :shareLink="shareLink"
44
42
  :useHelpModeDialog="true"
45
43
  :connectivityInfoSidebar="true"
46
- :hoverHighlightOptions="hoverHighlightOptions"
47
44
  @updateShareLinkRequested="updateUUID"
48
45
  @isReady="viewerIsReady"
49
46
  @mapLoaded="mapIsLoaded"
@@ -82,10 +79,6 @@ export default {
82
79
  mapSettings: [],
83
80
  startingMap: "AC",
84
81
  ElIconSetting: shallowRef(ElIconSetting),
85
- hoverHighlightOptions: {
86
- highlightConnectedPaths: true,
87
- highlightDOIPaths: false,
88
- },
89
82
  }
90
83
  },
91
84
  computed: {
@@ -104,6 +97,7 @@ export default {
104
97
  flatmapAPI: import.meta.env.VITE_FLATMAPAPI_LOCATION,
105
98
  nlLinkPrefix: import.meta.env.VITE_NL_LINK_PREFIX,
106
99
  rootUrl: import.meta.env.VITE_ROOT_URL,
100
+ pmrHost: import.meta.env.VITE_PMR_HOST,
107
101
  }
108
102
  }
109
103
  },
@@ -185,14 +179,9 @@ export default {
185
179
  setSearch: function() {
186
180
  this.$refs.map.openSearch([], "10.26275/1uno-tynt");
187
181
  },
188
- toggleHighlightConnectedPaths: function () {
189
- this.hoverHighlightOptions.highlightConnectedPaths = !this.hoverHighlightOptions.highlightConnectedPaths;
190
- },
191
- toggleHighlightDOIPaths: function () {
192
- this.hoverHighlightOptions.highlightDOIPaths = !this.hoverHighlightOptions.highlightDOIPaths;
193
- },
194
182
  mapIsLoaded: function(map) {
195
- console.log("map is loaded", map)
183
+ //if (!this.uuid) this.setFlatmap();
184
+ console.log("map is loaded")
196
185
  // map.changeViewingMode('Annotation')
197
186
  },
198
187
  viewerIsReady: function() {
@@ -40,6 +40,13 @@
40
40
  background-color: #f3ecf6;
41
41
  }
42
42
  }
43
+
44
+ &.el-icon {
45
+ margin: 0;
46
+ color: white;
47
+ background-color: $app-primary-color;
48
+ border-radius: 50% 50%;
49
+ }
43
50
  }
44
51
 
45
52
  .header-icon.disabled,
@@ -189,12 +189,17 @@ export default {
189
189
  EventBus.emit("RemoveEntryRequest", this.entry.id);
190
190
  },
191
191
  getEntryTitle: function(entry) {
192
+ console.log(entry)
192
193
  if (entry) {
193
194
  let title = entry.label ? entry.label + " ": '';
194
195
  let type = entry.type;
195
196
  if (type == "Scaffold")
196
197
  type = "3D Scaffold";
197
198
  title += type;
199
+ if (type == "Flatmap") {
200
+ title += " - " + entry.resource;
201
+ }
202
+
198
203
  if (entry.datasetId)
199
204
  title += " - " + entry.datasetId + "";
200
205
  else if (entry.discoverId)
@@ -240,7 +245,6 @@ export default {
240
245
  target: value
241
246
  });
242
247
  this.$nextTick(() => {
243
- EventBus.emit('connectivity-info-close');
244
248
  setTimeout(() => {
245
249
  this.$emit("chooser-changed");
246
250
  }, 1200);
@@ -156,7 +156,60 @@
156
156
  <map-svg-icon icon="close" class="header-icon" @click="close" v-show="showIcons"/>
157
157
  </template>
158
158
  </el-popover>
159
-
159
+ <el-popover
160
+ v-if="globalSettingRef"
161
+ :virtual-ref="globalSettingRef"
162
+ ref="settingPopover"
163
+ placement="bottom"
164
+ width="133"
165
+ :teleported=false
166
+ trigger="click"
167
+ popper-class="setting-popover"
168
+ virtual-triggering
169
+ >
170
+ <el-row :gutter="20">
171
+ <el-col :span="20">
172
+ <el-checkbox
173
+ v-model="globalSettings.displayMarkers"
174
+ @change="updateGlobalSettings"
175
+ >
176
+ Display Map Markers
177
+ </el-checkbox>
178
+ <p>Card Hover</p>
179
+ <el-checkbox
180
+ v-model="globalSettings.highlightConnectedPaths"
181
+ @change="updateGlobalSettings"
182
+ >
183
+ Highlight Connected Paths
184
+ </el-checkbox>
185
+ <el-checkbox
186
+ v-model="globalSettings.highlightDOIPaths"
187
+ @change="updateGlobalSettings"
188
+ >
189
+ Highlight DOI Paths
190
+ </el-checkbox>
191
+ <p>Interactive Mode</p>
192
+ <el-radio-group
193
+ v-model="globalSettings.interactiveMode"
194
+ @change="updateGlobalSettings"
195
+ >
196
+ <el-radio value="dataset">Dataset Exploration</el-radio>
197
+ <el-radio value="connectivity">Connectivity Exploration</el-radio>
198
+ <!-- <el-radio value="multiscale">Multiscale Model</el-radio> -->
199
+ </el-radio-group>
200
+ </el-col>
201
+ </el-row>
202
+ </el-popover>
203
+ <el-popover class="tooltip" content="Global Settings" placement="bottom-end"
204
+ :show-after="helpDelay" :teleported=false trigger="hover"
205
+ popper-class="header-popper"
206
+ >
207
+ <template #reference>
208
+ <el-icon class="header-icon" ref="globalSettingRef">
209
+ <el-icon-more-filled />
210
+ </el-icon>
211
+ </template>
212
+ </el-popover>
160
213
  </el-row>
161
214
  </div>
162
215
  </template>
@@ -174,6 +227,7 @@ import { MapSvgIcon, MapSvgSpriteColor } from '@abi-software/svg-sprite';
174
227
  import SearchControls from './SearchControls.vue';
175
228
  import {
176
229
  CopyDocument as ElIconCopyDocument,
230
+ MoreFilled as ElIconMoreFilled,
177
231
  } from '@element-plus/icons-vue';
178
232
  import {
179
233
  ElButton as Button,
@@ -181,6 +235,8 @@ import {
181
235
  ElIcon as Icon,
182
236
  ElInput as Input,
183
237
  ElPopover as Popover,
238
+ ElRadio as Radio,
239
+ ElRadioGroup as RadioGroup,
184
240
  ElRow as Row,
185
241
  ElSwitch as Switch,
186
242
  } from "element-plus";
@@ -196,6 +252,8 @@ export default {
196
252
  Icon,
197
253
  Input,
198
254
  Popover,
255
+ Radio,
256
+ RadioGroup,
199
257
  Row,
200
258
  Switch,
201
259
  MapSvgIcon,
@@ -254,7 +312,7 @@ export default {
254
312
  let flag = !(value === true);
255
313
  if (flag !== this.independent)
256
314
  this.independent = flag;
257
- }
315
+ },
258
316
  },
259
317
  data: function() {
260
318
  return {
@@ -265,21 +323,28 @@ export default {
265
323
  failedSearch: undefined,
266
324
  activeViewRef: undefined,
267
325
  permalinkRef: undefined,
326
+ globalSettingRef: undefined,
268
327
  ElIconCopyDocument: shallowRef(ElIconCopyDocument),
328
+ globalSettings: {},
269
329
  }
270
330
  },
271
331
  methods: {
272
- updateGlobalSettings: function(globalSettings) {
273
- this.settingsStore.updateGlobalSettings(globalSettings)
332
+ loadGlobalSettings: function () {
333
+ this.globalSettings = {
334
+ ...this.globalSettings,
335
+ ...this.settingsStore.globalSettings
336
+ };
274
337
  },
275
- setDisplayMarkerFlag: function(displayMarker) {
276
- if (displayMarker !== undefined) {
277
- let incomingSettings = { displayMarker };
278
- const updatedSettings = this.settingsStore.getUpdatedGlobalSettingsKey(incomingSettings);
279
- if (updatedSettings.includes('displayMarker')) {
280
- this.settingsStore.updateGlobalSettings(incomingSettings);
281
- EventBus.emit("markerUpdate");
282
- }
338
+ updateGlobalSettings: function() {
339
+ const updatedSettings = this.settingsStore.getUpdatedGlobalSettingsKey(this.globalSettings);
340
+ this.settingsStore.updateGlobalSettings(this.globalSettings);
341
+
342
+ // display marker update
343
+ if (updatedSettings.includes('displayMarkers')) {
344
+ EventBus.emit('markerUpdate');
345
+ }
346
+ if (updatedSettings.includes('interactiveMode')) {
347
+ EventBus.emit('modeUpdate', this.globalSettings.interactiveMode);
283
348
  }
284
349
  },
285
350
  titleClicked: function(id) {
@@ -328,8 +393,11 @@ export default {
328
393
  mounted: function () {
329
394
  this.activeViewRef = shallowRef(this.$refs.activeViewRef);
330
395
  this.permalinkRef = shallowRef(this.$refs.permalinkRef);
396
+ this.globalSettingRef = shallowRef(this.$refs.globalSettingRef);
331
397
 
332
398
  document.addEventListener('fullscreenchange', this.onFullscreenEsc);
399
+
400
+ this.loadGlobalSettings();
333
401
  },
334
402
  unmounted: function () {
335
403
  document.removeEventListener('fullscreenchange', this.onFullscreenEsc);
@@ -444,7 +512,8 @@ export default {
444
512
  padding-top:7px;
445
513
  }
446
514
 
447
- :deep(.view-icon-popover.el-popper) {
515
+ :deep(.view-icon-popover.el-popper),
516
+ :deep(.setting-popover.el-popper ) {
448
517
  border: 1px solid $app-primary-color;
449
518
  box-shadow: 0px 2px 12px 0px rgba(0, 0, 0, 0.06);
450
519
  padding: 4px 8px 12px 8px;
@@ -465,6 +534,9 @@ export default {
465
534
  top:2px;
466
535
  left: calc(50% - 60px);
467
536
  position: absolute;
537
+ display: flex;
538
+ align-items: center;
539
+
468
540
  .sync-help {
469
541
  left:5px;
470
542
  stroke: $app-primary-color;
@@ -478,6 +550,7 @@ export default {
478
550
  border: 1px solid rgb(220, 223, 230);
479
551
  vertical-align: super;
480
552
  height: 28px;
553
+ box-sizing: border-box;
481
554
  }
482
555
 
483
556
  .sync-help {
@@ -488,5 +561,4 @@ export default {
488
561
  top: 0px;
489
562
  scale: 0.7;
490
563
  }
491
-
492
- </style>
564
+ </style>
@@ -65,15 +65,17 @@ export default {
65
65
  sckanReleaseDisplay: function() {
66
66
  let sckanRelease = "Unknown"
67
67
  if(this.mapImpProv){
68
- sckanRelease = this.mapImpProv.connectivity?.npo.date
68
+ sckanRelease = this.mapImpProv.connectivity?.npo?.date
69
69
  if (!sckanRelease) {
70
70
  let sckanCreated = this.mapImpProv.sckan?.created ? this.mapImpProv.sckan.created : this.mapImpProv.sckan
71
- let isoTime = sckanCreated.replace(',', '.') // Date time does not accept commas but Sckan uses them
72
- sckanRelease = new Date(isoTime).toLocaleDateString('en-US', {
73
- day: '2-digit',
74
- month: 'long',
75
- year: 'numeric',
76
- })
71
+ if (sckanCreated) {
72
+ let isoTime = sckanCreated.replace(',', '.') // Date time does not accept commas but Sckan uses them
73
+ sckanRelease = new Date(isoTime).toLocaleDateString('en-US', {
74
+ day: '2-digit',
75
+ month: 'long',
76
+ year: 'numeric',
77
+ })
78
+ }
77
79
  }
78
80
  if (!sckanRelease) {
79
81
  sckanRelease = "Unknown";
@@ -84,7 +86,8 @@ export default {
84
86
  sckanReleaseLink: function() {
85
87
  let sckanLink = "Unknown"
86
88
  if(this.mapImpProv){
87
- sckanLink = this.mapImpProv.connectivity?.npo.path
89
+ console.log(this.mapImpProv.connectivity)
90
+ sckanLink = this.mapImpProv.connectivity?.npo?.path
88
91
  if (!sckanLink) {
89
92
  sckanLink = this.mapImpProv.sckan?.release
90
93
  }
@@ -99,17 +99,6 @@ export default {
99
99
  type: Boolean,
100
100
  default: true,
101
101
  },
102
- /**
103
- * The options to highlight features and paths on maps and scaffolds
104
- * when hover over the dataset cards on sidebar.
105
- */
106
- hoverHighlightOptions: {
107
- type: Object,
108
- default: () => ({
109
- highlightConnectedPaths: false,
110
- highlightDOIPaths: false,
111
- }),
112
- },
113
102
  },
114
103
  data: function () {
115
104
  return {
@@ -255,7 +244,7 @@ export default {
255
244
  // biologicalSex - biological sex to be displayed (PATO)
256
245
  // organ - Target organ, flatmap will conduct a local search
257
246
  // using this
258
-
247
+
259
248
  //Look for the key in the available species array,
260
249
  //it will use the taxo and biologicalSex as hints.
261
250
  const key = findSpeciesKey(state);
@@ -291,6 +280,7 @@ export default {
291
280
  const newView = {
292
281
  type: state.type,
293
282
  resource: state.resource,
283
+ data: state.data,
294
284
  state: state.state,
295
285
  label: state.label
296
286
  };
@@ -345,14 +335,15 @@ export default {
345
335
  beforeMount: function() {
346
336
  if (this.options) {
347
337
  // Split options prop up to commit to the store
348
- this.options.sparcApi ? this.settingsStore.updateSparcAPI(this.options.sparcApi) : null
349
- this.options.algoliaIndex ? this.settingsStore.updateAlgoliaIndex(this.options.algoliaIndex) : null
350
- this.options.algoliaKey ? this.settingsStore.updateAlgoliaKey(this.options.algoliaKey) : null
351
- this.options.algoliaId ? this.settingsStore.updateAlgoliaId(this.options.algoliaId) : null
352
- this.options.pennsieveApi ? this.settingsStore.updatePennsieveApi(this.options.pennsieveApi) : null
353
- this.options.flatmapAPI ? this.settingsStore.updateFlatmapAPI(this.options.flatmapAPI) : null,
354
- this.options.nlLinkPrefix ? this.settingsStore.updateNLLinkPrefix(this.options.nlLinkPrefix) : null
355
- this.options.rootUrl ? this.settingsStore.updateRootUrl(this.options.rootUrl) : null
338
+ this.options.sparcApi ? this.settingsStore.updateSparcAPI(this.options.sparcApi) : null;
339
+ this.options.algoliaIndex ? this.settingsStore.updateAlgoliaIndex(this.options.algoliaIndex) : null;
340
+ this.options.algoliaKey ? this.settingsStore.updateAlgoliaKey(this.options.algoliaKey) : null;
341
+ this.options.algoliaId ? this.settingsStore.updateAlgoliaId(this.options.algoliaId) : null;
342
+ this.options.pennsieveApi ? this.settingsStore.updatePennsieveApi(this.options.pennsieveApi) : null;
343
+ this.options.flatmapAPI ? this.settingsStore.updateFlatmapAPI(this.options.flatmapAPI) : null;
344
+ this.options.nlLinkPrefix ? this.settingsStore.updateNLLinkPrefix(this.options.nlLinkPrefix) : null;
345
+ this.options.rootUrl ? this.settingsStore.updateRootUrl(this.options.rootUrl) : null;
346
+ this.options.pmrHost ? this.settingsStore.updatePmrHost(this.options.pmrHost) : null;
356
347
  }
357
348
  this.splitFlowStore?.reset();
358
349
  this.splitFlowStore?.getAvailableTerms(this.settingsStore.sparcApi);
@@ -383,7 +374,6 @@ export default {
383
374
  this.settingsStore.updateUseHelpModeDialog(this.useHelpModeDialog);
384
375
  this.settingsStore.updateConnectivityInfoSidebar(this.connectivityInfoSidebar);
385
376
  this.settingsStore.updateAnnotationSidebar(this.annotationSidebar);
386
- this.settingsStore.updateHoverHighlightOptions(this.hoverHighlightOptions);
387
377
  }
388
378
  }
389
379