@abi-software/scaffoldvuer 0.2.2 → 0.2.3-alpha-2

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/.eslintrc.js +12 -12
  2. package/CHANGELOG.md +316 -316
  3. package/LICENSE +201 -201
  4. package/README.md +164 -164
  5. package/babel.config.js +14 -14
  6. package/dist/scaffoldvuer-wc.common.js +183 -35
  7. package/dist/scaffoldvuer-wc.umd.js +183 -35
  8. package/dist/scaffoldvuer-wc.umd.min.js +183 -35
  9. package/dist/scaffoldvuer.common.js +1086 -717
  10. package/dist/scaffoldvuer.common.js.map +1 -1
  11. package/dist/scaffoldvuer.css +1 -1
  12. package/dist/scaffoldvuer.umd.js +1086 -717
  13. package/dist/scaffoldvuer.umd.js.map +1 -1
  14. package/dist/scaffoldvuer.umd.min.js +1 -1
  15. package/dist/scaffoldvuer.umd.min.js.map +1 -1
  16. package/package-lock.json +18119 -18121
  17. package/package.json +89 -89
  18. package/public/index.html +17 -17
  19. package/src/App.vue +669 -714
  20. package/src/ScaffoldVuer-wc.js +13 -13
  21. package/src/{components → app}/DropZone.vue +114 -114
  22. package/src/{components → app}/ModelsInformation.js +35 -35
  23. package/src/{components → app}/ModelsTable.vue +113 -113
  24. package/src/app/TextureDemos.js +114 -0
  25. package/src/assets/_variables.scss +43 -43
  26. package/src/assets/styles.scss +7 -7
  27. package/src/components/OpacityControls.vue +222 -222
  28. package/src/components/ScaffoldTooltip.vue +142 -141
  29. package/src/components/ScaffoldVuer.md +44 -44
  30. package/src/components/ScaffoldVuer.vue +2007 -1887
  31. package/src/components/TreeControls.vue +699 -691
  32. package/src/components/index.js +7 -7
  33. package/src/components/test.pdf +0 -0
  34. package/src/main.js +14 -14
  35. package/src/scripts/BaseModule.js +80 -80
  36. package/src/scripts/RendererModule.js +289 -289
  37. package/src/scripts/WebGL.js +94 -94
  38. package/src/scripts/annotation.js +5 -5
  39. package/src/scripts/eventNotifier.js +66 -66
  40. package/src/scripts/graphicsHighlight.js +134 -134
  41. package/src/scripts/organsRenderer.js +587 -606
  42. package/src/scripts/search.js +182 -153
  43. package/src/scripts/utilities.js +146 -43
  44. package/src/searchControls.vue +122 -0
  45. package/styleguide.config.js +22 -22
  46. package/vue.config.js +41 -41
  47. package/src/credential.json +0 -12
@@ -112,6 +112,13 @@ module.exports = _nonIterableSpread, module.exports.__esModule = true, module.ex
112
112
 
113
113
  /***/ }),
114
114
 
115
+ /***/ "0a7d":
116
+ /***/ (function(module, exports, __webpack_require__) {
117
+
118
+ // extracted by mini-css-extract-plugin
119
+
120
+ /***/ }),
121
+
115
122
  /***/ "0d58":
116
123
  /***/ (function(module, exports) {
117
124
 
@@ -298,24 +305,6 @@ module.exports = _iterableToArray, module.exports.__esModule = true, module.expo
298
305
 
299
306
  /***/ }),
300
307
 
301
- /***/ "1292":
302
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
303
-
304
- "use strict";
305
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7209");
306
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
307
- /* unused harmony reexport * */
308
-
309
-
310
- /***/ }),
311
-
312
- /***/ "12d1":
313
- /***/ (function(module, exports, __webpack_require__) {
314
-
315
- // extracted by mini-css-extract-plugin
316
-
317
- /***/ }),
318
-
319
308
  /***/ "12f2":
320
309
  /***/ (function(module, exports, __webpack_require__) {
321
310
 
@@ -773,6 +762,13 @@ module.exports = __webpack_require__("e62d");
773
762
 
774
763
  /***/ }),
775
764
 
765
+ /***/ "1613":
766
+ /***/ (function(module, exports, __webpack_require__) {
767
+
768
+ // extracted by mini-css-extract-plugin
769
+
770
+ /***/ }),
771
+
776
772
  /***/ "1951":
777
773
  /***/ (function(module, exports, __webpack_require__) {
778
774
 
@@ -2470,6 +2466,13 @@ module.exports = __webpack_require__("8bbf");
2470
2466
 
2471
2467
  /***/ }),
2472
2468
 
2469
+ /***/ "2a5b":
2470
+ /***/ (function(module, exports, __webpack_require__) {
2471
+
2472
+ // extracted by mini-css-extract-plugin
2473
+
2474
+ /***/ }),
2475
+
2473
2476
  /***/ "2a5e":
2474
2477
  /***/ (function(module, exports, __webpack_require__) {
2475
2478
 
@@ -2589,17 +2592,6 @@ exports.default = {
2589
2592
  }
2590
2593
  };
2591
2594
 
2592
- /***/ }),
2593
-
2594
- /***/ "2ce7":
2595
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
2596
-
2597
- "use strict";
2598
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_id_02838f59_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("f0e8");
2599
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_id_02838f59_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_id_02838f59_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
2600
- /* unused harmony reexport * */
2601
-
2602
-
2603
2595
  /***/ }),
2604
2596
 
2605
2597
  /***/ "2ff9":
@@ -2968,6 +2960,13 @@ var removeResizeListener = exports.removeResizeListener = function removeResizeL
2968
2960
 
2969
2961
  /***/ }),
2970
2962
 
2963
+ /***/ "4136":
2964
+ /***/ (function(module, exports, __webpack_require__) {
2965
+
2966
+ // extracted by mini-css-extract-plugin
2967
+
2968
+ /***/ }),
2969
+
2971
2970
  /***/ "417f":
2972
2971
  /***/ (function(module, exports, __webpack_require__) {
2973
2972
 
@@ -3392,6 +3391,13 @@ module.exports = require("core-js/modules/es.array.sort.js");
3392
3391
 
3393
3392
  /***/ }),
3394
3393
 
3394
+ /***/ "4c7f":
3395
+ /***/ (function(module, exports) {
3396
+
3397
+ module.exports = require("core-js/modules/es.array.find-index.js");
3398
+
3399
+ /***/ }),
3400
+
3395
3401
  /***/ "4ccb":
3396
3402
  /***/ (function(module, exports) {
3397
3403
 
@@ -5582,6 +5588,17 @@ src_select.install = function (Vue) {
5582
5588
 
5583
5589
  /******/ });
5584
5590
 
5591
+ /***/ }),
5592
+
5593
+ /***/ "4efe":
5594
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
5595
+
5596
+ "use strict";
5597
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_29a4f879_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("e57c");
5598
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_29a4f879_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_29a4f879_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
5599
+ /* unused harmony reexport * */
5600
+
5601
+
5585
5602
  /***/ }),
5586
5603
 
5587
5604
  /***/ "5128":
@@ -5831,7 +5848,6 @@ var _typeof = __webpack_require__("7037").default;
5831
5848
  __webpack_require__("2439");
5832
5849
  __webpack_require__("db0a");
5833
5850
  __webpack_require__("ea64");
5834
- __webpack_require__("f3b8");
5835
5851
  var THREE = __webpack_require__("9206").THREE;
5836
5852
  // Current model's associate data, data fields, external link, nerve map
5837
5853
  // informations,
@@ -5846,26 +5862,20 @@ var OrgansSceneData = function OrgansSceneData() {
5846
5862
  this.currentTime = 0.0;
5847
5863
  this.timeVarying = false;
5848
5864
  };
5849
- var PrimitiveData = function PrimitiveData() {
5850
- this.geometries = [];
5851
- this.lines = [];
5852
- this.glyphsets = [];
5853
- this.pointsets = [];
5854
- };
5855
5865
 
5856
- /**
5857
- * Viewer of 3D-organs models. Users can toggle on/off different views. Data is
5858
- * displayed instead if models are not available.
5859
- *
5860
- * @class
5861
- * @param {PJP.ModelsLoader}
5862
- * ModelsLoaderIn - defined in modelsLoade.js, providing locations of
5863
- * files.
5864
- * @param {String}
5865
- * PanelName - Id of the target element to create the
5866
- * {@link PJP.OrgansViewer} on.
5867
- * @author Alan Wu
5868
- * @returns {PJP.OrgansViewer}
5866
+ /**
5867
+ * Viewer of 3D-organs models. Users can toggle on/off different views. Data is
5868
+ * displayed instead if models are not available.
5869
+ *
5870
+ * @class
5871
+ * @param {PJP.ModelsLoader}
5872
+ * ModelsLoaderIn - defined in modelsLoade.js, providing locations of
5873
+ * files.
5874
+ * @param {String}
5875
+ * PanelName - Id of the target element to create the
5876
+ * {@link PJP.OrgansViewer} on.
5877
+ * @author Alan Wu
5878
+ * @returns {PJP.OrgansViewer}
5869
5879
  */
5870
5880
  var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5871
5881
  var _this2 = this;
@@ -5873,7 +5883,6 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5873
5883
  var _this = this;
5874
5884
  var pickerScene = undefined;
5875
5885
  this.sceneData = new OrgansSceneData();
5876
- this.primitiveData = new PrimitiveData();
5877
5886
  var timeChangedCallbacks = new Array();
5878
5887
  var sceneChangedCallbacks = new Array();
5879
5888
  var organPartAddedCallbacks = new Array();
@@ -5885,8 +5894,8 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5885
5894
  return _this.sceneData;
5886
5895
  };
5887
5896
 
5888
- /**
5889
- * Used to update internal timer in scene when time slider has changed.
5897
+ /**
5898
+ * Used to update internal timer in scene when time slider has changed.
5890
5899
  */
5891
5900
  this.updateTime = function (value) {
5892
5901
  var duration = 6000;
@@ -5899,8 +5908,8 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5899
5908
  _this.sceneData.currentTime = value;
5900
5909
  };
5901
5910
 
5902
- /**
5903
- * Update the time slider and other renderers/scenes when time has changed.
5911
+ /**
5912
+ * Update the time slider and other renderers/scenes when time has changed.
5904
5913
  */
5905
5914
  var preRenderTimeUpdate = function preRenderTimeUpdate() {
5906
5915
  var duration = 3000;
@@ -5967,8 +5976,8 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
5967
5976
  };
5968
5977
  };
5969
5978
 
5970
- /**
5971
- * Add a callback which will be called when time has changed
5979
+ /**
5980
+ * Add a callback which will be called when time has changed
5972
5981
  */
5973
5982
  this.addTimeChangedCallback = function (callback) {
5974
5983
  if (_typeof(callback === "function")) timeChangedCallbacks.push(callback);
@@ -6004,11 +6013,16 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6004
6013
  var id = undefined;
6005
6014
  var intersectedObject = undefined;
6006
6015
  if (intersected !== undefined) {
6016
+ var marker = false;
6007
6017
  if (intersected.object.userData && intersected.object.userData.isMarker) {
6018
+ marker = true;
6008
6019
  intersectedObject = intersected.object.userData.parent.morph;
6009
6020
  } else {
6010
6021
  intersectedObject = intersected.object;
6011
6022
  }
6023
+ try {
6024
+ intersectedObject.userData.userData.annotation.data.lastActionOnMarker = marker;
6025
+ } finally {}
6012
6026
  if (intersectedObject) {
6013
6027
  if (intersectedObject.name) {
6014
6028
  id = intersectedObject.name;
@@ -6026,12 +6040,12 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6026
6040
  };
6027
6041
  };
6028
6042
 
6029
- /**
6030
- * Callback function when a pickable object has been picked. It will then
6031
- * call functions in tissueViewer and cellPanel to show corresponding
6032
- * informations.
6033
- *
6034
- * @callback
6043
+ /**
6044
+ * Callback function when a pickable object has been picked. It will then
6045
+ * call functions in tissueViewer and cellPanel to show corresponding
6046
+ * informations.
6047
+ *
6048
+ * @callback
6035
6049
  */
6036
6050
  var _pickingCallback = function _pickingCallback() {
6037
6051
  return function (intersects, window_x, window_y) {
@@ -6054,10 +6068,10 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6054
6068
  };
6055
6069
  };
6056
6070
 
6057
- /**
6058
- * Callback function when a pickable object has been hovered over.
6059
- *
6060
- * @callback
6071
+ /**
6072
+ * Callback function when a pickable object has been hovered over.
6073
+ *
6074
+ * @callback
6061
6075
  */
6062
6076
  var _hoverCallback = function _hoverCallback() {
6063
6077
  return function (intersects, window_x, window_y) {
@@ -6104,40 +6118,40 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6104
6118
  }
6105
6119
  };
6106
6120
 
6107
- /**
6108
- * Change visibility for parts of the current scene.
6121
+ /**
6122
+ * Change visibility for parts of the current scene.
6109
6123
  */
6110
6124
  this.changeGeometriesVisibility = function (name, value) {
6111
6125
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'geometries');
6112
6126
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'geometries');
6113
6127
  };
6114
6128
 
6115
- /**
6116
- * Change visibility for parts of the current scene.
6129
+ /**
6130
+ * Change visibility for parts of the current scene.
6117
6131
  */
6118
6132
  this.changeGlyphsetsVisibility = function (name, value) {
6119
6133
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'glyphsets');
6120
6134
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'glyphsets');
6121
6135
  };
6122
6136
 
6123
- /**
6124
- * Change visibility for parts of the current scene.
6137
+ /**
6138
+ * Change visibility for parts of the current scene.
6125
6139
  */
6126
6140
  this.changeLinesVisibility = function (name, value) {
6127
6141
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'lines');
6128
6142
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'lines');
6129
6143
  };
6130
6144
 
6131
- /**
6132
- * Change visibility for parts of the current scene.
6145
+ /**
6146
+ * Change visibility for parts of the current scene.
6133
6147
  */
6134
6148
  this.changePointsetsVisibility = function (name, value) {
6135
6149
  changeOrganPartsVisibilityForScene(_this.scene, name, value, 'pointsets');
6136
6150
  if (pickerScene) changeOrganPartsVisibilityForScene(pickerScene, name, value, 'pointsets');
6137
6151
  };
6138
6152
 
6139
- /**
6140
- * Change visibility for parts of the current scene.
6153
+ /**
6154
+ * Change visibility for parts of the current scene.
6141
6155
  */
6142
6156
  this.changeOrganPartsVisibility = function (name, value, typeIn) {
6143
6157
  var type = "all";
@@ -6157,23 +6171,11 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6157
6171
  internalRenderer.setClearColor(colour, 1);
6158
6172
  }
6159
6173
  };
6160
- var addOrganPartToPrimitiveData = function addOrganPartToPrimitiveData(zincObject) {
6161
- if (zincObject.isGeometry) {
6162
- _this.primitiveData.geometries.push(zincObject);
6163
- } else if (zincObject.isGlyphset) {
6164
- _this.primitiveData.glyphsets.push(zincObject);
6165
- } else if (zincObject.isLines) {
6166
- _this.primitiveData.lines.push(zincObject);
6167
- } else if (zincObject.isPointset) {
6168
- _this.primitiveData.pointsets.push(zincObject);
6169
- }
6170
- };
6171
6174
  var addOrganPart = function addOrganPart(systemName, partName, useDefautColour, zincObject) {
6172
6175
  for (var i = 0; i < organPartAddedCallbacks.length; i++) {
6173
6176
  organPartAddedCallbacks[i](zincObject, _this.scene.isTimeVarying());
6174
6177
  }
6175
6178
  if (useDefautColour) modelsLoader.setGeometryColour(zincObject, systemName, partName);
6176
- addOrganPartToPrimitiveData(zincObject);
6177
6179
  var annotation = new (__webpack_require__("984d").annotation)();
6178
6180
  var region = zincObject.region.getFullPath();
6179
6181
  annotation.data = {
@@ -6181,14 +6183,16 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6181
6183
  system: systemName,
6182
6184
  part: partName,
6183
6185
  group: zincObject.groupName,
6184
- region: region
6186
+ region: region,
6187
+ uuid: zincObject.uuid,
6188
+ lastActionOnMarker: false
6185
6189
  };
6186
6190
  zincObject.userData["annotation"] = annotation;
6187
6191
  };
6188
6192
 
6189
- /**
6190
- * New organs geometry has been added to the scene, add UIs and make
6191
- * sure the viewport is correct.
6193
+ /**
6194
+ * New organs geometry has been added to the scene, add UIs and make
6195
+ * sure the viewport is correct.
6192
6196
  */
6193
6197
  var _addOrganPartCallback = function _addOrganPartCallback(systemName, partName, useDefautColour) {
6194
6198
  return function (zincObject) {
@@ -6209,9 +6213,9 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6209
6213
  };
6210
6214
  };
6211
6215
 
6212
- /**
6213
- * Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
6214
- * other activities of the organs.
6216
+ /**
6217
+ * Toggle data field displays. Data fields displays flow/pressure and <button @click="play">Play</button>
6218
+ * other activities of the organs.
6215
6219
  */
6216
6220
  this.updateFieldvisibility = function (dataFields, value) {
6217
6221
  for (var i = 0; i < dataFields.length; i++) {
@@ -6233,11 +6237,11 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6233
6237
  }
6234
6238
  };
6235
6239
 
6236
- /**
6237
- * Return an array containing name(s) of species that also contains the
6238
- * currently displayed organs.
6239
- *
6240
- * @returns {Array} containing species name
6240
+ /**
6241
+ * Return an array containing name(s) of species that also contains the
6242
+ * currently displayed organs.
6243
+ *
6244
+ * @returns {Array} containing species name
6241
6245
  */
6242
6246
  this.getAvailableSpecies = function (currentSpecies, currentSystem, currentPart) {
6243
6247
  var availableSpecies = new Array();
@@ -6262,10 +6266,6 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6262
6266
  _this.sceneData.currentSystem = systemName;
6263
6267
  _this.sceneData.currentPart = partName;
6264
6268
  _this.sceneData.currentTime = 0.0;
6265
- _this.primitiveData.geometries.splice(0);
6266
- _this.primitiveData.lines.splice(0);
6267
- _this.primitiveData.glyphsets.splice(0);
6268
- _this.primitiveData.pointsets.splice(0);
6269
6269
  _this.sceneData.timeVarying = false;
6270
6270
  // This is used as title
6271
6271
  var name = "";
@@ -6363,11 +6363,11 @@ var OrgansViewer = function OrgansViewer(ModelsLoaderIn) {
6363
6363
  return false;
6364
6364
  };
6365
6365
 
6366
- /**
6367
- * initialise loading of the html layout for the organs panel, this is
6368
- * called when the {@link PJP.OrgansViewer} is created.
6369
- *
6370
- * @async
6366
+ /**
6367
+ * initialise loading of the html layout for the organs panel, this is
6368
+ * called when the {@link PJP.OrgansViewer} is created.
6369
+ *
6370
+ * @async
6371
6371
  */
6372
6372
  var initialise = function initialise() {
6373
6373
  _this.initialiseRenderer(undefined);
@@ -6488,13 +6488,6 @@ exports.default = {
6488
6488
 
6489
6489
  /***/ }),
6490
6490
 
6491
- /***/ "5682":
6492
- /***/ (function(module, exports, __webpack_require__) {
6493
-
6494
- // extracted by mini-css-extract-plugin
6495
-
6496
- /***/ }),
6497
-
6498
6491
  /***/ "5924":
6499
6492
  /***/ (function(module, exports, __webpack_require__) {
6500
6493
 
@@ -6734,17 +6727,6 @@ var isInContainer = exports.isInContainer = function isInContainer(el, container
6734
6727
  return elRect.top < containerRect.bottom && elRect.bottom > containerRect.top && elRect.right > containerRect.left && elRect.left < containerRect.right;
6735
6728
  };
6736
6729
 
6737
- /***/ }),
6738
-
6739
- /***/ "5956":
6740
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
6741
-
6742
- "use strict";
6743
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_id_5a5e9e67_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("12d1");
6744
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_id_5a5e9e67_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_id_5a5e9e67_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
6745
- /* unused harmony reexport * */
6746
-
6747
-
6748
6730
  /***/ }),
6749
6731
 
6750
6732
  /***/ "5a3b":
@@ -6766,13 +6748,6 @@ module.exports = _arrayLikeToArray, module.exports.__esModule = true, module.exp
6766
6748
 
6767
6749
  /***/ }),
6768
6750
 
6769
- /***/ "5db0":
6770
- /***/ (function(module, exports, __webpack_require__) {
6771
-
6772
- // extracted by mini-css-extract-plugin
6773
-
6774
- /***/ }),
6775
-
6776
6751
  /***/ "5e32":
6777
6752
  /***/ (function(module, exports, __webpack_require__) {
6778
6753
 
@@ -6787,11 +6762,11 @@ var _toConsumableArray = __webpack_require__("448a").default;
6787
6762
  __webpack_require__("2439");
6788
6763
  var THREE = __webpack_require__("9206").THREE;
6789
6764
 
6790
- /**
6791
- * This module manages highlighted and selected objects in 3D modules.
6792
- *
6793
- * @class
6794
- * @returns {exports.GraphicsHighlight}
6765
+ /**
6766
+ * This module manages highlighted and selected objects in 3D modules.
6767
+ *
6768
+ * @class
6769
+ * @returns {exports.GraphicsHighlight}
6795
6770
  */
6796
6771
  exports.GraphicsHighlight = function () {
6797
6772
  var currentHighlightedObjects = [];
@@ -8174,6 +8149,17 @@ var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol
8174
8149
 
8175
8150
  module.exports = require("core-js/modules/es.string.replace.js");
8176
8151
 
8152
+ /***/ }),
8153
+
8154
+ /***/ "6514":
8155
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
8156
+
8157
+ "use strict";
8158
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_id_718c348c_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("4136");
8159
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_id_718c348c_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_1_id_718c348c_prod_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
8160
+ /* unused harmony reexport * */
8161
+
8162
+
8177
8163
  /***/ }),
8178
8164
 
8179
8165
  /***/ "6611":
@@ -11213,6 +11199,13 @@ exports.default = {
11213
11199
 
11214
11200
  /***/ }),
11215
11201
 
11202
+ /***/ "6de0":
11203
+ /***/ (function(module, exports) {
11204
+
11205
+ module.exports = require("core-js/modules/es.object.get-own-property-descriptor.js");
11206
+
11207
+ /***/ }),
11208
+
11216
11209
  /***/ "7037":
11217
11210
  /***/ (function(module, exports, __webpack_require__) {
11218
11211
 
@@ -11243,13 +11236,6 @@ module.exports = require("core-js/modules/web.url-search-params.js");
11243
11236
 
11244
11237
  /***/ }),
11245
11238
 
11246
- /***/ "7209":
11247
- /***/ (function(module, exports, __webpack_require__) {
11248
-
11249
- // extracted by mini-css-extract-plugin
11250
-
11251
- /***/ }),
11252
-
11253
11239
  /***/ "72aa":
11254
11240
  /***/ (function(module, exports, __webpack_require__) {
11255
11241
 
@@ -14149,6 +14135,24 @@ module.exports = __webpack_require__("8bbf");
14149
14135
 
14150
14136
  /******/ });
14151
14137
 
14138
+ /***/ }),
14139
+
14140
+ /***/ "7664":
14141
+ /***/ (function(module, exports) {
14142
+
14143
+ module.exports = require("core-js/modules/es.object.get-own-property-descriptors.js");
14144
+
14145
+ /***/ }),
14146
+
14147
+ /***/ "79d6":
14148
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
14149
+
14150
+ "use strict";
14151
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_id_29a4f879_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("1613");
14152
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_id_29a4f879_prod_lang_css___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_7_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_7_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_7_oneOf_1_2_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_1_id_29a4f879_prod_lang_css___WEBPACK_IMPORTED_MODULE_0__);
14153
+ /* unused harmony reexport * */
14154
+
14155
+
14152
14156
  /***/ }),
14153
14157
 
14154
14158
  /***/ "7a0f":
@@ -15069,16 +15073,17 @@ var isMac = exports.isMac = function isMac() {
15069
15073
  /***/ (function(module, exports, __webpack_require__) {
15070
15074
 
15071
15075
  var _readOnlyError = __webpack_require__("da60").default;
15076
+ __webpack_require__("4391");
15072
15077
  __webpack_require__("db0a");
15073
15078
  __webpack_require__("2439");
15074
15079
  __webpack_require__("97d3");
15075
15080
  __webpack_require__("13e3");
15076
15081
  var THREE = __webpack_require__("9206").THREE;
15077
15082
 
15078
- /**
15079
- * Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
15080
- * @param {String} elementID - id of the target dom element.
15081
- * @returns {Zinc.Renderer}
15083
+ /**
15084
+ * Create a {@link Zinc.Renderer} on the dom element with corresponding elementID.
15085
+ * @param {String} elementID - id of the target dom element.
15086
+ * @returns {Zinc.Renderer}
15082
15087
  */
15083
15088
  var createRenderer = function createRenderer() {
15084
15089
  var WEBGL = __webpack_require__("cf41").WEBGL;
@@ -15114,18 +15119,21 @@ var RendererModule = function RendererModule() {
15114
15119
  this.liveUpdatesObjects = undefined;
15115
15120
  };
15116
15121
  RendererModule.prototype = Object.create(__webpack_require__("6aa6").BaseModule.prototype);
15117
-
15118
- /**
15119
- * This function will get the the first intersected object with name or
15120
- * the first glyph object with name.
15121
- */
15122
15122
  RendererModule.prototype.getIntersectedObject = function (intersects) {
15123
15123
  if (intersects) {
15124
- for (var i = 0; i < intersects.length; i++) {
15125
- if (intersects[i] !== undefined) {
15126
- if (intersects[i].object && intersects[i].object.userData && intersects[i].object.userData.isZincObject && (intersects[i].object.name && intersects[i].object.name !== "" || intersects[i].object.userData.isMarker)) return intersects[i];
15124
+ var typeMap = intersects.map(function (intersect) {
15125
+ if (intersect && intersect.object && intersect.object.userData) {
15126
+ if (intersect.object.userData.isMarker) {
15127
+ return 1;
15128
+ } else if (intersect.object.name && intersect.object.userData.isZincObject) {
15129
+ return 2;
15130
+ }
15127
15131
  }
15128
- }
15132
+ return 0;
15133
+ });
15134
+ var i = typeMap.indexOf(1);
15135
+ i = i > -1 ? i : typeMap.indexOf(2);
15136
+ return intersects[i];
15129
15137
  }
15130
15138
  return undefined;
15131
15139
  };
@@ -15180,9 +15188,10 @@ RendererModule.prototype.setupLiveCoordinates = function (zincObjects) {
15180
15188
  var boundingBox = this.scene.getBoundingBoxOfZincObjects(zincObjects);
15181
15189
  var newSelectedCenter = new THREE.Vector3();
15182
15190
  boundingBox.getCenter(newSelectedCenter);
15183
- if (this.selectedCenter == undefined) this.selectedCenter = newSelectedCenter;else {
15184
- this.selectedCenter.x = newSelectedCenter.x;
15185
- this.selectedCenter.y = newSelectedCenter.y;
15191
+ if (this.selectedCenter == undefined) {
15192
+ this.selectedCenter = newSelectedCenter;
15193
+ } else {
15194
+ this.selectedCenter.copy(newSelectedCenter);
15186
15195
  }
15187
15196
  } else {
15188
15197
  this.selectedCenter = undefined;
@@ -15266,31 +15275,31 @@ RendererModule.prototype.viewAll = function () {
15266
15275
  if (this.zincRenderer) this.zincRenderer.viewAll();
15267
15276
  };
15268
15277
 
15269
- /**
15270
- * Start the animation and let the renderer to processs with
15271
- * time progression
15278
+ /**
15279
+ * Start the animation and let the renderer to processs with
15280
+ * time progression
15272
15281
  */
15273
15282
  RendererModule.prototype.playAnimation = function (flag) {
15274
15283
  if (this.zincRenderer) this.zincRenderer.playAnimation = flag;
15275
15284
  };
15276
15285
 
15277
- /**
15278
- * Set the speed of playback
15286
+ /**
15287
+ * Set the speed of playback
15279
15288
  */
15280
15289
  RendererModule.prototype.setPlayRate = function (value) {
15281
15290
  if (this.zincRenderer) this.zincRenderer.setPlayRate(value);
15282
15291
  };
15283
15292
 
15284
- /**
15285
- * Get the speed of playback
15293
+ /**
15294
+ * Get the speed of playback
15286
15295
  */
15287
15296
  RendererModule.prototype.getPlayRate = function (value) {
15288
15297
  if (this.zincRenderer) return this.zincRenderer.getPlayRate();else return 0.0;
15289
15298
  };
15290
15299
 
15291
- /** Initialise everything in the renderer, including the 3D renderer,
15292
- * and picker for the 3D renderer.
15293
- *
15300
+ /** Initialise everything in the renderer, including the 3D renderer,
15301
+ * and picker for the 3D renderer.
15302
+ *
15294
15303
  */
15295
15304
  RendererModule.prototype.initialiseRenderer = function (displayAreaIn) {
15296
15305
  if (this.zincRenderer === undefined || this.rendererContainer === undefined) {
@@ -17071,17 +17080,6 @@ var RE_NARGS = /(%|)\{([0-9a-zA-Z_]+)\}/g;
17071
17080
 
17072
17081
  module.exports = require("resize-observer-polyfill");
17073
17082
 
17074
- /***/ }),
17075
-
17076
- /***/ "a1fc":
17077
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
17078
-
17079
- "use strict";
17080
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_5a5e9e67_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5db0");
17081
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_5a5e9e67_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_TreeControls_vue_vue_type_style_index_0_id_5a5e9e67_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
17082
- /* unused harmony reexport * */
17083
-
17084
-
17085
17083
  /***/ }),
17086
17084
 
17087
17085
  /***/ "a578":
@@ -17439,6 +17437,17 @@ var isDefined = exports.isDefined = function isDefined(val) {
17439
17437
 
17440
17438
  module.exports = require("core-js/modules/es.object.assign.js");
17441
17439
 
17440
+ /***/ }),
17441
+
17442
+ /***/ "ad4c":
17443
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
17444
+
17445
+ "use strict";
17446
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_0cbe500c_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("0a7d");
17447
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_0cbe500c_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldTooltip_vue_vue_type_style_index_0_id_0cbe500c_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
17448
+ /* unused harmony reexport * */
17449
+
17450
+
17442
17451
  /***/ }),
17443
17452
 
17444
17453
  /***/ "adec":
@@ -17588,6 +17597,13 @@ exports.default = {
17588
17597
 
17589
17598
  /***/ }),
17590
17599
 
17600
+ /***/ "b7ac":
17601
+ /***/ (function(module, exports) {
17602
+
17603
+ module.exports = require("core-js/modules/es.array.reduce.js");
17604
+
17605
+ /***/ }),
17606
+
17591
17607
  /***/ "b94f":
17592
17608
  /***/ (function(module, exports) {
17593
17609
 
@@ -18109,6 +18125,13 @@ module.exports = require("core-js/modules/es.regexp.exec.js");
18109
18125
 
18110
18126
  /***/ }),
18111
18127
 
18128
+ /***/ "ccb0":
18129
+ /***/ (function(module, exports) {
18130
+
18131
+ module.exports = require("core-js/modules/es.array.concat.js");
18132
+
18133
+ /***/ }),
18134
+
18112
18135
  /***/ "ccb3":
18113
18136
  /***/ (function(module, exports) {
18114
18137
 
@@ -18121,9 +18144,9 @@ module.exports = require("core-js/modules/es.number.to-fixed.js");
18121
18144
 
18122
18145
  __webpack_require__("c8a6");
18123
18146
  __webpack_require__("6378");
18124
- /**
18125
- * @author alteredq / http://alteredqualia.com/
18126
- * @author mr.doob / http://mrdoob.com/
18147
+ /**
18148
+ * @author alteredq / http://alteredqualia.com/
18149
+ * @author mr.doob / http://mrdoob.com/
18127
18150
  */
18128
18151
 
18129
18152
  exports.WEBGL = {
@@ -19260,6 +19283,13 @@ tab_pane.install = function (Vue) {
19260
19283
 
19261
19284
  /***/ }),
19262
19285
 
19286
+ /***/ "e01a":
19287
+ /***/ (function(module, exports) {
19288
+
19289
+ module.exports = require("core-js/modules/es.object.values.js");
19290
+
19291
+ /***/ }),
19292
+
19263
19293
  /***/ "e450":
19264
19294
  /***/ (function(module, exports, __webpack_require__) {
19265
19295
 
@@ -20017,6 +20047,13 @@ input_number.install = function (Vue) {
20017
20047
 
20018
20048
  /***/ }),
20019
20049
 
20050
+ /***/ "e57c":
20051
+ /***/ (function(module, exports, __webpack_require__) {
20052
+
20053
+ // extracted by mini-css-extract-plugin
20054
+
20055
+ /***/ }),
20056
+
20020
20057
  /***/ "e612":
20021
20058
  /***/ (function(module, exports, __webpack_require__) {
20022
20059
 
@@ -20771,6 +20808,17 @@ module.exports = require("core-js/modules/es.array.slice.js");
20771
20808
 
20772
20809
  module.exports = require("core-js/modules/es.object.keys.js");
20773
20810
 
20811
+ /***/ }),
20812
+
20813
+ /***/ "ee47":
20814
+ /***/ (function(module, __webpack_exports__, __webpack_require__) {
20815
+
20816
+ "use strict";
20817
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_718c348c_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("2a5b");
20818
+ /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_718c348c_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_718c348c_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
20819
+ /* unused harmony reexport * */
20820
+
20821
+
20774
20822
  /***/ }),
20775
20823
 
20776
20824
  /***/ "eedf":
@@ -21268,13 +21316,6 @@ exports.default = {
21268
21316
 
21269
21317
  /***/ }),
21270
21318
 
21271
- /***/ "f0e8":
21272
- /***/ (function(module, exports, __webpack_require__) {
21273
-
21274
- // extracted by mini-css-extract-plugin
21275
-
21276
- /***/ }),
21277
-
21278
21319
  /***/ "f3ad":
21279
21320
  /***/ (function(module, exports, __webpack_require__) {
21280
21321
 
@@ -22283,17 +22324,6 @@ module.exports = __webpack_require__("7f4d");
22283
22324
 
22284
22325
  module.exports = require("core-js/modules/es.array.splice.js");
22285
22326
 
22286
- /***/ }),
22287
-
22288
- /***/ "f4b0":
22289
- /***/ (function(module, __webpack_exports__, __webpack_require__) {
22290
-
22291
- "use strict";
22292
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_02838f59_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("5682");
22293
- /* harmony import */ var _node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_02838f59_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_mini_css_extract_plugin_dist_loader_js_ref_9_oneOf_1_0_node_modules_css_loader_dist_cjs_js_ref_9_oneOf_1_1_node_modules_vue_loader_lib_loaders_stylePostLoader_js_node_modules_postcss_loader_src_index_js_ref_9_oneOf_1_2_node_modules_sass_loader_dist_cjs_js_ref_9_oneOf_1_3_node_modules_cache_loader_dist_cjs_js_ref_1_0_node_modules_vue_loader_lib_index_js_vue_loader_options_ScaffoldVuer_vue_vue_type_style_index_0_id_02838f59_prod_scoped_true_lang_scss___WEBPACK_IMPORTED_MODULE_0__);
22294
- /* unused harmony reexport * */
22295
-
22296
-
22297
22327
  /***/ }),
22298
22328
 
22299
22329
  /***/ "f4f9":
@@ -22351,7 +22381,7 @@ if (typeof window !== 'undefined') {
22351
22381
  // Indicate to webpack that this file can be concatenated
22352
22382
  /* harmony default export */ var setPublicPath = (null);
22353
22383
 
22354
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d7d18b5-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldVuer.vue?vue&type=template&id=02838f59&scoped=true&
22384
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e65820-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldVuer.vue?vue&type=template&id=718c348c&scoped=true&
22355
22385
  var render = function render() {
22356
22386
  var _vm = this,
22357
22387
  _c = _vm._self._c;
@@ -22836,7 +22866,7 @@ var render = function render() {
22836
22866
  };
22837
22867
  var staticRenderFns = [];
22838
22868
 
22839
- // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=02838f59&scoped=true&
22869
+ // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=template&id=718c348c&scoped=true&
22840
22870
 
22841
22871
  // EXTERNAL MODULE: ./node_modules/element-ui/lib/theme-chalk/tabs.css
22842
22872
  var tabs = __webpack_require__("075a");
@@ -22911,15 +22941,18 @@ var theme_chalk_button = __webpack_require__("1951");
22911
22941
  var lib_button = __webpack_require__("eedf");
22912
22942
  var lib_button_default = /*#__PURE__*/__webpack_require__.n(lib_button);
22913
22943
 
22944
+ // EXTERNAL MODULE: external "core-js/modules/es.object.to-string.js"
22945
+ var es_object_to_string_js_ = __webpack_require__("97d3");
22946
+
22947
+ // EXTERNAL MODULE: external "core-js/modules/web.dom-collections.for-each.js"
22948
+ var web_dom_collections_for_each_js_ = __webpack_require__("13e3");
22949
+
22914
22950
  // EXTERNAL MODULE: external "core-js/modules/es.number.to-fixed.js"
22915
22951
  var es_number_to_fixed_js_ = __webpack_require__("ccb3");
22916
22952
 
22917
22953
  // EXTERNAL MODULE: external "core-js/modules/es.array.iterator.js"
22918
22954
  var es_array_iterator_js_ = __webpack_require__("4ccb");
22919
22955
 
22920
- // EXTERNAL MODULE: external "core-js/modules/es.object.to-string.js"
22921
- var es_object_to_string_js_ = __webpack_require__("97d3");
22922
-
22923
22956
  // EXTERNAL MODULE: external "core-js/modules/es.string.iterator.js"
22924
22957
  var es_string_iterator_js_ = __webpack_require__("9bb5");
22925
22958
 
@@ -22932,18 +22965,9 @@ var web_url_js_ = __webpack_require__("b94f");
22932
22965
  // EXTERNAL MODULE: external "core-js/modules/web.url-search-params.js"
22933
22966
  var web_url_search_params_js_ = __webpack_require__("712c");
22934
22967
 
22935
- // EXTERNAL MODULE: external "core-js/modules/web.dom-collections.for-each.js"
22936
- var web_dom_collections_for_each_js_ = __webpack_require__("13e3");
22937
-
22938
22968
  // EXTERNAL MODULE: external "core-js/modules/es.array.push.js"
22939
22969
  var es_array_push_js_ = __webpack_require__("2439");
22940
22970
 
22941
- // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec.js"
22942
- var es_regexp_exec_js_ = __webpack_require__("c8a6");
22943
-
22944
- // EXTERNAL MODULE: external "core-js/modules/es.string.search.js"
22945
- var es_string_search_js_ = __webpack_require__("1c32");
22946
-
22947
22971
  // EXTERNAL MODULE: external "core-js/modules/es.object.keys.js"
22948
22972
  var es_object_keys_js_ = __webpack_require__("ea64");
22949
22973
 
@@ -22951,7 +22975,7 @@ var es_object_keys_js_ = __webpack_require__("ea64");
22951
22975
  var external_vue_ = __webpack_require__("8bbf");
22952
22976
  var external_vue_default = /*#__PURE__*/__webpack_require__.n(external_vue_);
22953
22977
 
22954
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d7d18b5-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OpacityControls.vue?vue&type=template&id=4c00a30f&scoped=true&
22978
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e65820-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/OpacityControls.vue?vue&type=template&id=4c00a30f&scoped=true&
22955
22979
  var OpacityControlsvue_type_template_id_4c00a30f_scoped_true_render = function render() {
22956
22980
  var _vm = this,
22957
22981
  _c = _vm._self._c;
@@ -23098,8 +23122,8 @@ external_vue_default.a.use(lib_icon_default.a);
23098
23122
  external_vue_default.a.use(lib_main_default.a);
23099
23123
  external_vue_default.a.use(lib_slider_default.a);
23100
23124
 
23101
- /**
23102
- * A component to control the opacity of the target object.
23125
+ /**
23126
+ * A component to control the opacity of the target object.
23103
23127
  */
23104
23128
  /* harmony default export */ var OpacityControlsvue_type_script_lang_js_ = ({
23105
23129
  name: "OpacityControls",
@@ -23258,8 +23282,8 @@ var component = normalizeComponent(
23258
23282
  )
23259
23283
 
23260
23284
  /* harmony default export */ var OpacityControls = (component.exports);
23261
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d7d18b5-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldTooltip.vue?vue&type=template&id=01613535&scoped=true&
23262
- var ScaffoldTooltipvue_type_template_id_01613535_scoped_true_render = function render() {
23285
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e65820-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/ScaffoldTooltip.vue?vue&type=template&id=0cbe500c&scoped=true&
23286
+ var ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_render = function render() {
23263
23287
  var _vm = this,
23264
23288
  _c = _vm._self._c;
23265
23289
  return _c('div', {
@@ -23281,21 +23305,15 @@ var ScaffoldTooltipvue_type_template_id_01613535_scoped_true_render = function r
23281
23305
  },
23282
23306
  expression: "display"
23283
23307
  }
23284
- }, [_c('div', {
23308
+ }, [[_c('div', {
23285
23309
  staticClass: "tooltip-text"
23286
23310
  }, [_vm._v(_vm._s(_vm.label))]), _vm.region ? _c('div', {
23287
23311
  staticClass: "tooltip-text"
23288
- }, [_vm._v("Region: " + _vm._s(_vm.region))]) : _vm._e(), _c('i', {
23289
- directives: [{
23290
- name: "popover",
23291
- rawName: "v-popover:tooltip",
23292
- arg: "tooltip"
23293
- }]
23294
- })])], 1);
23312
+ }, [_vm._v("Region: " + _vm._s(_vm.region))]) : _vm._e()]], 2)], 1);
23295
23313
  };
23296
- var ScaffoldTooltipvue_type_template_id_01613535_scoped_true_staticRenderFns = [];
23314
+ var ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_staticRenderFns = [];
23297
23315
 
23298
- // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=template&id=01613535&scoped=true&
23316
+ // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=template&id=0cbe500c&scoped=true&
23299
23317
 
23300
23318
  // EXTERNAL MODULE: external "core-js/modules/es.number.constructor.js"
23301
23319
  var es_number_constructor_js_ = __webpack_require__("f989");
@@ -23312,8 +23330,8 @@ var es_number_constructor_js_ = __webpack_require__("f989");
23312
23330
  locale_default.a.use(en_default.a);
23313
23331
  external_vue_default.a.use(lib_popover_default.a);
23314
23332
 
23315
- /**
23316
- * A component to control the opacity of the target object.
23333
+ /**
23334
+ * A component to control the opacity of the target object.
23317
23335
  */
23318
23336
  /* harmony default export */ var ScaffoldTooltipvue_type_script_lang_js_ = ({
23319
23337
  name: "ScaffoldTooltip",
@@ -23350,8 +23368,9 @@ external_vue_default.a.use(lib_popover_default.a);
23350
23368
  if (this.region) {
23351
23369
  yOffset = 55;
23352
23370
  }
23371
+ var x = this.x - 40;
23353
23372
  return {
23354
- left: this.x + "px",
23373
+ left: x + "px",
23355
23374
  top: this.y - yOffset + "px"
23356
23375
  };
23357
23376
  }
@@ -23373,8 +23392,8 @@ external_vue_default.a.use(lib_popover_default.a);
23373
23392
  });
23374
23393
  // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=script&lang=js&
23375
23394
  /* harmony default export */ var components_ScaffoldTooltipvue_type_script_lang_js_ = (ScaffoldTooltipvue_type_script_lang_js_);
23376
- // EXTERNAL MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=style&index=0&id=01613535&prod&scoped=true&lang=scss&
23377
- var ScaffoldTooltipvue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss_ = __webpack_require__("1292");
23395
+ // EXTERNAL MODULE: ./src/components/ScaffoldTooltip.vue?vue&type=style&index=0&id=0cbe500c&prod&scoped=true&lang=scss&
23396
+ var ScaffoldTooltipvue_type_style_index_0_id_0cbe500c_prod_scoped_true_lang_scss_ = __webpack_require__("ad4c");
23378
23397
 
23379
23398
  // CONCATENATED MODULE: ./src/components/ScaffoldTooltip.vue
23380
23399
 
@@ -23387,18 +23406,26 @@ var ScaffoldTooltipvue_type_style_index_0_id_01613535_prod_scoped_true_lang_scss
23387
23406
 
23388
23407
  var ScaffoldTooltip_component = normalizeComponent(
23389
23408
  components_ScaffoldTooltipvue_type_script_lang_js_,
23390
- ScaffoldTooltipvue_type_template_id_01613535_scoped_true_render,
23391
- ScaffoldTooltipvue_type_template_id_01613535_scoped_true_staticRenderFns,
23409
+ ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_render,
23410
+ ScaffoldTooltipvue_type_template_id_0cbe500c_scoped_true_staticRenderFns,
23392
23411
  false,
23393
23412
  null,
23394
- "01613535",
23413
+ "0cbe500c",
23395
23414
  null
23396
23415
 
23397
23416
  )
23398
23417
 
23399
23418
  /* harmony default export */ var ScaffoldTooltip = (ScaffoldTooltip_component.exports);
23400
- // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1d7d18b5-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TreeControls.vue?vue&type=template&id=5a5e9e67&scoped=true&
23401
- var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render = function render() {
23419
+ // EXTERNAL MODULE: external "core-js/modules/es.array.includes.js"
23420
+ var es_array_includes_js_ = __webpack_require__("85f7");
23421
+
23422
+ // EXTERNAL MODULE: external "core-js/modules/es.string.includes.js"
23423
+ var es_string_includes_js_ = __webpack_require__("fd22");
23424
+
23425
+ // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"04e65820-vue-loader-template"}!./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/vue-loader/lib/loaders/templateLoader.js??ref--6!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TreeControls.vue?vue&type=template&id=29a4f879&scoped=true&
23426
+
23427
+
23428
+ var TreeControlsvue_type_template_id_29a4f879_scoped_true_render = function render() {
23402
23429
  var _vm = this,
23403
23430
  _c = _vm._self._c;
23404
23431
  return _c('div', {
@@ -23446,8 +23473,8 @@ var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render = function rend
23446
23473
  return _c('span', {
23447
23474
  staticClass: "region-tree-node",
23448
23475
  class: {
23449
- activeItem: _vm.nodeIsActive(data),
23450
- hoverItem: _vm.nodeIsHover(data)
23476
+ activeItem: _vm.active.includes(data.id),
23477
+ hoverItem: _vm.hover.includes(data.id)
23451
23478
  },
23452
23479
  on: {
23453
23480
  "click": function click($event) {
@@ -23487,9 +23514,9 @@ var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render = function rend
23487
23514
  staticClass: "el-icon-arrow-left"
23488
23515
  })])]);
23489
23516
  };
23490
- var TreeControlsvue_type_template_id_5a5e9e67_scoped_true_staticRenderFns = [];
23517
+ var TreeControlsvue_type_template_id_29a4f879_scoped_true_staticRenderFns = [];
23491
23518
 
23492
- // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=template&id=5a5e9e67&scoped=true&
23519
+ // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=template&id=29a4f879&scoped=true&
23493
23520
 
23494
23521
  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js
23495
23522
  function _arrayLikeToArray(arr, len) {
@@ -23532,6 +23559,9 @@ var es_array_slice_js_ = __webpack_require__("ea12");
23532
23559
  // EXTERNAL MODULE: external "core-js/modules/es.function.name.js"
23533
23560
  var es_function_name_js_ = __webpack_require__("db0a");
23534
23561
 
23562
+ // EXTERNAL MODULE: external "core-js/modules/es.regexp.exec.js"
23563
+ var es_regexp_exec_js_ = __webpack_require__("c8a6");
23564
+
23535
23565
  // EXTERNAL MODULE: external "core-js/modules/es.regexp.test.js"
23536
23566
  var es_regexp_test_js_ = __webpack_require__("5a3b");
23537
23567
 
@@ -23605,42 +23635,174 @@ var es_array_find_js_ = __webpack_require__("0d58");
23605
23635
  // EXTERNAL MODULE: external "core-js/modules/es.string.replace.js"
23606
23636
  var es_string_replace_js_ = __webpack_require__("6378");
23607
23637
 
23608
- // EXTERNAL MODULE: external "core-js/modules/es.array.includes.js"
23609
- var es_array_includes_js_ = __webpack_require__("85f7");
23638
+ // EXTERNAL MODULE: external "core-js/modules/es.array.concat.js"
23639
+ var es_array_concat_js_ = __webpack_require__("ccb0");
23610
23640
 
23611
- // EXTERNAL MODULE: external "core-js/modules/es.string.includes.js"
23612
- var es_string_includes_js_ = __webpack_require__("fd22");
23641
+ // EXTERNAL MODULE: external "core-js/modules/es.array.splice.js"
23642
+ var es_array_splice_js_ = __webpack_require__("f3b8");
23613
23643
 
23614
23644
  // EXTERNAL MODULE: external "core-js/modules/es.array.map.js"
23615
23645
  var es_array_map_js_ = __webpack_require__("4391");
23616
23646
 
23617
- // EXTERNAL MODULE: external "core-js/modules/es.object.assign.js"
23618
- var es_object_assign_js_ = __webpack_require__("ad1b");
23647
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
23619
23648
 
23620
- // CONCATENATED MODULE: ./src/scripts/utilities.js
23621
23649
 
23622
23650
 
23623
23651
 
23624
23652
 
23625
23653
 
23626
23654
 
23627
- var createListFromPrimitives = function createListFromPrimitives(primitives, list) {
23628
- if (primitives) {
23629
- primitives.forEach(function (primitive) {
23630
- if (primitive && primitive.getVisibility()) {
23631
- list.push({
23632
- group: primitive.groupName,
23633
- regionPath: primitive.region.getFullPath()
23634
- });
23635
- }
23636
- });
23637
- }
23638
- return list;
23639
- };
23640
- var extractAllIds = function extractAllIds(item, list) {
23641
- list.push(item.id);
23655
+ function _typeof(obj) {
23656
+ "@babel/helpers - typeof";
23657
+
23658
+ return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
23659
+ return typeof obj;
23660
+ } : function (obj) {
23661
+ return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
23662
+ }, _typeof(obj);
23663
+ }
23664
+ // EXTERNAL MODULE: external "core-js/modules/es.symbol.to-primitive.js"
23665
+ var es_symbol_to_primitive_js_ = __webpack_require__("fb89");
23666
+
23667
+ // EXTERNAL MODULE: external "core-js/modules/es.date.to-primitive.js"
23668
+ var es_date_to_primitive_js_ = __webpack_require__("1f48");
23669
+
23670
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js
23671
+
23672
+
23673
+
23674
+
23675
+
23676
+
23677
+
23678
+
23679
+ function _toPrimitive(input, hint) {
23680
+ if (_typeof(input) !== "object" || input === null) return input;
23681
+ var prim = input[Symbol.toPrimitive];
23682
+ if (prim !== undefined) {
23683
+ var res = prim.call(input, hint || "default");
23684
+ if (_typeof(res) !== "object") return res;
23685
+ throw new TypeError("@@toPrimitive must return a primitive value.");
23686
+ }
23687
+ return (hint === "string" ? String : Number)(input);
23688
+ }
23689
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
23690
+
23691
+
23692
+ function _toPropertyKey(arg) {
23693
+ var key = _toPrimitive(arg, "string");
23694
+ return _typeof(key) === "symbol" ? key : String(key);
23695
+ }
23696
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js
23697
+
23698
+ function _defineProperty(obj, key, value) {
23699
+ key = _toPropertyKey(key);
23700
+ if (key in obj) {
23701
+ Object.defineProperty(obj, key, {
23702
+ value: value,
23703
+ enumerable: true,
23704
+ configurable: true,
23705
+ writable: true
23706
+ });
23707
+ } else {
23708
+ obj[key] = value;
23709
+ }
23710
+ return obj;
23711
+ }
23712
+ // EXTERNAL MODULE: external "core-js/modules/es.array.filter.js"
23713
+ var es_array_filter_js_ = __webpack_require__("1a89");
23714
+
23715
+ // EXTERNAL MODULE: external "core-js/modules/es.object.get-own-property-descriptor.js"
23716
+ var es_object_get_own_property_descriptor_js_ = __webpack_require__("6de0");
23717
+
23718
+ // EXTERNAL MODULE: external "core-js/modules/es.object.get-own-property-descriptors.js"
23719
+ var es_object_get_own_property_descriptors_js_ = __webpack_require__("7664");
23720
+
23721
+ // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/objectSpread2.js
23722
+
23723
+
23724
+
23725
+
23726
+
23727
+
23728
+
23729
+
23730
+
23731
+ function ownKeys(object, enumerableOnly) {
23732
+ var keys = Object.keys(object);
23733
+ if (Object.getOwnPropertySymbols) {
23734
+ var symbols = Object.getOwnPropertySymbols(object);
23735
+ enumerableOnly && (symbols = symbols.filter(function (sym) {
23736
+ return Object.getOwnPropertyDescriptor(object, sym).enumerable;
23737
+ })), keys.push.apply(keys, symbols);
23738
+ }
23739
+ return keys;
23740
+ }
23741
+ function _objectSpread2(target) {
23742
+ for (var i = 1; i < arguments.length; i++) {
23743
+ var source = null != arguments[i] ? arguments[i] : {};
23744
+ i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {
23745
+ _defineProperty(target, key, source[key]);
23746
+ }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {
23747
+ Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));
23748
+ });
23749
+ }
23750
+ return target;
23751
+ }
23752
+ // EXTERNAL MODULE: external "core-js/modules/es.object.assign.js"
23753
+ var es_object_assign_js_ = __webpack_require__("ad1b");
23754
+
23755
+ // EXTERNAL MODULE: external "core-js/modules/es.array.find-index.js"
23756
+ var es_array_find_index_js_ = __webpack_require__("4c7f");
23757
+
23758
+ // EXTERNAL MODULE: external "core-js/modules/es.object.values.js"
23759
+ var es_object_values_js_ = __webpack_require__("e01a");
23760
+
23761
+ // EXTERNAL MODULE: external "core-js/modules/es.array.reduce.js"
23762
+ var es_array_reduce_js_ = __webpack_require__("b7ac");
23763
+
23764
+ // CONCATENATED MODULE: ./src/scripts/utilities.js
23765
+
23766
+
23767
+
23768
+
23769
+
23770
+
23771
+
23772
+
23773
+
23774
+
23775
+
23776
+
23777
+
23778
+
23779
+
23780
+ var createListFromPrimitives = function createListFromPrimitives(primitives, list) {
23781
+ if (primitives) {
23782
+ var id = "";
23783
+ primitives.forEach(function (primitive) {
23784
+ id = primitive.uuid;
23785
+ if (primitive.region) {
23786
+ id = primitive.region.uuid + "/" + id;
23787
+ }
23788
+ if (primitive && primitive.getVisibility()) {
23789
+ list.push(id);
23790
+ }
23791
+ });
23792
+ }
23793
+ return list;
23794
+ };
23795
+ var extractAllFullPaths = function extractAllFullPaths(item, list) {
23796
+ var nodeName = "";
23797
+ if (item.isRegion) {
23798
+ nodeName = "__r".concat(item.regionPath);
23799
+ }
23800
+ if (item.isPrimitives) {
23801
+ nodeName = "".concat(item.regionPath, "/").concat(item.label);
23802
+ }
23803
+ list.push(nodeName);
23642
23804
  if (item.children) item.children.forEach(function (child) {
23643
- return extractAllIds(child, list);
23805
+ return extractAllFullPaths(child, list);
23644
23806
  });
23645
23807
  };
23646
23808
  var utilities_findObjectsWithNames = function findObjectsWithNames(rootRegion, names, regionPath, transverse) {
@@ -23650,7 +23812,9 @@ var utilities_findObjectsWithNames = function findObjectsWithNames(rootRegion, n
23650
23812
  if (targetRegion) {
23651
23813
  var isArray = Array.isArray(names);
23652
23814
  var array = names;
23653
- if (!isArray) array = [array];
23815
+ if (!isArray) {
23816
+ array = [array];
23817
+ }
23654
23818
  array.forEach(function (name) {
23655
23819
  var temp = targetRegion.findObjectsWithGroupName(name, transverse);
23656
23820
  targetObjects.push.apply(targetObjects, _toConsumableArray(temp));
@@ -23667,6 +23831,101 @@ var getAllObjects = function getAllObjects(scene) {
23667
23831
  });
23668
23832
  }); // Add id to each object
23669
23833
  };
23834
+
23835
+ var findObjectWithUUID = function findObjectWithUUID(objects, uuid, remove) {
23836
+ var index = objects.findIndex(function (obj) {
23837
+ return obj.uuid === uuid;
23838
+ });
23839
+ var object = undefined;
23840
+ if (index > -1) {
23841
+ object = objects[index];
23842
+ if (remove) {
23843
+ objects.splice(i, 1);
23844
+ }
23845
+ }
23846
+ return object;
23847
+ };
23848
+ var utilities_convertUUIDsToFullPaths = function convertUUIDsToFullPaths(rootRegion, IDs) {
23849
+ var results = [];
23850
+ if (rootRegion && IDs && IDs.length > 0) {
23851
+ //a region to primitivs map list
23852
+ var rpLists = {};
23853
+ var reIDToPath = {};
23854
+ var allRegions = [rootRegion].concat(_toConsumableArray(rootRegion.getChildRegions(true)));
23855
+ var region = undefined;
23856
+ var primitive = undefined;
23857
+ var regionID = undefined;
23858
+ IDs.forEach(function (id) {
23859
+ var uuids = id.split("/");
23860
+ regionID = uuids[0];
23861
+ region = findObjectWithUUID(allRegions, regionID, false);
23862
+ if (region) {
23863
+ if (!reIDToPath[regionID]) {
23864
+ reIDToPath[regionID] = region.getFullPath();
23865
+ }
23866
+ if (uuids[1]) {
23867
+ if (!rpLists[regionID]) {
23868
+ rpLists[regionID] = region.getAllObjects(false);
23869
+ }
23870
+ primitive = findObjectWithUUID(rpLists[regionID], uuids[1], true);
23871
+ if (primitive) {
23872
+ results.push("".concat(reIDToPath[regionID], "/").concat(primitive.groupName));
23873
+ }
23874
+ } else {
23875
+ results.push("__r/".concat(reIDToPath[regionID]));
23876
+ }
23877
+ }
23878
+ });
23879
+ }
23880
+ return results;
23881
+ };
23882
+ var utilities_createUnqiuesFromObjects = function createUnqiuesFromObjects(zincObjects) {
23883
+ if (zincObjects) {
23884
+ var expanded = [];
23885
+ zincObjects.forEach(function (obj) {
23886
+ if (obj.isZincObject) {
23887
+ expanded.push(obj);
23888
+ } else if (obj.isRegion) {
23889
+ expanded.push.apply(expanded, _toConsumableArray(obj.getAllObjects(true)));
23890
+ }
23891
+ });
23892
+ var uniq = Object.values(expanded.reduce(function (acc, obj) {
23893
+ return _objectSpread2(_objectSpread2({}, acc), {}, _defineProperty({}, obj.uuid, obj));
23894
+ }, {}));
23895
+ return uniq;
23896
+ }
23897
+ return [];
23898
+ };
23899
+ var getObjectsFromAnnotations = function getObjectsFromAnnotations(scene, annotations) {
23900
+ var returned = {
23901
+ label: "Multiple selections",
23902
+ regionPath: "",
23903
+ objects: []
23904
+ };
23905
+ if (annotations && scene) {
23906
+ var rpList = {};
23907
+ var rootRegion = scene.getRootRegion();
23908
+ if (annotations.length > 0) {
23909
+ returned.regionPath = annotations[0].data.region;
23910
+ returned.label = annotations[0].data.group;
23911
+ }
23912
+ annotations.forEach(function (annotation) {
23913
+ if (!annotation.data.region.includes(returned.regionPath)) {
23914
+ returned.regionPath = "";
23915
+ }
23916
+ if (returned.label !== annotation.data.group) {
23917
+ returned.label = "Multiple selections";
23918
+ }
23919
+ var region = rootRegion.findChildFromPath(annotation.data.region);
23920
+ if (!rpList[region.uuid]) {
23921
+ rpList[region.uuid] = region.getAllObjects(false);
23922
+ }
23923
+ var obj = findObjectWithUUID(rpList[region.uuid], annotation.data.uuid);
23924
+ if (obj) returned.objects.push(obj);
23925
+ });
23926
+ }
23927
+ return returned;
23928
+ };
23670
23929
  // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--13-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--1-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/TreeControls.vue?vue&type=script&lang=js&
23671
23930
 
23672
23931
 
@@ -23694,6 +23953,8 @@ var getAllObjects = function getAllObjects(scene) {
23694
23953
 
23695
23954
 
23696
23955
 
23956
+
23957
+
23697
23958
 
23698
23959
 
23699
23960
 
@@ -23703,7 +23964,7 @@ var getAllObjects = function getAllObjects(scene) {
23703
23964
 
23704
23965
 
23705
23966
  var orderBy = __webpack_require__("6814");
23706
- var uniq = __webpack_require__("4e2d");
23967
+ var TreeControlsvue_type_script_lang_js_uniq = __webpack_require__("4e2d");
23707
23968
  locale_default.a.use(en_default.a);
23708
23969
  external_vue_default.a.use(lib_checkbox_default.a);
23709
23970
  external_vue_default.a.use(lib_checkbox_group_default.a);
@@ -23723,14 +23984,14 @@ var nameSorting = function nameSorting(a, b) {
23723
23984
  return 0;
23724
23985
  };
23725
23986
 
23726
- /**
23727
- * A vue component for toggling visibility of various regions.
23987
+ /**
23988
+ * A vue component for toggling visibility of various regions.
23728
23989
  */
23729
23990
  /* harmony default export */ var TreeControlsvue_type_script_lang_js_ = ({
23730
23991
  name: "TreeControls",
23731
23992
  props: {
23732
- /**
23733
- * Enable/disable colour picker
23993
+ /**
23994
+ * Enable/disable colour picker
23734
23995
  */
23735
23996
  showColourPicker: Boolean,
23736
23997
  isReady: Boolean
@@ -23739,17 +24000,12 @@ var nameSorting = function nameSorting(a, b) {
23739
24000
  return {
23740
24001
  treeData: [{
23741
24002
  label: "Root",
23742
- id: "__r/",
24003
+ regionPath: "",
24004
+ id: undefined,
23743
24005
  children: []
23744
24006
  }],
23745
- active: [{
23746
- group: "",
23747
- regionPath: undefined
23748
- }],
23749
- hover: [{
23750
- group: "",
23751
- regionPath: undefined
23752
- }],
24007
+ active: [],
24008
+ hover: [],
23753
24009
  myPopperClass: "hide-scaffold-colour-popup",
23754
24010
  drawerOpen: true
23755
24011
  };
@@ -23769,12 +24025,10 @@ var nameSorting = function nameSorting(a, b) {
23769
24025
  addTreeItem: function addTreeItem(parentContainer, item) {
23770
24026
  var _this = this;
23771
24027
  //The following block prevent duplicate graphics with the same name
23772
- for (var i = 0; i < parentContainer.length; i++) {
23773
- if (parentContainer[i].id === item.id) {
23774
- if (item.isPrimitives && parentContainer[i].isPrimitives) {
23775
- return;
23776
- }
23777
- }
24028
+ if (parentContainer.some(function (child) {
24029
+ return child.label === item.label;
24030
+ })) {
24031
+ return;
23778
24032
  }
23779
24033
  parentContainer.push(item);
23780
24034
  parentContainer.sort(function (a, b) {
@@ -23789,8 +24043,8 @@ var nameSorting = function nameSorting(a, b) {
23789
24043
  // '__r/'
23790
24044
  findOrCreateRegion: function findOrCreateRegion(data, paths, prefix) {
23791
24045
  //check if root region has been set
23792
- if (this.treeData[0].regionPath === undefined && this.$module && this.$module.scene) {
23793
- this.treeData[0].regionPath = "";
24046
+ if (this.rootID === undefined && this.$module && this.$module.scene) {
24047
+ this.treeData[0].id = this.$module.scene.getRootRegion().uuid;
23794
24048
  this.treeData[0].isRegion = true;
23795
24049
  }
23796
24050
  if (paths.length > 0) {
@@ -23799,11 +24053,11 @@ var nameSorting = function nameSorting(a, b) {
23799
24053
  return child.label == _paths[0];
23800
24054
  });
23801
24055
  var path = prefix + "/" + paths[0];
23802
- var id = "__r" + path;
24056
+ var region = this.$module.scene.getRootRegion().findChildFromPath(path);
23803
24057
  if (!childRegion) {
23804
24058
  childRegion = {
23805
24059
  label: _paths[0],
23806
- id: id,
24060
+ id: region.uuid,
23807
24061
  children: [],
23808
24062
  regionPath: path,
23809
24063
  isRegion: true
@@ -23816,28 +24070,14 @@ var nameSorting = function nameSorting(a, b) {
23816
24070
  return data;
23817
24071
  }
23818
24072
  },
23819
- nodeIsActive: function nodeIsActive(data) {
23820
- for (var i = 0; i < this.active.length; i++) {
23821
- var item = this.active[i];
23822
- if (item.group === data.label && (item.regionPath === data.regionPath || item.regionPath === undefined)) {
23823
- return true;
23824
- }
23825
- }
23826
- return false;
23827
- },
23828
- nodeIsHover: function nodeIsHover(data) {
23829
- for (var i = 0; i < this.hover.length; i++) {
23830
- var item = this.hover[i];
23831
- if (item.group === data.label && (item.regionPath === data.regionPath || item.regionPath === undefined)) {
23832
- return true;
23833
- }
23834
- }
23835
- return false;
23836
- },
23837
- /**
23838
- * This is called when a new zinc object is read into the scene.
24073
+ /**
24074
+ * This is called when a new zinc object is read into the scene.
23839
24075
  */
23840
24076
  zincObjectAdded: function zincObjectAdded(zincObject) {
24077
+ // Using the new uuid, the cavaet of that is graphics with
24078
+ // same groupName will have different uuid. So in the tree control
24079
+ // We use the first uuid found for a group of primitives with same
24080
+ // group names to represent all of them.
23841
24081
  var region = zincObject.region;
23842
24082
  if (region) {
23843
24083
  var paths = region.getFullSeparatedPath();
@@ -23847,10 +24087,9 @@ var nameSorting = function nameSorting(a, b) {
23847
24087
  if (!regionData.children) {
23848
24088
  regionData.children = [];
23849
24089
  }
23850
- var id = regionData.id.replace("__r/", "") + "/" + zincObject.groupName;
23851
24090
  var child = {
23852
24091
  label: zincObject.groupName,
23853
- id: id,
24092
+ id: region.uuid + "/" + zincObject.uuid,
23854
24093
  isPrimitives: true,
23855
24094
  regionPath: zincObject.region.getFullPath()
23856
24095
  };
@@ -23899,16 +24138,16 @@ var nameSorting = function nameSorting(a, b) {
23899
24138
  this.removeHover(propagate);
23900
24139
  }
23901
24140
  },
23902
- /**
23903
- * Select a region by its name.
24141
+ /**
24142
+ * Select a region by its name.
23904
24143
  */
23905
24144
  changeActiveByNames: function changeActiveByNames(names, regionPath, propagate) {
23906
24145
  var rootRegion = this.$module.scene.getRootRegion();
23907
24146
  var targetObjects = utilities_findObjectsWithNames(rootRegion, names, regionPath, true);
23908
24147
  this.changeActiveByPrimitives(targetObjects, propagate);
23909
24148
  },
23910
- /**
23911
- * Hover a region by its name.
24149
+ /**
24150
+ * Hover a region by its name.
23912
24151
  */
23913
24152
  changeHoverByNames: function changeHoverByNames(names, regionPath, propagate) {
23914
24153
  var rootRegion = this.$module.scene.getRootRegion();
@@ -23916,8 +24155,9 @@ var nameSorting = function nameSorting(a, b) {
23916
24155
  this.changeHoverByPrimitives(targetObjects, propagate);
23917
24156
  },
23918
24157
  changeActiveByNode: function changeActiveByNode(node, propagate) {
23919
- if (node.isPrimitives) {
23920
- var targetObjects = this.getZincObjectsFromNode(node, false);
24158
+ if (node.isPrimitives || node.isRegion) {
24159
+ var transverse = node.isRegion ? true : false;
24160
+ var targetObjects = this.getZincObjectsFromNode(node, transverse);
23921
24161
  this.changeActiveByPrimitives(targetObjects, propagate);
23922
24162
  }
23923
24163
  },
@@ -23927,31 +24167,31 @@ var nameSorting = function nameSorting(a, b) {
23927
24167
  this.changeHoverByPrimitives(targetObjects, propagate);
23928
24168
  }
23929
24169
  },
23930
- /**
23931
- * Unselect the current selected region.
24170
+ /**
24171
+ * Unselect the current selected region.
23932
24172
  */
23933
24173
  removeActive: function removeActive(propagate) {
23934
24174
  this.active = [];
23935
24175
  this.$emit("object-selected", [], propagate);
23936
24176
  },
23937
- /**
23938
- * Unselect the current hover region.
24177
+ /**
24178
+ * Unselect the current hover region.
23939
24179
  */
23940
24180
  removeHover: function removeHover(propagate) {
23941
24181
  this.hover = [];
23942
24182
  this.$emit("object-hovered", [], propagate);
23943
24183
  },
23944
- /**
23945
- * Reset the controls.
24184
+ /**
24185
+ * Reset the controls.
23946
24186
  */
23947
24187
  clear: function clear() {
23948
- this.active.group = "";
23949
- this.active.regionPath = undefined;
23950
- this.hover.group = "";
23951
- this.hover.regionPath = undefined;
23952
- this.$refs.regionTree.updateKeyChildren("__r/", []);
24188
+ this.active.length = 0;
24189
+ this.hover.length = 0;
24190
+ this.__nodeNumbers = 0;
24191
+ this.$refs.regionTree.updateKeyChildren(this.treeData[0].id, []);
23953
24192
  this.treeData[0].children.length = 0;
23954
- this.$emit("object-selected", undefined);
24193
+ this.treeData[0].id = undefined;
24194
+ this.$emit("object-selected", []);
23955
24195
  },
23956
24196
  getColour: function getColour(nodeData) {
23957
24197
  //Do not need to check for primitives as this is checked on the template
@@ -23967,26 +24207,28 @@ var nameSorting = function nameSorting(a, b) {
23967
24207
  },
23968
24208
  getZincObjectsFromNode: function getZincObjectsFromNode(node, transverse) {
23969
24209
  var rootRegion = this.$module.scene.getRootRegion();
23970
- return utilities_findObjectsWithNames(rootRegion, node.label, node.regionPath, transverse);
24210
+ if (node.isPrimitives) {
24211
+ return utilities_findObjectsWithNames(rootRegion, node.label, node.regionPath, transverse);
24212
+ } else if (node.isRegion) {
24213
+ if (node.regionPath) {
24214
+ var targetRegion = rootRegion.findChildFromPath(node.regionPath);
24215
+ if (targetRegion) {
24216
+ return targetRegion.getAllObjects(transverse);
24217
+ }
24218
+ }
24219
+ }
24220
+ return [];
23971
24221
  },
23972
24222
  //Set this right at the beginning.
23973
24223
  setModule: function setModule(moduleIn) {
23974
24224
  var _this2 = this;
23975
24225
  this.$module = moduleIn;
23976
- this.$module.primitiveData.geometries.forEach(function (zincObject) {
23977
- _this2.zincObjectAdded(zincObject);
23978
- });
23979
- this.$module.primitiveData.lines.forEach(function (zincObject) {
23980
- _this2.zincObjectAdded(zincObject);
23981
- });
23982
- this.$module.primitiveData.glyphsets.forEach(function (zincObject) {
23983
- _this2.zincObjectAdded(zincObject);
23984
- });
23985
- this.$module.primitiveData.pointsets.forEach(function (zincObject) {
24226
+ this.__nodeNumbers = 0;
24227
+ var objects = this.$module.scene.getRootRegion().getAllObjects(true);
24228
+ objects.forEach(function (zincObject) {
23986
24229
  _this2.zincObjectAdded(zincObject);
23987
24230
  });
23988
24231
  this.$module.addOrganPartAddedCallback(this.zincObjectAdded);
23989
- this.__nodeNumbers = 1;
23990
24232
  },
23991
24233
  setColour: function setColour(nodeData, value) {
23992
24234
  if (nodeData && nodeData.isPrimitives) {
@@ -24015,38 +24257,63 @@ var nameSorting = function nameSorting(a, b) {
24015
24257
  this.drawerOpen = !this.drawerOpen;
24016
24258
  this.$emit("drawer-toggled", this.drawerOpen);
24017
24259
  },
24018
- setTreeVisibility: function setTreeVisibility(node, list) {
24260
+ //Set visibility using full paths and add found id to the ids list
24261
+ //and remove item from list if remove is set to true.
24262
+ setTreeVisibilityWithFullPaths: function setTreeVisibilityWithFullPaths(node, list, ids, remove) {
24019
24263
  var _this3 = this;
24020
24264
  var flag = false;
24021
- if (list.includes(node.id)) flag = true;
24022
- var region = this.$module.scene.getRootRegion().findChildFromPath(node.regionPath);
24023
- if (node.isRegion) region.setVisibility(flag);
24265
+ var nodeName = "";
24266
+ if (node.isRegion) {
24267
+ nodeName = "__r".concat(node.regionPath);
24268
+ }
24024
24269
  if (node.isPrimitives) {
24025
- var primitives = region.findObjectsWithGroupName(node.label);
24026
- primitives.forEach(function (primitive) {
24027
- return primitive.setVisibility(flag);
24270
+ nodeName = "".concat(node.regionPath, "/").concat(node.label);
24271
+ }
24272
+ //Find the node in list, remove it from list if remove flag is on
24273
+ var index = list.indexOf(nodeName);
24274
+ if (index > -1) {
24275
+ flag = true;
24276
+ list.splice(index, 1);
24277
+ ids.push(node.id);
24278
+ }
24279
+ var region = this.$module.scene.getRootRegion().findChildFromPath(node.regionPath);
24280
+ if (nodeName && nodeName !== "__r") {
24281
+ if (node.isPrimitives) {
24282
+ var primitives = region.findObjectsWithGroupName(node.label);
24283
+ primitives.forEach(function (primitive) {
24284
+ return primitive.setVisibility(flag);
24285
+ });
24286
+ }
24287
+ }
24288
+ if (node.children) {
24289
+ node.children.forEach(function (child) {
24290
+ _this3.setTreeVisibilityWithFullPaths(child, list, ids, true);
24028
24291
  });
24029
24292
  }
24030
- if (node.children) node.children.forEach(function (child) {
24031
- return _this3.setTreeVisibility(child, list);
24032
- });
24033
24293
  },
24034
24294
  checkAllKeys: function checkAllKeys() {
24035
24295
  var keysList = [];
24036
- extractAllIds(this.treeData[0], keysList);
24037
- this.setTreeVisibility(this.treeData[0], keysList);
24038
- this.$refs.regionTree.setCheckedKeys(keysList);
24296
+ var ids = [];
24297
+ extractAllFullPaths(this.treeData[0], keysList);
24298
+ this.setTreeVisibilityWithFullPaths(this.treeData[0], keysList, ids, true);
24299
+ this.$refs.regionTree.setCheckedKeys(ids);
24039
24300
  },
24040
24301
  getState: function getState() {
24041
24302
  var checkedItems = this.$refs.regionTree.getCheckedKeys();
24042
- if (checkedItems.length === this.__nodeNumbers) return {
24043
- checkAll: true,
24044
- version: "2.0"
24045
- };
24046
- return {
24047
- checkedItems: checkedItems,
24048
- version: "2.0"
24049
- };
24303
+ if (checkedItems.length === this.__nodeNumbers) {
24304
+ return {
24305
+ checkAll: true,
24306
+ version: "2.0"
24307
+ };
24308
+ } else {
24309
+ //We cannot use the generated uuid as the identifier for permastate,
24310
+ //convert it back to paths
24311
+ var paths = utilities_convertUUIDsToFullPaths(this.$module.scene.getRootRegion(), checkedItems);
24312
+ return {
24313
+ checkedItems: paths,
24314
+ version: "2.0"
24315
+ };
24316
+ }
24050
24317
  },
24051
24318
  setState: function setState(state) {
24052
24319
  if (state) {
@@ -24063,8 +24330,9 @@ var nameSorting = function nameSorting(a, b) {
24063
24330
  var _list;
24064
24331
  (_list = list).push.apply(_list, _toConsumableArray(state.checkedItems));
24065
24332
  }
24066
- this.setTreeVisibility(this.treeData[0], list);
24067
- this.$refs.regionTree.setCheckedKeys(list);
24333
+ var ids = [];
24334
+ this.setTreeVisibilityWithFullPaths(this.treeData[0], list, ids, true);
24335
+ this.$refs.regionTree.setCheckedKeys(ids);
24068
24336
  }
24069
24337
  }
24070
24338
  }
@@ -24072,11 +24340,11 @@ var nameSorting = function nameSorting(a, b) {
24072
24340
  });
24073
24341
  // CONCATENATED MODULE: ./src/components/TreeControls.vue?vue&type=script&lang=js&
24074
24342
  /* harmony default export */ var components_TreeControlsvue_type_script_lang_js_ = (TreeControlsvue_type_script_lang_js_);
24075
- // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=0&id=5a5e9e67&prod&scoped=true&lang=scss&
24076
- var TreeControlsvue_type_style_index_0_id_5a5e9e67_prod_scoped_true_lang_scss_ = __webpack_require__("a1fc");
24343
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=0&id=29a4f879&prod&scoped=true&lang=scss&
24344
+ var TreeControlsvue_type_style_index_0_id_29a4f879_prod_scoped_true_lang_scss_ = __webpack_require__("4efe");
24077
24345
 
24078
- // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=1&id=5a5e9e67&prod&lang=css&
24079
- var TreeControlsvue_type_style_index_1_id_5a5e9e67_prod_lang_css_ = __webpack_require__("5956");
24346
+ // EXTERNAL MODULE: ./src/components/TreeControls.vue?vue&type=style&index=1&id=29a4f879&prod&lang=css&
24347
+ var TreeControlsvue_type_style_index_1_id_29a4f879_prod_lang_css_ = __webpack_require__("79d6");
24080
24348
 
24081
24349
  // CONCATENATED MODULE: ./src/components/TreeControls.vue
24082
24350
 
@@ -24090,11 +24358,11 @@ var TreeControlsvue_type_style_index_1_id_5a5e9e67_prod_lang_css_ = __webpack_re
24090
24358
 
24091
24359
  var TreeControls_component = normalizeComponent(
24092
24360
  components_TreeControlsvue_type_script_lang_js_,
24093
- TreeControlsvue_type_template_id_5a5e9e67_scoped_true_render,
24094
- TreeControlsvue_type_template_id_5a5e9e67_scoped_true_staticRenderFns,
24361
+ TreeControlsvue_type_template_id_29a4f879_scoped_true_render,
24362
+ TreeControlsvue_type_template_id_29a4f879_scoped_true_staticRenderFns,
24095
24363
  false,
24096
24364
  null,
24097
- "5a5e9e67",
24365
+ "29a4f879",
24098
24366
  null
24099
24367
 
24100
24368
  )
@@ -24110,55 +24378,6 @@ function _classCallCheck(instance, Constructor) {
24110
24378
  throw new TypeError("Cannot call a class as a function");
24111
24379
  }
24112
24380
  }
24113
- // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/typeof.js
24114
-
24115
-
24116
-
24117
-
24118
-
24119
-
24120
-
24121
- function _typeof(obj) {
24122
- "@babel/helpers - typeof";
24123
-
24124
- return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) {
24125
- return typeof obj;
24126
- } : function (obj) {
24127
- return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj;
24128
- }, _typeof(obj);
24129
- }
24130
- // EXTERNAL MODULE: external "core-js/modules/es.symbol.to-primitive.js"
24131
- var es_symbol_to_primitive_js_ = __webpack_require__("fb89");
24132
-
24133
- // EXTERNAL MODULE: external "core-js/modules/es.date.to-primitive.js"
24134
- var es_date_to_primitive_js_ = __webpack_require__("1f48");
24135
-
24136
- // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPrimitive.js
24137
-
24138
-
24139
-
24140
-
24141
-
24142
-
24143
-
24144
-
24145
- function _toPrimitive(input, hint) {
24146
- if (_typeof(input) !== "object" || input === null) return input;
24147
- var prim = input[Symbol.toPrimitive];
24148
- if (prim !== undefined) {
24149
- var res = prim.call(input, hint || "default");
24150
- if (_typeof(res) !== "object") return res;
24151
- throw new TypeError("@@toPrimitive must return a primitive value.");
24152
- }
24153
- return (hint === "string" ? String : Number)(input);
24154
- }
24155
- // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/toPropertyKey.js
24156
-
24157
-
24158
- function _toPropertyKey(arg) {
24159
- var key = _toPrimitive(arg, "string");
24160
- return _typeof(key) === "symbol" ? key : String(key);
24161
- }
24162
24381
  // CONCATENATED MODULE: ./node_modules/@babel/runtime/helpers/esm/createClass.js
24163
24382
 
24164
24383
  function _defineProperties(target, props) {
@@ -24178,8 +24397,8 @@ function _createClass(Constructor, protoProps, staticProps) {
24178
24397
  });
24179
24398
  return Constructor;
24180
24399
  }
24181
- // EXTERNAL MODULE: external "core-js/modules/es.array.filter.js"
24182
- var es_array_filter_js_ = __webpack_require__("1a89");
24400
+ // EXTERNAL MODULE: external "core-js/modules/es.string.search.js"
24401
+ var es_string_search_js_ = __webpack_require__("1c32");
24183
24402
 
24184
24403
  // EXTERNAL MODULE: external "minisearch"
24185
24404
  var external_minisearch_ = __webpack_require__("f9b6");
@@ -24199,30 +24418,32 @@ var external_minisearch_default = /*#__PURE__*/__webpack_require__.n(external_mi
24199
24418
 
24200
24419
 
24201
24420
 
24202
- /******************************************************************************
24203
-
24204
- Flatmap viewer and annotation tool
24205
-
24206
- Copyright (c) 2019 David Brooks
24207
-
24208
- Licensed under the Apache License, Version 2.0 (the "License");
24209
- you may not use this file except in compliance with the License.
24210
- You may obtain a copy of the License at
24211
-
24212
- http://www.apache.org/licenses/LICENSE-2.0
24213
-
24214
- Unless required by applicable law or agreed to in writing, software
24215
- distributed under the License is distributed on an "AS IS" BASIS,
24216
- WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24217
- See the License for the specific language governing permissions and
24218
- limitations under the License.
24219
24421
 
24422
+ /******************************************************************************
24423
+
24424
+ Flatmap viewer and annotation tool
24425
+
24426
+ Copyright (c) 2019 David Brooks
24427
+
24428
+ Licensed under the Apache License, Version 2.0 (the "License");
24429
+ you may not use this file except in compliance with the License.
24430
+ You may obtain a copy of the License at
24431
+
24432
+ http://www.apache.org/licenses/LICENSE-2.0
24433
+
24434
+ Unless required by applicable law or agreed to in writing, software
24435
+ distributed under the License is distributed on an "AS IS" BASIS,
24436
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
24437
+ See the License for the specific language governing permissions and
24438
+ limitations under the License.
24439
+
24220
24440
  ******************************************************************************/
24221
24441
 
24222
24442
  //==============================================================================
24223
24443
 
24224
24444
 
24225
24445
 
24446
+
24226
24447
  //==============================================================================
24227
24448
 
24228
24449
  // The properties of a feature we index and show
@@ -24235,8 +24456,8 @@ var search_SearchIndex = /*#__PURE__*/function () {
24235
24456
  function SearchIndex() {
24236
24457
  _classCallCheck(this, SearchIndex);
24237
24458
  this._searchEngine = new external_minisearch_default.a({
24238
- fields: ['groupName'],
24239
- storeFields: ['groupName'],
24459
+ fields: ['path', 'name'],
24460
+ storeFields: ['path'],
24240
24461
  tokenize: function tokenize(string, _fieldName) {
24241
24462
  return string.split('"');
24242
24463
  } // indexing tokenizer
@@ -24244,6 +24465,7 @@ var search_SearchIndex = /*#__PURE__*/function () {
24244
24465
 
24245
24466
  this._featureIds = [];
24246
24467
  this.zincObjects = [];
24468
+ this.regions = [];
24247
24469
  }
24248
24470
  _createClass(SearchIndex, [{
24249
24471
  key: "indexMetadata",
@@ -24267,15 +24489,33 @@ var search_SearchIndex = /*#__PURE__*/function () {
24267
24489
  value: function addZincObject(zincObject, id)
24268
24490
  //=======================
24269
24491
  {
24492
+ var path = zincObject.getRegion().getFullPath();
24493
+ var fullPath = path ? "".concat(path, "/").concat(zincObject.groupName) : zincObject.groupName;
24270
24494
  var item = {
24271
- groupName: zincObject.groupName,
24495
+ path: fullPath,
24496
+ name: zincObject.groupName,
24272
24497
  id: id
24273
24498
  };
24274
24499
  this._searchEngine.add(item, {
24275
- fields: ['groupName']
24500
+ fields: ['path', 'name']
24276
24501
  });
24277
24502
  this.zincObjects.push(zincObject);
24278
24503
  }
24504
+ }, {
24505
+ key: "addRegion",
24506
+ value: function addRegion(region, id)
24507
+ //=======================
24508
+ {
24509
+ var item = {
24510
+ path: region.getFullPath(),
24511
+ name: region.getName(),
24512
+ id: id
24513
+ };
24514
+ this._searchEngine.add(item, {
24515
+ fields: ['path', 'name']
24516
+ });
24517
+ this.regions.push(region);
24518
+ }
24279
24519
  }, {
24280
24520
  key: "clearResults",
24281
24521
  value: function clearResults()
@@ -24290,15 +24530,41 @@ var search_SearchIndex = /*#__PURE__*/function () {
24290
24530
  {
24291
24531
  this._searchEngine.removeAll();
24292
24532
  this.zincObjects.length = 0;
24533
+ this.regions.length = 0;
24293
24534
  }
24294
24535
  }, {
24295
24536
  key: "auto_suggest",
24296
24537
  value: function auto_suggest(text)
24297
24538
  //================
24298
24539
  {
24299
- return this._searchEngine.autoSuggest(text, {
24540
+ var results = this._searchEngine.autoSuggest(text, {
24300
24541
  prefix: true
24301
24542
  });
24543
+ return results;
24544
+ }
24545
+ }, {
24546
+ key: "processResults",
24547
+ value: function processResults(zincObjects, searchText) {
24548
+ var result = {
24549
+ regionPath: undefined,
24550
+ label: "Search Results for \""
24551
+ };
24552
+ if (Array.isArray(searchText)) {
24553
+ result.label += ','.join(searchText);
24554
+ } else {
24555
+ result.label += searchText;
24556
+ }
24557
+ result.label += "\"";
24558
+ if (zincObjects.length === 1) {
24559
+ if (zincObjects[0].isRegion) {
24560
+ result.regionPath = zincObjects[0].getFullPath();
24561
+ } else if (zincObjects[0].isZincObject) {
24562
+ result.regionPath = zincObjects[0].getRegion().getFullPath();
24563
+ result.label = zincObjects[0].groupName;
24564
+ }
24565
+ }
24566
+ result["zincObjects"] = utilities_createUnqiuesFromObjects(zincObjects);
24567
+ return result;
24302
24568
  }
24303
24569
  }, {
24304
24570
  key: "search",
@@ -24309,8 +24575,14 @@ var search_SearchIndex = /*#__PURE__*/function () {
24309
24575
  var zincResults = this.zincObjects.filter(function (zincObject) {
24310
24576
  return results.map(function (r) {
24311
24577
  return r.id;
24312
- }).includes(zincObject.searchIndexId);
24578
+ }).includes(zincObject.uuid);
24313
24579
  });
24580
+ var regionResults = this.regions.filter(function (region) {
24581
+ return results.map(function (r) {
24582
+ return r.id;
24583
+ }).includes(region.uuid);
24584
+ });
24585
+ zincResults.push.apply(zincResults, _toConsumableArray(regionResults));
24314
24586
  return zincResults;
24315
24587
  }
24316
24588
  }, {
@@ -24324,28 +24596,17 @@ var search_SearchIndex = /*#__PURE__*/function () {
24324
24596
  });
24325
24597
  return results;
24326
24598
  }
24327
-
24328
- // search(text)
24329
- // //==========
24330
- // {
24331
- // const options = {};
24332
- // let results = [];
24333
- // text = text.trim()
24334
- // if (text.length > 2 && ["'", '"'].indexOf(text.slice(0, 1)) >= 0) {
24335
- // text = text.replaceAll(text.slice(0, 1), '');
24336
- // results = this._searchEngine.search(text, {prefix: true, combineWith: 'AND'});
24337
- // } else if (text.length > 1) {
24338
- // results = this._searchEngine.search(text, {prefix: true});
24339
- // }
24340
- // const featureResults = results.map(r => {
24341
- // return {
24342
- // featureId: this._featureIds[r.id],
24343
- // score: r.score,
24344
- // terms: r.terms,
24345
- // text: r.text
24346
- // }});
24347
- // return new SearchResults(featureResults);
24348
- // }
24599
+ }, {
24600
+ key: "searchAndProcessResult",
24601
+ value: function searchAndProcessResult(terms) {
24602
+ var zincObjectResults = [];
24603
+ if (Array.isArray(terms)) {
24604
+ zincObjectResults = this.searchTerms(terms);
24605
+ } else {
24606
+ zincObjectResults = this.search(terms);
24607
+ }
24608
+ return this.processResults(zincObjectResults, terms);
24609
+ }
24349
24610
  }]);
24350
24611
  return SearchIndex;
24351
24612
  }();
@@ -24412,8 +24673,6 @@ var search_SearchResults = /*#__PURE__*/function () {
24412
24673
 
24413
24674
 
24414
24675
 
24415
-
24416
-
24417
24676
 
24418
24677
 
24419
24678
 
@@ -24441,11 +24700,11 @@ external_vue_default.a.use(lib_tabs_default.a);
24441
24700
  var OrgansViewer = __webpack_require__("53d7").OrgansViewer;
24442
24701
  var EventNotifier = __webpack_require__("9b21").EventNotifier;
24443
24702
 
24444
- /**
24445
- * A vue component of the scaffold viewer.
24446
- *
24447
- * @requires ./OpacityControls.vue
24448
- * @requires ./TreeControls.vue
24703
+ /**
24704
+ * A vue component of the scaffold viewer.
24705
+ *
24706
+ * @requires ./OpacityControls.vue
24707
+ * @requires ./TreeControls.vue
24449
24708
  */
24450
24709
  /* harmony default export */ var ScaffoldVuervue_type_script_lang_js_ = ({
24451
24710
  name: "ScaffoldVuer",
@@ -24457,56 +24716,56 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24457
24716
  TreeControls: TreeControls
24458
24717
  },
24459
24718
  props: {
24460
- /**
24461
- * URL of the zincjs metadata. This value will be ignored if a valid
24462
- * state prop is also provided.
24463
- * If the url needs to be updated with state present, please use
24464
- * the setURL method.
24719
+ /**
24720
+ * URL of the zincjs metadata. This value will be ignored if a valid
24721
+ * state prop is also provided.
24722
+ * If the url needs to be updated with state present, please use
24723
+ * the setURL method.
24465
24724
  */
24466
24725
  url: {
24467
24726
  type: String,
24468
24727
  default: ""
24469
24728
  },
24470
- /**
24471
- * Show the colour control of set to true.
24729
+ /**
24730
+ * Show the colour control of set to true.
24472
24731
  */
24473
24732
  showColourPicker: {
24474
24733
  type: Boolean,
24475
24734
  default: false
24476
24735
  },
24477
- /**
24478
- * Flag to show/hide the UI.
24736
+ /**
24737
+ * Flag to show/hide the UI.
24479
24738
  */
24480
24739
  displayUI: {
24481
24740
  type: Boolean,
24482
24741
  default: true
24483
24742
  },
24484
- /**
24485
- * Display all graphics at start.
24486
- *
24487
- * This setting only works when traditional is set to false.
24743
+ /**
24744
+ * Display all graphics at start.
24745
+ *
24746
+ * This setting only works when traditional is set to false.
24488
24747
  */
24489
24748
  displayAtStartUp: {
24490
24749
  type: Boolean,
24491
24750
  default: true
24492
24751
  },
24493
- /**
24494
- * Use for toggling the help tooltips.
24752
+ /**
24753
+ * Use for toggling the help tooltips.
24495
24754
  */
24496
24755
  helpMode: {
24497
24756
  type: Boolean,
24498
24757
  default: false
24499
24758
  },
24500
- /**
24501
- * Use for show/display beta warning icon.
24759
+ /**
24760
+ * Use for show/display beta warning icon.
24502
24761
  */
24503
24762
  displayWarning: {
24504
24763
  type: Boolean,
24505
24764
  default: true
24506
24765
  },
24507
- /**
24508
- * Warning message for the hovered over text
24509
- * on the warning icon.
24766
+ /**
24767
+ * Warning message for the hovered over text
24768
+ * on the warning icon.
24510
24769
  */
24511
24770
  warningMessage: {
24512
24771
  type: String,
@@ -24520,29 +24779,35 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24520
24779
  type: String,
24521
24780
  default: "New feature - Local search is now available"
24522
24781
  },
24523
- /**
24524
- * Show/hide pickable markers for regions.
24782
+ /**
24783
+ * Show/hide pickable markers for regions.
24525
24784
  */
24526
24785
  displayMarkers: {
24527
24786
  type: Boolean,
24528
24787
  default: false
24529
24788
  },
24530
- /**
24531
- * Show/hide minimap.
24789
+ markerLabels: {
24790
+ type: Array,
24791
+ default: function _default() {
24792
+ return [];
24793
+ }
24794
+ },
24795
+ /**
24796
+ * Show/hide minimap.
24532
24797
  */
24533
24798
  displayMinimap: {
24534
24799
  type: Boolean,
24535
24800
  default: false
24536
24801
  },
24537
- /**
24538
- * Format of the input URL
24802
+ /**
24803
+ * Format of the input URL
24539
24804
  */
24540
24805
  format: {
24541
24806
  type: String,
24542
24807
  default: "metadata"
24543
24808
  },
24544
- /**
24545
- * Settings for minimap position, size and alignment.
24809
+ /**
24810
+ * Settings for minimap position, size and alignment.
24546
24811
  */
24547
24812
  minimapSettings: {
24548
24813
  type: Object,
@@ -24556,9 +24821,9 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24556
24821
  };
24557
24822
  }
24558
24823
  },
24559
- /**
24560
- * Flag to determine rather open map UI should be
24561
- * presented or not.
24824
+ /**
24825
+ * Flag to determine rather open map UI should be
24826
+ * presented or not.
24562
24827
  */
24563
24828
  enableOpenMapUI: {
24564
24829
  type: Boolean,
@@ -24579,32 +24844,32 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24579
24844
  }];
24580
24845
  }
24581
24846
  },
24582
- /**
24583
- * State containing state of the scaffold.
24847
+ /**
24848
+ * State containing state of the scaffold.
24584
24849
  */
24585
24850
  state: {
24586
24851
  type: Object,
24587
24852
  default: undefined
24588
24853
  },
24589
- /**
24590
- * Optional prop for the name of the region to focus on,
24591
- * this option is ignored if state or viewURL is also provided.
24854
+ /**
24855
+ * Optional prop for the name of the region to focus on,
24856
+ * this option is ignored if state or viewURL is also provided.
24592
24857
  */
24593
24858
  region: {
24594
24859
  type: String,
24595
24860
  default: ""
24596
24861
  },
24597
- /**
24598
- * Optional prop for an URL of containing information of a viewport.
24599
- * This option is ignored if state is also provided.
24600
- * It will use the provided URL as base if a relative parth is provided.
24862
+ /**
24863
+ * Optional prop for an URL of containing information of a viewport.
24864
+ * This option is ignored if state is also provided.
24865
+ * It will use the provided URL as base if a relative parth is provided.
24601
24866
  */
24602
24867
  viewURL: {
24603
24868
  type: String,
24604
24869
  default: ""
24605
24870
  },
24606
- /**
24607
- * Settings for turning on/off rendering
24871
+ /**
24872
+ * Settings for turning on/off rendering
24608
24873
  */
24609
24874
  render: {
24610
24875
  type: Boolean,
@@ -24616,8 +24881,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24616
24881
  sceneData: this.$module.sceneData,
24617
24882
  isPlaying: false,
24618
24883
  isReady: false,
24619
- /**
24620
- * This is set when scene is transitioning.
24884
+ /**
24885
+ * This is set when scene is transitioning.
24621
24886
  */
24622
24887
  isTransitioning: false,
24623
24888
  tooltipAppendToBody: false,
@@ -24680,7 +24945,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24680
24945
  x: 200,
24681
24946
  y: 200
24682
24947
  },
24683
- fileFormat: "metadata"
24948
+ fileFormat: "metadata",
24949
+ previousMarkerLabels: []
24684
24950
  };
24685
24951
  },
24686
24952
  watch: {
@@ -24727,11 +24993,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24727
24993
  this.$module.scene.displayMinimap = val;
24728
24994
  },
24729
24995
  "sceneData.currentTime": function sceneDataCurrentTime() {
24730
- /**
24731
- * Triggers when scene time changes.
24732
- *
24733
- * @property {number} time Current build-in time of scene.
24734
- * of selected object.
24996
+ /**
24997
+ * Triggers when scene time changes.
24998
+ *
24999
+ * @property {number} time Current build-in time of scene.
25000
+ * of selected object.
24735
25001
  */
24736
25002
  this.$emit("timeChanged", this.sceneData.currentTime);
24737
25003
  },
@@ -24744,6 +25010,17 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24744
25010
  },
24745
25011
  render: function render(val) {
24746
25012
  this.toggleRendering(val);
25013
+ },
25014
+ markerLabels: function markerLabels(labels) {
25015
+ var _this = this;
25016
+ console.log("marker labels changed", labels);
25017
+ this.previousMarkerLabels.forEach(function (pml) {
25018
+ _this.setMarkerModeForObjectsWithName(pml, "off");
25019
+ });
25020
+ labels.forEach(function (l) {
25021
+ _this.setMarkerModeForObjectsWithName(l, "on");
25022
+ });
25023
+ this.previousMarkerLabels = labels;
24747
25024
  }
24748
25025
  },
24749
25026
  beforeCreate: function beforeCreate() {
@@ -24754,7 +25031,6 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24754
25031
  this._currentURL = undefined;
24755
25032
  this.availableBackground = ["white", "black", "lightskyblue"];
24756
25033
  this.$_searchIndex = new search_SearchIndex();
24757
- this.$_tempId = 1;
24758
25034
  },
24759
25035
  mounted: function mounted() {
24760
25036
  this.$refs.treeControls.setModule(this.$module);
@@ -24773,28 +25049,45 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24773
25049
  this.$module = undefined;
24774
25050
  },
24775
25051
  methods: {
24776
- /**
24777
- * This is called when a new zinc object is read into the scene.
25052
+ addZincObject: function addZincObject(zincObject) {
25053
+ if (this.$module.scene) {
25054
+ this.$module.scene.addZincObject(zincObject);
25055
+ this.zincObjectAdded(zincObject);
25056
+ if (this.$refs.treeControls) this.$refs.treeControls.zincObjectAdded(zincObject);
25057
+ }
25058
+ },
25059
+ /**
25060
+ * This is called when a new zinc object is read into the scene.
24778
25061
  */
24779
25062
  zincObjectAdded: function zincObjectAdded(zincObject) {
24780
25063
  this.loading = false;
24781
- zincObject.searchIndexId = ++this.$_tempId;
24782
- this.$_searchIndex.addZincObject(zincObject, zincObject.searchIndexId);
25064
+ this.$_searchIndex.addZincObject(zincObject, zincObject.uuid);
24783
25065
  this.$emit("zinc-object-added", zincObject);
24784
25066
  },
24785
- /**
24786
- * This is called when Change backgspeedround colour button
24787
- * is pressed an causes the backgrouColornd colour to be changed
24788
- * to one of the three preset colour: white, black and
24789
- * lightskyblue.
25067
+ /**
25068
+ *
25069
+ */
25070
+ addRegionsToSearchIndex: function addRegionsToSearchIndex() {
25071
+ var _this2 = this;
25072
+ var rootRegion = this.$module.scene.getRootRegion();
25073
+ var regions = rootRegion.getChildRegions(true);
25074
+ regions.forEach(function (region) {
25075
+ _this2.$_searchIndex.addRegion(region, region.uuid);
25076
+ });
25077
+ },
25078
+ /**
25079
+ * This is called when Change backgspeedround colour button
25080
+ * is pressed an causes the backgrouColornd colour to be changed
25081
+ * to one of the three preset colour: white, black and
25082
+ * lightskyblue.
24790
25083
  */
24791
25084
  backgroundChangeCallback: function backgroundChangeCallback(colour) {
24792
25085
  this.currentBackground = colour;
24793
25086
  this.$module.zincRenderer.getThreeJSRenderer().setClearColor(this.currentBackground, 1);
24794
25087
  },
24795
- /**
24796
- * This is called by captueeScreenshot and after the last render
24797
- * loop, it download a screenshot of the current scene with no UI.
25088
+ /**
25089
+ * This is called by captueeScreenshot and after the last render
25090
+ * loop, it download a screenshot of the current scene with no UI.
24798
25091
  */
24799
25092
  captureScreenshotCallback: function captureScreenshotCallback() {
24800
25093
  //Remove the callback, only needs to happen once
@@ -24807,17 +25100,27 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24807
25100
  hrefElement.click();
24808
25101
  hrefElement.remove();
24809
25102
  },
24810
- /**
24811
- * Function for capturing a screenshot of the current rendering.
24812
- *
24813
- * @param {String} filename filename given to the screenshot.
24814
- *
24815
- * @public
25103
+ /**
25104
+ * Function for capturing a screenshot of the current rendering.
25105
+ *
25106
+ * @param {String} filename filename given to the screenshot.
25107
+ *
25108
+ * @public
24816
25109
  */
24817
25110
  captureScreenshot: function captureScreenshot(filename) {
24818
25111
  this.captureFilename = filename;
24819
25112
  this.captureID = this.$module.zincRenderer.addPostRenderCallbackFunction(this.captureScreenshotCallback);
24820
25113
  },
25114
+ /**
25115
+ * Function to clear current scene, the tree controls and the search index.
25116
+ *
25117
+ * @public
25118
+ */
25119
+ clearScene: function clearScene() {
25120
+ if (this.$refs.treeControls) this.$refs.treeControls.clear();
25121
+ if (this.$_searchIndex) this.$_searchIndex.removeAll();
25122
+ if (this.$module.scene) this.$module.scene.clearAll();
25123
+ },
24821
25124
  formatTooltip: function formatTooltip(val) {
24822
25125
  if (this.timeMax >= 1000) {
24823
25126
  if (val) {
@@ -24828,52 +25131,52 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24828
25131
  }
24829
25132
  return val ? val.toFixed(2) + " ms" : "0 ms";
24830
25133
  },
24831
- /**
24832
- * Function to reset the view to default.
24833
- * Also called when the associated button is pressed.
24834
- *
24835
- * @public
25134
+ /**
25135
+ * Function to reset the view to default.
25136
+ * Also called when the associated button is pressed.
25137
+ *
25138
+ * @public
24836
25139
  */
24837
25140
  fitWindow: function fitWindow() {
24838
25141
  if (this.$module.scene) {
24839
25142
  this.$module.scene.viewAll();
24840
25143
  }
24841
25144
  },
24842
- /**
24843
- * Function to zoom in.
24844
- * Also called when the associated button is pressed.
24845
- *
24846
- * @public
25145
+ /**
25146
+ * Function to zoom in.
25147
+ * Also called when the associated button is pressed.
25148
+ *
25149
+ * @public
24847
25150
  */
24848
25151
  zoomIn: function zoomIn() {
24849
25152
  if (this.$module.scene) {
24850
25153
  this.$module.scene.changeZoomByScrollRateUnit(-1);
24851
25154
  }
24852
25155
  },
24853
- /**
24854
- * Function to zoom out.
24855
- * Also called when the associated button is pressed.
24856
- *
24857
- * @public
25156
+ /**
25157
+ * Function to zoom out.
25158
+ * Also called when the associated button is pressed.
25159
+ *
25160
+ * @public
24858
25161
  */
24859
25162
  zoomOut: function zoomOut() {
24860
25163
  if (this.$module.scene) {
24861
25164
  this.$module.scene.changeZoomByScrollRateUnit(1);
24862
25165
  }
24863
25166
  },
24864
- /**
24865
- * Function to change the current play speed.
24866
- *
24867
- * @public
25167
+ /**
25168
+ * Function to change the current play speed.
25169
+ *
25170
+ * @public
24868
25171
  */
24869
25172
  speedChanged: function speedChanged(speed) {
24870
25173
  this.currentSpeed = speed;
24871
25174
  this.$module.setPlayRate(this.defaultRate * this.currentSpeed);
24872
25175
  },
24873
- /**
24874
- * Function used to stop the free spin
24875
- *
24876
- * @public
25176
+ /**
25177
+ * Function used to stop the free spin
25178
+ *
25179
+ * @public
24877
25180
  */
24878
25181
  stopFreeSpin: function stopFreeSpin() {
24879
25182
  var cameracontrol = this.$module.scene.getZincCameraControls();
@@ -24887,8 +25190,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24887
25190
  }
24888
25191
  return objects;
24889
25192
  },
24890
- /**
24891
- * Focus on named region
25193
+ /**
25194
+ * Focus on named region
24892
25195
  */
24893
25196
  viewRegion: function viewRegion(names) {
24894
25197
  var rootRegion = this.$module.scene.getRootRegion();
@@ -24937,11 +25240,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24937
25240
  }
24938
25241
  return undefined;
24939
25242
  },
24940
- /**
24941
- * Function used to rotate the scene.
24942
- * Also called when the associated button is pressed.
24943
- *
24944
- * @public
25243
+ /**
25244
+ * Function used to rotate the scene.
25245
+ * Also called when the associated button is pressed.
25246
+ *
25247
+ * @public
24945
25248
  */
24946
25249
  freeSpin: function freeSpin() {
24947
25250
  if (this.$module.scene) {
@@ -24952,10 +25255,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24952
25255
  setTimeout(this.stopFreeSpin, 4000);
24953
25256
  }
24954
25257
  },
24955
- /**
24956
- * Callback when a region is selected/highlighted.
24957
- * It will also update other controls.
24958
- *
25258
+ /**
25259
+ * Callback when a region is selected/highlighted.
25260
+ * It will also update other controls.
25261
+ *
24959
25262
  */
24960
25263
  eventNotifierCallback: function eventNotifierCallback(event) {
24961
25264
  var names = [];
@@ -24970,10 +25273,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
24970
25273
  });
24971
25274
  zincObjects = event.zincObjects;
24972
25275
  }
24973
- /*
24974
- * Event Type 1: Selected
24975
- * Event Type 2: Highlighted
24976
- * Event Type 1: Move
25276
+ /*
25277
+ * Event Type 1: Selected
25278
+ * Event Type 2: Highlighted
25279
+ * Event Type 1: Move
24977
25280
  */
24978
25281
  if (event.eventType == 1) {
24979
25282
  if (this.$refs.treeControls) {
@@ -25004,7 +25307,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25004
25307
  if (event.identifiers[0].coords) {
25005
25308
  this.tData.visible = true;
25006
25309
  this.tData.label = id;
25007
- if (event.identifiers[0].data.region) this.tData.region = event.identifiers[0].data.region;else this.tData.region = "Root";
25310
+ if (event.identifiers[0].data.region) this.tData.region = event.identifiers[0].data.region;else this.tData.region = undefined;
25008
25311
  this.tData.x = event.identifiers[0].coords.x;
25009
25312
  this.tData.y = event.identifiers[0].coords.y;
25010
25313
  }
@@ -25023,10 +25326,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25023
25326
  }
25024
25327
  }
25025
25328
  },
25026
- /**
25027
- * Get the coordinates of the current selected region.
25028
- *
25029
- * @public
25329
+ /**
25330
+ * Get the coordinates of the current selected region.
25331
+ *
25332
+ * @public
25030
25333
  */
25031
25334
  getCoordinatesOfSelected: function getCoordinatesOfSelected() {
25032
25335
  if (this.selectedObjects && this.selectedObjects.length > 0) {
@@ -25034,46 +25337,46 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25034
25337
  }
25035
25338
  return undefined;
25036
25339
  },
25037
- /**
25038
- * Return an object containing the window coordinates of the
25039
- * current selected region which will be updated after each render
25040
- * loop.
25041
- *
25042
- * @public
25340
+ /**
25341
+ * Return an object containing the window coordinates of the
25342
+ * current selected region which will be updated after each render
25343
+ * loop.
25344
+ *
25345
+ * @public
25043
25346
  */
25044
25347
  getDynamicSelectedCoordinates: function getDynamicSelectedCoordinates() {
25045
25348
  return this.$module.selectedScreenCoordinates;
25046
25349
  },
25047
- /**
25048
- * Callback when time is changed through the UI.
25350
+ /**
25351
+ * Callback when time is changed through the UI.
25049
25352
  */
25050
25353
  timeChange: function timeChange(event) {
25051
25354
  var normalizedTime = event / this.timeMax * 100;
25052
25355
  if (normalizedTime != this.sceneData.currentTime) this.$module.updateTime(normalizedTime);
25053
25356
  },
25054
- /**
25055
- * A callback used by children components. Set the selected zinc object
25056
- *
25057
- * @param {object} object Zinc object
25357
+ /**
25358
+ * A callback used by children components. Set the selected zinc object
25359
+ *
25360
+ * @param {object} object Zinc object
25058
25361
  */
25059
25362
  objectSelected: function objectSelected(objects, propagate) {
25060
25363
  this.selectedObjects = objects;
25061
25364
  if (this.selectedObjects && this.selectedObjects.length > 0) this.$refs.opacityControl.setObject(this.selectedObjects[0]);
25062
25365
  this.$module.setSelectedByZincObjects(objects, undefined, propagate);
25063
25366
  },
25064
- /**
25065
- * A callback used by children components. Set the highlighted zinc object
25066
- *
25067
- * @param {object} object Zinc object
25367
+ /**
25368
+ * A callback used by children components. Set the highlighted zinc object
25369
+ *
25370
+ * @param {object} object Zinc object
25068
25371
  */
25069
25372
  objectHovered: function objectHovered(objects, propagate) {
25070
25373
  this.hoveredObjects = objects;
25071
25374
  this.$module.setHighlightedByZincObjects(objects, undefined, propagate);
25072
25375
  },
25073
- /**
25074
- * Set the selected by name.
25075
- *
25076
- * @param {} name Name of the group
25376
+ /**
25377
+ * Set the selected by name.
25378
+ *
25379
+ * @param {} name Name of the group
25077
25380
  */
25078
25381
  changeActiveByName: function changeActiveByName(names, region, propagate) {
25079
25382
  var isArray = Array.isArray(names);
@@ -25085,10 +25388,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25085
25388
  this.$refs.treeControls.changeActiveByNames(array, region, propagate);
25086
25389
  }
25087
25390
  },
25088
- /**
25089
- * Set the highlighted by name.
25090
- *
25091
- * @param {name} name Name of the group
25391
+ /**
25392
+ * Set the highlighted by name.
25393
+ *
25394
+ * @param {name} name Name of the group
25092
25395
  */
25093
25396
  changeHighlightedByName: function changeHighlightedByName(names, region, propagate) {
25094
25397
  var isArray = Array.isArray(names);
@@ -25100,10 +25403,10 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25100
25403
  this.$refs.treeControls.changeHoverByNames(array, region, propagate);
25101
25404
  }
25102
25405
  },
25103
- /**
25104
- * Start the animation.
25105
- *
25106
- * @param {object} object Zinc object
25406
+ /**
25407
+ * Start the animation.
25408
+ *
25409
+ * @param {object} object Zinc object
25107
25410
  */
25108
25411
  play: function play(flag) {
25109
25412
  this.$module.playAnimation(flag);
@@ -25112,8 +25415,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25112
25415
  //this.hideRegionTooltip();
25113
25416
  },
25114
25417
 
25115
- /**
25116
- * Function to toggle on/off overlay help.
25418
+ /**
25419
+ * Function to toggle on/off overlay help.
25117
25420
  */
25118
25421
  setHelpMode: function setHelpMode(helpMode) {
25119
25422
  if (helpMode) {
@@ -25128,16 +25431,16 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25128
25431
  });
25129
25432
  }
25130
25433
  },
25131
- /**
25132
- * Callback function used by showRegionTooltip in the case when the tooltip
25133
- * is out of view.
25434
+ /**
25435
+ * Callback function used by showRegionTooltip in the case when the tooltip
25436
+ * is out of view.
25134
25437
  */
25135
- displayTooltipOfObjectsCallback: function displayTooltipOfObjectsCallback(name, objects, resetView, liveUpdates) {
25438
+ displayTooltipOfObjectsCallback: function displayTooltipOfObjectsCallback(name, objects, regionPath, resetView, liveUpdates) {
25136
25439
  var instance = this;
25137
25440
  return function () {
25138
25441
  instance.$module.zincRenderer.removePostRenderCallbackFunction(instance.$_regionTooltipCallback);
25139
25442
  instance.$_regionTooltipCallback = undefined;
25140
- instance.displayTooltipOfObjects(name, objects, resetView, liveUpdates);
25443
+ instance.displayTooltipOfObjects(name, objects, regionPath, resetView, liveUpdates);
25141
25444
  };
25142
25445
  },
25143
25446
  liveUpdateTooltipPosition: function liveUpdateTooltipPosition() {
@@ -25146,7 +25449,7 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25146
25449
  this.tData.y = this.$module.selectedScreenCoordinates.y;
25147
25450
  }
25148
25451
  },
25149
- displayTooltipOfObjects: function displayTooltipOfObjects(name, objects, resetView, liveUpdates) {
25452
+ displayTooltipOfObjects: function displayTooltipOfObjects(name, objects, regionPath, resetView, liveUpdates) {
25150
25453
  if (objects.length > 0) {
25151
25454
  var coords = objects[0].getClosestVertexDOMElementCoords(this.$module.scene);
25152
25455
  if (coords) {
@@ -25160,20 +25463,19 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25160
25463
  if (this.$_regionTooltipCallback) {
25161
25464
  this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_regionTooltipCallback);
25162
25465
  }
25163
- this.$_regionTooltipCallback = this.$module.zincRenderer.addPostRenderCallbackFunction(this.displayTooltipOfObjectsCallback(name, objects, resetView, liveUpdates));
25466
+ this.$_regionTooltipCallback = this.$module.zincRenderer.addPostRenderCallbackFunction(this.displayTooltipOfObjectsCallback(name, objects, regionPath, resetView, liveUpdates));
25164
25467
  }
25165
25468
  } else {
25166
25469
  this.tData.visible = true;
25167
25470
  this.tData.label = name;
25168
25471
  this.tData.x = coords.position.x;
25169
25472
  this.tData.y = coords.position.y;
25170
- var regionPath = objects[0].getRegion().getFullPath();
25171
- if (regionPath) this.tData.region = regionPath;else this.tData.region = "Root";
25473
+ this.tData.region = regionPath;
25474
+ if (this.$_liveCoordinatesUpdated) {
25475
+ this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated);
25476
+ }
25172
25477
  if (liveUpdates) {
25173
25478
  this.$module.setupLiveCoordinates(objects);
25174
- if (this.$_liveCoordinatesUpdated) {
25175
- this.$module.zincRenderer.removePostRenderCallbackFunction(this.$_liveCoordinatesUpdated);
25176
- }
25177
25479
  this.$_liveCoordinatesUpdated = this.$module.zincRenderer.addPostRenderCallbackFunction(this.liveUpdateTooltipPosition);
25178
25480
  }
25179
25481
  }
@@ -25183,18 +25485,53 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25183
25485
  this.hideRegionTooltip();
25184
25486
  return false;
25185
25487
  },
25186
- /**
25187
- * Display the tooltip. When resetView is set to true, it will
25188
- * reset view if the tooltip is not in view.
25189
- * Setting liveUpdates to true will update the tooltip location
25190
- * at every rendering loop.
25488
+ /**
25489
+ * Display the tooltip used for displaying search result.
25490
+ * When resetView is set to true, it will
25491
+ * reset view if the tooltip is not in view.
25492
+ * Setting liveUpdates to true will update the tooltip location
25493
+ * at every rendering loop.
25494
+ */
25495
+ showRegionTooltipWithObjects: function showRegionTooltipWithObjects(label, zincObjects, regionPath, resetView, liveUpdates) {
25496
+ if (label && zincObjects && zincObjects.length > 0 && this.$module.scene) {
25497
+ return this.displayTooltipOfObjects(label, zincObjects, regionPath, resetView, liveUpdates);
25498
+ }
25499
+ this.hideRegionTooltip();
25500
+ return false;
25501
+ },
25502
+ /**
25503
+ * Display the tooltip. When resetView is set to true, it will
25504
+ * reset view if the tooltip is not in view.
25505
+ * Setting liveUpdates to true will update the tooltip location
25506
+ * at every rendering loop.
25191
25507
  */
25192
25508
  showRegionTooltip: function showRegionTooltip(name, resetView, liveUpdates) {
25193
25509
  if (name && this.$module.scene) {
25194
25510
  var rootRegion = this.$module.scene.getRootRegion();
25195
25511
  var groups = [name];
25196
25512
  var objects = utilities_findObjectsWithNames(rootRegion, groups, "", true);
25197
- return this.displayTooltipOfObjects(name, objects, resetView, liveUpdates);
25513
+ var regionPath = undefined;
25514
+ if (objects && objects.length > 0) {
25515
+ regionPath = objects[0].getRegion().getFullPath();
25516
+ }
25517
+ return this.showRegionTooltipWithObjects(name, objects, regionPath, resetView, liveUpdates);
25518
+ }
25519
+ this.hideRegionTooltip();
25520
+ return false;
25521
+ },
25522
+ /**
25523
+ * Display the tooltip using the list of annotations.
25524
+ * When resetView is set to true, it will
25525
+ * reset view if the tooltip is not in view.
25526
+ * Setting liveUpdates to true will update the tooltip location
25527
+ * at every rendering loop.
25528
+ */
25529
+ showRegionTooltipWithAnnotations: function showRegionTooltipWithAnnotations(annotations, resetView, liveUpdates) {
25530
+ if (this.$module.scene) {
25531
+ var result = getObjectsFromAnnotations(this.$module.scene, annotations);
25532
+ if (result && result.objects.length > 0) {
25533
+ return this.showRegionTooltipWithObjects(result.label, result.objects, result.regionPath, resetView, liveUpdates);
25534
+ }
25198
25535
  }
25199
25536
  this.hideRegionTooltip();
25200
25537
  return false;
@@ -25206,22 +25543,49 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25206
25543
  this.$module.setupLiveCoordinates(undefined);
25207
25544
  }
25208
25545
  this.tData.visible = false;
25209
- this.tData.region = "Root";
25546
+ this.tData.region = undefined;
25210
25547
  },
25211
- /**
25212
- * This is called when mouse cursor enters supported elements
25213
- * with help tootltips.
25548
+ /**
25549
+ * Set the marker modes for objects with the provided name, mode can
25550
+ * be "on", "off" or "inherited".
25551
+ */
25552
+ setMarkerModeForObjectsWithName: function setMarkerModeForObjectsWithName(name, mode) {
25553
+ if (name && this.$module.scene) {
25554
+ var rootRegion = this.$module.scene.getRootRegion();
25555
+ var groups = [name];
25556
+ var objects = utilities_findObjectsWithNames(rootRegion, groups, "", true);
25557
+ objects.forEach(function (object) {
25558
+ return object.setMarkerMode(mode);
25559
+ });
25560
+ }
25561
+ },
25562
+ /**
25563
+ * Set the marker modes for objects specified by the list of annotations
25564
+ */
25565
+ setMarkerModeWithAnnotations: function setMarkerModeWithAnnotations(annotations, mode) {
25566
+ if (this.$module.scene) {
25567
+ var result = getObjectsFromAnnotations(this.$module.scene, annotations);
25568
+ if (result && result.objects.length > 0) {
25569
+ result.objects.forEach(function (object) {
25570
+ return object.setMarkerMode(mode);
25571
+ });
25572
+ }
25573
+ }
25574
+ },
25575
+ /**
25576
+ * This is called when mouse cursor enters supported elements
25577
+ * with help tootltips.
25214
25578
  */
25215
25579
  showHelpText: function showHelpText(helpTextNumber) {
25216
- var _this = this;
25580
+ var _this3 = this;
25217
25581
  if (!this.inHelp) {
25218
25582
  this.helpTextWait = setTimeout(function () {
25219
- _this.hoverVisibilities[helpTextNumber].value = true;
25583
+ _this3.hoverVisibilities[helpTextNumber].value = true;
25220
25584
  }, 500);
25221
25585
  }
25222
25586
  },
25223
- /**
25224
- * This is called when mouse cursor exits supported element..
25587
+ /**
25588
+ * This is called when mouse cursor exits supported element..
25225
25589
  */
25226
25590
  hideHelpText: function hideHelpText(helpTextNumber) {
25227
25591
  if (!this.inHelp) {
@@ -25235,19 +25599,14 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25235
25599
  this.objectSelected([], true);
25236
25600
  return false;
25237
25601
  } else {
25238
- var zincObjectResults = [];
25239
- if (Array.isArray(text)) {
25240
- //zincObjectResults = this.$_searchIndex.search("Heart");
25241
- zincObjectResults = this.$_searchIndex.searchTerms(text);
25242
- } else {
25243
- zincObjectResults = this.$_searchIndex.search(text);
25244
- }
25245
- if (zincObjectResults.length > 0) {
25246
- this.objectSelected(zincObjectResults, true);
25602
+ var result = this.$_searchIndex.searchAndProcessResult(text);
25603
+ var zincObjects = result.zincObjects;
25604
+ if (zincObjects.length > 0) {
25605
+ this.objectSelected(zincObjects, true);
25247
25606
  if (displayLabel) {
25248
- for (var i = 0; i < zincObjectResults.length; i++) {
25249
- if (zincObjectResults[i] && zincObjectResults[i].groupName) {
25250
- this.showRegionTooltip(zincObjectResults[i].groupName, true, true);
25607
+ for (var i = 0; i < zincObjects.length; i++) {
25608
+ if (zincObjects[i] && zincObjects[i].groupName) {
25609
+ this.showRegionTooltipWithObjects(result.label, zincObjects, result.regionPath, true, true);
25251
25610
  }
25252
25611
  }
25253
25612
  }
@@ -25259,21 +25618,21 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25259
25618
  }
25260
25619
  return false;
25261
25620
  },
25262
- /**
25263
- * Get the list of suggested terms
25621
+ /**
25622
+ * Get the list of suggested terms
25264
25623
  */
25265
25624
  fetchSuggestions: function fetchSuggestions(term) {
25266
25625
  if (this.$_searchIndex === undefined) return [];
25267
25626
  return this.$_searchIndex.auto_suggest(term);
25268
25627
  },
25269
- /**
25270
- * Called when minimap settings has changed. Pass the
25271
- * parameters to ZincJS and marked it for update.
25628
+ /**
25629
+ * Called when minimap settings has changed. Pass the
25630
+ * parameters to ZincJS and marked it for update.
25272
25631
  */
25273
25632
  updateMinimapScissor: function updateMinimapScissor() {
25274
- var _this2 = this;
25633
+ var _this4 = this;
25275
25634
  Object.keys(this.minimapSettings).forEach(function (key) {
25276
- _this2.$module.scene.minimapScissor[key] = _this2.minimapSettings[key];
25635
+ _this4.$module.scene.minimapScissor[key] = _this4.minimapSettings[key];
25277
25636
  });
25278
25637
  this.$module.scene.minimapScissor.updateRequired = true;
25279
25638
  },
@@ -25290,37 +25649,39 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25290
25649
  this.timeMax = this.$module.scene.getDuration();
25291
25650
  },
25292
25651
  setURLFinishCallback: function setURLFinishCallback(options) {
25293
- var _this3 = this;
25652
+ var _this5 = this;
25294
25653
  return function () {
25295
25654
  if (options) {
25296
25655
  if (options.viewport) {
25297
- _this3.$module.scene.getZincCameraControls().setCurrentCameraSettings(options.viewport);
25656
+ _this5.$module.scene.getZincCameraControls().setCurrentCameraSettings(options.viewport);
25298
25657
  } else if (options.viewURL && options.viewURL !== "") {
25299
- var url = new URL(options.viewURL, _this3.url);
25300
- _this3.$module.scene.loadViewURL(url);
25658
+ var url = new URL(options.viewURL, _this5.url);
25659
+ _this5.$module.scene.loadViewURL(url);
25301
25660
  } else if (options.region && options.region !== "") {
25302
- _this3.viewRegion(options.region);
25661
+ _this5.viewRegion(options.region);
25303
25662
  }
25304
25663
  if (options.visibility) {
25305
25664
  // Some UIs may not be ready at this time.
25306
- _this3.$nextTick(function () {
25307
- _this3.$refs.treeControls.setState(options.visibility);
25665
+ _this5.$nextTick(function () {
25666
+ _this5.$refs.treeControls.setState(options.visibility);
25308
25667
  });
25309
25668
  }
25310
25669
  }
25311
- _this3.updateSettingsfromScene();
25312
- _this3.$module.updateTime(0.01);
25313
- _this3.$module.updateTime(0);
25314
- _this3.$module.unsetFinishDownloadCallback();
25315
- _this3.$emit("on-ready");
25316
- _this3.isReady = true;
25670
+ _this5.updateSettingsfromScene();
25671
+ _this5.$module.updateTime(0.01);
25672
+ _this5.$module.updateTime(0);
25673
+ _this5.$module.unsetFinishDownloadCallback();
25674
+ _this5.addRegionsToSearchIndex();
25675
+ _this5.$emit("on-ready");
25676
+ _this5.setMarkers();
25677
+ _this5.isReady = true;
25317
25678
  };
25318
25679
  },
25319
- /**
25320
- * Function used for getting the current states of the scene. This exported states
25321
- * can be imported using the importStates method.
25322
- *
25323
- * @public
25680
+ /**
25681
+ * Function used for getting the current states of the scene. This exported states
25682
+ * can be imported using the importStates method.
25683
+ *
25684
+ * @public
25324
25685
  */
25325
25686
  getState: function getState() {
25326
25687
  var state = {
@@ -25336,11 +25697,11 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25336
25697
  }
25337
25698
  return state;
25338
25699
  },
25339
- /**
25340
- * Function used for importing the states of the scene. This exported states
25341
- * can be imported using the read states method.
25342
- *
25343
- * @public
25700
+ /**
25701
+ * Function used for importing the states of the scene. This exported states
25702
+ * can be imported using the read states method.
25703
+ *
25704
+ * @public
25344
25705
  */
25345
25706
  setState: function setState(state) {
25346
25707
  if (state) {
@@ -25368,12 +25729,12 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25368
25729
  exportGLTF: function exportGLTF(binary) {
25369
25730
  return this.$module.scene.exportGLTF(binary);
25370
25731
  },
25371
- /**
25372
- * Function used for reading in new scaffold metadata and a custom
25373
- * viewport. This function will ignore the state prop and
25374
- * read in the new url.
25375
- *
25376
- * @public
25732
+ /**
25733
+ * Function used for reading in new scaffold metadata and a custom
25734
+ * viewport. This function will ignore the state prop and
25735
+ * read in the new url.
25736
+ *
25737
+ * @public
25377
25738
  */
25378
25739
  setURLAndState: function setURLAndState(newValue, state) {
25379
25740
  if (newValue != this._currentURL) {
@@ -25384,6 +25745,8 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25384
25745
  if (this.$refs.treeControls) this.$refs.treeControls.clear();
25385
25746
  this.loading = true;
25386
25747
  this.isReady = false;
25748
+ this.$_searchIndex.removeAll();
25749
+ this.hideRegionTooltip();
25387
25750
  this.$module.setFinishDownloadCallback(this.setURLFinishCallback({
25388
25751
  viewport: viewport,
25389
25752
  region: this.region,
@@ -25395,33 +25758,30 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25395
25758
  } else {
25396
25759
  this.$module.loadOrgansFromURL(newValue, undefined, undefined, "scene", undefined, true);
25397
25760
  }
25398
- this.$_searchIndex.removeAll();
25399
- this.$_tempId = 1;
25400
- this.hideRegionTooltip();
25401
25761
  this.$module.scene.displayMarkers = this.displayMarkers;
25402
25762
  this.$module.scene.forcePickableObjectsUpdate = true;
25403
25763
  this.$module.scene.displayMinimap = this.displayMinimap;
25404
25764
  this.updateMinimapScissor();
25405
25765
  }
25406
25766
  },
25407
- /**
25408
- * Function used for reading in new scaffold metadata. This function will ignore
25409
- * the state prop and read in the new url.
25410
- *
25411
- * @public
25767
+ /**
25768
+ * Function used for reading in new scaffold metadata. This function will ignore
25769
+ * the state prop and read in the new url.
25770
+ *
25771
+ * @public
25412
25772
  */
25413
25773
  setURL: function setURL(newValue) {
25414
25774
  this.setURLAndState(newValue, undefined);
25415
25775
  },
25416
- /**
25417
- * Callback when drawer is toggled.
25776
+ /**
25777
+ * Callback when drawer is toggled.
25418
25778
  */
25419
25779
  drawerToggled: function drawerToggled(flag) {
25420
25780
  this.drawerOpen = flag;
25421
25781
  this.adjustLayout();
25422
25782
  },
25423
- /**
25424
- * Callback using ResizeObserver.
25783
+ /**
25784
+ * Callback using ResizeObserver.
25425
25785
  */
25426
25786
  adjustLayout: function adjustLayout() {
25427
25787
  var width = this.$refs.scaffoldContainer.clientWidth;
@@ -25449,27 +25809,36 @@ var EventNotifier = __webpack_require__("9b21").EventNotifier;
25449
25809
  syncControlCallback: function syncControlCallback() {
25450
25810
  var payload = this.$module.NDCCameraControl.getPanZoom();
25451
25811
  if (this.tData.visible) {
25452
- this.showRegionTooltip(this.tData.label);
25812
+ this.showRegionTooltip(this.tData.label, true, true);
25453
25813
  }
25454
25814
  this.$emit("scaffold-navigated", payload);
25455
25815
  },
25456
- /**
25457
- * Rotate mode - "none", "horizontal", "vertical", "free" but
25458
- * it will be ignored if flag is set to false.
25816
+ /**
25817
+ * Rotate mode - "none", "horizontal", "vertical", "free" but
25818
+ * it will be ignored if flag is set to false.
25459
25819
  */
25460
25820
  toggleSyncControl: function toggleSyncControl(flag, rotateMode) {
25461
25821
  this.$module.toggleSyncControl(flag, rotateMode);
25462
25822
  this.$module.setSyncControlCallback(this.syncControlCallback);
25823
+ },
25824
+ /**
25825
+ * Set the markers for the scene.
25826
+ */
25827
+ setMarkers: function setMarkers() {
25828
+ var _this6 = this;
25829
+ this.markerLabels.forEach(function (l) {
25830
+ _this6.setMarkerModeForObjectsWithName(l, "on");
25831
+ });
25463
25832
  }
25464
25833
  }
25465
25834
  });
25466
25835
  // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue?vue&type=script&lang=js&
25467
25836
  /* harmony default export */ var components_ScaffoldVuervue_type_script_lang_js_ = (ScaffoldVuervue_type_script_lang_js_);
25468
- // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=02838f59&prod&scoped=true&lang=scss&
25469
- var ScaffoldVuervue_type_style_index_0_id_02838f59_prod_scoped_true_lang_scss_ = __webpack_require__("f4b0");
25837
+ // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=0&id=718c348c&prod&scoped=true&lang=scss&
25838
+ var ScaffoldVuervue_type_style_index_0_id_718c348c_prod_scoped_true_lang_scss_ = __webpack_require__("ee47");
25470
25839
 
25471
- // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&id=02838f59&prod&lang=scss&
25472
- var ScaffoldVuervue_type_style_index_1_id_02838f59_prod_lang_scss_ = __webpack_require__("2ce7");
25840
+ // EXTERNAL MODULE: ./src/components/ScaffoldVuer.vue?vue&type=style&index=1&id=718c348c&prod&lang=scss&
25841
+ var ScaffoldVuervue_type_style_index_1_id_718c348c_prod_lang_scss_ = __webpack_require__("6514");
25473
25842
 
25474
25843
  // CONCATENATED MODULE: ./src/components/ScaffoldVuer.vue
25475
25844
 
@@ -25487,7 +25856,7 @@ var ScaffoldVuer_component = normalizeComponent(
25487
25856
  staticRenderFns,
25488
25857
  false,
25489
25858
  null,
25490
- "02838f59",
25859
+ "718c348c",
25491
25860
  null
25492
25861
 
25493
25862
  )