@abi-software/scaffoldvuer 1.3.3-beta.0 → 1.3.3-beta.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@abi-software/scaffoldvuer",
3
- "version": "1.3.3-beta.0",
3
+ "version": "1.3.3-beta.1",
4
4
  "license": "Apache-2.0",
5
5
  "repository": {
6
6
  "type": "git",
@@ -55,7 +55,7 @@
55
55
  "vue": "^3.4.15",
56
56
  "vue-router": "^4.2.5",
57
57
  "vue3-component-svg-sprite": "^0.0.1",
58
- "zincjs": "^1.10.3"
58
+ "zincjs": "^1.11.0"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@vitejs/plugin-vue": "^4.6.2",
package/src/App.vue CHANGED
@@ -422,7 +422,7 @@ export default {
422
422
  "body proper": 9,
423
423
  "Spinal cord": 8,
424
424
  "lung": 11,
425
- "stomach": 12,
425
+ "stomach": {number:12, imgURL: 'https://mapcore-bucket1.s3.us-west-2.amazonaws.com/texture/arm1/jpg/0984.jpg'},
426
426
  "urinary bladder": 11,
427
427
  "Brainstem": 11,
428
428
  "heart": 9,
@@ -287,26 +287,28 @@
287
287
  width="128"
288
288
  :teleported="false"
289
289
  trigger="click"
290
- popper-class="background-popper non-selectable"
290
+ popper-class="background-popper non-selectable h-auto"
291
291
  virtual-triggering
292
292
  >
293
293
  <div>
294
294
  <el-row class="backgroundText">Viewing Mode</el-row>
295
295
  <el-row class="backgroundControl">
296
- <el-select
297
- :teleported="false"
298
- v-model="viewingMode"
299
- placeholder="Select"
300
- class="scaffold-select-box viewing-mode"
301
- popper-class="scaffold_viewer_dropdown"
302
- @change="changeViewingMode"
303
- >
304
- <el-option v-for="item in viewingModes" :key="item" :label="item" :value="item">
305
- <el-row>
306
- <el-col :span="12">{{ item }}</el-col>
307
- </el-row>
308
- </el-option>
309
- </el-select>
296
+ <div style="margin-bottom: 2px;">
297
+ <template
298
+ v-for="(value, key, index) in viewingModes"
299
+ :key="key"
300
+ >
301
+ <template v-if="key === viewingMode">
302
+ <span class="viewing-mode-title"><b >{{ key }}</b></span>
303
+ </template>
304
+ <template v-else>
305
+ <span class="viewing-mode-unselected" @click="changeViewingMode(key)">{{ key }}</span>
306
+ </template>
307
+ </template>
308
+ </div>
309
+ <el-row class="viewing-mode-description">
310
+ {{ viewingModes[viewingMode] }}
311
+ </el-row>
310
312
  </el-row>
311
313
  <el-row class="backgroundSpacer"></el-row>
312
314
  <el-row class="backgroundText"> Change background </el-row>
@@ -564,6 +566,20 @@ export default {
564
566
  type: Boolean,
565
567
  default: false,
566
568
  },
569
+ /**
570
+ * GroupName to value pair.
571
+ * The value can be a single number or and object in the following
572
+ * form:
573
+ *
574
+ * {
575
+ * number: Number,
576
+ * imgURL: String
577
+ * }
578
+ *
579
+ * When imgURL is specified, scaffoldvuer will attempt to render
580
+ * the image in imgURL as marker instead.
581
+ *
582
+ */
567
583
  markerLabels : {
568
584
  type: Object,
569
585
  default: function () {
@@ -776,10 +792,10 @@ export default {
776
792
  fileFormat: "metadata",
777
793
  previousMarkerLabels: markRaw({}),
778
794
  viewingMode: "Exploration",
779
- viewingModes: [
780
- "Annotation",
781
- "Exploration",
782
- ],
795
+ viewingModes: {
796
+ "Exploration": "View and explore detailed visualization of 3D scaffolds",
797
+ "Annotation": "View internal identifiers of features",
798
+ },
783
799
  openMapRef: undefined,
784
800
  backgroundIconRef: undefined,
785
801
  userInformation: undefined,
@@ -1863,6 +1879,7 @@ export default {
1863
1879
  },
1864
1880
  /**
1865
1881
  * Callback on viewing mode change
1882
+ * Optional, can be used to update the view mode.
1866
1883
  */
1867
1884
  changeViewingMode: function (modeName) {
1868
1885
  if (this.$module) {
@@ -1922,13 +1939,19 @@ export default {
1922
1939
  /**
1923
1940
  * Set the marker modes for objects with the provided name, mode can
1924
1941
  * be "on", "off" or "inherited".
1942
+ * Value can either be number or an object containing number and
1943
+ * imgURL.
1925
1944
  */
1926
- setMarkerModeForObjectsWithName: function (name, number, mode) {
1945
+ setMarkerModeForObjectsWithName: function (name, value, mode) {
1927
1946
  if (name && this.$module.scene) {
1947
+ let options = value;
1948
+ if (typeof value === 'number') {
1949
+ options = { number: value, imgURL: undefined };
1950
+ }
1928
1951
  const rootRegion = this.$module.scene.getRootRegion();
1929
1952
  const groups = [name];
1930
1953
  const objects = findObjectsWithNames(rootRegion, groups, "", true);
1931
- objects.forEach(object => object.setMarkerMode(mode, { number }));
1954
+ objects.forEach(object => object.setMarkerMode(mode, options));
1932
1955
  }
1933
1956
  },
1934
1957
  /**
@@ -2481,6 +2504,10 @@ export default {
2481
2504
  }
2482
2505
  }
2483
2506
 
2507
+ :deep(.background-popper.el-popover.el-popper.h-auto) {
2508
+ height: auto !important;
2509
+ }
2510
+
2484
2511
  :deep(.open-map-popper.el-popover.el-popper) {
2485
2512
  padding-top: 5px;
2486
2513
  padding-bottom: 5px;
@@ -2683,15 +2710,38 @@ export default {
2683
2710
  }
2684
2711
  }
2685
2712
 
2713
+ .viewing-mode-title {
2714
+ font-size: 14px;
2715
+ font-weight: 600;
2716
+ color: $app-primary-color;
2717
+ margin: 8px;
2718
+ text-decoration: underline;
2719
+ cursor: pointer;
2720
+ }
2721
+
2722
+ .viewing-mode-unselected {
2723
+ font-size: 11px;
2724
+ font-weight: 600;
2725
+ color: rgb(48, 49, 51);
2726
+ margin: 8px;
2727
+ opacity: 0.5;
2728
+ cursor: pointer;
2729
+ }
2730
+
2731
+ .viewing-mode-description {
2732
+ font-size: 12px;
2733
+ color: rgb(48, 49, 51);
2734
+ text-align: left;
2735
+ padding-bottom: 4px;
2736
+ margin-left: 8px;
2737
+ }
2738
+
2686
2739
  .scaffold-select-box {
2687
2740
  border-radius: 4px;
2688
2741
  border: 1px solid rgb(144, 147, 153);
2689
2742
  background-color: var(--white);
2690
2743
  font-weight: 500;
2691
2744
  color: rgb(48, 49, 51);
2692
- &.viewing-mode {
2693
- width: 150px!important;
2694
- }
2695
2745
 
2696
2746
  &.speed {
2697
2747
  margin-left: 8px;